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

Simple Log Service:RAMロールに、Alibaba Cloudアカウント全体のLogstoreにアクセスする権限を付与する

最終更新日:Aug 26, 2024

スケジュールされたSQLジョブが実行されると、ジョブはSQL文を実行してソースLogstoreのデータを分析し、分析結果を宛先Logstoreまたは宛先Metricstoreに保存します。 リソースアクセス管理 (RAM) ロールをスケジュールされたSQLジョブに割り当てて、上記の操作を完了できます。 送信元と送信先のログストアが異なるAlibaba Cloudアカウントに属している場合は、このトピックで説明されている手順を実行して、RAMロールに権限を付与します。 スケジュールされたSQLジョブを設定するときに、LogstoreまたはMetricstoreを指定できます。 このトピックでは、Alibaba Cloudアカウント間でLogstoreにアクセスする権限をRAMロールに付与する方法について説明します。

前提条件

RAMロールAはAlibaba CloudアカウントAで作成され、RAMロールBはAlibaba CloudアカウントBで作成されます。詳細については、「信頼できるエンティティがAlibaba CloudサービスであるRAMロールを作成し、RAMロールにSimple Log serviceにアクセスする権限を付与する」をご参照ください。

RAMロールは次の要件を満たす必要があります。

  • RAMロールを作成するときに、信頼できるエンティティとしてAlibaba Cloud Serviceを選択します。

  • RAMロールの信頼ポリシーでは、以下に示すように、"サービス" フィールドに "log.aliyuncs.com" を含める必要があります。

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Effect": "Allow",
          "Principal": {
            "Service": [
              "log.aliyuncs.com"
            ]
          }
        }
      ],
      "Version": "1"
    }

    image

ステップ1: ソースLogstoreのデータを分析する権限をRAMロールAに付与する

Alibaba CloudアカウントAに属するソースログストアのデータを分析する権限をRAMロールaに付与すると、スケジュールされたSQLジョブはRAMロールAを引き受けて、ソースログストアのデータに対してSQL分析を実行できます。

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

  2. ソースLogstoreのデータを分析する権限を付与するポリシーを作成します。

    1. 左側のナビゲーションウィンドウで、権限 > ポリシー.

    2. クリックポリシーの作成.

    3. On theポリシーの作成ページをクリックし、JSONタブをクリックします。

      コードエディターの既存のスクリプトを次のいずれかのポリシードキュメントに置き換えます。

      • 正確な名前を使用してリソースを一致させるポリシー

        この例では、ソースプロジェクトの名前はlog-project-prodです。 ソースLogstoreの名前はwebsite_logです。 名前は、プロジェクトとLogstoreの実際の名前に置き換えることができます。

        重要

        ポリシーを作成するときは、Logstoreキーワードの後にlogstoreまたはMetricstoreを指定できます。 Metricstoreを管理する場合は、次のポリシードキュメントを参照してポリシーを作成することもできます。

        {
            "Version":"1",
            "Statement":[
                {
                    "Action":[
                        "log:PostProjectQuery"
                    ],
                    "Resource":[
                        "acs:log:*:*:project/log-project-prod/logstore/website_log",
                        "acs:log:*:*:project/log-project-prod/logstore/website_log/*"
                    ],
                    "Effect":"Allow"
                },
                {
                    "Action":[
                        "log:GetProjectQuery",
                        "log:PutProjectQuery",
                        "log:DeleteProjectQuery"
                    ],
                    "Resource":[
                        "acs:log:*:*:project/log-project-prod"
                    ],
                    "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:PostProjectQuery"
                    ],
                    "Resource":[
                        "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log",
                        "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log/*"
                    ],
                    "Effect":"Allow"
                },
                {
                    "Action":[
                        "log:GetProjectQuery",
                        "log:PutProjectQuery",
                        "log:DeleteProjectQuery"
                    ],
                    "Resource":[
                        "acs:log:*:*:project/log-project-dev-*"
                    ],
                    "Effect":"Allow"
                }
            ]
        }
    4. クリックポリシー情報を編集する次に次のパラメーターを設定し、OK.

      パラメーター

      説明

      名前

      ポリシーの名前を入力します。 例: log-scheduled-sql-policy

      説明

      ポリシーの説明を入力します。

  3. RAMロールAに権限を付与します。

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

    2. RAMロールAを見つけて、権限付与[アクション] 列に表示されます。

    3. [ポリシーの選択] セクションで [カスタムポリシー] をクリックし、ステップ2で作成したポリシーを選択します。 [OK] をクリックします。 この例では、log-scheduled-sql-policyポリシーが選択されています。

    4. 承認結果を確認します。 次に、[完了] をクリックします。

  4. RAMロールAのAlibaba Cloudリソース名 (ARN) を取得します。

    RAMロールの詳細ページに移動し、[基本情報] セクションでロールのARNを表示します。 例: acs:ram::11 **** 27:role/logsource。 ARNを記録することを推奨します。 スケジュールされたSQLジョブを作成するときにカスタムロールを使用する場合は、ARNを入力する必要があります。

