本文为您介绍如何开启HBase ACL(授权)。
背景信息
HBase在不开启授权的情况下,任何账号对HBase集群可以进行任何操作,例如disable table、drop table、major compact等。
对于没有Kerberos认证的集群,即使开启了HBase授权,用户也可以伪造身份访问集群服务。所以建议创建高安全模式(即支持Kerberos)的集群,详情请参见Kerberos概述。
基本概念
授权(ACL)就是将对某个范围的资源的操作权限授予某个实体。
在HBase 中,上述对应的三个概念分别为:
- 某个范围(Scope)的资源
名称 描述 Superuser 超级账号可以进行任何操作,运行HBase服务的账号默认是Superuser,也可以在hbase-site.xml中配置hbase.superuser的值来添加超级账号。 Global Global Scope拥有集群所有table的Admin权限。 Namespace 在Namespace Scope进行相关权限控制。 Table 在Table Scope进行相关权限控制。 ColumnFamily 在ColumnFamily Scope进行相关权限控制。 Cell 在Cell Scope进行相关权限控制。 - 操作权限
名称 描述 Read(R) 读取某个Scope资源的数据。 Write (W) 写数据到某个Scope的资源。 Execute (X) 在某个Scope执行协处理器。 Create (C) 在某个Scope创建或删除表等操作。 Admin(A) 在某个Scope进行集群相关操作,如balance、assign等。 - 某个实体
名称 描述 User 对某个用户授权。 Group 对某个用户组授权。