授予RAM用户告警操作权限

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

前提条件

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

授予RAM用户告警只读权限

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

使用阿里云账号(主账号)登录RAM控制台,为RAM用户授予告警只读管理权限(AliyunLogReadOnlyAccess)。具体操作,请参见为RAM用户授权

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

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

  2. 创建权限策略。

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

    2. 单击创建权限策略

    3. 脚本编辑页签,将配置框中的原有脚本替换为如下内容,然后单击继续编辑基本信息

      说明
      • 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/*"
            ]
          }
        ]
      }
    4. 创建权限策略页,填写名称,然后单击确定

  3. 为RAM用户授权。

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

    2. 找到目标RAM用户,单击添加权限

    3. 新增授权面板的权限策略区域,在下拉列表选择自定义策略,然后选中您在步骤2中创建的权限策略,然后单击确认新增授权

授予RAM用户告警管理权限

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

使用阿里云账号(主账号)登录RAM控制台,为RAM用户授予日志服务管理权限(AliyunLogFullAccess)。具体操作,请参见为RAM用户授权

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

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

  2. 创建权限策略。

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

    2. 单击创建权限策略

    3. 脚本编辑页签,将配置框中的原有脚本替换为如下内容,然后单击继续编辑基本信息

      说明
      • 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/*"
            ]
          }
        ]
      }
    4. 创建权限策略页,填写名称,然后单击确定

  3. 为RAM用户授权。

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

    2. 找到目标RAM用户,单击添加权限

    3. 新增授权面板的权限策略区域,在下拉列表选择自定义策略,然后选中您在步骤2中创建的权限策略,然后单击确认新增授权

跨Project告警监控日志

配置授权

重要

如果使用RAM用户配置监控规则,必须使用阿里云账号(主账号)授予RAM用户告警管理权限

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

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

    授权方式

    说明

    默认

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

    内置角色

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

    自定义角色

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

    具体配置如下:

    默认授权

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

    image

    内置角色授权

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

    image

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

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

    1. 使用阿里云主账号

      1. 创建可信实体为日志服务的RAM角色

      2. 通过脚本编辑模式创建自定义权限策略

        image

        输入以下脚本。其中,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角色授权

      4. 查看获取RAM角色标识(ARN)

    2. 在使用自定义角色授权时,使用该RAM角色标识。

      image

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

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

    1. 使用阿里云主账号。

      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. 通过脚本编辑模式创建自定义权限策略

        image

        将配置框中的原有脚本替换为如下内容。其中,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)

    2. 在使用自定义角色授权时,使用该RAM角色标识。

      image

RAM用户授权

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

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