更新时间:2024-07-23 GMT+08:00
分享

用户授权

开启用户认证后需要鉴权才可以进行身份验证,此章节介绍如何鉴权。

操作前准备

操作步骤

  1. 登录表格存储服务管理控制台。
  2. 控制台左上角,选择区域。
  3. 单击左侧“帮助”,进入帮助界面。
  4. 单击帮助界面右侧“常用链接”中的“hbase2.x客户端下载”,下载HBase客户端并安装客户端,请参见手动安装客户端(也可使用一键部署客户端安装)。
  5. 进入安装客户端目录下进行客户端配置,将如下配置添加到客户端conf目录下的hbase-site.xml文件中。

    • 新增固定配置参数,直接复制如下参数到客户端的hbase-site.xml文件中。
      <property >
              <name>hbase.security.authentication</name>
              <value>iam</value>
      </property>
      <property >
              <name>hadoop.security.authentication</name>
              <value>TOKEN</value>
      </property>
      <property>
              <name>hbase.client.userprovider.class</name>
              <value>org.apache.hadoop.hbase.security.UserProviderExtend</value>
      </property>
      <property >
              <name>hbase.zookeeper.custom.auth.enabled</name>
              <value>true</value>
      </property>
      <property >
              <name>zookeeper.custom.authinfo.providers</name>
              <value>org.apache.hadoop.hbase.security.zookeeper.HBaseIAMAuthInfoProvider</value>
      </property>
      <property>
              <name>iam.user.password.encrypted</name>
              <value>false</value>
      </property>
      <property>
              <name>hbase.zookeeper.authProvider.scheme</name>
              <value>iam</value>
      </property>
      <property >
              <name>hbase.client.sasl.provider.class</name>
              <value>org.apache.hadoop.hbase.security.provider.IAMProviderSelector</value>
      </property>
      <property >
              <name>hbase.client.sasl.provider.extras</name>
              <value>org.apache.hadoop.hbase.security.provider.IAMSaslClientAuthenticationProvider</value>
      </property>
      <property>
              <name>hbase.rpc.client.impl</name>
              <value>org.apache.hadoop.hbase.ipc.BlockingRpcClient</value>
      </property>
    • 在hbase-site.xml文件中配置IAM的账户名和用户名,需要添加以下字段。
      <property>
              <name>iam.user.domain.name</name>
              <value>待认证的IAM账户名</value>
      </property>
      <property>
              <name>iam.user.name</name>
              <value>待认证的IAM用户名</value>
      </property>
      图1 添加用户名
      • 如果需要给其他用户授权,此处填写创建集群的账户和用户名。如果需要用已经授权的账号访问集群,此处填写授权的账号和用户名。
      • 创建集群的用户是管理员用户可以给其他用户授权。
    • 配置zookeeper地址到配置文件。

      在客户端解压目录下,打开“hbase/conf/hbase-site.xml”文件,配置如下参数:

      1. “hbase.zookeeper.quorum”:该参数值为在集群管理列表中查找的对应集群的“ZK链接地址”。

        登录表格存储服务管理控制台,在左侧导航树单击“集群管理”,然后在集群列表中找到所需要的集群,并获取相应的“ZK链接地址”,配置在“hbase/conf/hbase-site.xml”文件,请参见图3

        图2 查看zk链接地址
        图3 配置ZK地址
      2. 检查是否存在该配置项“mapreduce.cluster.local.dir”,如果不存在,请添加该配置项。
        配置示例如下:
        <configuration>
        <property>
        <name>hbase.zookeeper.quorum</name>
        <value>xxx-zk1.cloudtable.com,xxx-zk2.cloudtable.com,xxx-zk3.cloudtable.com</value>
        </property>
        
        <property>
        <name>mapreduce.cluster.local.dir</name>
        <value>${hadoop.tmp.dir}/mapred/local</value>
        </property>
        </configuration>
    如果集群开启了安全通道加密,需要添加如下参数到客户端的hbase-site.xml中,如果未开启安全通道加密,无需关注。
    <property>
        <name>hbase.rpc.protection</name>
        <value>privacy</value>
    </property>

  6. 使用SSH工具登录,执行“bin/hbase shell”,启动Shell访问集群,验证提示需要输入密码。

    图4 提示输入密码

  7. 输入错误的密码,单击回车键,验证是否可以启动shell访问集群。

    图5 验证异常

  8. 重复步骤6,输入正确的密码,成功启动shell访问HBase集群。
  9. 新建数据表,并写入数据。

    create 't1', 'f1'
    插入数据。
    put 't1', '123', 'f1:c1', 'abc'

    查看数据。

    scan 't1'
    图6 插入数据
    图7 查看数据

  10. 给用户授权。

    grant '用户名$租户名' ,'权限', '数据库名:表名'

    例如:授予用户hbase_xxxx数据表“test”的可读权限。

    grant 'hbase_xxx$test_xxx' ,'R', 'test'
    • 用户名$租户名:“租户名”为IAM账号中的主账号,“用户名”为IAM账号中的子账户。
    • 权限:有READ('R')、WRITE('W')、CREATE('C')、ADMIN('A')、EXEC('X')三种权限。
      • 可读权限用“R”表示。
      • 可写权限用“W”表示。
      • 创建、删除数据表用“C”表示。
      • 管理员权限,执行集群操作用“A”表示。
      • 调用endpoint的权限用“X”表示。
    • 数据库名:表名:表示在某数据下的数据表,如果表名前没有数据库名则表示是default数据库中的表。

  11. 退出hbase shell重复步骤5步骤6,将配置中的iam.user.domain.name和iam.user.name修改为授权的租户名和用户名,进入客户端使用授权的用户名密码访问。
  12. 授权验证。

    1. 查看“t1”数据表中的数据。
      scan 't1'
      图8 使用授权账号查看数据表test
    2. 数据表“t1”是否可以插入新的数据,插入失败表示授权成功。
      put 't1', '123', 'f1:c1', 'abcd'
      图9 插入数据失败图

  13. 如果想关闭用户认证,在集群管理禁用用户认证,请参考禁用用户认证步骤

    关闭用户认证需要重新下载客户端进行安装,请参见手动安装客户端

分享:

    相关文档

    相关产品