hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (HBASE-8692) [AccessController] Restrict HTableDescriptor enumeration
Date Sat, 22 Jun 2013 01:17:20 GMT

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

Andrew Purtell edited comment on HBASE-8692 at 6/22/13 1:15 AM:
----------------------------------------------------------------

Attached updated patches that fix a race upon table delete. New unit test covers this case.

The consequence of the change is it's now possible to discover table names by throwing guesses
or random strings at the cluster with HBaseAdmin#getHTableDescriptor(List<String>).
If the table exists the result will be an AccessDeniedException; if it does not exist, then
a null result. I don't find this to be a practical problem, there is no actual schema exposure.

                
      was (Author: apurtell):
    Attached updated patches that fix a race upon table delete. New unit test covers this
case.

The consequence of the change is it's now possible to, in theory, discover table names by
throwing guesses or random strings at the cluster with HBaseAdmin#getHTableDescriptor(List<String>).
If the table exists the result will be an AccessDeniedException; if it does not exist, then
a null result. No schema exposure though. I don't find this to be a problem.
                  
> [AccessController] Restrict HTableDescriptor enumeration
> --------------------------------------------------------
>
>                 Key: HBASE-8692
>                 URL: https://issues.apache.org/jira/browse/HBASE-8692
>             Project: HBase
>          Issue Type: Improvement
>          Components: Coprocessors, security
>    Affects Versions: 0.98.0, 0.95.1, 0.94.9
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>         Attachments: 8692-0.94.patch, 8692-0.94.patch, 8692-0.94.patch, 8692.patch, 8692.patch,
8692.patch
>
>
> Some users are concerned about having table schema exposed to every user and would like
it protected, similar to the rest of the admin operations for schema. 
> This used to be hopeless because META would leak HTableDescriptors in HRegionInfo, but
that is no longer the case in 0.94+.
> Consider adding CP hooks in the master for intercepting HMasterInterface#getHTableDescriptors
and HMasterInterface#getHTableDescriptors(List<String>).  Add support in the AccessController
for only allowing GLOBAL ADMIN to the first method. Add support in the AccessController for
allowing access to the descriptors for the table names in the list of the second method only
if the user has TABLE ADMIN privilege for all of the listed table names.
> Then, fix the code in HBaseAdmin (and elsewhere) that expects to be able to enumerate
all table descriptors e.g. in deleteTable. A TABLE ADMIN can delete a table but won’t have
GLOBAL ADMIN privilege to enumerate the total list. So a minor fixup is needed here, and in
other places like this which make the same assumption.

--
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

Mime
View raw message