すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:カスタムRAMロールを使用してMaxComputeにデータを書き込む

最終更新日:Dec 02, 2024

新しいバージョンのデータ転送ジョブを実行して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"
      }

      image

  • RAMユーザーを使用する場合は、RAMユーザーにRAMロールを管理する権限があることを確認してください。

Alibaba Cloudアカウント内でデータを出荷する

MaxComputeにデータを書き込む権限をRAMロールに付与すると、MaxComputeデータシッピングジョブはRAMロールを引き受けてLogstoreのデータをMaxComputeテーブルに書き込むことができます。 権限付与を完了するには、RAMロールをワークスペースメンバーとして追加する必要があります。

GUIまたはCLIを使用して、RAMロールに権限を付与できます。

GUIを使用してRAMロールに権限を付与する

  1. RAMロールの信頼ポリシーを変更します。

    1. RAMコンソール.

    2. 左側のナビゲーションウィンドウで、アイデンティティ > ロール.

    3. [ロール] ページで、管理するRAMロールをクリックします。

    4. 信頼ポリシータブをクリックします。信頼ポリシーの編集.

    5. コードエディターの内容を次のポリシードキュメントに置き換え、[信頼ポリシードキュメントの保存] をクリックします。

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "log.aliyuncs.com",
                "dataworks.aliyuncs.com"
              ]
            }
          }
        ],
        "Version": "1"
      }
  2. RAMロールをワークスペースメンバーとして追加します。

    1. DataWorks コンソールにログインします。

    2. 表示されるページの左上隅で、リージョンを選択します。

    3. 左側のナビゲーションペインで、[ワークスペース] をクリックします。 image

    4. [ワークスペース] ページで、管理するワークスペースを見つけ、[操作] 列の [管理] をクリックします。

    5. [ワークスペース] ページの [ワークスペースメンバー] タブで、[メンバーの追加] をクリックします。 image.png

    6. [メンバーの追加] ダイアログボックスで、現在のログオンアカウントとRAMロールを選択して追加します。

      [ロールの一括割り当て] セクションで、[開発] を選択します。 詳細については、「RAM ユーザーへの権限の付与」をご参照ください。

  3. MaxComputeテーブルを管理する権限をRAMロールに付与します。

    1. [ワークスペース] ページで、[コンピューティングエンジン情報] > [MaxCompute] > [MaxComputeコンソールに移動] を選択します。 image.png

    2. MaxComputeプロジェクト管理ページで、[ロール権限] をクリックします。 image.png次のエラーが報告された場合は、ロールリストで次の操作を実行します。adminロールを検索し、[操作] 列の [メンバーの管理] をクリックします。 [メンバーの管理] ダイアログボックスで、現在のログインアカウントを選択して追加します。 image.png

    3. ロールリストで、role_project_adminロールを見つけ、[操作] 列の [メンバーの管理] をクリックします。

    4. [メンバーの管理] ダイアログボックスで、現在のログインアカウントとRAMロールを選択して追加します。

    5. ロールリストで、role_project_adminロールを見つけ、[操作] 列の [メンバーの管理] をクリックします。

    6. [ロールの編集] ダイアログボックスの [テーブル] タブで、管理するMaxComputeテーブルを見つけ、[記述][変更][更新] を選択します。 image.png

重要

上記の権限付与は、指定されたMaxComputeテーブルに対してのみ有効です。 現在のMaxComputeプロジェクトのすべてのテーブルを管理する権限をRAMロールに付与する場合は、管理者ロールの権限を現在のログオンアカウントと対象ロールに付与できます。 ロールリストでadminロールを見つけ、[操作] 列の [メンバーの管理] をクリックします。 [メンバーの管理] ダイアログボックスで、現在のログインアカウントと目的のロールを選択して追加します。

設定後、新しいバージョンのMaxComputeデータシッピングジョブにRAMロールを割り当てて、指定されたMaxComputeテーブルにデータを送信できます。 データシッピングジョブを作成するときに、[MaxComputeの書き込み権限][カスタムロール] を選択し、RAMロールのAlibaba Cloudリソース名 (ARN) を指定します。 例: acs:ram::10 **12:role/maxcomputeshiprole。 RAMロールのARNを取得する方法の詳細については、「RAMロールに関する情報の表示」をご参照ください。 MaxCompute授权

CLIを使用してRAMロールに権限を付与する

  1. DataWorks コンソールにログインします。

  2. 表示されるページの左上隅で、リージョンを選択します。

  3. 左側のナビゲーションペインで、[ワークスペース] をクリックします。 image

  4. [ワークスペース] ページで、管理するワークスペースを見つけ、ポインターを [ショートカット] 移動し、[データ開発] をクリックします。

  5. ワークフローの作成

    1. [スケジュールされたワークフロー] ページで、[作成] > [ワークフローの作成] を選択します。

    2. [ワークフローの作成] ダイアログボックスで、[ワークフロー名] を設定し、[作成] をクリックします。

  6. ノードを作成します。

    1. [スケジュールされたワークフロー] ページで、[作成] > [ノードの作成] > [MaxCompute] > [ODPS SQL] を選択します。

    2. [ノードの作成] ダイアログボックスで、[名前][パス] を設定し、[確認] をクリックします。

      手順5で作成したワークフローにパスを設定する必要があります。

  7. ノードのコードエディターで、必要なコマンドを実行して承認を完了します。 次の表にコマンドを示します。

    MaxCompute授权

    コマンド

    説明

    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

    認証プロセス中に次のエラーメッセージが表示されることがあります。

設定後、新しいバージョンのMaxComputeデータシッピングジョブにRAMロールを割り当てて、指定されたMaxComputeテーブルにデータを送信できます。 データシッピングジョブを作成するときに、[MaxComputeの書き込み権限][カスタムロール] を選択し、RAMロールのARNを指定します。 例: acs:ram::10 **12:role/maxcomputeshiprole。 RAMロールのARNを取得する方法の詳細については、「RAMロールに関する情報の表示」をご参照ください。 MaxCompute授权

Alibaba Cloudアカウント間でデータを出荷する

Alibaba CloudアカウントAに対してSimple Log Serviceが有効化され、Alibaba CloudアカウントBに対してMaxComputeが有効化されている場合、Alibaba CloudアカウントBに属するRAMロールBにMaxComputeにデータを書き込む権限を付与する必要があります。 承認が完了すると、新しいバージョンのMaxComputeデータシッピングジョブはRAMロールを引き受けて、LogstoreのデータをMaxComputeテーブルに書き込むことができます。

  1. Alibaba CloudアカウントBに属するRAMロールBの信頼ポリシーを変更します。

    1. Alibaba CloudアカウントBを使用してRAMコンソールにログインします。

    2. 左側のナビゲーションウィンドウで、アイデンティティ > ロール.

    3. ロールリストで、[RAMロールB] をクリックします。

    4. 信頼ポリシータブをクリックします。信頼ポリシーの編集.

    5. 信頼ポリシーを変更し、信頼ポリシードキュメントの保存.

      [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"
      }
  2. 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ロールに関する情報の表示」をご参照ください。 MaxCompute授权