すべてのプロダクト
Search
ドキュメントセンター

DataWorks:アカウント間の権限付与 (MaxCompute または Hologres)

最終更新日:Oct 28, 2025

現在の Alibaba Cloud アカウントを使用して、別の Alibaba Cloud アカウントに属する MaxCompute や Hologres などのデータソースのデータに対する操作やアクセスを実行する場合、現在の Alibaba Cloud アカウント内の DataWorks ワークスペースにそのデータソースを追加する必要があります。これにより、Alibaba Cloud アカウント間でデータにアクセスできます。

注意事項

  • アカウントをまたいで追加されたデータソースは、データ開発やタスクスケジューリングには使用できません。このようなデータソースを使用してデータ開発操作を実行する場合は、現在の Alibaba Cloud アカウント内の DataWorks ワークスペースにそのデータソースを追加する必要があります。詳細については、「MaxCompute 計算資源のバインド」および「Hologres 計算資源のアタッチ」をご参照ください。

  • アカウントをまたいで MaxCompute または Hologres データソースを追加する場合、関連する MaxCompute プロジェクトまたは Hologres インスタンスにアクセスするには、RAM ロールのみを使用できます。

  • このトピックで説明する手順は、アカウントをまたいで MaxCompute または Hologres データソースを追加する場合にのみ適しています。このトピックでは、MaxCompute データソースを使用して関連する操作を説明します。アカウントをまたいで Hologres データソースを追加するために必要な操作は、アカウントをまたいで MaxCompute データソースを追加するために必要な操作と似ています。

前提条件

説明

このトピックでは、アカウントをまたいで MaxCompute データソースを追加する方法について説明します。この例では、Alibaba Cloud アカウント B 内の xc_project_20 という名前の MaxCompute プロジェクトを Alibaba Cloud アカウント A のデータソースとして追加し、Alibaba Cloud アカウント A が Alibaba Cloud アカウント B 内の MaxCompute プロジェクトのデータにアクセスできるようにします。

  • Alibaba Cloud アカウント A と Alibaba Cloud アカウント B が作成されていること。詳細については、「Alibaba Cloud アカウントの作成」をご参照ください。

    • Alibaba Cloud アカウント A: アカウントをまたいでデータソースを追加するために使用されるアカウント。これは、Alibaba Cloud アカウント A が Alibaba Cloud アカウント B のユーザー情報を使用して、アカウントをまたいでデータソースを追加することを示します。

    • Alibaba Cloud アカウント B: アカウント間のデータソース追加のための情報提供者。これは、Alibaba Cloud アカウント B が Alibaba Cloud アカウント A にユーザー情報を提供し、Alibaba Cloud アカウント A がアカウントをまたいでデータソースを追加できるようにすることを示します。

  • データソースを追加する基になる MaxCompute プロジェクトが Alibaba Cloud アカウント B 内に作成されていること。MaxCompute プロジェクトの作成方法の詳細については、「MaxCompute プロジェクトの作成」をご参照ください。この例では、xc_project_20 という名前の MaxCompute プロジェクトを使用します。

Alibaba Cloud アカウント B: RAM ロールを作成し、Alibaba Cloud アカウント A からのアクセスを許可する

  1. RAM ロールを作成します。

    Alibaba Cloud アカウント B で RAM コンソールにログインします。RAM ロールを作成し、Alibaba Cloud アカウント A をその RAM ロールの信頼できるアカウントとして追加します。これにより、Alibaba Cloud アカウント A はそのロールを偽装して、RAM ロールに権限が付与されているリソースにアクセスできます。RAM ロールの作成方法の詳細については、「信頼できる Alibaba Cloud アカウントの RAM ロールを作成する」をご参照ください。

    説明

    作成された RAM ロールは、Alibaba Cloud アカウント A が Alibaba Cloud アカウント B 内でアクティブ化された DataWorks にアクセスするために偽装できます。作成された RAM ロールを Alibaba Cloud アカウント A が Alibaba Cloud アカウント A 内でアクティブ化された DataWorks にアクセスするために使用する必要がある場合、RAM ロールにアタッチされたポリシーを再定義する必要があります。詳細については、「RAM ロールのポリシーを定義する」をご参照ください。

    image.png

    RAM ロールの構成例:

    • RAM ロール名パラメーターを McRole に設定します。

    • 信頼できる Alibaba Cloud アカウントの選択パラメーターを他の Alibaba Cloud アカウントに設定し、表示されるフィールドに Alibaba Cloud アカウント A の ID を入力します。Alibaba Cloud アカウント A で RAM コンソールにログインし、上部のナビゲーションバーのプロファイル画像にポインターを合わせると、Alibaba Cloud アカウント A の ID を取得できます。

    構成が完了すると、Alibaba Cloud アカウント A は [McRole] ロールを偽装し、そのロールに権限が付与されているリソースにアクセスできます。

  2. RAM ロールの信頼ポリシーを変更します。

    [McRole] ロールの詳細ページに移動し、その信頼ポリシーを変更して、Alibaba Cloud アカウント A が Alibaba Cloud アカウント B 内の DataWorks にアクセスすることを承認します。RAM ロールの信頼ポリシーの変更方法の詳細については、「RAM ロールの信頼ポリシーを編集する」をご参照ください。以下のコードは、信頼ポリシーのドキュメントを示しています:

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": [
              "Alibaba Cloud アカウント A の ID@engine.dataworks.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }

Alibaba Cloud アカウント B: RAM ロールを MaxCompute プロジェクトに追加する

  1. Alibaba Cloud アカウント B を使用して MaxCompute プロジェクトにアクセスします。

    MaxCompute コンソールの SQL 分析機能を使用して、MaxCompute プロジェクトにすばやくアクセスできます。

    他の接続ツールの詳細については、「接続ツールの選択」をご参照ください。

  2. RAM ロールを MaxCompute プロジェクトに追加します。

    1. 前のセクションのステップ 1 で作成した McRole ロールを MaxCompute プロジェクトに追加します。SQL 文の例:

      -- RAM ロールを MaxCompute プロジェクトに追加します。
      add user `RAM$<accout_name>:role/<RAM role name>`;
      -- ワークスペース内のすべてのユーザーを表示します。
      list users;
      -- RAM ロールに付与された権限を表示します。
      show grants for `RAM$<accout_name>:role/<RAM role name>`;

      パラメーターの説明:

      • <accout_name>: Alibaba Cloud アカウント B の名前に置き換えます。

      • <RAM role name>: McRole に置き換えます。

    2. ビジネス要件に基づいて RAM ロールに権限を付与します。RAM ロールに権限を付与する方法の詳細については、「権限付与操作」をご参照ください。

      説明

      ワークスペース A でアカウントをまたいで追加するデータソースの使用シナリオに基づいて、事前に RAM ロールに権限を付与できます。たとえば、ワークスペース A からワークスペース B のデータソースのテーブルをクエリする場合は、データソースに構成されている RAM ロールがテーブルに対する SELECT 権限を持っていることを確認してください。

Alibaba Cloud アカウント A: Alibaba Cloud アカウント B のユーザー情報を使用してデータソースを追加する

説明

Alibaba Cloud アカウント A で DataWorks コンソールにログインし、Alibaba Cloud アカウント B のユーザー情報を使用して MaxCompute データソースを追加する必要があります。以下の操作を実行する前に、Alibaba Cloud アカウント B の ID を取得する必要があります。

  1. データソースページに移動します。

    1. DataWorks コンソールにログインします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、[その他] > [管理センター] を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[管理センターへ移動] をクリックします。

    2. SettingCenter ページの左側のナビゲーションウィンドウで、[データソース] をクリックします。

  2. データソースページで、[データソースの追加] をクリックします。データソースの追加ダイアログボックスで、[MaxCompute] を選択して MaxCompute データソースを追加します。

  3. データソースに関する情報を構成します。

    1. データソースの基本情報を構成します。

      プロンプトに従って、次の図に示す情報を構成します。標準モードのワークスペースを使用する場合、開発環境と本番環境で個別にデータソースを追加する必要があります。ワークスペースモードの詳細については、「ワークスペースモードの違い」をご参照ください。

      image.png

      主要なパラメーターの構成説明:

      • Alibaba Cloud アカウントの UID: 値を別の Alibaba Cloud アカウントの ID に設定します。この例では、値を Alibaba Cloud アカウント B の ID に設定します。事前に Alibaba Cloud アカウント B の ID を取得する必要があります。

      • RAM ロール: 値を、Alibaba Cloud アカウント A が Alibaba Cloud アカウント B のリソースにアクセスするために偽装できる RAM ロールに設定します。この例では、値を McRole に設定します。

      • MaxCompute プロジェクト名: Alibaba Cloud アカウント A が Alibaba Cloud アカウント B のユーザー情報を使用してアカウントをまたいでデータソースを追加する基になる MaxCompute プロジェクトに値を設定します。この例では、MaxCompute プロジェクト xc_project_20 を使用します。

      MaxCompute データソースの追加方法の詳細については、「MaxCompute 計算資源のバインド」をご参照ください。

    2. リソースグループとデータソース間のネットワーク接続を確立します。

      接続構成セクションで、ビジネス要件に基づいてリソースグループを見つけ、接続ステータス (本番環境) 列のネットワーク接続性のテストをクリックして、リソースグループとデータソース間の接続性をテストします。リソースグループの詳細については、「概要」をご参照ください。

    3. [作成を完了] をクリックします。

次のステップ

データソースが追加された後、次の操作を実行できます: