全部产品
Search
文档中心

日志服务:授权RAM用户操作告警

更新时间:Dec 16, 2024

本文介绍如何为RAM用户授予操作告警权限,并介绍在配置跨Project、地域和阿里云账号监控日志时,如何配置授权。

前提条件

已创建RAM用户。具体操作,请参见创建RAM用户

授权RAM用户只读访问告警

方式一:授予系统权限策略

为RAM用户授予告警只读管理权限(AliyunLogReadOnlyAccess)。具体操作,请参见为RAM用户授权

方式二:创建自定义权限策略进行授权

  1. 使用阿里云账号(主账号)或RAM管理员登录RAM控制台

  2. 创建一个自定义权限策略,其中在脚本编辑页签,请使用以下脚本替换配置框中的原有内容。具体操作,请参见通过脚本编辑模式创建自定义权限策略

    重要
    • Project名称表示用于只读告警数据的Project,请根据实际情况替换。

    • sls-alert-*表示当前阿里云账号下所有的全局告警中心Project。全局告警中心Project中包含该账号下所有告警规则的评估数据、发送的日志和告警相关的全局报表等。如果您不需要查看全局报表信息,可以在资源列表中删除acs:log:*:*:project/sls-alert-*/*

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "log:GetLogStore"
          ],
          "Resource": [
            "acs:log:*:*:project/Project名称/logstore/internal-alert-history",
            "acs:log:*:*:project/sls-alert-*/logstore/internal-alert-center-log"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "log:GetJob",
            "log:ListJobs"
          ],
          "Resource": "acs:log:*:*:project/Project名称/job/*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "log:GetProject"
          ],
          "Resource": [
            "acs:log:*:*:project/sls-alert-*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "log:GetLogStoreLogs",
            "log:ListLogStores",
            "log:GetIndex",
            "log:GetDashboard",
            "log:ListDashboard"
          ],
          "Resource": [
            "acs:log:*:*:project/Project名称/*",
            "acs:log:*:*:project/sls-alert-*/*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "log:GetResource",
            "log:ListResources",
            "log:GetResourceRecord",
            "log:ListResourceRecords"
          ],
          "Resource": [
            "acs:log:*:*:resource/*"
          ]
        }
      ]
    }
  3. 为RAM用户添加创建的自定义权限策略。具体操作,请参见为RAM用户授权

授权RAM用户管理告警

方式一:授予系统权限策略

为RAM用户授予日志服务管理权限(AliyunLogFullAccess)。具体操作,请参见为RAM用户授权

方式二:创建自定义权限策略进行授权

  1. 使用阿里云账号(主账号)或RAM管理员登录RAM控制台

  2. 创建一个自定义权限策略,其中在脚本编辑页签,请使用以下脚本替换配置框中的原有内容。具体操作,请参见通过脚本编辑模式创建自定义权限策略

    重要
    • Project名称表示用于管理告警数据的Project,请根据实际情况替换。

    • sls-alert-*表示当前阿里云账号下所有的全局告警中心Project。全局告警中心Project中包含该账号下所有告警规则的评估数据、发送的日志和告警相关的全局报表等。如果您只想授权RAM用户操作单个全局告警中心Project的权限,您可以将sls-alert-*配置为单个Project的名称,格式为sls-alert-${uid}-${region},例如sls-alert-148****6461-cn-hangzhou

    • 创建Logstore、创建索引及更新索引的权限策略,用于RAM用户操作告警相关的系统日志库(告警历史日志库、全局告警中心日志库),从而进行告警历史等报表的查看。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "log:GetLogStore",
            "log:UpdateLogStore",
            "log:CreateLogStore",
            "log:CreateIndex",
            "log:UpdateIndex"
          ],
          "Resource": [
            "acs:log:*:*:project/Project名称/logstore/internal-alert-history",
            "acs:log:*:*:project/sls-alert-*/logstore/internal-alert-center-log"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "log:*"
          ],
          "Resource": "acs:log:*:*:project/Project名称/job/*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "log:GetProject",
            "log:CreateProject"
          ],
          "Resource": [
            "acs:log:*:*:project/sls-alert-*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "log:GetLogStoreLogs",
            "log:ListLogStores",
            "log:GetIndex",
            "log:GetDashboard",
            "log:CreateDashboard",
            "log:UpdateDashboard",
            "log:ListDashboard"
          ],
          "Resource": [
            "acs:log:*:*:project/Project名称/*",
            "acs:log:*:*:project/sls-alert-*/*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "log:*"
          ],
          "Resource": [
            "acs:log:*:*:resource/*"
          ]
        }
      ]
    }
  3. 为RAM用户添加创建的自定义权限策略。具体操作,请参见为RAM用户授权

跨Project告警监控日志

配置授权

重要

