[ 
https://issues.apache.org/jira/browse/DRILL-4129?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17045191#comment-17045191
 ] 

Dobes Vandermeer commented on DRILL-4129:
-----------------------------------------

Should plugins follow the model set by S3 ? 
https://issues.apache.org/jira/browse/DRILL-6662

 

> Ability to Secure Storage plugins
> ---------------------------------
>
>                 Key: DRILL-4129
>                 URL: https://issues.apache.org/jira/browse/DRILL-4129
>             Project: Apache Drill
>          Issue Type: Improvement
>          Components: Storage - Other
>    Affects Versions: 1.3.0
>         Environment: All
>            Reporter: John Omernik
>            Priority: Major
>              Labels: security
>             Fix For: Future
>
>
> With more storage plugins hitting other data stores with their own 
> authentication schemes, (and thus having to embed credentials into the plugin 
> for access) Drill thus needs the ability to put security around these 
> plugins.  Two approaches, perhaps both are needed, one is to somehow 
> challenge the user during the session for credentials and pass those 
> credentials to the underlying storage system. This would involve caching and 
> may or may not be useable for all cases .
> The other is to provide a way to secure storage plugins, similar to how we 
> secure views (i.e. using filesystem permissions).  There was some discussion 
> on the user list,  I copied one of my posts here as a potential idea: 
> Then I think the idea of securing each storage plugin may be a good idea.  
> Just an off the cuff idea: What if we had an option to enable security for 
> storage plugins (an opt in process) that specified a filesystem location as a 
> root location for storage plugins. 
> Each storage plugin created would get a directory under that root.  
> STORAGE_PLUGIN_SECURITY_ROOT="maprfs://data/storage_plugins"
> Then if I had a Mongo plugin named labmongo,  a jdbc plugin named labmysql, 
> and a hbase plugin named labhbase it would create directories that would be 
> world readable as such:
> /data/storage_plugins/labmongo
> /data/storage_plugins/labmysql
> /data/storage_plugins/labhbase
> These would be "world readable" as to be "visible"  If you didn't want them 
> to be visible to users, you could change the root permissions to be limiting, 
> but only users who can read them will have them shown in "show databases"
> In those directories there would be an automatically created a directory 
> called "security" or "default"  
> Permissions and ownership (for impersonation) for the plugin would be set by 
> setting the filesystem permissions on that directory (default/security)
> Then you could create views for the storage plugin itself that would be 
> located in the root:
> /data/storage_plugins/labmobgo/view_limited.json
> /data/storage_plugins/labmongo/view_other_limited.json
> And use permissions on those views like we do with permissions on filesystem 
> locations. 
> In addition, this model would allow us to create workspaces that are specific 
> to certain tables within the storage plugin (because now we'd have a place to 
> store those workspaces) and those works spaces could have permissions too.  
> I can see potential pitfalls here, however, this gives flexibility and it 
> matches the security model for the filesystem plugin in that people wouldn't 
> have "one" way to do security for filesystem plugins, and another for 
> non-filesystem plugins. It could help increase adoption and ease people into 
> using it through familiarity. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to