本文为您介绍如何手动配置DataWorks租户成员云账号与EMR集群指定身份账号的映射关系,实现DataWorks租户成员可通过映射的集群指定身份在DataWorks侧执行任务。
注意事项
集群身份映射关系将在注册了同一个EMR集群的所有工作空间内生效,请谨慎修改EMR集群。
如若未参考本文手动配置DataWorks租户成员与集群账号映射,无论您使用哪个云账号在DataWorks侧执行任务,DataWorks都将默认按照以下策略将任务下发至EMR集群执行:
若使用阿里云子账号(RAM用户)执行任务:将默认按照与当前操作人同名的EMR集群系统账号执行任务。当集群未开启LDAP或Kerberos认证,您需要参考本文配置映射,否则DataWorks任务执行将失败。
若使用阿里云主账号执行任务:无论集群是否开启LDAP或Kerberos认证,您均需要手动为主账号配置账号映射,否则DataWorks使用主账号执行任务均会失败。
使用说明
认证方式
DataWorks不支持同时配置LDAP和Kerberos账号映射,因此,同时开启LDAP和Kerberos认证的EMR组件,在DataWorks执行任务时会失败。
白名单配置
当集群开启Ranger认证时,您需要为集群添加DataWorks白名单,以确保DataWorks可以正常访问EMR集群。白名单配置,详情请参见附录:添加DataWorks白名单。
用户管理
若您使用非系统账号进行集群身份认证(例如:Kerberos),则需要先在集群开启对应的认证服务,并将在DataWorks上进行EMR任务开发的账号加入该认证服务,详情请参见附录:配置Kerberos认证。
数据权限
您可在EMR集群通过权限管理相关组件服务实现DataWorks上各用户的数据权限隔离。例如,通过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认证,任务执行便会失败。
使用限制
仅以下角色可为所有人配置身份映射:
阿里云主账号。
拥有AliyunDataWorksFullAccess和AliyunEMRFullAccess权限的子账号(RAM用户)或RAM角色。
拥有空间管理员角色与AliyunEMRFullAccess的子账号(RAM用户)或RAM角色。
非上述角色仅可以为自己配置身份映射。
进入配置集群账号映射页面
进入管理中心页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入管理中心。
单击左侧导航栏的集群管理,进入集群管理页面 ,单击注册集群按钮,选择注册集群类型为E-MapReduce。进入注册E-MapReduce集群页面。
进入配置集群账号映射页面。
在EMR集群列表页面,找到目标EMR集群,单击账号映射。
设置集群账号映射
单击账号映射页面右上角的编辑账号映射,即可进入编辑集群的账号映射页面,您可通过如下步骤配置集群身份映射。
上传配置文件。
当集群开启Kerberos认证后,您需先上传keytab文件,保障EMR Trino和EMR Presto任务的正常运行。详情请参见下载认证凭据。
配置映射。
配置模式:支持自定义当前集群的映射关系,也可通过选择引用其他集群配置,引用已有映射关系的配置。
映射类型:集群认证的账号类型,支持选择系统账号映射、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 runtime
或Cannot modify SKYNET_BIZDATE at runtime
。
重启服务。
白名单配置完成后需要重启服务,重启后配置才会生效。