Class SnapshotScannerHDFSAclController

java.lang.Object
org.apache.hadoop.hbase.security.access.SnapshotScannerHDFSAclController
All Implemented Interfaces:
Coprocessor, MasterCoprocessor, MasterObserver

@LimitedPrivate("Configuration") public class SnapshotScannerHDFSAclController extends Object implements MasterCoprocessor, MasterObserver
Set HDFS ACLs to hFiles to make HBase granted users have permission to scan snapshot

To use this feature, please mask sure HDFS config:

  • dfs.namenode.acls.enabled = true
  • fs.permissions.umask-mode = 027 (or smaller umask than 027)

The implementation of this feature is as followings:

  • For common directories such as 'data' and 'archive', set other permission to '--x' to make everyone have the permission to access the directory.
  • For namespace or table directories such as 'data/ns/table', 'archive/ns/table' and '.hbase-snapshot/snapshotName', set user 'r-x' access acl and 'r-x' default acl when following operations happen:
    • grant user with global, namespace or table permission;
    • revoke user from global, namespace or table;
    • snapshot table;
    • truncate table;
  • Note: Because snapshots are at table level, so this feature just considers users with global, namespace or table permissions, ignores users with table CF or cell permissions.