データ転送ジョブ (新バージョン) が実行されると、Logstore から MaxCompute テーブルにデータが転送されます。この操作では、データ転送ジョブがカスタム RAM ロールを偽装するように権限を付与できます。このトピックでは、ご利用の MaxCompute プロジェクトと Simple Log Service プロジェクトが同一の Alibaba Cloud アカウントにある場合に、カスタム RAM ロールを承認する方法について説明します。
前提条件
-
RAM ユーザーを使用する場合、そのユーザーに RAM ロールを管理する権限があることを確認してください。
-
DataWorks で、ご利用の MaxCompute プロジェクトを MaxCompute データソースとして追加します。詳細については、「MaxComputeコンピューティングリソースのバインド」をご参照ください。
操作手順
RAM ロールに MaxCompute への書き込み権限を付与すると、データ転送ジョブはそのロールを偽装して、Logstore から送信先の MaxCompute テーブルにデータを書き込むことができます。これらの権限は、RAM ロールをワークスペースメンバーとして追加することで付与できます。
-
RAM ロール (例:
MaxComputeShipRole) を作成します。詳細については、「Alibaba Cloud サービス用の RAM ロールの作成」をご参照ください。重要RAM ロールを作成する際、[プリンシパルタイプ] を [クラウドサービス] に、[プリンシパル名] を [Simple Log Service] に設定します。
RAM ロールの信頼ポリシーを確認します。
Service要素に、少なくとも"log.aliyuncs.com"が含まれていることを確認してください。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
-
RAM ロールの信頼ポリシーを変更します。詳細については、「RAM ロールの信頼ポリシーの変更」をご参照ください。
既存の信頼ポリシーを以下の内容に置き換えます。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com", "dataworks.aliyuncs.com" ] } } ], "Version": "1" } -
RAM ロールをワークスペースメンバーとして追加します。
-
DataWorks コンソールにログインします。
-
ページの左上隅で、リージョンを選択します。
-
左側のナビゲーションウィンドウで、ワークスペース をクリックします。[ワークスペース] ページで、対象のワークスペースを見つけ、[操作] 列の 管理 をクリックします。
-
ワークスペース ページの [ワークスペースメンバーとロール] タブで、メンバーの追加 をクリックします。
-
メンバーの追加 ダイアログボックスで、現在のログインアカウントと対象の RAM ロールを追加します。
バッチセットの役割 セクションで、[開発者] を選択します。詳細については、「他のユーザーへの権限付与」をご参照ください。
-
RAM ロールに MaxCompute テーブルを管理する権限を付与します。
-
MaxCompute コンソールにログインし、左上隅でリージョンを選択します。
-
左側のナビゲーションウィンドウで、 を選択します。プロジェクト管理 ページで、対象プロジェクトの [操作] 列にある 管理 をクリックします。

-
MaxCompute プロジェクト管理ページで、ロールの権限 をクリックします。

エラーが発生した場合は、Alibaba Cloud アカウントを使用して、現在の RAM ユーザーを MaxCompute プロジェクトに追加します。ロールリストで admin ロールを見つけ、[メンバーの管理] をクリックします。[メンバーの管理] ダイアログボックスで、現在の RAM ユーザーを選択し、画面の指示に従ってユーザーを追加します。

-
ロールリストで role_project_admin ロールを見つけ、[メンバーの管理] をクリックします。
-
メンバー管理 ダイアログボックスで、現在のログインアカウントと対象の RAM ロール (例:
MaxComputeShipRole) を追加します。 -
ロールリストで role_project_admin ロールを見つけ、[ロールの編集] をクリックします。
-
[ロールの編集] ダイアログボックスの [テーブル] タブで、対象の MaxCompute テーブルを選択し、Describe、Alter、Update の各権限を付与します。

-
重要上記の手順では、指定した MaxCompute テーブルに対する権限のみが付与されます。RAM ロールに現在の MaxCompute プロジェクト内のすべてのテーブルに対する権限を付与したい場合は、現在のログインアカウントと対象の RAM ロールに admin ロールを付与できます。これを行うには、ロールリストで メンバー管理 ロールの [メンバーの管理] をクリックします。メンバー管理 ダイアログボックスで、現在のログインアカウントと対象の RAM ロールを追加します。
-
-
MaxCompute データ転送ジョブを作成します。
権限付与が完了したら、データ転送ジョブ (新バージョン) を作成できます。設定で、MaxCompute 書き込み権限の付与 を Custom Role に設定し、カスタム RAM ロールの Alibaba Cloud リソース名 (ARN) (例:
acs:ram::10**12:role/maxcomputeshiprole) を入力します。これにより、データ転送ジョブはカスタム RAM ロールを偽装して、MaxCompute テーブルにデータを転送できるようになります。詳細については、「MaxCompute データ転送ジョブの作成 (新バージョン)」をご参照ください。