Hive数据访问权限控制

更新时间:
复制为 MD 格式

DataWorks提供访问EMR Hive引擎数据时的权限管控能力,包括权限申请、权限审批、权限审计。本文以一个完整的示例,从管理员配置和开发者申请权限两个视角,为您介绍Hive数据访问权限控制的完整流程。

功能概述

通过将EMR集群集成的Apache RangerDataWorks安全中心对接,可以为EMR Hive引擎提供精细化的、可追溯的数据访问权限控制。

  • 核心能力:实现对EMR Hive库级别表级别的数据访问权限管理。

  • 角色分工

    • 管理员(DataWorks租户管理员,需同时拥有EMR集群管理权限):负责底层技术配置和权限审批,精细化地管理和审计所有开发者的数据访问权限。

    • 开发者(普通RAM用户):负责数据使用,在DataWorks安全中心以自助方式申请所需的Hive数据权限,无需关心底层实现。

  • 核心价值:实现配置与使用的分离。管理员统一管控数据安全,开发者按需申请、便捷使用,大幅提升数据安全性和协同效率。

流程说明

整个流程分为 “一次性配置”“日常使用” 两个阶段,涉及管理员和开发者两种角色在EMRDataWorks两个平台上的操作。

阶段一:管理员进行一次性配置

在用户可以申请权限之前,管理员需要完成所有前置配置工作。

前置确认工作

  • 【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向管理员申请访问Hiveuser_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 Nameemr-hive

目标数据

EMR Hiveorder_db库存在的一张user_orders表。

说明

在整个流程中,以下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的数据访问权限。

  1. 在安全中心页面,选择安全策略 > 管理Ranger

  2. 单击目标Ranger配置的管理Service

  3. 单击新增关联,配置以下信息:

    参数

    描述

    Ranger Service Type

    选择Hive

    Ranger Service Name

    输入EMR集群中已配置的Hive Ranger Service名称。本例中填写emr-hive

    EMR 集群

    选择已关联到当前RangerEMR集群。

详细操作步骤请参见新增Ranger配置中的关联Service部分。

步骤三:配置身份凭证

管理员需要为每个需要访问Hive数据的RAM用户配置身份凭证,将RAM用户与LDAP账号关联。

重要
  • 身份凭证中的账号名称必须与EMR集群LDAP中为该用户设定的用户名(例如本例中的alice)完全一致。这是Ranger进行用户识别和授权的唯一依据。

  • 建议账号名称与阿里云RAM账号同名,便于管理。

本例中,管理员需要分别为alicebob配置身份凭证:

为管理员alice配置身份凭证

参数

示例值

阿里云RAM用户/角色

alice@company.com

数据源类型

Hive

集群/实例

选择已配置RangerEMR集群。

账号类型

管理员。管理员可审批其他用户的权限申请。

账号名称

alice(需与EMR集群中LDAP账号名称一致)

账号密码

填写LDAP账号alice的密码。

为开发者bob配置身份凭证

参数

示例值

阿里云RAM用户/角色

bob@company.com

数据源类型

Hive

集群/实例

选择已配置RangerEMR集群(与alice相同的集群)。

账号类型

普通用户。普通用户只能申请权限,不能审批权限。

账号名称

bob(需与EMR集群中LDAP账号名称一致)

账号密码

填写LDAP账号bob的密码。

详细操作步骤请参见身份凭证

开发者:申请Hive数据访问权限

管理员完成上述配置后,开发者bob即可在DataWorks安全中心申请Hive数据的访问权限。

步骤一:进入数据访问控制

  1. 登录DataWorks控制台,进入目标工作空间。在左侧导航栏,选择数据治理 > 安全中心

  2. 在安全中心页面,在左侧导航栏单击数据访问控制

步骤二:申请权限

在数据访问控制页面进行权限申请,需要配置申请内容申请信息两个模块的信息。

说明
  • Hive的权限申请,不支持自定义审批、权限审计管理。

  • Hive的权限申请,只能由身份凭证中账号类型为管理员的RAM用户/RAM角色审核。

  1. 数据访问控制页面,单击进入权限申请页签。

  2. 申请资源权限。

    1. 申请内容区域,选择数据源类型为Hive,即可配置申请内容。

      1. 申请类型:可按需求在库与表之间选择。本例中选择

      2. EMR 集群:选择已在DataWorks中绑定的EMR集群实例。

      3. 选择需要申请的资源与资源权限。

        选择申请类型为表时,先选择数据库(本例为order_db),系统自动加载该库中所有可申请权限的数据表。选择需要申请权限的表(本例为user_orders)以及表权限(本例为SELECT)。

        若选择申请类型为库时,申请内容区域会加载出可以申请权限的Hive数据库名称。选择需要申请权限的数据库以及库权限(如SELECT、ALL等)。
    2. 配置申请信息。

      参数

      描述

      使用者

      选择需要为谁申请目标资源权限。

      • 当前登录账号:表示为当前登录DataWorks工作空间的阿里云账号申请权限。本例中bob选择此项。

      • 代他人申请:表示当前登录DataWorks工作空间的阿里云账号为其他阿里云账号申请权限。选择该选项时,需要配置用户名参数。

      申请时长

      Hive仅支持:永久

      申请原因

      输入申请权限的原因。本例中bob填写"需要查询order_db库中user_orders表的数据进行数据分析"。

  3. 配置完成后,单击申请权限,即可提交权限申请。

管理员:审批权限

开发者bob提交权限申请后,身份凭证中账号类型为管理员的RAM用户(本例为alice@company.com)需要在安全中心审批该申请。

  1. 查看待审批的申请。

    进入权限审批页签,选择数据源类型Hive,查看bob提交的权限申请。

    说明

    只有身份凭证中账号类型为管理员的RAM用户或RAM角色拥有审核权限。本例中只有alice(管理员类型)可以审批。

  2. 查看审批详情。

    单击目标申请操作列的审批,您可以在审批详情对话框查看目标申请的申请详情审批记录等详细信息。

  3. 审批申请。

    根据申请的详细内容及当前需求判断是否同意审批该申请,填写审批意见,选择同意拒绝当前申请。

    您也可以直接在权限审批页面,勾选全部申请,单击批量同意批量拒绝,填写审批意见,批量处理目标申请。

说明

管理员alice审批通过后,Ranger会自动在EMR集群中生成对应的Policy。开发者bob即可通过DataWorks访问order_db库中user_orders表的数据。