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

James Taylor commented on HBASE-6104:
-------------------------------------

Does this effect only end point coprocessors? If so, we have two end point 
coprocessors:
1) For issuing DDL statements. Probably not a bad idea to have to require an 
extra grant for a user to do this. The only exception might be still allowing 
users to create a tenant-specific table for a multi-tenant base table.
2) For sending region server level cache information, as there's no good way to 
do this from a region observer coprocessor (see 
https://issues.apache.org/jira/browse/HBASE-9291). This is used for both joins 
(for broadcasting the hash join cache to each region server) plus for secondary 
indexing (to pass along the index metadata for index row building, so we don't 
have to attach this information to every single Put/Delete). Requiring 
additional security to be able to do joins and/or use secondary indexing is not 
good. How about a fix for HBASE-9291 so that we could tack along attributes to 
go with the mutation on a per region server basis, [[email protected]]?

> Require EXEC permission to call coprocessor endpoints
> -----------------------------------------------------
>
>                 Key: HBASE-6104
>                 URL: https://issues.apache.org/jira/browse/HBASE-6104
>             Project: HBase
>          Issue Type: New Feature
>          Components: Coprocessors, security
>            Reporter: Gary Helmling
>            Assignee: Andrew Purtell
>             Fix For: 0.99.0
>
>         Attachments: 6104-addendum-1.patch, 6104-revert.patch, 6104.patch, 
> 6104.patch, 6104.patch, 6104.patch, 6104.patch, 6104.patch
>
>
> The EXEC action currently exists as only a placeholder in access control.  It 
> should really be used to enforce access to coprocessor endpoint RPC calls, 
> which are currently unrestricted.
> How the ACLs to support this would be modeled deserves some discussion:
> * Should access be scoped to a specific table and CoprocessorProtocol 
> extension?
> * Should it be possible to grant access to a CoprocessorProtocol 
> implementation globally (regardless of table)?
> * Are per-method restrictions necessary?
> * Should we expose hooks available to endpoint implementors so that they 
> could additionally apply their own permission checks? Some CP endpoints may 
> want to require READ permissions, others may want to enforce WRITE, or READ + 
> WRITE.
> To apply these kinds of checks we would also have to extend the 
> RegionObserver interface to provide hooks wrapping HRegion.exec().



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to