更新时间:2024-04-28 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启用Ranger鉴权,并重启Impala服务。安全集群(开启Kerberos认证)默认启用Ranger,可跳过该步骤

    用后重启Impala配置过期实例(启用过程中如果报错,先重启一次Impala配置过期的实例)。

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

    参数

    ranger.usersync.sync.source

    ldap

  3. 使用Ranger管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger管理界面,选择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,否则会遇到如下报错:

分享:

    相关文档

    相关产品