DLF-Auth组件是数据湖构建DLF(Data Lake Formation)产品提供的,通过该组件可以开启数据湖构建DLF的数据权限功能,可以对数据库、数据表、数据列、函数进行细粒度权限控制,实现数据湖上统一的数据权限管理。本文为您介绍如何开启DLF-Auth权限。

背景信息

数据湖构建DLF是一款全托管的快速帮助用户构建云上数据湖的服务,提供了云上数据湖统一的权限管理和元数据管理,详细信息请参见数据湖构建产品简介数据权限功能,请参见数据权限概述DLF-EMR

前提条件

  • 已创建E-MapReduce集群,并选择了OpenLDAP服务,详情请参见创建集群

    说明

    在创建集群的软件配置页面,元数据使用默认的DLF统一元数据

  • 数据湖构建DLF的数据权限管理功能已经开放,开启该功能需要在您开通DLF产品后,按照DLF权限设置开启相关数据目录(Catalog)的权限开关。

使用限制

  • 数据湖构建DLF权限仅支持通过RAM用户进行权限管理,因此需要在EMR控制台通过用户管理功能添加用户。

  • 数据湖构建DLF的数据权限管理功能支持区域请参见已开通的地域和访问域名

  • DLF-Auth启用Hive或Spark后,Ranger将无法点击启用或禁用Hive或Spark;Ranger启用Hive或Spark后,DLF-Auth将无法点击启用或禁用Hive或Spark。

  • DLF-Auth支持的EMR版本及计算引擎列表。

    EMR 主版本

    Hive

    Spark

    Presto

    Impala

    EMR 3.x版本

    EMR-3.39.0及以前版本

    不支持

    不支持

    不支持

    不支持

    EMR-3.40.0

    支持

    支持

    支持

    不支持

    EMR-3.41.0至EMR-3.43.1

    支持

    支持

    不支持

    不支持

    EMR-3.44.0及以上版本

    支持

    支持

    支持

    支持

    EMR 5.x版本

    EMR-5.5.0及以前版本

    不支持

    不支持

    不支持

    不支持

    EMR-5.6.0

    支持

    支持

    支持

    不支持

    EMR-5.7.0至EMR-5.9.1

    支持

    支持

    不支持

    不支持

    EMR-5.10.0 及以上版本

    支持

    支持

    支持

    支持

操作流程

通过本文操作,您可以开启DLF-Auth,实现数据湖上全托管的统一的权限管理。

  1. 步骤一:开启Hive权限控制

  2. 步骤二:添加RAM用户

  3. 步骤三:验证权限

  4. (可选)步骤四:开启Hive LDAP认证

    如果开启了DLF-Auth权限,建议您开启Hive LDAP认证,以便于连接Hive的用户都可以通过LDAP认证后执行相关脚本。

步骤一:开启Hive权限控制

  1. 进入DLF-Auth页面。

    1. 登录EMR on ECS

    2. 在顶部菜单栏处,根据实际情况选择地域和资源组

    3. EMR on ECS页面,单击目标集群操作列的集群服务

    4. 集群服务页面,单击DLF-Auth服务区域的状态

  2. 开启Hive权限控制。

    1. 在DLF-Auth服务页面,打开enableHive开关。

    2. 在弹出的对话框中,单击确定

  3. 重启HiveServer。

    1. 集群服务页面,选择Hive服务。

    2. 在Hive服务页面,单击HiveServer操作列的重启

    3. 在弹出的对话框中,输入执行原因,单击确定

    4. 确认对话中,单击确定

步骤二:添加RAM用户

您可以通过用户管理功能添加用户,详细操作如下。

  1. 进入用户管理页面。

    1. 登录EMR on ECS

    2. 在顶部菜单栏处,根据实际情况选择地域和资源组

    3. 在EMR on ECS页面,单击目标集群操作列的集群服务

    4. 单击上方的用户管理页签。

  2. 用户管理页面,单击添加用户

  3. 添加用户对话框中,在用户名下拉列表中,选择已有的RAM用户作为EMR用户的名称,输入密码确认密码

  4. 单击确定

步骤三:验证权限

重要

