更新时间:2024-07-24 GMT+08:00
添加Impala的Ranger访问权限策略
本章节仅适用于MRS 3.1.5及之后版本。
操作场景
在创建完安装了Ranger组件的MRS集群后,Hive/Impala的权限控制集成在Ranger中,由于Impala复用Hive的权限策略,本章节主要介绍Hive组件如何集成在Ranger中。
前提条件
- 已安装Ranger服务且服务运行正常。
- 已创建需要配置权限的用户、用户组或Role。
操作步骤
- 普通模式(未开启Kerberos认证)下确认Hive,Impala是否启用Ranger鉴权。
如果未启用则需要先对Hive启用Ranger鉴权,并重启Hive服务,再重启Impala服务。然后对Impala启用Ranger鉴权,并重启Impala服务。安全集群(开启Kerberos认证)默认启用Ranger,可跳过该步骤。
- 普通模式下,登录Manager页面,选择“集群 > 服务 > Ranger > 配置 > 全部配置 > UserSync(角色)”,在自定义配置“ranger.usersync.config.expandor”新增如下配置项,修改完成后重启Ranger服务。安全集群(开启Kerberos认证)跳过该步骤。
参数
值
ranger.usersync.sync.source
ldap
- 使用Ranger管理员用户rangeradmin登录Ranger管理页面,具体操作可参考登录Ranger WebUI界面,选择Hive。
- 添加访问控制策略,即Policy。
- 在HIVE区域单击已添加的服务名称“Hive”。
- 单击“Add New Policy”,新增访问控制策略。
- 参考表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访问策略控制
- 单击“Add”,完成策略添加,依据如上Policy示例,hive用户组中的testuser用户将对Hive的“default”数据库中的表“dataorigin”的“name”列有Create和select的权限,而对于其他列则没有任何的访问权限。
- 登录Impala客户端,验证Ranger是否已经完成集成Impala。
- 以客户端安装用户登录客户端安装节点,执行如下命令,初始化环境变量。
- 建立连接并使用testuser登录。
- 查询数据,验证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,否则会遇到如下报错:
父主题: Ranger权限策略配置示例