新しいバージョンのデータ転送ジョブを実行してMaxComputeにデータを転送する場合、Logstoreから読み取られたデータをMaxComputeテーブルに書き込む必要があります。 この要件を満たすには、カスタムRAM (Resource Access Management) ロールを引き受けるようにデータ配布ジョブを承認します。 このトピックでは、カスタムRAMロールを使用して、新しいバージョンのMaxComputeデータシッピングジョブにデータを送信する権限を付与する方法について説明します。
前提条件
RAMロールが作成されます。 この例では、RAMロールの名前はMaxComputeShipRoleです。 詳細については、「信頼できるAlibaba CloudサービスのRAMロールの作成」をご参照ください。
RAMロールは次の要件を満たす必要があります。
RAMロールを作成するときに、信頼できるエンティティとしてAlibaba Cloud Serviceを選択します。
RAMロールの信頼ポリシーでは、以下に示すように、
"サービス"
フィールドに"log.aliyuncs.com"
を含める必要があります。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
RAMユーザーを使用する場合は、RAMユーザーにRAMロールを管理する権限があることを確認してください。
Alibaba Cloudアカウント内でデータを出荷する
MaxComputeにデータを書き込む権限をRAMロールに付与すると、MaxComputeデータシッピングジョブはRAMロールを引き受けてLogstoreのデータをMaxComputeテーブルに書き込むことができます。 権限付与を完了するには、RAMロールをワークスペースメンバーとして追加する必要があります。
GUIまたはCLIを使用して、RAMロールに権限を付与できます。
GUIを使用してRAMロールに権限を付与する
RAMロールの信頼ポリシーを変更します。
左側のナビゲーションウィンドウで、 .
[ロール] ページで、管理するRAMロールをクリックします。
信頼ポリシータブをクリックします。信頼ポリシーの編集.
コードエディターの内容を次のポリシードキュメントに置き換え、[信頼ポリシードキュメントの保存] をクリックします。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com", "dataworks.aliyuncs.com" ] } } ], "Version": "1" }
RAMロールをワークスペースメンバーとして追加します。
DataWorks コンソールにログインします。
表示されるページの左上隅で、リージョンを選択します。
左側のナビゲーションペインで、[ワークスペース] をクリックします。
[ワークスペース] ページで、管理するワークスペースを見つけ、[操作] 列の [管理] をクリックします。
[ワークスペース] ページの [ワークスペースメンバー] タブで、[メンバーの追加] をクリックします。
[メンバーの追加] ダイアログボックスで、現在のログオンアカウントとRAMロールを選択して追加します。
[ロールの一括割り当て] セクションで、[開発] を選択します。 詳細については、「RAM ユーザーへの権限の付与」をご参照ください。
MaxComputeテーブルを管理する権限をRAMロールに付与します。
[ワークスペース] ページで、
を選択します。MaxComputeプロジェクト管理ページで、[ロール権限] をクリックします。 次のエラーが報告された場合は、ロールリストで次の操作を実行します。adminロールを検索し、[操作] 列の [メンバーの管理] をクリックします。 [メンバーの管理] ダイアログボックスで、現在のログインアカウントを選択して追加します。
ロールリストで、role_project_adminロールを見つけ、[操作] 列の [メンバーの管理] をクリックします。
[メンバーの管理] ダイアログボックスで、現在のログインアカウントとRAMロールを選択して追加します。
ロールリストで、role_project_adminロールを見つけ、[操作] 列の [メンバーの管理] をクリックします。
[ロールの編集] ダイアログボックスの [テーブル] タブで、管理するMaxComputeテーブルを見つけ、[記述] 、[変更] 、[更新] を選択します。
上記の権限付与は、指定されたMaxComputeテーブルに対してのみ有効です。 現在のMaxComputeプロジェクトのすべてのテーブルを管理する権限をRAMロールに付与する場合は、管理者ロールの権限を現在のログオンアカウントと対象ロールに付与できます。 ロールリストでadminロールを見つけ、[操作] 列の [メンバーの管理] をクリックします。 [メンバーの管理] ダイアログボックスで、現在のログインアカウントと目的のロールを選択して追加します。
設定後、新しいバージョンのMaxComputeデータシッピングジョブにRAMロールを割り当てて、指定されたMaxComputeテーブルにデータを送信できます。 データシッピングジョブを作成するときに、[MaxComputeの書き込み権限] の [カスタムロール] を選択し、RAMロールのAlibaba Cloudリソース名 (ARN) を指定します。 例: acs:ram::10 **12:role/maxcomputeshiprole。 RAMロールのARNを取得する方法の詳細については、「RAMロールに関する情報の表示」をご参照ください。
CLIを使用してRAMロールに権限を付与する
DataWorks コンソールにログインします。
表示されるページの左上隅で、リージョンを選択します。
左側のナビゲーションペインで、[ワークスペース] をクリックします。
[ワークスペース] ページで、管理するワークスペースを見つけ、ポインターを [ショートカット] に移動し、[データ開発] をクリックします。
ワークフローの作成
[スケジュールされたワークフロー] ページで、
を選択します。[ワークフローの作成] ダイアログボックスで、[ワークフロー名] を設定し、[作成] をクリックします。
ノードを作成します。
[スケジュールされたワークフロー] ページで、
を選択します。[ノードの作成] ダイアログボックスで、[名前] と [パス] を設定し、[確認] をクリックします。
手順5で作成したワークフローにパスを設定する必要があります。
ノードのコードエディターで、必要なコマンドを実行して承認を完了します。 次の表にコマンドを示します。
コマンド
説明
USEプロジェクト名;
MaxComputeプロジェクトを指定します。 MaxComputeプロジェクトは、新しいバージョンのデータ配布ジョブを作成したときに指定したMaxComputeプロジェクトと同じである必要があります。 詳細については、「MaxComputeにデータを送信するための新しいバージョンのデータ送信ジョブの作成」をご参照ください。
追加ユーザーRAM$**** .aliyunid.com:'role/maxcomputeshiprole';
RAMロールをユーザーとしてMaxComputeプロジェクトに追加します。
**** .aliyunid.comは、MaxComputeプロジェクトが属するAlibaba Cloudアカウントを指定します。
list users;
コマンドを実行して、Alibaba Cloudアカウントを表示できます。maxcomputeshiproleは、カスタムRAMロールの名前を指定します。 名前は小文字である必要があります。
GRANT CreateInstance ON PROJECTプロジェクト名-ユーザーRAM$*****:'role/maxcomputeshiprole';
指定されたMaxComputeプロジェクトでインスタンスを作成する権限をRAMロールに付与します。
GRANT DESCRIBE、ALTER、UPDATE ON TABLEテーブル-ユーザーRAM$**** .aliyunid.comへの名前: 'role/maxcomputeshiprole';
指定されたMaxComputeテーブルを表示、変更、更新する権限をRAMロールに付与します。
説明上記の権限付与は、指定されたMaxComputeテーブルに対してのみ有効です。 現在のMaxComputeプロジェクトのすべてのテーブルを管理する権限をRAMロールに付与する場合は、
grant admin to user RAM$**** .aliyunid.com:'role/maxcomputeshiprole';
コマンドを実行して承認を完了します。「RAM$**** .aliyunid.com:role/maxcomputeshiprole」のGRANTSを表示します。
承認が成功したかどうかを確認します。
次のような情報が返された場合、承認は成功します。
Authorization Type: ACL [user/RAM$****.aliyunid.com:role/maxcomputeshiprole] A projects/default_project_****: CreateInstance A projects/default_project_****/tables/****: Describe | Alter | Update
認証プロセス中に次のエラーメッセージが表示されることがあります。
FAILED: mismatch input
エラーメッセージが表示された場合、RAMユーザーにはADD user
などのステートメントを実行する権限がありません。 詳細については、「」をご参照ください。エラーメッセージFAILED: 不一致入力が表示された場合はどうすればよいですか?が失敗: ODPS-0130013: 承認例外-承認に失敗した [4003] 場合、{acs:odps:*:projects/xxxxxx /Authorization /users} のプロジェクトセキュリティ操作を行う権限はありません。 コンテキストID:1111-11111-1111-1111-11111。
エラーメッセージが表示された場合、ユーザーにはMaxComputeプロジェクトを管理したり、他のユーザーに権限を付与したりする権限がありません。 詳細については、「」をご参照ください。ユーザーに必要な権限がないというエラーがシステムに報告された場合はどうすればよいですか?
設定後、新しいバージョンのMaxComputeデータシッピングジョブにRAMロールを割り当てて、指定されたMaxComputeテーブルにデータを送信できます。 データシッピングジョブを作成するときに、[MaxComputeの書き込み権限] の [カスタムロール] を選択し、RAMロールのARNを指定します。 例: acs:ram::10 **12:role/maxcomputeshiprole。 RAMロールのARNを取得する方法の詳細については、「RAMロールに関する情報の表示」をご参照ください。
Alibaba Cloudアカウント間でデータを出荷する
Alibaba CloudアカウントAに対してSimple Log Serviceが有効化され、Alibaba CloudアカウントBに対してMaxComputeが有効化されている場合、Alibaba CloudアカウントBに属するRAMロールBにMaxComputeにデータを書き込む権限を付与する必要があります。 承認が完了すると、新しいバージョンのMaxComputeデータシッピングジョブはRAMロールを引き受けて、LogstoreのデータをMaxComputeテーブルに書き込むことができます。
Alibaba CloudアカウントBに属するRAMロールBの信頼ポリシーを変更します。
Alibaba CloudアカウントBを使用してRAMコンソールにログインします。
左側のナビゲーションウィンドウで、 .
ロールリストで、[RAMロールB] をクリックします。
信頼ポリシータブをクリックします。信頼ポリシーの編集.
信頼ポリシーを変更し、信頼ポリシードキュメントの保存.
[Alibaba CloudアカウントA@log.aliyuncs.com] を追加し、[サービス] 要素にdataworks.aliyuncs.comします。 Alibaba CloudアカウントAのIDを実際のIDに置き換えます。 アカウントセンターコンソールでAlibaba CloudアカウントのIDを確認できます。
次のポリシーにより、Alibaba CloudアカウントAは、Alibaba cloudアカウントBのクラウドリソースを管理するための一時的なSTS (Security Token Service) トークンを取得できます。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com", "dataworks.aliyuncs.com", "ID of Alibaba Cloud Account A@log.aliyuncs.com" ] } } ], "Version": "1" }
Alibaba CloudアカウントBに属するRAMロールBをワークスペースメンバーとして追加します。
GUIまたはCLIを使用して、RAMロールに権限を付与できます。 認証を完了するには、
Alibaba CloudアカウントBを使用したMaxComputeコンソール。詳細については、「GUIを使用してRAMロールに権限を付与する」または「CLIを使用してRAMロールに権限を付与する」をご参照ください。
設定後、Alibaba CloudアカウントBのRAMロールを新しいバージョンのMaxComputeデータシッピングジョブに割り当てて、指定されたMaxComputeテーブルにデータを発送できます。 データシッピングジョブを作成するときに、[MaxComputeの書き込み権限] の [カスタムロール] を選択し、Alibaba CloudアカウントBに属するRAMロールのARNを入力します。例: acs:ram::11 **13: Role /maxcomputeshiprole。 RAMロールのARNを取得する方法の詳細については、「RAMロールに関する情報の表示」をご参照ください。