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

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

最終更新日:Jan 26, 2025

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

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

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

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

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

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

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

    ファジーマッチ認証

    複数のプロジェクトとLogstoreに対する権限を付与する場合は、承認にファジー一致を使用できます。 この例では、ソースプロジェクトの名前は、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"
                ],
                "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リソース名 (ARN) を取得します。 詳細については、「」をご参照ください。RAMロールに関する情報の表示.

  2. スケジュールされたSQLジョブを作成するときに、[SQL実行許可] パラメーターを [カスタムロール] に設定し、[QueryLogstoreRole] RAMロールのAlibaba Cloudリソース名 (ARN) を入力します。 詳細については、「スケジュールされたSQLジョブの作成」をご参照ください。 image

RAMロールに、宛先Logstoreにデータを書き込む権限を付与する

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

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

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

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

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "log.aliyuncs.com"
              ]
            }
          }
        ],
        "Version": "1"
      }
  3. WriteLogstorePolicyという名前のカスタムポリシーを作成します。 ポリシーは、宛先Logstoreにログを書き込む権限を付与します。 詳細については、「」をご参照ください。[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"
        }
      ]
    }

    承認のためのファジーマッチ

    複数のプロジェクトとLogstoreに対する権限を付与する場合は、承認にファジー一致を使用できます。 この例では、ターゲットプロジェクトの名前は、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. WriteLogstorePolicyポリシーをWriteLogstoreRole RAMロールにアタッチします。 詳細については、「」をご参照ください。RAMロールに権限を付与する.

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

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

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

      重要

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

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "log.aliyuncs.com",
                "ID of Alibaba Cloud Account A to which the source Logstore belongs@log.aliyuncs.com"
              ]
            }
          }
        ],
        "Version": "1"
      }

次に何をすべきか

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

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