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

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

最終更新日:Jun 23, 2026

別の Alibaba Cloud アカウントが所有する MaxCompute または Hologres プロジェクトにアクセスするには、現在のアカウントにデータソースとして追加する必要があります。これにより、アカウント間のデータアクセスが可能になります。

制限事項

  • アカウント間のデータソースをデータ開発やスケジューリングに使用することはできません。これらの操作を実行するには、自身のアカウント内にデータソースを作成する必要があります。詳細については、「MaxCompute コンピュートエンジンのバインド」および「Hologres コンピュートエンジンのバインド」をご参照ください。

  • アカウント間のデータソースを作成する場合、RAM ロールを使用してのみプロジェクトにアクセスできます。

前提条件

  • 本トピックでは、アカウント A とアカウント B と呼ばれる 2 つの Alibaba Cloud アカウントが作成されていることを前提とします。アカウントの作成方法の詳細については、「Alibaba Cloud アカウントへのサインアップ」をご参照ください。

    • Alibaba Cloud アカウント A:アカウント B の認証情報を使用してアカウント間のデータソースを作成するコンシューマー

    • Alibaba Cloud アカウント B:アカウント A に認証情報を提供し、アカウント間のデータソースの作成を可能にするリソースプロバイダー

  • アカウント B で共有するデータリソースが準備できていることを確認します。たとえば、MaxCompute プロジェクト、または Hologres インスタンスとデータベースが作成済みである必要があります。

    • シナリオ 1 (MaxCompute へのアクセス):Alibaba Cloud アカウント B に、アカウント間データソースのターゲットプロジェクトとして機能する MaxCompute プロジェクトが作成されていること。MaxCompute プロジェクトの作成については、「MaxCompute プロジェクトの作成」をご参照ください。

    • シナリオ 2 (Hologres へのアクセス):Alibaba Cloud アカウント B で、Hologres インスタンスを購入し、データベースを作成済みであること。

ステップ 1:RAM ロールの作成と権限付与

RAM ロールと信頼ポリシーの作成

アカウント B を使用して RAM コンソールにログインし、RAM ロールを作成して、アカウント A を信頼できるアカウントとして追加します。これにより、アカウント A はこのロールを引き受けて、権限が付与されたリソースにアクセスできるようになります。

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

    詳細については、「信頼できる Alibaba Cloud アカウント用の RAM ロールの作成」をご参照ください。

    説明

    ここで作成された RAM ロールは、アカウント A がアカウント B の DataWorks にアクセスするために使用されます。この RAM ロールがアカウント A の DataWorks にもアクセスする必要がある場合は、その権限ポリシーを再定義する必要があります。詳細については、「RAM ロールの権限ポリシーの定義」をご参照ください。

    主要なパラメーター設定は次のとおりです:

    • プリンシパルタイプ:Alibaba Cloud Account。

    • プリンシパル:その他の Alibaba Cloud アカウント。アカウント A の UID を入力します。UID は、アカウント A でコンソールにログインし、上部のナビゲーションバーにあるプロフィール画像にポインターを合わせることで取得できます。

    • ロール名testRole

    設定が完了すると、アカウント A は testRole ロールを引き受けて、権限が付与されたリソースにアクセスできるようになります。

  2. 信頼ポリシーの変更

    ロールを作成した後、[信頼ポリシー] タブに移動し、[信頼ポリシーの編集] をクリックして、ポリシーの内容を次のコードに置き換えます。これにより、アカウント A の DataWorks サービスがこのロールを引き受けることが許可されます。詳細については、「RAM ロールの信頼ポリシーの変更」をご参照ください。

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": [
              "UID of Account A@engine.dataworks.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }

    UID of Account A をアカウント A の実際の UID に置き換えます。

RAM ロールの権限ポリシーの設定

