如果當前阿里雲帳號要操作或訪問其他阿里雲帳號的專案(例如,MaxCompute、Hologres),則需在當前阿里雲帳號中,將其他阿里雲帳號的專案建立為當前阿里雲帳號的資料來源,以此實現跨阿里雲帳號訪問資料。
注意事項
跨帳號建立的資料來源不能用於資料開發和調度。如您需進行相關資料開發操作,請使用當前帳號建立資料來源。詳情請參見建立MaxCompute資料來源、建立Hologres資料來源。
跨帳號建立資料來源時,僅支援通過RAM角色訪問的方式訪問對應的專案。
本文僅適用於MaxCompute、Hologres資料來源,並且以跨帳號建立MaxCompute資料來源樣本,展示跨帳號情境的相關操作,Hologres資料來源的操作類似。其他類型資料來源的跨帳號情境請參見:
AnalyticDB for PostgreSQL:請參考跨帳號建立AnalyticDB for PostgreSQL資料來源。
AnalyticDB for MySQL3.0:請參考跨帳號建立AnalyticDB for MySQL3.0資料來源。
前提條件
本文以“在帳號A中,通過將帳號B的MaxCompute專案xc_porject_20建立為帳號A的MaxCompute資料來源,來實現帳號A訪問帳號B的MaxCompute專案資料”為例,為您展示跨帳號建立MaxCompute資料來源的相關操作。
已建立阿里雲主帳號A、阿里雲主帳號B。建立帳號,詳情請參見建立帳號。
阿里雲主帳號A:跨帳號建立資料來源的執行方,即“用帳號B的使用者資訊執行跨帳號建立資料來源”。
阿里雲主帳號B:跨帳號建立資料來源的資訊提供方,即“將本帳號的使用者資訊提供給帳號A,讓帳號A進行跨帳號建立資料來源”。
阿里雲主帳號B已建立MaxCompute專案,做為跨帳號建立資料來源使用的目標專案。建立MaxCompute專案,詳情請參見建立MaxCompute專案。本文樣本使用xc_porject_20專案。
帳號B:建立RAM角色並允許帳號A訪問
建立RAM角色。
使用阿里雲帳號登入RAM控制台,建立RAM角色並添加帳號A為該角色信任的雲帳號,後續可使用帳號A扮演該角色訪問相關被授權的資源。建立角色,詳情請參見建立可信實體為阿里雲帳號的RAM角色。
說明此處建立的RAM角色,是用於帳號A可扮演該角色在帳號B中訪問帳號B的DataWorks。若後續該RAM角色需要通過帳號A訪問帳號A的DataWorks,則需重新定義RAM角色策略。詳情請參見定義RAM角色策略。
角色關鍵配置樣本如下:
角色名稱為:McRole。
信任的雲帳號選擇其他帳號:此處填寫的是帳號A的帳號ID。您可使用目標帳號(帳號A)登入控制台,滑鼠移至上方至頂部功能表列的帳戶圖片,擷取帳號ID。
配置完成後,帳號A後續即可扮演McRole角色,訪問相關被授權的資源。
修改角色信任策略。
您需進入McRole角色詳情頁,修改角色信任策略,授權帳號A可訪問當前帳號B的DataWorks。修改角色的信任策略,詳情請參見修改RAM角色的信任策略。策略內容如下。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "需要授權的主帳號A的uid@engine.dataworks.aliyuncs.com" ] } } ], "Version": "1" }
帳號B:添加RAM角色至MaxCompute專案
使用帳號B進入目標MaxCompute專案。
您可通過MaxCompute控制台提供SQL分析功能,快速進入MaxCompute專案。
更多串連工具,詳情請參見選擇串連工具。
添加RAM角色至MaxCompute專案。
將步驟一建立的McRole角色添加至MaxCompute專案。SQL語句格式如下。
-- 將RAM角色加入MaxCompute專案 add user `RAM$<accout_name>:role/<RAM角色名稱>`; -- 查看空間下所有使用者 list users; -- 查看RAM角色被授與權限 show grants for `RAM$<accout_name>:role/<RAM角色名稱>`;
參數說明如下:
<accout_name>:整體需替換為帳號B的名稱。
<RAM角色名稱>:整體需替換為步驟一建立的角色名稱McRole。
根據需要為角色進行授權。授權操作,詳情請參見授權操作。
說明您可根據跨帳號添加的資料來源在A工作空間的使用情境,提前為RAM角色授權與相關許可權,例如,若要在A工作空間查詢B工作空間資料源下的表,需確保資料來源配置的RAM角色已擁有該表的SELECT許可權。
帳號A:使用帳號B的使用者資訊建立資料來源
在本步驟,您將使用帳號A登入DataWorks,通過帳號B的使用者資訊建立MaxCompute資料來源,實現資料來源的跨帳號建立。因此,執行本步驟前,您需提前擷取帳號B的UID。
進入資料來源頁面。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的管理中心,在下拉框中選擇對應工作空間後單擊進入管理中心。
進入工作空間管理中心頁面後,單擊左側導覽列的資料來源,進入資料來源頁面。
單擊
,建立資料來源。配置資料來源資訊。
配置基本資料。
根據介面提示,配置如下資訊。標準模式工作空間,需分別建立開發環境資料來源和生產環境資料來源。工作空間模式,詳情請參見必讀:簡單模式和標準模式的區別。
關鍵參數配置如下:
對方帳號的UID:其他阿里雲帳號(即帳號B)的帳號UID。需從帳號B處擷取。
對方RAM角色:允許本帳號(即帳號A)訪問對方帳號(即帳號B)資源的角色。即本文已建立的角色McRole。
對方MaxCompute專案:即本帳號(即帳號A)使用對方帳號(即帳號B)哪個專案建立資料來源。本文樣本使用xc_porject_20專案。
更多建立資料來源的配置詳情,請參見建立MaxCompute資料來源。
配置資源群組連通性。
根據需要選擇合適資源群組,並測試連通性。資源群組相關介紹,詳情請參見DataWorks資源群組概述。
單擊完成建立,即完成跨帳號建立資料來源。
後續步驟
資料來源建立後,您可執行如下操作:
基於該資料來源進行Data Integration同步操作。詳情請參見Data Integration概述。