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