全部產品
Search
文件中心

DataWorks:設定叢集身份映射

更新時間:Nov 16, 2024

本文為您介紹如何手動設定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組件對阿里雲帳號對應的叢集使用者進行許可權管控。

    如果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 runtime

  1. 配置白名單。

    白名單的配置通過EMR的自訂參數,添加Key和Value進行配置。以Hive組件的配置為例,配置值如下。

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

    其中ALISA.*和SKYNET.*為DataWorks專有的配置。

  1. 重啟服務。

    白名單配置完成後需要重啟服務,重啟後配置才會生效。