シナリオ 1:MaxCompute へのアクセスの権限付与

  1. アカウント B で、ターゲットの MaxCompute プロジェクトに移動します。

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

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

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

    1. ステップ 1 で作成した testRole ロールを MaxCompute プロジェクトに追加します。SQL ステートメントのフォーマットは次のとおりです:

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

      パラメーター:

      • <account_name>:アカウント B の名前。

      • <ram_role_name>:ステップ 1 で作成したロールの名前 (testRole)。

    2. 必要に応じてロールに権限を付与します。詳細については、「権限付与」をご参照ください。

      説明

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

シナリオ 2:Hologres へのアクセスの権限付与

  1. ロールの権限ポリシーの変更 (Hologres のみ)

    1. アカウント B の RAM コンソールで、カスタムポリシーを作成して、Hologres インスタンスへのアクセスに必要な権限を付与します。ポリシーの内容は次のとおりです:

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "hologram:GetInstance",
              "hologram:DescribeInstance",
              "hologram:ListDatabases",
              "hologram:ListWarehouses",
              "hologram:ListInstances"
            ],
            "Resource": "*"
          }
        ]
      }
    2. このポリシーを testRole ロールにアタッチします。詳細については、「RAM ロールの権限管理」をご参照ください。

  2. RAM ロールを Hologres データベースに追加します。

    Hologres でのロールの追加と権限付与。アカウント B を使用して Hologres 管理コンソールにログインし、ターゲットインスタンスの HoloWeb インターフェイスを開きます。

    • [セキュリティセンター] > [ユーザー管理] ページで、作成した RAM ロールをデータベースユーザーとして追加します。

      [ユーザーの追加] ダイアログボックスの [組織メンバーの選択] セクションで、作成した RAM ロール (testRole など) を選択します。[メンバーロールの選択] セクションで [一般ユーザー] を選択し、[確認] をクリックします。

    • ロールが一般ユーザーの場合、[セキュリティセンター] > [DB 権限付与] ページで、そのユーザーにデータベースレベルの権限を付与する必要があります。

      [権限付与の追加] をクリックします。表示されるダイアログボックスで、[ユーザー] にターゲットロール (例:role/testRole) を選択し、[ユーザーグループ] に [開発者] を選択してから、[確認] をクリックします。

    詳細については、「RAM ユーザー権限付与のクイックスタート」をご参照ください。

ステップ 2:アカウント B のユーザー情報を使用したアカウント A のデータソースの作成

    1. DataWorks コンソールにログインします。対象リージョンで、左側のナビゲーションウィンドウでさらに表示 > 管理センターをクリックします。ドロップダウンリストからワークスペースを選択し、入力管理センターをクリックします。

    2. [ワークスペース管理] ページで、左側のナビゲーションウィンドウにある [データソース] をクリックして、データソースページを開きます。

  1. [データソースの追加] をクリックし、データソースタイプ (MaxCompute または Hologres) を選択します。

  2. データソース設定ページで、次の主要なパラメーターを設定します:

    • Alibaba Cloud Account:その他の Alibaba Cloud アカウント。

    • リージョン:MaxCompute プロジェクトまたは Hologres インスタンスが配置されているリージョン。

    • Alibaba CloudプライマリアカウントUID:アカウント B の UID を入力します。

    • MaxComputeプロジェクトの反対側/その他の Hologres インスタンス:アカウント B のターゲットリソースの名前または ID を入力します。

    • RAMロールの反対側:アカウント B で作成した RAM ロールの名前 (testRole など) を入力します。

  3. リソースグループの接続性を設定します。

    リソースグループを選択し、その接続性をテストします。ネットワーク接続の設定については、「異なる Alibaba Cloud アカウントに属するデータソースへの接続」をご参照ください。

    [接続ステータス] 列に緑色の [接続済み] ステータスが表示されれば、リソースグループのネットワークが正しく設定されていることを示します。

  4. [Complete Creation] をクリックして、アカウント間のデータソースを作成します。

次のステップ

データソースを作成した後、次の操作を実行できます: