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

Simple Log Service:カスタム RAM ロールを使用してスケジュール済み SQL ジョブを作成する

最終更新日:Mar 22, 2025

Simple Log Service では、デフォルトロール AliyunLogETLRole またはカスタム Resource Access Management (RAM) ロールを使用してスケジュール済み SQL ジョブを作成できます。このトピックでは、カスタム RAM ロールにソースログストアのログを分析する権限と、デスティネーションログストアにデータを書き込む権限を付与する方法について説明します。

カスタム RAM ロールにソースログストアのログを分析する権限を付与する

  1. Alibaba Cloud アカウントを使用するか、管理権限を持つ RAM ユーザーとして、[RAM コンソール] にログオンします。

  2. QueryLogstoreRole という名前の RAM ロールを作成します。詳細については、「手順 1: RAM ロールの作成」をご参照ください。

    重要
    • RAM ロールを作成する際は、[信頼エンティティの選択] パラメーターを [alibaba Cloud サービス] に設定し、[信頼サービスの選択] パラメーターを [log Service] に設定する必要があります。

    • RAM ロールの信頼ポリシーを確認します。Service 要素に少なくとも "log.aliyuncs.com" が含まれていることを確認してください。

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "log.aliyuncs.com" // Log Service
              ]
            }
          }
        ],
        "Version": "1"
      }
  3. QueryLogstorePolicy という名前のカスタムポリシーを作成します。このポリシーは、ソースログストアのログを分析する権限を付与します。 詳細については、「JSON タブでカスタムポリシーを作成する」をご参照ください。

    [JSON] タブのポリシー作成ページで、権限付与に完全一致またはあいまい一致を使用するポリシードキュメントを使用して、コードエディタ内の既存のスクリプトを置き換えることができます。

    権限付与の完全一致

    ビジネス要件に基づいて、スクリプト内の {project-name}{logstore-name} を置き換えます。

    重要

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

    {
        "Version":"1",
        "Statement":[
            {
                "Action":[
                    "log:PostProjectQuery" // プロジェクトクエリを実行
                ],
                "Resource":[
                    "acs:log:*:*:project/{project-name}/logstore/{logstore-name}" // プロジェクト名とログストア名を指定
                ],
                "Effect":"Allow"
            },
            {
                "Action":[
                    "log:GetProjectQuery", // プロジェクトクエリを取得
                    "log:PutProjectQuery", // プロジェクトクエリを更新
                    "log:DeleteProjectQuery" // プロジェクトクエリを削除
                ],
                "Resource":[
                    "acs:log:*:*:project/{project-name}" // プロジェクト名を指定
                ],
                "Effect":"Allow"
            }
        ]
    }

    権限付与のあいまい一致

    複数のプロジェクトとログストアに権限を付与する場合は、あいまい一致を使用できます。この例では、ソースプロジェクトの名前は log-project-dev-a、log-project-dev-b、log-project-dev-c です。ソースログストアの名前は website_a_log、website_b_log、website_c_log です。ビジネス要件に基づいて、プロジェクト名とログストア名を置き換えることができます。

    {
        "Version":"1",
        "Statement":[
            {
                "Action":[
                    "log:PostProjectQuery" // プロジェクトクエリを実行
                ],
                "Resource":[
                    "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. QueryLogstorePolicy ポリシーを QueryLogstoreRole ロールにアタッチします。詳細については、「RAM ロールに権限を付与する」をご参照ください。

次の手順

  1. RAM ロールの Alibaba Cloud Resource Name (ARN) を取得します。詳細については、「RAM ロールの情報を表示する」をご参照ください。

  2. スケジュール済み SQL ジョブを作成する際は、[SQL 実行認証] パラメーターを [カスタムロール] に設定し、QueryLogstoreRole RAM ロールの Alibaba Cloud Resource Name (ARN) を入力します。詳細については、「スケジュール済み SQL ジョブを作成する」をご参照ください。image

RAM ロールにデスティネーションログストアにデータを書き込む権限を付与する

  1. Alibaba Cloud アカウントを使用するか、管理権限を持つ RAM ユーザーとして、[RAM コンソール] にログオンします。

  2. WriteLogstoreRole という名前の RAM ロールを作成します。詳細については、「手順 1: RAM ロールの作成」をご参照ください。

    重要
    • RAM ロールを作成する際は、[信頼エンティティの選択] パラメーターを [alibaba Cloud サービス] に設定し、[信頼サービスの選択] パラメーターを [log Service] に設定する必要があります。

    • RAM ロールの信頼ポリシーを確認します。Service 要素に少なくとも "log.aliyuncs.com" が含まれていることを確認してください。

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole", // ロールを引き受ける
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "log.aliyuncs.com" // Log Service
              ]
            }
          }
        ],
        "Version": "1"
      }
  3. WriteLogstorePolicy という名前のカスタムポリシーを作成します。このポリシーは、宛先ログストアにログを書き込む権限を付与します。 詳細については、「JSON タブでカスタムポリシーを作成する」をご参照ください。

    [JSON] タブのポリシー作成ページで、権限付与に完全一致またはあいまい一致を使用するポリシードキュメントを使用して、コードエディタ内の既存のスクリプトを置き換えることができます。

    権限付与の完全一致

    ビジネス要件に基づいて、スクリプト内の {project-name}{logstore-name} を置き換えます。

    重要

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

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "log:PostLogStoreLogs", // ログストアにログを書き込む
            "log:PostProjectQuery", // プロジェクトクエリを実行
            "log:BatchPostLogStoreLogs" // ログストアにログをバッチ書き込み
          ],
           "Resource": "acs:log:*:*:project/{project-name}/logstore/{logstore-name}", // プロジェクト名とログストア名を指定
          "Effect": "Allow"
        }
      ]
    }

    権限付与のあいまい一致

    複数のプロジェクトとログストアに権限を付与する場合は、あいまい一致を使用できます。この例では、デスティネーションプロジェクトの名前は log-project-dev-a、log-project-dev-b、log-project-dev-c です。デスティネーションログストアの名前は website_a_log_output、website_b_log_output、website_c_log_output です。ビジネス要件に基づいて、プロジェクト名とログストア名を置き換えることができます。

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "log:Post*", // Post で始まるすべてのアクション // Post で始まるすべてのアクション
            "log:BatchPost*" // BatchPost で始まるすべてのアクション // BatchPost で始まるすべてのアクション
          ],
           "Resource": "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log_output", // ワイルドカード (*) を使用して複数のプロジェクトとログストアを指定
          "Effect": "Allow"
        }
      ]
    }
  4. WriteLogstorePolicy ポリシーを WriteLogstoreRole ロールにアタッチします。詳細については、「RAM ロールに権限を付与する」をご参照ください。

  5. オプション。ソースログストアとデスティネーションログストアが同じ Alibaba Cloud アカウント内にない場合は、WriteLogstoreRole RAM ロールの信頼ポリシーを変更する必要があります。

    1. ロールページで、WriteLogstoreRole RAM ロールをクリックします。

    2. [信頼ポリシー] タブで、[信頼ポリシーの編集] をクリックし、コードエディタ内の既存のスクリプトを次のポリシードキュメントに置き換えます。

      重要

      ソースログストアが属する Alibaba Cloud アカウント A の ID を Alibaba Cloud アカウントの ID に置き換えます。Alibaba Cloud アカウントの ID は、[アカウントセンター] コンソールで確認できます。

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole", // ロールを引き受ける
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "log.aliyuncs.com", // Log Service
                "ソースログストアが属する Alibaba Cloud アカウント A の ID@log.aliyuncs.com" // ソースアカウントの Log Service
              ]
            }
          }
        ],
        "Version": "1"
      }

次の手順

  1. RAM ロールの Alibaba Cloud Resource Name (ARN) を取得します。詳細については、「RAM ロールの情報を表示する」をご参照ください。

  2. スケジュール済み SQL ジョブを作成する際は、[書き込み認証] パラメーターを [カスタムロール] に設定し、WriteLogstoreRole RAM ロールの ARN を入力します。詳細については、「スケジュール済み SQL ジョブを作成する」をご参照ください。image