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

添加Impala的Ranger访问权限策略

本章节仅适用于MRS 3.1.5及之后版本。

操作场景

在创建完安装了Ranger组件的MRS集群后,Hive/Impala的权限控制集成在Ranger中,由于Impala复用Hive的权限策略,本章节主要介绍Hive组件如何集成在Ranger中。

前提条件

  • 已安装Ranger服务且服务运行正常。
  • 已创建需要配置权限的用户、用户组或Role。

操作步骤

  1. 普通模式(未开启Kerberos认证)下确认Hive,Impala是否启用Ranger鉴权。

    如果未启用则需要先对Hive启用Ranger鉴权,并重启Hive服务,再重启Impala服务。然后对Impala启用Ranger鉴权,并重启Impala服务。安全集群(开启Kerberos认证)默认启用Ranger,可跳过该步骤

  2. 普通模式下,登录Manager页面,选择“集群 > 服务 > Ranger > 配置 > 全部配置 > UserSync(角色)”,在自定义配置“ranger.usersync.config.expandor”新增如下配置项,修改完成后重启Ranger服务。安全集群(开启Kerberos认证)跳过该步骤

    参数

    ranger.usersync.sync.source

    ldap

  3. 使用Ranger管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger WebUI界面,选择Hive。

  1. 添加访问控制策略,即Policy。

    1. 在HIVE区域单击已添加的服务名称“Hive”。
    2. 单击“Add New Policy”,新增访问控制策略。
    3. 参考表1配置参数,未在表中列出的参数请保持默认值。
      表1 参数说明

      参数

      说明

      示例值

      Policy Name

      策略名称。

      testuser

      database

      该策略允许访问的数据库名称。

      default

      table

      该策略允许访问的数据库对应的表名称。

      dataorigin

      Hive Column

      该策略允许访问的数据库对应的表的列名。

      name

      Allow Conditions

      • Select Group:该策略允许访问的用户组。
      • Select User:该策略允许访问的用户组中的用户。
      • Permissions:该策略允许用户使用的权限。
      • Select Group:hive
      • Select User:testuser
      • Permissions:select,Create
      图1 新增testuser访问策略控制
    4. 单击“Add”,完成策略添加,依据如上Policy示例,hive用户组中的testuser用户将对Hive的“default”数据库中的表“dataorigin”的“name”列有Create和select的权限,而对于其他列则没有任何的访问权限。

  2. 登录Impala客户端,验证Ranger是否已经完成集成Impala。

    1. 以客户端安装用户登录客户端安装节点,执行如下命令,初始化环境变量。

      source /opt/client/bigdata_env

    2. 建立连接并使用testuser登录。
      • 普通集群(未开启Kerberos认证)执行如下命令:

        impala-shell -i <Impalad节点IP> -u testuser

      • 安全集群(开启Kerberos认证)执行如下命令:

        kinit testuser

        并输入密码登录

        impala-shell -i <Impalad节点IP>

    3. 查询数据,验证Ranger是否已经集成成功。
      • 执行select * from dataorigin失败,报错显示权限不足。
      • 执行select name from dataorigin成功,符合预设的权限。

      • 如果用户在执行命令时指定了HDFS路径,需要给该用户添加HDFS路径的读、写、执行权限,详情请参考添加HDFS的Ranger访问权限策略。也可以不配置HDFS的Ranger策略,通过之前Hive权限插件的方式,给角色添加权限,然后把角色赋予对应用户。如果HDFS Ranger策略可以匹配到Hive库表的文件或目录权限,则优先使用HDFS Ranger策略。
      • 如果在Hive中创建的表,需要在Impala执行invalidate metadata刷新元数据。此时需要给该用户赋予refresh权限或者使用hive用户执行invalidate metadata,否则会遇到如下报错: