ご利用の Alibaba Cloud アカウントに、別の Alibaba Cloud アカウントに属する MaxCompute や Hologres などのプロジェクトをデータソースとして追加することで、それらのプロジェクトにアクセスし、操作できます。これにより、アカウント間のデータアクセスが可能になります。
制限事項
アカウント間のアクセス用に作成されたデータソースは、データ開発やスケジューリングには使用できません。データ開発操作を実行するには、ご利用のアカウントでデータソースを作成する必要があります。詳細については、「MaxCompute コンピュートエンジンの追加」および「Hologres コンピュートエンジンの追加」をご参照ください。
アカウント間のアクセス用にデータソースを作成する場合、対応するプロジェクトへのアクセスには Resource Access Management (RAM) ロールのみを使用できます。
事前準備
Alibaba Cloud アカウント A と B の 2 つがあることを確認してください。詳細については、「アカウントの作成」をご参照ください。
Alibaba Cloud アカウント A:アカウント間データソースのユーザーです。このアカウントは、Alibaba Cloud アカウント B からの情報を使用してデータソースを作成します。
Alibaba Cloud アカウント B:アカウント間データソースのリソースプロバイダーです。このアカウントは、必要な情報を Alibaba Cloud アカウント A に提供します。
共有するデータリソースが Alibaba Cloud アカウント B で利用可能であることを確認してください。たとえば、MaxCompute プロジェクトまたは Hologres インスタンスとデータベースが作成されている必要があります。
シナリオ 1 (MaxCompute へのアクセス):Alibaba Cloud アカウント B に MaxCompute プロジェクトが作成されていること。このプロジェクトは、アカウント間のアクセス用のデータソースを作成する際の宛先プロジェクトとして使用されます。MaxCompute プロジェクトの作成方法の詳細については、「MaxCompute プロジェクトの作成」をご参照ください。
シナリオ 2 (Hologres へのアクセス):Alibaba Cloud アカウント B で Hologres インスタンスが購入され、データベースが作成されていること。
ステップ 1:アカウント B での RAM ロールの作成と権限付与
RAM ロールの作成と信頼関係の確立
Alibaba Cloud アカウント B を使用して RAM コンソールにログインします。RAM ロールを作成し、Alibaba Cloud アカウント A を信頼できる Alibaba Cloud アカウントとして追加します。これにより、Alibaba Cloud アカウント A はそのロールを偽装して、権限が付与されたリソースにアクセスできるようになります。
RAM ロールを作成します。
詳細については、「信頼できる Alibaba Cloud アカウントの RAM ロールの作成」をご参照ください。
説明Alibaba Cloud アカウント A はこの RAM ロールを偽装して、Alibaba Cloud アカウント B の DataWorks にアクセスします。この RAM ロールが Alibaba Cloud アカウント A の DataWorks にアクセスする必要がある場合は、RAM ロールのポリシーを再定義する必要があります。詳細については、「RAM ロールのポリシーの定義」をご参照ください。

主要なパラメーターは次のとおりです。
信頼できるエンティティタイプ:Alibaba Cloud アカウント。
[信頼できるエンティティ名]:[他の Alibaba Cloud アカウント] を選択します。Alibaba Cloud アカウント A の UID を入力します。UID を取得するには、Alibaba Cloud アカウント A を使用してコンソールにログインし、上部のメニューバーでプロフィール写真の上にポインターを移動します。
[ロール名]:testRole。
設定が完了すると、Alibaba Cloud アカウント A は testRole ロールを偽装して、権限が付与されたリソースにアクセスできるようになります。
ロールの信頼ポリシーを変更します。
ロールを作成した後、ロールの [信頼ポリシー] タブに移動します。[信頼ポリシーの編集] をクリックし、ポリシーを次の内容で更新します。これにより、Alibaba Cloud アカウント A の DataWorks サービスがこのロールを偽装できるようになります。詳細については、「RAM ロールの信頼ポリシーの変更」をご参照ください。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "UID of Alibaba Cloud Account A@engine.dataworks.aliyuncs.com" ] } } ], "Version": "1" }Account A's UIDをアカウント A の UID に置き換えます。
RAM ロールのアクセスポリシーの設定
シナリオ 1:MaxCompute へのアクセス権限の付与
Alibaba Cloud アカウント B を使用して、宛先の MaxCompute プロジェクトに移動します。
MaxCompute コンソールの SQL 分析機能を使用して、MaxCompute プロジェクトにすばやく移動できます。
他の接続ツールについては、「接続ツールの選択」をご参照ください。
RAM ロールを MaxCompute プロジェクトに追加します。
ステップ 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>:これを Alibaba Cloud アカウント B の名前に置き換えます。
<RAM role name>:これをステップ 1 で作成したロール名である testRole に置き換えます。
必要に応じてロールに権限を付与します。権限付与操作の詳細については、「権限付与操作」をご参照ください。
説明ワークスペース A でのクロスアカウントデータソースの使用方法に基づいて、RAM ロールに事前に権限を付与できます。たとえば、ワークスペース A からワークスペース B のデータソースのテーブルをクエリする場合は、データソースに設定された RAM ロールがテーブルに対する SELECT 権限を持っていることを確認してください。
シナリオ 2:Hologres へのアクセス権限の付与
ロールのアクセスポリシーの変更 (Hologres のみ)
Alibaba Cloud アカウント B の RAM コンソールで、カスタムポリシーを作成して、Hologres インスタンスへのアクセスに必要な基本権限を付与します。ポリシーの内容は次のとおりです。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "hologram:GetInstance", "hologram:DescribeInstance", "hologram:ListDatabases", "hologram:ListWarehouses", "hologram:ListInstances" ], "Resource": "*" } ] }このポリシーを testRole ロールにアタッチします。詳細については、「RAM ロールへの権限付与」をご参照ください。
RAM ロールを Hologres データベースに追加します。
Hologres でロールを追加して権限を付与します。Alibaba Cloud アカウント B を使用して Hologres 管理コンソールにログインし、宛先インスタンスの HoloWeb インターフェイスに移動します。
セキュリティセンターの ユーザー管理 ページで、作成した RAM ロールをデータベースユーザーとして追加します。

ロールが一般ユーザーの場合は、セキュリティセンターの DB 権限付与 ページに移動して、ユーザーにデータベースレベルの操作権限を付与します。

詳細については、「RAM ユーザー権限付与のクイックスタート」をご参照ください。
ステップ 2:アカウント B のユーザー情報を使用したアカウント A でのデータソースの作成
データソースページに移動します。
DataWorks コンソールにログインします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、管理センターへ移動 をクリックします。
SettingCenter ページの左側のナビゲーションウィンドウで、データソース をクリックします。
[データソースの追加] をクリックし、データソースタイプとして MaxCompute または Hologres を選択します。
データソース設定ページで、次の主要なパラメーターを設定します。
[Alibaba Cloud アカウント]:[他の Alibaba Cloud アカウント] を選択します。
[リージョン]:MaxCompute プロジェクトまたは Hologres インスタンスが存在するリージョンを選択します。
[他の Alibaba Cloud アカウントの UID]:Alibaba Cloud アカウント B の UID を入力します。
[他の MaxCompute プロジェクト]/[Hologres インスタンス]:Alibaba Cloud アカウント B の宛先リソースの名前または ID を入力します。
[他の RAM ロール]:Alibaba Cloud アカウント B で作成した RAM ロールの名前 (例:testRole) を入力します。
リソースグループの接続性を設定します。
必要に応じてリソースグループを選択し、接続性をテストします。ネットワーク接続の設定の詳細については、「異なる Alibaba Cloud アカウントに属するデータソースへの接続」をご参照ください。

[作成を完了] をクリックして、アカウント間のデータソースを作成します。
次のステップ
データソースを作成した後、次の操作を実行できます。
Data Integration を使用して、このデータソースからデータを同期します。詳細については、「Data Integration」をご参照ください。
データマップでデータソースの詳細を表示します。詳細については、「データマップ」をご参照ください。