如果使用RAM用户配置监控规则,必须授权RAM用户操作告警

  1. 添加查询统计。具体步骤,请参见创建告警监控规则

  2. 授权方式支持三种配置,说明如下:

    授权方式

    说明

    默认

    默认授权支持告警监控规则对所属同一个Project下的日志库或指标库进行查询统计。

    内置角色

    内置角色授权支持告警监控规则对当前主账号下其他任意Project下的日志库或指标库进行查询统计。

    自定义角色

    自定义角色授权支持告警监控规则对当前或其他主账号下的特定Project下的日志库或指标库进行查询统计。

    具体配置如下:

    默认授权

    高级配置页签中,选择授权方式默认

    image

    内置角色授权

    高级配置页签中,将授权方式配置为内置角色。如果是首次配置,需要使用阿里云主账号按照页面提示完成授权。授权后,日志服务将创建名称为AliyunSLSAlertMonitorRole的RAM角色,日志服务将扮演此角色以读取源日志库中的数据。

    image

    自定义角色授权(同账号)

    对同一个阿里云账号下的不同日志库或指标库进行告警监控时,您可以通过自定义角色实现告警监控。

    1. 创建可信实体为阿里云服务的RAM角色,其中受信服务请选择日志服务

    2. 创建一个自定义权限策略,其中在脚本编辑页签,请使用以下脚本替换配置框中的原有内容。具体操作,请参见通过脚本编辑模式创建自定义权限策略

      重要

      Project名称需根据实际情况替换。如果您需要更细粒度的授权,例如只允许在指定Project下创建监控规则,则可以在下述策略的Resource中指定具体的Project,例如acs:log:*:*:project/my-project

      {
        "Statement": [
          {
            "Action": [
              "log:ListProject"
            ],
            "Effect": "Allow",
            "Resource": [
              "acs:log:*:*:*"
            ]
          },
          {
            "Action": [
              "log:ListLogStores",
              "log:GetLogStoreLogs",
              "log:GetIndex"
            ],
            "Effect": "Allow",
            "Resource": [
              "acs:log:*:*:project/Project名称/*"
            ]
          }
        ],
        "Version": "1"
      }
    3. 为RAM角色添加创建的自定义权限。具体操作,请参见为RAM角色授权

    后续操作

    1. 获取RAM角色标识(ARN),具体操作,请参见查看RAM角色

    2. 在使用自定义角色授权时,使用该RAM角色标识。更多信息,请参见创建告警监控规则

      image

    自定义角色授权(跨账号)

    对跨阿里云账号下的不同日志库或指标库进行告警监控时,您可以通过自定义角色实现告警监控。例如在阿里云账号A中创建告警,监控阿里云账号B下的日志库或指标库。

    在阿里云账号B进行以下操作:

    1. 创建可信实体为阿里云服务的RAM角色,其中受信服务请选择日志服务

    2. 修改RAM角色的信任策略。具体操作,请参见修改RAM角色的信任策略

      重要

      请根据实际情况替换阿里云账号A的ID。您可以在账号中心中查看阿里云账号ID。

      {
          "Statement": [
              {
                  "Action": "sts:AssumeRole",
                  "Effect": "Allow",
                  "Principal": {
                      "Service": [
                          "阿里云账号A的ID@log.aliyuncs.com",
                          "log.aliyuncs.com"
                      ]
                  }
              }
          ],
          "Version": "1"
      }
    3. 创建一个自定义权限策略,其中在脚本编辑页签,请使用以下脚本替换配置框中的原有内容。具体操作,请参见通过脚本编辑模式创建自定义权限策略

      重要

      将配置框中的原有脚本替换为如下内容。其中,Project名称需根据实际情况替换。如果您想要更细粒度的授权,例如只允许在指定Project下创建监控规则,则可以在下述策略的Resource中指定具体的Project,例如acs:log:*:*:project/my-project

      {
        "Statement": [
          {
            "Action": [
              "log:ListProject"
            ],
            "Effect": "Allow",
            "Resource": [
              "acs:log:*:*:*"
            ]
          },
          {
            "Action": [
              "log:ListLogStores",
              "log:GetLogStoreLogs",
              "log:GetIndex"
            ],
            "Effect": "Allow",
            "Resource": [
              "acs:log:*:*:project/Project名称/*"
            ]
          }
        ],
        "Version": "1"
      }
    4. 为RAM角色添加创建的自定义权限。具体操作,请参见为RAM角色授权

    5. 获取RAM角色标识(ARN),具体操作,请参见查看RAM角色

    后续操作

    1. 获取RAM角色标识(ARN),具体操作,请参见查看RAM角色

    2. 在阿里云账号A中创建告警时,选择自定义角色授权,角色 ARN使用在阿里云账号B中创建的RAM角色标识。更多信息,请参见创建告警监控规则

      image

RAM用户授权

当告警监控规则跨Project、地域和阿里云账号监控目标时,如果需要使用RAM用户查询日志库或指标库,必须使用阿里云主账号为RAM用户添加如下权限策略,用于扮演相应的角色。为RAM用户授权的操作步骤,请参见为RAM用户授权

{
    "Version": "1",
    "Statement": [
        {
            "Action": "ram:PassRole",
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}