跨Project监控数据授权

当告警监控规则跨Project、地域和阿里云账号监控目标时,日志服务需要通过扮演RAM角色的方式访问日志库或时序库,您需要进行相应的授权。

使用场景

授权方式

适用场景

默认

对告警监控规则所在的同一个Project内,不同日志库和时序库进行协同告警监控。

内置角色

对告警监控规则所在同一个阿里云账号内,不同Project的日志库和时序库进行协同告警监控。

自定义角色

对告警监控规则所在不同阿里云账号进行监控,或者对RAM角色的访问控制权限有更精细的要求。

步骤一:配置授权

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

  2. 配置授权方式。

    默认授权

    对同一个Project内的不同日志库和时序库进行告警监控时,使用默认授权方式。

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

    内置角色授权

    对同一个阿里云账号的不同日志库和时序库进行告警监控时,使用内置角色授权。

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

      重要

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

      {
          "Statement": [
              {
                  "Action": "sts:AssumeRole",
                  "Effect": "Allow",
                  "Principal": {
                      "Service": [
                          "阿里云账号AID@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用户授权

设置内置角色自定义角色后,如果需要使用RAM用户查询时序库或日志库,必须使用阿里云主账号为RAM用户添加如下权限策略,用于扮演相应的角色。为RAM用户授权的操作步骤,请参见RAM用户授权

{
     "Action": "ram:PassRole",
     "Effect": "Allow",
     "Resource": "acs:ram::阿里云账号ID:角色ARN"
 }