设置集群身份映射

本文为您介绍如何手动配置DataWorks租户成员云账号与EMR集群指定身份账号的映射关系,实现DataWorks租户成员可通过映射的集群指定身份在DataWorks侧执行任务。

注意事项

  • 集群身份映射关系将在注册了同一个EMR集群的所有工作空间内生效,请谨慎修改EMR集群。

  • 如若未参考本文手动配置DataWorks租户成员与集群账号映射,无论您使用哪个云账号在DataWorks侧执行任务,DataWorks都将默认按照以下策略将任务下发至EMR集群执行:

    • 若使用阿里云子账号(RAM用户)执行任务:将默认按照与当前操作人同名的EMR集群系统账号执行任务。当集群未开启LDAP或Kerberos认证,您需要参考本文配置映射,否则DataWorks任务执行将失败。

    • 若使用阿里云主账号执行任务:无论集群是否开启LDAP或Kerberos认证,您均需要手动为主账号配置账号映射,否则DataWorks使用主账号执行任务均会失败。

      说明

      DataWorks上不同用户实际使用什么账号访问EMR集群,与您在注册EMR集群时指定的访问身份有关。

      • 使用子账号(RAM用户)执行任务:指在DataWorks注册EMR集群时,默认访问身份选择任务责任人或阿里云子账号。

      • 使用主账号执行任务:指在DataWorks注册EMR集群时,默认访问身份选择阿里云主账号。

使用说明

  • 认证方式

    DataWorks不支持同时配置LDAP和Kerberos账号映射,因此,同时开启LDAP和Kerberos认证的EMR组件,在DataWorks执行任务时会失败。

  • 白名单配置

    当集群开启Ranger认证时,您需要为集群添加DataWorks白名单,以确保DataWorks可以正常访问EMR集群。白名单配置,详情请参见附录:添加DataWorks白名单

  • 用户管理

    若您使用非系统账号进行集群身份认证(例如:Kerberos),则需要先在集群开启对应的认证服务,并将在DataWorks上进行EMR任务开发的账号加入该认证服务,详情请参见附录:配置Kerberos认证

  • 数据权限

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

    如果EMR已将DLF设置为元数据服务,并开启DLF-Auth组件实现数据湖构建DLF的权限功能,则您可以在DataWorks安全中心模块申请数据权限,详情请参见DLF数据访问权限控制

  • 映射配置

    请注意以下场景会导致DataWorks任务执行失败:

    场景

    描述

    在DataWorks采用系统账号映射

    • DataWorks使用子账号(RAM用户)执行任务,但子账号没有同名的集群账号。

    • DataWorks使用子账号(RAM用户)执行任务,且手动进行DataWorks空间成员与集群账号映射,但子账号映射的集群账号与集群实际的账号或密码不一致。

    • DataWorks使用主账号执行任务,但主账号未映射集群账号。

    在DataWorks采用LDAP/Kerberos账号映射

    • 集群开启了LDAP或Kerberos认证服务,但DataWorks未配置对应的账号映射或映射错误。

    • DataWorks选择了Kerberos映射,但实际集群未开启Kerberos。

    • DataWorks选择了LDAP映射,但实际集群组件未开启该认证服务。

    说明

    当您在DataWorks配置LDAP映射后,DataWorks上SQL类型任务(Hive、Impala、Presto、Trino)默认使用该映射账号进行认证,此时若组件未在集群开启LDAP认证,任务执行便会失败。

使用限制

  • 仅以下角色可为所有人配置身份映射:

    • 阿里云主账号。

    • 拥有AliyunDataWorksFullAccessAliyunEMRFullAccess权限的子账号(RAM用户)或RAM角色。

    • 拥有空间管理员角色与AliyunEMRFullAccess子账号(RAM用户)或RAM角色。

  • 非上述角色仅可以为自己配置身份映射。

进入配置集群账号映射页面

  1. 进入管理中心页面。

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的更多 > 管理中心,在下拉框中选择对应工作空间后单击进入管理中心

  2. 单击左侧导航栏的集群管理,进入集群管理页面 ,单击注册集群按钮,选择注册集群类型E-MapReduce。进入注册E-MapReduce集群页面。

  3. 进入配置集群账号映射页面。

    在EMR集群列表页面,找到目标EMR集群,单击账号映射。

    image.png

设置集群账号映射

单击账号映射页面右上角的编辑账号映射,即可进入编辑集群的账号映射页面,您可通过如下步骤配置集群身份映射。

  1. 上传配置文件。

    当集群开启Kerberos认证后,您需先上传keytab文件,保障EMR TrinoEMR Presto任务的正常运行。详情请参见下载认证凭据

  1. 配置映射。

    • 配置模式:支持自定义当前集群的映射关系,也可通过选择引用其他集群配置,引用已有映射关系的配置。

    • 映射类型:集群认证的账号类型,支持选择系统账号映射、OPEN LDAP账号映射、Kerberos账号映射。

    说明
    • 映射类型选择Kerberos账号映射时,您需要上传keytab文件。

    • 使用Kerberos账号映射前,请确保集群已开启Kerberos服务。详情请参见开启Kerberos

    • 使用LDAP账号映射前,请确保相关组件已开启LDAP服务当您在DataWorks配置LDAP映射后,DataWorks上SQL类型任务(Hive、Impala、Presto、Trino)默认使用该映射账号进行认证,此时若组件未在集群开启LDAP认证,任务执行便会失败。

附录:添加DataWorks白名单

如果EMR启用了Ranger,则使用DataWorks进行EMR作业开发前,您需要在EMR中添加白名单并重启Hive,否则作业运行时会报错Cannot modify spark.yarn.queue at runtimeCannot modify SKYNET_BIZDATE at runtimeRanger相关内容详情请参见Ranger概述

  1. 配置白名单。

    白名单的配置通过EMR的自定义参数,添加Key和Value进行配置。以Hive组件的配置为例,配置值如下。

    hive.security.authorization.sqlstd.confwhitelist.append=tez.*|spark.*|mapred.*|mapreduce.*|ALISA.*|SKYNET.*
    说明

    其中ALISA.*和SKYNET.*为DataWorks专有的配置。

  1. 重启服务。

    白名单配置完成后需要重启服务,重启后配置才会生效。重启服务的操作详情请参见重启服务