Ranger 2.1.0版本开始支持配置Security Zone功能,可以将资源划分到不同的Security Zone中,给每个Security Zone分配不同的管理员进行权限管理,即可以将资源分类交由不同的管理员管理。本文介绍如何配置Security Zone。
背景信息
例如,某公司有部门A和部门B两个部门,部门A主要使用Hive database a,以及HDFS路径/a,部门B主要使用Hive database b,以及HDFS路径/b。如果要使用Security Zone功能,可以将Hive database a和HDFS路径/a划分到Zone a当中,将Hive database b和HDFS路径/b划分到Zone b当中,并分别设置管理员,统一配置Zone中资源的权限。
Zone a和Zone b配置如下。
Zone: a
service: emr-hive; path=/a/*,
service: emr-hdfs; database=a
Zone: b
service: emr-hive; path=/b/*,
service: emr-hdfs; database=bSecurity Zone的管理员有权限配置Zone中资源的权限,如果配置属于其他Zone的资源的权限,则将不会生效。当Ranger Plugin鉴权时,首先会判断资源属于哪个Security Zone,然后只会使用该Security Zone中配置的权限进行鉴权。如果没有找到资源所属的Security Zone,则会使用未划分Security Zone的权限进行鉴权。
前提条件
- 已创建集群,并选择了Ranger服务,详情请参见创建集群。
- 已完成配置Hive开启Ranger权限控制和配置HDFS开启Ranger权限控制。
使用限制
仅EMR-5.x系列版本,支持配置Security Zone功能。
创建Security Zone管理员用户
本文示例需要新建admin_a和admin_b用户。
- 访问Ranger WebUI,详情请参见访问Ranger UI。
- 在Ranger WebUI页面上方,选择Settings > Users/Groups/Roles。
- 在Users页签,单击Add New User。

- 在User Detail页面,填写用户信息,设置Select Role为User,单击Save。
重要 Select Role必须设置为User,设置为Admin将会使得该用户成为超级管理员。超级管理员能够配置任何Security Zone的权限,就无法实现Security Zone管理员仅配置属于Zone的资源权限的功能。
配置Security Zone
您可以按照以下步骤配置Zone a和Zone b。
- 访问Ranger WebUI,详情请参见访问Ranger UI。
- 在Ranger WebUI页面,单击上方的Security Zone。
- 在Security Zone页面,单击Security Zones区域的
图标。

- 在Create Zone页面,配置相关参数。
参数 描述 示例 Zone Name Security Zone的名称。 a Admin Users Security Zone的管理员用户。该用户需要在Settings中进行创建,用户角色需要为User,详情请参见创建Security Zone管理员用户。 admin、admin_a Auditor Users 允许查看Security Zone审计日志的用户。 admin、admin_a Select Resource Services 选择Security Zone中的Service。 emr-hive、emr-hdfs Resource 填写属于该Security Zone的资源。 database=a、path=/a/* - 单击Save,完成Zone a的配置。
- 重复步骤3~步骤5,完成Zone b的配置。
测试
- 使用admin_a用户登录Ranger WebUI,详情请参见访问Ranger UI。
- 在Ranger WebUI页面,在右上角的Security Zone区域,选择a。
- 单击emr-hive,查看emr-hive Service中的权限。
只能查看和修改Zone a中配置的权限,无法查看和修改Zone b中配置的权限。您可以配置一个属于Zone b的资源的权限,例如给test用户配置b.test表的select权限。使用Beeline进行测试,该权限配置是不会生效的,因为database=b属于Zone b,在鉴权时只会检验Zone b中配置的权限。在Zone a中配置database=b资源的权限是不会起作用的。

- 使用admin_b用户登录Ranger WebUI,详情请参见访问Ranger UI。
- 在Ranger WebUI页面,在右上角的Security Zone区域,选择b。
- 单击emr-hive,查看emr-hive Service中的权限。
只能查看和修改Zone b中配置的权限,无法查看和修改Zone a中配置的权限。您可以配置一个属于Zone b的资源的权限,例如给test用户配置b.test表的select权限。使用Beeline进行测试,该权限配置可以生效。

该文章对您有帮助吗?
