本文介绍如何将HBase集成到Ranger,以及如何配置权限。
前提条件
HBase集成Ranger
- Ranger启用HBase。
- 登录阿里云E-MapReduce控制台。
- 在顶部菜单栏处,根据实际情况选择地域(Region)和资源组。
- 单击上方的集群管理页签。
- 在集群管理页面,单击相应集群所在行的详情。
- 在左侧导航栏单击集群服务 > RANGER。
- 单击右侧的操作下拉菜单,选择启用HBase。
- 在执行集群操作对话框设置相关参数,然后单击确定。在确认对话框,单击确定。单击右上角查看操作历史查看任务进度,等待任务完成。
- Ranger UI添加HBase Service。
- 进入Ranger UI页面,详情请参见概述。
- 在Ranger UI页面,添加HBase Service。
- 配置相关参数。
参数 说明 Service Name 固定值emr-hbase。 Username 固定填写hbase。 Password 自定义。 hadoop.security.authentication - 标准集群(非高安全集群):选择Simple。
- 高安全集群:选择Kerberos。
hbase.master.kerberos.principal 标准集群时不填写;高安全集群时填写hbase/_HOST@EMR.${id}.COM。 说明${id}
可登录机器执行hostname
命令,hostname
中的数字即为${id}的值。hbase.security.authentication - 标准集群(非高安全集群):选择Simple。
- 高安全集群:选择Kerberos。
hbase.zookeeper.property.clientPort 固定值2181。 hbase.zookeeper.quorum 固定值emr-header-1,emr-worker-1。 zookeeper.znode.parent 固定值/hbase。 Add New Configurations - Name:固定值policy.download.auth.users。
- Value:固定值hbase。
- 单击Add。
- 重启HBase。
- 左侧导航栏单击集群服务 > HBase。
- 单击右上角操作下拉菜单,选择重启All Components。
- 在执行集群操作对话框设置相关参数,然后单击确定。在确认对话框,单击确定。单击右上角查看操作历史查看任务进度,等待任务完成。
设置管理员账号
- 在Service Manager页面,单击创建好的emr-hbase。
- 设置管理员账号的权限(admin权限)。用于执行管理命令,例如balance、compaction、flush或split等。因为当前服务已经存在权限策略,所以您只需要单击右侧的
图标,在User中添加需要设置的账号即可。另外也可以修改其中的权限(例如只保留admin权限)。HBase账号必须默认设置为管理员账号。
如果使用Phoenix,则需在Ranger的HBase中新增如下策略。参数 说明 HBase Column-family 星号(*) HBase Column 星号(*) Select Group public Permissions Read、Write、Create和Admin
权限配置示例
例如给test用户授予表foo_ns:test的Create、Write和Read权限。
- 进入Ranger UI页面,详情请参见概述。
- 在Ranger UI页面,单击配置好的emr-hbase。
- 单击右上角的Add New Policy。
- 配置相关权限。
参数 说明 Policy Name 策略名称,可以自定义。 HBase Table 表对象,格式为${namespace}:${tablename}。可输入多个,填写一个需按一次Enter键。 如果是default的namespace,不需要加default。支持通配符星号(*),例如,foo_ns:*表示foo_ns下的所有表。说明 目前不支持default:*。HBase Column-family 列簇。 HBase Column 列名。 Select Group 指定添加此策略的用户组。 Select User 指定添加此策略的用户。 Permissions 选择授予的权限。 - 单击Add。添加Policy后,实现对test用户的授权。test用户即可以对foo_ns:test表进行访问。说明 添加、删除或修改Policy后,需要等待约一分钟至授权生效。