全部產品
Search
文件中心

DataWorks:情境:跨帳號建立資料來源

更新時間:Jun 19, 2024

如果當前阿里雲帳號要操作或訪問其他阿里雲帳號的專案(例如,MaxCompute、Hologres),則需在當前阿里雲帳號中,將其他阿里雲帳號的專案建立為當前阿里雲帳號的資料來源,以此實現跨阿里雲帳號訪問資料。

注意事項

前提條件

說明

本文以“在帳號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訪問

  1. 建立RAM角色。

    使用阿里雲帳號登入RAM控制台,建立RAM角色並添加帳號A為該角色信任的雲帳號,後續可使用帳號A扮演該角色訪問相關被授權的資源。建立角色,詳情請參見建立可信實體為阿里雲帳號的RAM角色

    說明

    此處建立的RAM角色,是用於帳號A可扮演該角色在帳號B中訪問帳號B的DataWorks。若後續該RAM角色需要通過帳號A訪問帳號A的DataWorks,則需重新定義RAM角色策略。詳情請參見定義RAM角色策略

    image.png

    角色關鍵配置樣本如下:

    • 角色名稱為:McRole

    • 信任的雲帳號選擇其他帳號:此處填寫的是帳號A的帳號ID。您可使用目標帳號(帳號A)登入控制台,滑鼠移至上方至頂部功能表列的帳戶圖片,擷取帳號ID。

    配置完成後,帳號A後續即可扮演McRole角色,訪問相關被授權的資源。

  2. 修改角色信任策略。

    您需進入McRole角色詳情頁,修改角色信任策略,授權帳號A可訪問當前帳號B的DataWorks。修改角色的信任策略,詳情請參見修改RAM角色的信任策略。策略內容如下。

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": [
              "需要授權的主帳號A的uid@engine.dataworks.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }

帳號B:添加RAM角色至MaxCompute專案

  1. 使用帳號B進入目標MaxCompute專案。

    您可通過MaxCompute控制台提供SQL分析功能,快速進入MaxCompute專案。

    更多串連工具,詳情請參見選擇串連工具

  2. 添加RAM角色至MaxCompute專案。

    1. 將步驟一建立的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

    2. 根據需要為角色進行授權。授權操作,詳情請參見授權操作

      說明

      您可根據跨帳號添加的資料來源在A工作空間的使用情境,提前為RAM角色授權與相關許可權,例如,若要在A工作空間查詢B工作空間資料源下的表,需確保資料來源配置的RAM角色已擁有該表的SELECT許可權。

帳號A:使用帳號B的使用者資訊建立資料來源

說明

在本步驟,您將使用帳號A登入DataWorks,通過帳號B的使用者資訊建立MaxCompute資料來源,實現資料來源的跨帳號建立。因此,執行本步驟前,您需提前擷取帳號B的UID。

  1. 進入資料來源頁面。

    1. 登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的管理中心,在下拉框中選擇對應工作空間後單擊進入管理中心

    2. 進入工作空間管理中心頁面後,單擊左側導覽列的資料來源,進入資料來源頁面。

  2. 單擊新增資料來源 > MaxCompute,建立資料來源。

  3. 配置資料來源資訊。

    1. 配置基本資料。

      根據介面提示,配置如下資訊。標準模式工作空間,需分別建立開發環境資料來源和生產環境資料來源。工作空間模式,詳情請參見必讀:簡單模式和標準模式的區別

      image.png

      關鍵參數配置如下:

      • 對方帳號的UID:其他阿里雲帳號(即帳號B)的帳號UID。需從帳號B處擷取。

      • 對方RAM角色:允許本帳號(即帳號A)訪問對方帳號(即帳號B)資源的角色。即本文已建立的角色McRole

      • 對方MaxCompute專案:即本帳號(即帳號A)使用對方帳號(即帳號B)哪個專案建立資料來源。本文樣本使用xc_porject_20專案。

      更多建立資料來源的配置詳情,請參見建立MaxCompute資料來源

    2. 配置資源群組連通性。

      根據需要選擇合適資源群組,並測試連通性。資源群組相關介紹,詳情請參見DataWorks資源群組概述

      image.png

    3. 單擊完成建立,即完成跨帳號建立資料來源。

後續步驟

資料來源建立後,您可執行如下操作: