如果當前阿里云賬號要操作或訪問其他阿里云賬號的項目(例如,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項目。詳情請參見使用SQL分析連接。
更多連接工具,詳情請參見選擇連接工具。
添加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資源組概述。
單擊完成創建,即完成跨賬號創建數據源。
后續步驟
數據源創建后,您可執行如下操作: