別の 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 はこのロールを引き受けて、権限が付与されたリソースにアクセスできるようになります。
-
RAM ロールを作成します。
詳細については、「信頼できる Alibaba Cloud アカウント用の RAM ロールの作成」をご参照ください。
説明ここで作成された RAM ロールは、アカウント A がアカウント B の DataWorks にアクセスするために使用されます。この RAM ロールがアカウント A の DataWorks にもアクセスする必要がある場合は、その権限ポリシーを再定義する必要があります。詳細については、「RAM ロールの権限ポリシーの定義」をご参照ください。
主要なパラメーター設定は次のとおりです:
-
プリンシパルタイプ:Alibaba Cloud Account。
-
プリンシパル:その他の Alibaba Cloud アカウント。アカウント A の UID を入力します。UID は、アカウント A でコンソールにログインし、上部のナビゲーションバーにあるプロフィール画像にポインターを合わせることで取得できます。
-
ロール名:testRole。
設定が完了すると、アカウント A は testRole ロールを引き受けて、権限が付与されたリソースにアクセスできるようになります。
-
-
信頼ポリシーの変更
ロールを作成した後、[信頼ポリシー] タブに移動し、[信頼ポリシーの編集] をクリックして、ポリシーの内容を次のコードに置き換えます。これにより、アカウント 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 へのアクセスの権限付与
-
アカウント 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>:アカウント B の名前。
-
<ram_role_name>:ステップ 1 で作成したロールの名前 (testRole)。
-
-
必要に応じてロールに権限を付与します。詳細については、「権限付与」をご参照ください。
説明アカウント A のワークスペースがデータソースをどのように使用するかに基づいて、事前に RAM ロールに権限を付与できます。たとえば、アカウント A のワークスペースからアカウント B のデータソース内のテーブルをクエリする場合は、データソースに設定された RAM ロールがそのテーブルに対する SELECT 権限を持っていることを確認してください。
-
シナリオ 2:Hologres へのアクセスの権限付与
-
ロールの権限ポリシーの変更 (Hologres のみ)
-
アカウント 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 でのロールの追加と権限付与。アカウント B を使用して Hologres 管理コンソールにログインし、ターゲットインスタンスの HoloWeb インターフェイスを開きます。
-
[セキュリティセンター] > [ユーザー管理] ページで、作成した RAM ロールをデータベースユーザーとして追加します。
[ユーザーの追加] ダイアログボックスの [組織メンバーの選択] セクションで、作成した RAM ロール (testRole など) を選択します。[メンバーロールの選択] セクションで [一般ユーザー] を選択し、[確認] をクリックします。
-
ロールが一般ユーザーの場合、[セキュリティセンター] > [DB 権限付与] ページで、そのユーザーにデータベースレベルの権限を付与する必要があります。
[権限付与の追加] をクリックします。表示されるダイアログボックスで、[ユーザー] にターゲットロール (例:
role/testRole) を選択し、[ユーザーグループ] に [開発者] を選択してから、[確認] をクリックします。
詳細については、「RAM ユーザー権限付与のクイックスタート」をご参照ください。
-
ステップ 2:アカウント B のユーザー情報を使用したアカウント A のデータソースの作成
DataWorks コンソールにログインします。対象リージョンで、左側のナビゲーションウィンドウでをクリックします。ドロップダウンリストからワークスペースを選択し、入力管理センターをクリックします。
[ワークスペース管理] ページで、左側のナビゲーションウィンドウにある [データソース] をクリックして、データソースページを開きます。
-
[データソースの追加] をクリックし、データソースタイプ (MaxCompute または Hologres) を選択します。
-
データソース設定ページで、次の主要なパラメーターを設定します:
-
Alibaba Cloud Account:その他の Alibaba Cloud アカウント。
-
リージョン:MaxCompute プロジェクトまたは Hologres インスタンスが配置されているリージョン。
-
Alibaba CloudプライマリアカウントUID:アカウント B の UID を入力します。
-
MaxComputeプロジェクトの反対側/その他の Hologres インスタンス:アカウント B のターゲットリソースの名前または ID を入力します。
-
RAMロールの反対側:アカウント B で作成した RAM ロールの名前 (testRole など) を入力します。
-
-
リソースグループの接続性を設定します。
リソースグループを選択し、その接続性をテストします。ネットワーク接続の設定については、「異なる Alibaba Cloud アカウントに属するデータソースへの接続」をご参照ください。
[接続ステータス] 列に緑色の [接続済み] ステータスが表示されれば、リソースグループのネットワークが正しく設定されていることを示します。
-
[Complete Creation] をクリックして、アカウント間のデータソースを作成します。
次のステップ
データソースを作成した後、次の操作を実行できます:
-
Data Integration を使用してデータを同期します。
-
データマップに移動して、データソースの詳細を表示します。