配置自定义角色权限(同账号场景)

日志服务定时SQL任务运行时,将在源Logstore中执行SQL分析操作,并将分析结果保存到目标Logstore中。您可以授予定时SQL任务使用自定义角色来完成以上操作。如果源Logstore和目标Logstore属于同一个阿里云账号,您可参考本文档完成授权操作。定时SQL任务支持Logstore和MetricStore,本文以Logstore为例进行说明。

前提条件

已创建RAM角色。具体操作,请参见创建可信实体为阿里云服务的RAM角色

重要
  • 创建RAM角色时,必须选择可信实体类型阿里云服务,且必须选择受信服务日志服务

  • 请检查角色的信任策略如下,Service内容至少包含"log.aliyuncs.com"

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

授予RAM角色分析源Logstore的权限

授予RAM角色分析源Logstore的权限后,定时SQL任务可以使用该角色在Logstore中执行SQL分析操作。

  1. 登录RAM控制台

  2. 创建具备分析源Logstore日志权限的策略。

    1. 在左侧导航栏,选择权限管理 > 权限策略

    2. 单击创建权限策略

    3. 创建权限策略页面中,单击脚本编辑,然后将编辑框中的原有脚本替换为如下内容,您可选择使用精确授权或模糊匹配授权。

      精确授权

      例如源Project名称为log-project-prod,源Logstore名称为website_log。在实际场景中,请根据实际情况替换Project名称和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"
              }
          ]
      }

      模糊匹配授权

      例如源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",
                      "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. 单击确定后继续编辑基本信息,配置如下参数。

      参数

      说明

      名称

      配置策略名称。

      备注

      创建策略的简单注释。

  3. 为RAM角色授权。

    1. 在左侧导航栏中,选择身份管理 > 角色

    2. 单击目标RAM角色对应的新增授权

    3. 选择步骤2中创建的权限策略,并单击确认新增授权

    4. 完成后单击关闭

授予RAM角色写目标Logstore的权限

授予RAM角色写入目标Logstore的权限后,定时SQL任务可以使用该角色将SQL分析结果写入到目标Logstore中。

  1. 登录RAM控制台

  2. 创建具备写目标Logstore权限的策略。

    1. 在左侧导航栏,选择权限管理 > 权限策略

    2. 单击创建权限策略

    3. 创建权限策略页面中,单击脚本编辑,然后将编辑框中的原有脚本替换为如下内容,您可选择使用精确授权或模糊匹配授权。

      精确授权

      例如目标Project名称为log-project-prod,目标Logstore名称为website_log_output。在实际场景中,请根据实际情况替换Project名称和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"
          }
        ]
      }

      模糊匹配授权

      例如目标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. 单击确定后继续编辑基本信息,配置如下参数。

      参数

      说明

      名称

      配置策略名称。

      备注

      创建策略的简单注释。

  3. 为RAM角色授权。

    1. 在左侧导航栏中,选择身份管理 > 角色

    2. 单击目标RAM角色对应的新增授权

    3. 选择步骤2中创建的权限策略,并单击确认新增授权

    4. 完成后单击关闭