更新时间:2024-07-19 GMT+08:00

在Ranger中配置HBase的访问权限

在创建完安装了Ranger组件的MRS集群后,HBase的权限控制暂未集成在Ranger,本章节主要介绍HBase组件如何集成在Ranger中。

  1. 登录Ranger WebUI界面。
  2. 在“Service Manager”中的HBASE处,单击添加HBase Service。

    图1 添加HBase Service

  3. 请参考表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

  4. 单击“Add”添加服务。
  5. 启动Ranger HBase Plugin,授权Ranger管理HBase。

    1. 在MRS控制台,单击集群名称进入集群详情页面。
    2. 选择“组件管理”。
    3. 选择“HBase > 服务配置”,将“基础配置”切换为“全部配置”。
    4. 搜索并修改“hbase.security.authorization”为“true”(选择第一个HBase下的参数即可)。
      图3 修改hbase.security.authorization
    5. 搜索“hbase.coprocessor.master.classes”,并在原值后追加“,org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor”。
      图4 hbase.coprocessor.master.classes
    6. 搜索“hbase.coprocessor.region.classes”,并在原值后追加“,org.apache.ranger.authorization.hbase.RangerAuthorizationCoprocessor”。
      图5 hbase.coprocessor.region.classes
    7. 单击“保存配置”,并勾选“重新启动受影响的服务或实例。”重启HMaster与RegionServer实例。

  6. 在HBase Service hbasedev下创建对应的Policy。

    1. 登录Ranger WebUI界面。
    2. 在HBASE区域单击已添加的服务名称“hbasedev”。
    3. 单击“Add New Policy”,新增访问控制策略。
    4. 参考表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的访问控制策略
    5. 单击“Add”,完成策略添加,依据如上Policy,testuser用户组中的testuser用户拥有对HBase中“default”namespace下的“test1”表中“cf1:name”列有Create和select的权限,而对于其他列则没有任何的访问权限。

  7. 参见从零开始使用HBase更新并登录Hbase客户端,验证Ranger是否已经完成集成HBase。

    1. 执行如下命令,进入hbase shell。

      source /opt/client/bigdata_env

      hbase shell

      图7 进入hbase shell
    2. 添加数据,验证Ranger是否已经集成成功。
      1. 为“test1”表中“cf1:name”列添加数据。

        put 'test1','001','cf1:name','tom'

      2. 为“test1”表中“cf1:age”列添加数据,该列用户无权限会添加数据失败。

        put 'test1','001','cf1:age',10

      图8 验证Ranger集成HBase