在DataWorks运行EMR任务时,您需要在EMR侧及DataWorks侧进行相关的权限认证,以保证任务可以顺利执行。本文为您介绍DataWorks on EMR权限管控说明。

背景信息

在DataWorks中,可通过DataWorks工作空间成员与EMR集群账号映射的方式获取EMR引擎的权限,完成工作空间成员在集群上的用户认证与鉴权,从而使不同阿里云主账号、任务责任人或RAM用户在DataWorks上运行EMR任务时,拥有不同的数据操作权限,实现权限隔离。在DataWorks上运行EMR任务时,对于EMR侧及DataWorks侧的权限说明请参见EMR集群侧DataWorks侧

使用限制

DataWorks目前仅支持使用LDAP账号或系统账号两种方式进行工作空间成员到EMR集群账号的映射。绑定在DataWorks作为引擎实例的集群在配置DataWorks工作空间成员与集群账号映射时,存在以下限制:
  • DataWorks引擎映射为集群维度,并且仅支持选择一种认证方式映射集群账号。
  • 在DataWorks映射的集群账号、密码需要与集群实际使用的账号、密码一致。
若集群未开启认证或DataWorks上映射和的账号、密码与集群实际使用的账号、密码不一致,DataWorks上执行EMR任务将会失败,具体场景如下表。
场景 描述
在DataWorks采用系统账号映射 当DataWorks映射的集群账号与集群实际的账号不一致时,DataWorks上执行的EMR任务将会失败。
在DataWorks采用LDAP账号映射 如下情况,DataWorks上执行的EMR任务将会失败:
  • 当集群开启了LDAP认证服务,但DataWorks未配置对应的账号映射。
  • 当DataWorks开启了LDAP认证,但实际集群组件未开启该认证服务。
    说明 当您在DataWorks配置LDAP映射后,DataWorks上SQL类型任务(Hive、Impala、Presto)默认使用该映射账号进行认证,此时若组件未在集群开启LDAP认证,任务执行便会失败。
说明 不同EMR引擎支持的认证方式不同,目标引擎是否支持LDAP认证请以产品实际能力为准。

EMR集群侧

  • 开启认证服务
    若您要使用非系统账号进行集群身份认证,则需先在集群开启对应的认证服务,并将在DataWorks上进行EMR任务开发的账号加入认证服务。步骤如下:
    1. 在集群开启认证服务。

      若您需要通过LDAP实现身份认证,则需先在集群开启LDAP认证。详情请参见开启LDAP

    2. 规划用于执行任务的账号,并将其分别添加至LDAP及DataWorks工作空间。

      建议将需要在DataStudio中创建、测试、提交及发布EMR类型任务的相关人员添加至LDAP及DataWorks工作空间。添加目标用户至LDAP及DataWorks工作空间,详情请参见添加用户至LDAP添加用户至DataWorks工作空间

  • 数据权限控制

    您可在EMR集群通过权限管理相关组件服务实现DataWorks上各用户的数据权限隔离。例如,通过Ranger组件对阿里云账号对应的集群用户进行权限管控。详情请参见Ranger概述

DataWorks侧

  • EMR引擎绑定权限

    在DataWorks上执行EMR任务前,您需要先绑定EMR集群为DataWorks上运行EMR任务所使用的引擎环境。目标账号需要拥有AliyunEMRFullAccess权限策略,才可执行引擎绑定操作。授权用户AliyunEMRFullAccess权限策略,详情请参见用户、角色与权限概述

  • DataWorks功能模块使用权限

    在DataWorks运行EMR任务时,您需要拥有DataWorks数据开发(DataStudio)、数据地图、数据质量、智能监控等功能模块的使用权限,以便执行开发任务及开发后的运维、质量管控操作。DataWorks功能模块权限,详情请参见功能模块权限

  • 配置账号权限映射
    当您的EMR引擎配置为安全模式后,您可进入DataWorks的工作空间管理 > 集群配置页面,配置DataWorks工作空间成员与集群账号的映射,从而使DataWorks工作空间成员拥有与其映射的集群账号相同的权限,以便相关组件实现数据权限隔离。
    说明 EMR引擎配置及账号权限映射配置,详情请参见DataWorks配置