[
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