本文介绍如何将HBase集成到Ranger,以及如何配置权限。

前提条件

已创建集群,并选择了HBase和Ranger服务,详情请参见创建集群

HBase集成Ranger

  1. Ranger启用HBase。
    1. 登录阿里云E-MapReduce控制台
    2. 在顶部菜单栏处,根据实际情况选择地域(Region)和资源组
    3. 单击上方的集群管理页签。
    4. 集群管理页面,单击相应集群所在行的详情
    5. 在左侧导航栏单击集群服务 > RANGER
    6. 单击右侧的操作下拉菜单,选择启用HBase
      Enable HBase PLUGIN
    7. 执行集群操作对话框设置相关参数,然后单击确定。在确认对话框,单击确定
      单击右上角查看操作历史查看任务进度,等待任务完成。
  2. Ranger UI添加HBase Service。
    1. 进入Ranger UI页面,详情请参见概述
    2. 在Ranger UI页面,添加HBase Service。
      add_hbase
    3. 配置相关参数。
      add_hbase
      参数 说明
      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
    4. 单击Add
  3. 重启HBase。
    1. 左侧导航栏单击集群服务 > HBase
    2. 单击右上角操作下拉菜单,选择重启All Components
    3. 执行集群操作对话框设置相关参数,然后单击确定。在确认对话框,单击确定
      单击右上角查看操作历史查看任务进度,等待任务完成。

设置管理员账号

  1. Service Manager页面,单击创建好的emr-hbase
    view hbase
  2. 设置管理员账号的权限(admin权限)。
    用于执行管理命令,例如balance、compaction、flush或split等。
    因为当前服务已经存在权限策略,所以您只需要单击右侧的edit图标,在User中添加需要设置的账号即可。另外也可以修改其中的权限(例如只保留admin权限)。HBase账号必须默认设置为管理员账号。设置管理员账号
    如果使用Phoenix,则需在Ranger的HBase中新增如下策略。
    参数 说明
    HBase Column-family 星号(*
    HBase Column 星号(*
    Select Group public
    Permissions ReadWriteCreateAdmin

权限配置示例

例如给test用户授予表foo_ns:test的Create、Write和Read权限。

  1. 进入Ranger UI页面,详情请参见概述
  2. 在Ranger UI页面,单击配置好的emr-hbase
    emr-habse
  3. 单击右上角的Add New Policy
  4. 配置相关权限。
    参数 说明
    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 选择授予的权限。
  5. 单击Add
    添加Policy后,实现对test用户的授权。test用户即可以对foo_ns:test表进行访问。
    说明 添加、删除或修改Policy后,需要等待约一分钟至授权生效。