本文為您介紹如何手動設定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
。
重啟服務。
白名單配置完成後需要重啟服務,重啟後配置才會生效。