全部產品
Search
文件中心

Simple Log Service:使用自訂角色建立定時SQL任務

更新時間:Jan 04, 2025

Log Service支援使用預設角色AliyunLogETLRole或自訂角色建立定時SQL任務。本文介紹如何授權自訂RAM角色分析和寫入Logstore。

授予自訂RAM角色分析源Logstore的許可權

  1. 使用阿里雲帳號(主帳號)或Resource Access Management員登入源Logstore所在阿里雲的RAM控制台

  2. 建立一個RAM角色,例如命名為:QueryLogstoreRole。具體操作,請參見建立可信實體為阿里雲服務的RAM角色

    重要
    • 建立RAM角色時,必須選擇可信實體類型阿里雲服務,且必須選擇受信服務Log Service

    • 請檢查角色的信任策略如下,Service內容至少包含"log.aliyuncs.com"

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "log.aliyuncs.com"
              ]
            }
          }
        ],
        "Version": "1"
      }
  3. 建立一個自訂權限原則,例如命名為:QueryLogstorePolicy。該策略具備分析源Logstore日誌的許可權。具體操作,請參見通過指令碼編輯模式建立自訂權限原則

    其中在指令碼編輯頁簽,您可選擇使用精確授權或模糊比對授權指令碼替換配置框中的原有內容。

    精確授權

    指令碼中的{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"
            }
        ]
    }

    模糊比對授權

    例如源Project名稱為log-project-dev-a、log-project-dev-b、log-project-dev-c等,源Logstore名稱為website_a_log、website_b_log、website_c_log等,則您可以使用模糊比對授權。在實際情境中,請根據實際情況替換Project名稱和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. 為RAM角色QueryLogstoreRole授予自訂權限原則QueryLogstorePolicy具體操作,請參見為RAM角色授權

後續操作

  1. 擷取RAM角色標識(ARN),具體操作,請參見查看RAM角色

  2. 在建立定時SQL任務時,選擇執行SQL授權自訂角色。並輸入RAM角色QueryLogstoreRole的標識(ARN)。更多資訊,請參見建立定時SQL任務image

授予自訂RAM角色寫目標Logstore的許可權

  1. 使用阿里雲帳號(主帳號)或Resource Access Management員登入目標Logstore所在阿里雲的RAM控制台

  2. 建立一個RAM角色,例如命名為:WriteLogstoreRole。具體操作,請參見建立可信實體為阿里雲服務的RAM角色

    重要
    • 建立RAM角色時,必須選擇可信實體類型阿里雲服務,且必須選擇受信服務Log Service

    • 請檢查角色的信任策略如下,Service內容至少包含"log.aliyuncs.com"

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "log.aliyuncs.com"
              ]
            }
          }
        ],
        "Version": "1"
      }
  3. 建立一個自訂權限原則,例如命名為:WriteLogstorePolicy。該策略具備寫入資料到目標Logstore的許可權。具體操作,請參見通過指令碼編輯模式建立自訂權限原則

    其中在指令碼編輯頁簽,您可選擇使用精確授權或模糊比對授權指令碼替換配置框中的原有內容。

    精確授權

    指令碼中的{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"
        }
      ]
    }

    模糊比對授權

    例如目標Project名稱為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等,則您可以使用模糊比對授權。在實際情境中,請根據實際情況替換Project名稱和Logstore名稱。

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "log:Post*",
            "log:BatchPost*"
          ],
           "Resource": "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log_output",
          "Effect": "Allow"
        }
      ]
    }
  4. 為RAM角色WriteLogstoreRole授予自訂權限原則WriteLogstorePolicy具體操作,請參見為RAM角色授權

  5. 可選)如果源Logstore目標Logstore不在同一個阿里雲帳號,您還需要修改RAM角色WriteLogstoreRole的信任策略。

    1. 在RAM角色列表中,單擊RAM角色WriteLogstoreRole

    2. 信任策略頁簽中,單擊編輯信任策略。並使用以下指令碼替換配置框中的原有內容。

      重要

      請根據實際情況替換{源Logstore所屬阿里雲帳號的ID}。您可以在帳號中心查看阿里雲帳號ID。

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "Service": [
                "log.aliyuncs.com",
                "{源Logstore所屬阿里雲帳號的ID}@log.aliyuncs.com"
              ]
            }
          }
        ],
        "Version": "1"
      }

後續操作

  1. 擷取RAM角色標識(ARN),具體操作,請參見查看RAM角色

  2. 在建立定時SQL任務時,選擇寫目標授權自訂角色。並輸入RAM角色WriteLogstoreRole的標識(ARN)。更多資訊,請參見建立定時SQL任務image