如果RAM用户已拥有AliyunDLFDssFullAccess权限,或者RAM用户被授予了AdministratorAccess,则该RAM用户具备了所有DLF细粒度资源的访问权限,无需进行数据授权操作。DLF权限说明,请参见权限说明

  1. 授权前验证当前用户权限。

    1. 使用SSH方式登录到集群,详情请参见登录集群

    2. 执行以下命令访问HiveServer2。

      beeline -u jdbc:hive2://master-1-1:10000 -n <user> -p <password>
      说明

      <user><password>步骤二:添加RAM用户中您设置的用户名和密码。

    3. 查看已有数据表信息。

      例如,执行以下命令,查看test表信息。testdb.test请根据您实际信息修改。

      select * from testdb.test;

      因为当前用户没有权限,会报没有权限而查询失败的错。error

  2. 为RAM用户添加权限。

    1. 登录数据湖构建控制台

    2. 在左侧导航栏中,选择数据权限 > 数据授权

    3. 数据授权页面,单击新增授权

    4. 新增授权页面,配置以下参数。

      参数详情信息,请参见新增授权

      参数

      描述

      授权主体

      主体类型

      默认RAM用户。

      主体选择

      主体选择下拉列表中,选择您在步骤二:添加RAM用户中添加的用户。

      授权资源

      授权方式

      默认资源授权。

      资源类型

      根据您实际情况选择。

      本文示例为元数据表。

      权限配置

      数据权限

      本文示例为Select

      授权权限

    5. 单击确定

  3. 授权后验证当前用户权限。

    参见步骤1重新查看数据表的信息,因为已经授权,所以可以查询到相关数据表的信息。

(可选)步骤四:开启Hive LDAP认证

  1. 进入集群服务页面。

    1. 登录EMR on ECS

    2. 在顶部菜单栏处,根据实际情况选择地域和资源组

    3. EMR on ECS页面,单击目标集群操作列的集群服务

  2. 开启LDAP认证。

    1. 集群服务页面,单击Hive服务区域的状态

    2. 打开enableLDAP开关。

      • EMR-5.11.1及之后版本,EMR-3.45.1及之后版本

        1. 服务概述区域,打开enableLDAP开关。

        2. 在弹出的对话框中,单击确定

      • EMR-5.11.0及之前版本,EMR-3.45.0及之前版本

        1. 组件列表区域,选择HiveServer操作列的more > enableLDAP

        2. 在弹出的对话框中,输入执行原因,单击确定

        3. 确认对话框中,单击确定

    3. 重启HiveServer。

      1. 组件列表区域,单击HiveServer操作列的重启

      2. 在弹出的对话框中,输入执行原因,单击确定

      3. 确认对话框中,单击确定

常见问题

Q:使用多个Catalog时,如何为DLF-AUTH单独设置Catalog ID?

A:您可以参照以下步骤为DLF-AUTH单独设置Catalog ID。

说明

因为该版本不支持启动Presto,所以不需要配置Presto计算引擎。

  1. 进入DLF-Auth页面。

    1. 登录EMR on ECS

    2. 在顶部菜单栏处,根据实际情况选择地域和资源组

    3. 在EMR on ECS页面,单击目标集群操作列的集群服务。

    4. 集群服务页面,单击DLF-AUTH服务区域的配置

  2. 配置Hive计算引擎。

    您可以根据需要配置Hive计算引擎。

    1. 新增Hive计算引擎配置项。

      1. 单击dlf-hive-security.xml页签。

      2. 单击上方的新增配置项

      3. 设置Key为dlf.catalog.id,Value为您当前集群关联的DLF Catalog ID。

        您可以在Hive服务配置页签,查看dlf.catalog.id的参数值,即为DLF Catalog ID。

      4. 单击确定

      5. 在弹出的对话框中,输入执行原因,单击保存

    2. 重启HiveServer服务。

      1. 切换到Hive服务的状态页面。

      2. 组件列表区域,选择HiveServer操作列的重启

      3. 在弹出的对话中,输入执行原因,单击确定

      4. 确认对话中,单击确定

  3. 配置Spark计算引擎。

    您可以根据需要配置Spark计算引擎。

    1. 新增Spark计算引擎配置项。

      1. 单击dlf-spark-security.xml页签。

      2. 单击上方的新增配置项

      3. 设置Key为dlf.catalog.id,Value为您当前集群关联的DLF Catalog ID。

        您可以在Spark服务配置页签,查看dlf.catalog.id的参数值,即为DLF Catalog ID。

      4. 单击确定

      5. 在弹出的对话框中,输入执行原因,单击保存

    2. 重启Spark Thrift Server服务。

      1. 切换到Spark服务的状态页面。

      2. 组件列表区域,选择Spark Thrift Server操作列的重启

      3. 在弹出的对话中,输入执行原因,单击确定

      4. 确认对话中,单击确定