ステップ2: RAMロールBにデータを宛先Logstoreに書き込む権限を付与する

Alibaba CloudアカウントBに属する宛先Logstoreにデータを書き込む権限をRAMロールBに付与すると、スケジュールされたSQLジョブはRAMロールBを引き受けて、SQL分析結果を宛先Logstoreに書き込むことができます。

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

  2. 宛先Logstoreにデータを書き込む権限を付与するポリシーを作成します。

    1. 左側のナビゲーションウィンドウで、権限 > ポリシー.

    2. [ポリシー] ページで、ポリシーの作成.

    3. On theポリシーの作成ページをクリックし、JSONタブをクリックします。

      コードエディターの既存のスクリプトを次のいずれかのポリシードキュメントに置き換えます。

      • 正確な名前を使用してリソースを一致させるポリシー

        この例では、ターゲットプロジェクトの名前はlog-project-prodです。 宛先Logstoreの名前はwebsite_log_outputです。 名前は、プロジェクトとLogstoreの実際の名前に置き換えることができます。

        重要

        ポリシーを作成するときは、Logstoreキーワードの後にlogstoreまたはMetricstoreを指定できます。 Metricstoreを管理する場合は、次のポリシードキュメントを参照してポリシーを作成することもできます。

        {
          "Version": "1",
          "Statement": [
            {
              "Action": [
                "log:Post*",
                "log:BatchPost*"
              ],
               "Resource": "acs:log:*:*:project/log-project-prod/logstore/website_log_output",
              "Effect": "Allow"
            }
          ]
        }
      • ワイルドカード文字を使用してリソースを照合するポリシー

        この例では、ターゲットプロジェクトの名前は、log-project-dev-a、log-project-dev-b、およびlog-project-dev-cです。 宛先Logstoreの名前は、website_a_log_output、website_b_log_output、およびwebsite_c_log_outputです。 名前は、プロジェクトとLogstoreの実際の名前に置き換えることができます。

        {
          "Version": "1",
          "Statement": [
            {
              "Action": [
                "log:Post*",
                "log:BatchPost*"
              ],
               "Resource": "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log_output",
              "Effect": "Allow"
            }
          ]
        }
    4. クリックポリシー情報を編集する次に次のパラメーターを設定し、OK.

      パラメーター

      説明

      名前

      ポリシーの名前を入力します。 例: log-sink-write-policy

      説明

      ポリシーの説明を入力します。

  3. RAMロールBに権限を付与します。

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

    2. RAMロールBを見つけて、権限付与[アクション] 列に表示されます。

    3. [ポリシーの選択] セクションで [カスタムポリシー] をクリックし、ステップ2で作成したポリシーを選択します。 [OK] をクリックします。 この例では、log-sink-write-policyポリシーが選択されています。

    4. 承認結果を確認します。 次に、[完了] をクリックします。

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

    1. [ロール] ページで、RAMロールBの名前をクリックします。

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

    3. 信頼ポリシーを変更します。

      [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",
                          "ID of Alibaba Cloud Account A@log.aliyuncs.com"
                      ]
                  }
              }
          ],
          "Version": "1"
      }
    4. [信頼ポリシードキュメントの保存] をクリックします。

  5. RAMロールBのARNを取得します。

    RAMロールの詳細ページに移動し、[基本情報] セクションでロールのARNを表示します。 例: acs:ram::13 **** 44:role/logtarget。 ARNを記録することを推奨します。 スケジュールされたSQLジョブを作成するときにカスタムロールを使用する場合は、ARNを入力する必要があります。