DataWorks提供访问EMR Hive引擎数据时的权限管控能力,包括权限申请、权限审批、权限审计。本文以一个完整的示例,从管理员配置和开发者申请权限两个视角,为您介绍Hive数据访问权限控制的完整流程。
功能概述
通过将EMR集群集成的Apache Ranger与DataWorks安全中心对接,可以为EMR Hive引擎提供精细化的、可追溯的数据访问权限控制。
核心能力:实现对EMR Hive的库级别和表级别的数据访问权限管理。
角色分工:
管理员(DataWorks租户管理员,需同时拥有EMR集群管理权限):负责底层技术配置和权限审批,精细化地管理和审计所有开发者的数据访问权限。
开发者(普通RAM用户):负责数据使用,在DataWorks安全中心以自助方式申请所需的Hive数据权限,无需关心底层实现。
核心价值:实现配置与使用的分离。管理员统一管控数据安全,开发者按需申请、便捷使用,大幅提升数据安全性和协同效率。
流程说明
整个流程分为 “一次性配置” 和 “日常使用” 两个阶段,涉及管理员和开发者两种角色在EMR和DataWorks两个平台上的操作。
阶段一:管理员进行一次性配置
在用户可以申请权限之前,管理员需要完成所有前置配置工作。
前置确认工作
【EMR侧】
确保已创建EMR集群,并已开启 OpenLDAP认证、Ranger服务。
确保Hive服务已配置LDAP认证(
hive.server2.authentication=LDAP)。确保已在OpenLDAP中为所有相关用户创建对应的LDAP账号。详情请参见OpenLDAP 用户管理。
确保Ranger UI中已经添加LDAP账号。
【DataWorks侧】
确保EMR集群已注册到DataWorks工作空间成为EMR计算资源,并完成资源组初始化(需保证VPC连通或同一个VPC内)。
完成EMR计算资源的账号映射配置,将阿里云账号映射到LDAP账号。详情请参见计算资源的设置集群身份映射。
确保操作者拥有DataWorks租户管理员权限。
配置操作流程
步骤 | 操作角色 | 操作平台 | 操作内容 |
1 | 管理员 | DataWorks侧 | 关联集群与Ranger:在DataWorks安全中心新增Ranger配置,并关联到目标EMR集群。 |
2 | 管理员 | DataWorks侧 | 关联Hive服务:在Ranger配置中,新增一个Hive类型的Ranger Service进行关联。 |
3 | 管理员 | DataWorks侧 | 配置身份映射:为RAM用户配置Hive身份凭证,建立RAM用户到LDAP账号的映射关系。 |
阶段二:开发者与管理员的日常使用与审批
配置完成后,进入日常的权限申请与审批循环。
步骤 | 操作角色 | 操作平台 | 操作内容 |
1 | 开发者 | DataWorks侧 | 申请权限:在DataWorks安全中心的“数据访问控制”模块,自助申请所需Hive库或表的访问权限。 |
2 | 管理员 | DataWorks侧 | 审批权限:在DataWorks安全中心审批开发者的权限申请。 |
3 | / | EMR侧 | 权限下发:审批通过后,DataWorks会自动调用Ranger接口,在Ranger中生成对应的访问策略(Policy)。(此步骤为自动触发) |
4 | 开发者 | DataWorks侧 | 使用数据:权限策略生效后,开发者即可在数据开发、数据分析、数据地图等模块访问已获授权的Hive数据。 |
示例说明
本文以开发者bob向管理员申请访问Hive中user_orders表为例(SELECT权限),演示Hive数据访问权限控制的完整配置和使用流程:
角色/资源 | 说明 |
管理员 | RAM用户alice@company.com,对应LDAP账号alice,身份凭证中账号类型为管理员(可在DataWorks安全中心审批权限申请)。 |
开发者 | RAM用户bob@company.com,对应LDAP账号bob,身份凭证中账号类型为普通用户。 |
EMR集群 | 已开启OpenLDAP、Hive LDAP认证和Ranger服务的EMR集群。 |
Hive Service | Ranger Service Name为 |
目标数据 | EMR Hive中 |
在整个流程中,以下4个位置需要使用同一个LDAP账号名称,请确保一致:EMR集群的LDAP用户、Ranger UI中的用户、DataWorks安全中心的身份凭证账号名称、DataWorks管理中心计算引擎的账号映射。其中,身份凭证用于DataWorks安全中心识别用户身份和管理权限审批,账号映射用于DataWorks管理中心提交计算任务时的用户身份转换。
管理员:配置Hive数据访问控制
管理员需要依次完成以下三个配置步骤,才能让开发者通过DataWorks安全中心申请和使用Hive数据权限。
步骤一:新增Ranger配置
管理员需要在DataWorks安全中心中新增Ranger配置,将EMR集群与DataWorks关联。配置内容包括:
集群类型:选择EMR。
EMR集群ID:选择已注册到DataWorks工作空间的EMR集群。
资源组:选择与EMR集群在同一VPC的通用型资源组。
RangerAdmin地址:填写EMR集群中RangerAdmin的内网访问地址。
管理员账号/密码:填写Ranger管理员的账号和密码。
详细操作步骤请参见新增Ranger配置。
步骤二:关联Hive Service
新增Ranger配置后,需要新增Hive类型的Service关联,使DataWorks能够通过Ranger管理Hive的数据访问权限。
在安全中心页面,选择安全策略 > 管理Ranger。
单击目标Ranger配置的管理Service。
单击新增关联,配置以下信息:
参数
描述
Ranger Service Type
选择Hive。
Ranger Service Name
输入EMR集群中已配置的Hive Ranger Service名称。本例中填写
emr-hive。EMR 集群
选择已关联到当前Ranger的EMR集群。
详细操作步骤请参见新增Ranger配置中的关联Service部分。
步骤三:配置身份凭证
管理员需要为每个需要访问Hive数据的RAM用户配置身份凭证,将RAM用户与LDAP账号关联。
身份凭证中的账号名称必须与EMR集群LDAP中为该用户设定的用户名(例如本例中的alice)完全一致。这是Ranger进行用户识别和授权的唯一依据。
建议账号名称与阿里云RAM账号同名,便于管理。
本例中,管理员需要分别为alice和bob配置身份凭证:
为管理员alice配置身份凭证:
参数 | 示例值 |
阿里云RAM用户/角色 | alice@company.com |
数据源类型 | Hive |
集群/实例 | 选择已配置Ranger的EMR集群。 |
账号类型 | 管理员。管理员可审批其他用户的权限申请。 |
账号名称 | alice(需与EMR集群中LDAP账号名称一致) |
账号密码 | 填写LDAP账号alice的密码。 |
为开发者bob配置身份凭证:
参数 | 示例值 |
阿里云RAM用户/角色 | bob@company.com |
数据源类型 | Hive |
集群/实例 | 选择已配置Ranger的EMR集群(与alice相同的集群)。 |
账号类型 | 普通用户。普通用户只能申请权限,不能审批权限。 |
账号名称 | bob(需与EMR集群中LDAP账号名称一致) |
账号密码 | 填写LDAP账号bob的密码。 |
详细操作步骤请参见身份凭证。
开发者:申请Hive数据访问权限
管理员完成上述配置后,开发者bob即可在DataWorks安全中心申请Hive数据的访问权限。
步骤一:进入数据访问控制
登录DataWorks控制台,进入目标工作空间。在左侧导航栏,选择数据治理 > 安全中心。
在安全中心页面,在左侧导航栏单击数据访问控制。
步骤二:申请权限
在数据访问控制页面进行权限申请,需要配置申请内容与申请信息两个模块的信息。
Hive的权限申请,不支持自定义审批、权限审计管理。
Hive的权限申请,只能由身份凭证中账号类型为管理员的RAM用户/RAM角色审核。
在数据访问控制页面,单击进入权限申请页签。
申请资源权限。
在申请内容区域,选择数据源类型为Hive,即可配置申请内容。
申请类型:可按需求在库与表之间选择。本例中选择表。
EMR 集群:选择已在DataWorks中绑定的EMR集群实例。
选择需要申请的资源与资源权限。
选择申请类型为表时,先选择数据库(本例为
order_db),系统自动加载该库中所有可申请权限的数据表。选择需要申请权限的表(本例为user_orders)以及表权限(本例为SELECT)。若选择申请类型为库时,申请内容区域会加载出可以申请权限的Hive数据库名称。选择需要申请权限的数据库以及库权限(如SELECT、ALL等)。
配置申请信息。
参数
描述
使用者
选择需要为谁申请目标资源权限。
当前登录账号:表示为当前登录DataWorks工作空间的阿里云账号申请权限。本例中bob选择此项。
代他人申请:表示当前登录DataWorks工作空间的阿里云账号为其他阿里云账号申请权限。选择该选项时,需要配置用户名参数。
申请时长
Hive仅支持:永久。
申请原因
输入申请权限的原因。本例中bob填写"需要查询order_db库中user_orders表的数据进行数据分析"。
配置完成后,单击申请权限,即可提交权限申请。
管理员:审批权限
开发者bob提交权限申请后,身份凭证中账号类型为管理员的RAM用户(本例为alice@company.com)需要在安全中心审批该申请。
查看待审批的申请。
进入权限审批页签,选择数据源类型为Hive,查看bob提交的权限申请。
说明只有身份凭证中账号类型为管理员的RAM用户或RAM角色拥有审核权限。本例中只有alice(管理员类型)可以审批。
查看审批详情。
单击目标申请操作列的审批,您可以在审批详情对话框查看目标申请的申请详情、审批记录等详细信息。
审批申请。
根据申请的详细内容及当前需求判断是否同意审批该申请,填写审批意见,选择同意或拒绝当前申请。
您也可以直接在权限审批页面,勾选全部申请,单击批量同意或批量拒绝,填写审批意见,批量处理目标申请。
管理员alice审批通过后,Ranger会自动在EMR集群中生成对应的Policy。开发者bob即可通过DataWorks访问order_db库中user_orders表的数据。