
# 添加HBase的Ranger访问权限策略
#### 操作场景
HBase通常存储着大量结构化业务数据，不同业务团队及角色对HBase表、列族、列的访问需求存在差异。HBase原生权限控制机制分散且精细化不足，通过原生命令配置权限繁琐易出错，还难以实现集中管理与审计，存在数据安全风险。为此，Ranger管理员可通过Ranger为HBase用户配置表、列族及列的权限。本场景适用于Ranger管理员、Hadoop集群安全运维人员，用于完成HBase用户权限的分配、调整与回收，保障数据访问安全与业务合规。
#### 前提条件
- 集群中已安装Ranger服务且服务运行正常。
- 集群中已创建需要配置权限的用户、用户组或Role，如果是新创建的用户，需等待用户自动同步至Ranger后才可以配置相关权限策略。
 
#### 操作步骤
1. 使用Ranger管理员用户登录Ranger WebUI管理页面，具体操作可参考[登录Ranger WebUI界面](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1850.html)。
2. 在首页中单击"HBASE"区域的组件插件名称如"HBase"。
3. 单击"Add New Policy"，添加HBase权限控制策略。
4. 根据业务需求配置相关参数。 
   表1HBase权限参数 
   | 参数名称                    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   |:---|:---|
   | Policy Name             | 策略名称，可自定义，不能与本服务内其他策略名称重复。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | Policy Conditions       | IP过滤策略，可自定义，配置当前策略适用的主机节点，可填写一个或多个IP或IP段，并且IP填写支持"\*"通配符，例如：192.168.1.10,192.168.1.20或者192.168.1.\*。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | Policy Label            | 为当前策略指定一个标签，可以根据这些标签搜索报告和筛选策略。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | HBase Table             | 适用该策略的HBase表。 可支持通配符"\*"，例如"table1:\*"表示table1下的所有表。 "Include"策略适用于当前输入的对象，"Exclude"表示策略适用于除去当前输入内容之外的其他对象。 **Ranger界面上HBase服务插件的"hbase.rpc.protection"参数值必须和HBase服务端的"hbase.rpc.protection"参数值保持一致，具体请参考[配置HBase权限策略时无法使用通配符搜索已存在的HBase表](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2355.html)。**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | HBase Column-family     | 适用该策略的HBase列族。 "Include"策略适用于当前输入的对象，"Exclude"表示策略适用于除去当前输入内容之外的其他对象。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | HBase Column            | 适用该策略的HBase列。 "Include"策略适用于当前输入的对象，"Exclude"表示策略适用于除去当前输入内容之外的其他对象。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | Description             | 策略描述信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | Audit Logging           | 该策略命中时是否生成审计日志。 - Yes：当用户触发该策略的权限校验时，无论校验结果是允许（Allow）还是拒绝（Deny），会生成一条审计日志。  - No：当用户触发该策略的权限校验时，不会生成任何审计日志。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | Allow Conditions        | 策略允许条件，配置本策略内允许的权限及例外。 在"Select Role"、"Select Group"、"Select User"列选择已创建好的需要授予权限的Role、用户组或用户，单击"Add Conditions"，添加策略适用的IP地址范围，单击"Add Permissions"，添加对应权限。 - Read：读权限  - Write：写权限  - Create：创建权限  - Admin：管理权限  - Select/Deselect All：全选/取消全选   如需让当前条件中的用户或用户组管理本条策略，可勾选"Delegate Admin"使这些用户或用户组成为受委托的管理员。被委托的管理员可以更新、删除本策略，还可以基于原始策略创建子策略。 如需添加多条权限控制规则，可单击![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001676907358.png)按钮添加。如需删除权限控制规则，可单击![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001724746845.png)按钮删除。 Exclude from Allow Conditions：配置策略例外条件。 |
   | Deny All Other Accesses | 是否拒绝其他所有访问。 - True：拒绝其他所有访问  - False：设置为False，可配置Deny Conditions。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | Deny Conditions         | 策略拒绝条件，配置本策略内拒绝的权限及例外，配置方法与"Allow Conditions"类似。 拒绝条件的优先级高于"Allow Conditions"中配置的允许条件。 Exclude from Deny Conditions：配置排除在拒绝条件之外的例外规则。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
      
   表2常见权限配置场景 
   | 任务场景            | 角色授权操作                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   |:---|:---|
   | 设置HBase管理员权限    | 1. 在首页中单击"HBase"区域的组件插件名称，例如"HBase"。  2. 选择"Policy Name"为"all - table, column-family, column"的策略，单击![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001676747638.png)按钮编辑策略。  3. 在"Allow Conditions"区域，单击"Select User"下选择框选择用户。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 设置用户创建表的权限      | 1. 在"HBase Table"配置表名。  2. 在"Allow Conditions"区域，单击"Select User"下选择框选择用户。  3. 单击"Add Permissions"，勾选"Create"。 该用户具有以下操作权限： - create table  - drop table  - truncate table  - alter table  - enable table  - flush table  - flush region  - compact  - disable  - enable  - desc      |
   | 设置用户写入数据的权限     | 1. 在"HBase Table"配置表名。  2. 在"Allow Conditions"区域，单击"Select User"下选择框选择用户。  3. 单击"Add Permissions"，勾选"Write"。 该用户具有put、delete、append、incr等操作权限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 设置用户读取数据的权限     | 1. 在"HBase Table"配置表名。  2. 在"Allow Conditions"区域，单击"Select User"下选择框选择用户。  3. 单击"Add Permissions"，勾选"Read"。 该用户具有get、scan操作权限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 设置用户管理命名空间或表的权限 | 1. 在"HBase Table"配置表名。  2. 在"Allow Conditions"区域，单击"Select User"下选择框选择用户。  3. 单击"Add Permissions"，勾选"Admin"。 该用户具有rsgroup、peer、assign、balance等操作权限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 设置列的读取或写入权限     | 1. 在"HBase Table"配置表名。  2. 在"HBase Column-family"配置列族名。  3. 在"Allow Conditions"区域，单击"Select User"下选择框选择用户。  4. 单击"Add Permissions"，勾选"Read"或者"Write"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
      
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   如果用户需要在HBase Shell中执行desc操作，需要同时给该用户赋予hbase:quota表的读权限。
   
   
5. （可选）添加策略有效期。在页面右上角单击"Add Validity period"，设置"Start Time"和"End Time"，选择"Time Zone"。单击"Save"保存。如需添加多条策略有效期，可单击![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001676907354.png)按钮添加。如需删除策略有效期，可单击![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001676907350.png)按钮删除。
6. 单击"Add"，在策略列表可查看策略的基本信息。等待策略生效后，验证相关权限是否正常。 
   如需禁用某条策略，可单击![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001676907362.png)按钮编辑策略，设置策略开关为"Disabled"。
   如果不再使用策略，可单击![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001724866713.png)按钮删除策略。
   
   
 
#### 相关文档
- 配置Ranger策略时，不同条件的优先级可参考[Ranger权限策略条件判断优先级](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1851.html#mrs_01_1851__section2381255446)。
- 如需查看Ranger中的相关权限设置对象信息，例如用户、用户组、Role，可参考[查看Ranger用户权限同步信息](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1854.html)。
- MRS集群中新用户可在Manager中进行创建，可参考[创建MRS集群用户](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0345.html)。
 
