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

Andrew Purtell commented on HBASE-5498:
---------------------------------------

I made a pass over the trunk patch. New tests look good. Seems if they pass the 
basics are there. The design of the new coprocessor and its protocol are ok.

A couple of minor issues.

- Spelling: grep for "faildBulkLoad"

- "InternalBulkLoadListener" isn't necessary because there is no 
"BulkLoadListener" -- just call it BulkLoadListener?

- The new '// TODO deal with viewFS' in HStore gives me concern. I think this 
should be implemented, but don't have a strong opinion. There are other places 
where this is going to be an issue I suspect.

- In BaseRegionObserver we have "//TODO this should end up as a coprocessor 
hook" -- Those proposed hooks should be added as part of this change IMO. I 
don't like the idea of BaseRegionObserver exporting something not part of the 
RegionObserver interface. It is supposed to be a default implementation of that 
interface not a superset.

- SecureBulkLoadEndPoint should be SecureBulkLoadEndpoint -- endpoint is one 
word.

- In SecureBulkLoadEndpoint we have "//TODO make this configurable" -- This 
should either be done or not?

- In SecureTestUtil, should we be loading the SecureBulkLoad support 
unconditionally? How about just for the relevant tests?



                
> Secure Bulk Load
> ----------------
>
>                 Key: HBASE-5498
>                 URL: https://issues.apache.org/jira/browse/HBASE-5498
>             Project: HBase
>          Issue Type: Improvement
>          Components: security
>            Reporter: Francis Liu
>            Assignee: Francis Liu
>             Fix For: 0.94.3, 0.96.0
>
>         Attachments: HBASE-5498_94.patch, HBASE-5498_94.patch, 
> HBASE-5498_draft_94.patch, HBASE-5498_draft.patch, HBASE-5498_trunk.patch
>
>
> Design doc: 
> https://cwiki.apache.org/confluence/display/HCATALOG/HBase+Secure+Bulk+Load
> Short summary:
> Security as it stands does not cover the bulkLoadHFiles() feature. Users 
> calling this method will bypass ACLs. Also loading is made more cumbersome in 
> a secure setting because of hdfs privileges. bulkLoadHFiles() moves the data 
> from user's directory to the hbase directory, which would require certain 
> write access privileges set.
> Our solution is to create a coprocessor which makes use of AuthManager to 
> verify if a user has write access to the table. If so, launches a MR job as 
> the hbase user to do the importing (ie rewrite from text to hfiles). One 
> tricky part this job will have to do is impersonate the calling user when 
> reading the input files. We can do this by expecting the user to pass an hdfs 
> delegation token as part of the secureBulkLoad() coprocessor call and extend 
> an inputformat to make use of that token. The output is written to a 
> temporary directory accessible only by hbase and then bulkloadHFiles() is 
> called.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to