在Ranger中配置HBase的访问权限
在创建完安装了Ranger组件的MRS集群后,HBase的权限控制暂未集成在Ranger,本章节主要介绍HBase组件如何集成在Ranger中。
- 登录Ranger WebUI界面。
- 在“Service Manager”中的HBASE处,单击添加HBase Service。
图1 添加HBase Service
- 请参考表1填写添加HBase Service的相关参数,未在表中列出的参数请保持默认值。
表1 参数说明 名称
说明
示例值
Service Name
创建的service name名称,固定填写:hbasedev。
hbasedev
Username
可以任意填写。
admin
Password
可以任意填写。
-
hadoop.security.authentication
hadoop的认证方式,固定填写:Simple。
Simple
hbase.security.authentication
HBase的认证方式,固定填写:Simple。
Simple
hbase.zookeeper.property.clientPort
HBase集群中ZooKeeper的端口号。
2181
hbase.zookeeper.quorum
HBase集群中ZooKeeper地址。
192.168.0.7,192.168.0.8,192.168.0.9
zookeeper.znode.parent
HBase存在ZooKeeper中的根节点路径,固定填写:/hbase。
/hbase
图2 Create hbasedev
- 单击“Add”添加服务。
- 启动Ranger HBase Plugin,授权Ranger管理HBase。
- 在MRS控制台,单击集群名称进入集群详情页面。
- 选择“组件管理”。
- 选择“HBase > 服务配置”,将“基础配置”切换为“全部配置”。
- 搜索并修改“hbase.security.authorization”为“true”(选择第一个HBase下的参数即可)。
图3 修改hbase.security.authorization
- 搜索“hbase.coprocessor.master.classes”,并在原值后追加“,org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor”。
图4 hbase.coprocessor.master.classes
- 搜索“hbase.coprocessor.region.classes”,并在原值后追加“,org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor”。
图5 hbase.coprocessor.region.classes
- 单击“保存配置”,并勾选“重新启动受影响的服务或实例。”重启HMaster与RegionServer实例。
- 在HBase Service hbasedev下创建对应的Policy。
- 登录Ranger WebUI界面。
- 在HBASE区域单击已添加的服务名称“hbasedev”。
- 单击“Add New Policy”,新增访问控制策略。
- 参考表2配置参数,未在表中列出的参数请保持默认值。
表2 参数说明 参数
说明
示例值
Policy Name
策略名称。
Policy002
HBase Table
该策略允许访问的HBase表名称。
test1
HBase Column-family
该策略允许访问的HBase表对应的列族。
cf1
HBase Column
该策略允许访问的HBase表对应的表的列名。
name
Allow Conditions
- Select Group:该策略允许访问的用户组。
- Select User:该策略允许访问的用户组中的用户。
- Permissions:该策略允许用户使用的权限。
- Select Group:testuser
- Select User:testuser
- Permissions:Create和select
图6 新增hbasedev的访问控制策略
- 单击“Add”,完成策略添加,依据如上Policy,testuser用户组中的testuser用户拥有对HBase中“default”namespace下的“test1”表中“cf1:name”列有Create和select的权限,而对于其他列则没有任何的访问权限。
- 参见从零开始使用HBase更新并登录Hbase客户端,验证Ranger是否已经完成集成HBase。