新しいバージョンのデータシッピングジョブがMaxComputeにデータを送信するために実行されている場合、ジョブはソースLogstoreからデータを読み取る必要があります。 この要件を満たすために、データ配布ジョブにカスタムロールを割り当てることができます。 このトピックでは、カスタムロールに権限を付与する方法について説明します。
前提条件
MaxcomputeShipRoleという名前のリソースアクセス管理 (RAM) ロールが作成されます。 詳細については、「RAM ロールの作成」をご参照ください。
RAMロールは次の要件を満たす必要があります。
RAMロールを作成するときに、信頼できるエンティティとしてAlibaba Cloud Serviceを選択します。
RAMロールの信頼ポリシーでは、以下に示すように、
"サービス"
フィールドに"log.aliyuncs.com"
を含める必要があります。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
手順
RAMロールにLogstoreからデータを読み取る権限を付与した後、RAMロールをデータ配布ジョブに割り当てて、Logstoreからデータを読み取ることができます。
Logstoreからデータを読み取る権限を付与するポリシーを作成します。
左側のナビゲーションウィンドウから、
を選択します。[ポリシー] ページで [ポリシーの作成] をクリックします。
[ポリシーの作成] ページの [JSON] タブで、コードエディターのポリシードキュメントを次のいずれかのスクリプトに置き換えます。 次に、[次へ] をクリックしてポリシー情報を編集します。
完全一致を使用するポリシー
名前は、プロジェクトとLogstoreの実際の名前に置き換えることができます。
{ "Version":"1", "Statement":[ { "Action":[ "log:GetCursorOrData", "log:ListShards" ], "Resource":[ "acs:log:*:*:project/Project name/logstore/Logstore name/*" ], "Effect":"Allow" } ] }
ファジーマッチを使用するポリシー
この例では、プロジェクトの名前はlog-project-dev-a、log-project-dev-b、およびlog-project-dev-cです。 Logstoreの名前は、website_a_log、website_b_log、およびwebsite_c_logです。 名前は、プロジェクトとLogstoreの実際の名前に置き換えることができます。
{ "Version":"1", "Statement":[ { "Action":[ "log:GetCursorOrData", "log:ListShards" ], "Resource":[ "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log*" ], "Effect":"Allow" } ] }
名前パラメーターをクリックし、OK.
この例では、ポリシー名をlog-maxcompute-export-source-policyに設定します。
ポリシーをRAMロールにアタッチします。
左側のナビゲーションウィンドウで、 .
RAMロールを見つけて、権限付与[アクション] 列に表示されます。
手順2で作成したポリシーを選択します。 この例では、log-maxcompute-export-source-policyポリシーを選択します。
承認結果を確認します。 次に、[権限の付与] をクリックします。
設定を構成した後、カスタムRAMロールを新しいバージョンのデータ配布ジョブに割り当てて、ソースLogstoreからデータを読み取ることができます。 新しいバージョンのデータシッピングジョブを作成するときに、Simple Log Serviceの読み取り権限パラメーターをカスタムロールに設定し、カスタムRAMロールのAlibaba Cloudリソース名 (ARN) を入力します。 この例では、acs:ram::10 **** 12:role/maxcomputeshiproleと入力します。 RAMロールのARNを取得する方法の詳細については、「RAMロールに関する情報の表示」をご参照ください。