全部产品
Search
文档中心

日志服务:投递日志到OSS的RAM授权管理

更新时间:Dec 05, 2024

本文介绍用户将Logstore的日志投递到本账号或其他账号下的OSS Bucket的过程中,涉及的RAM权限配置步骤。

使用RAM用户创建OSS投递任务(推荐)

重要

每一个OSS投递任务只能指定一个OSS Bucket,如果您需要同时投递到两个阿里云账号的OSS Bucket,请创建两个投递任务。

同账号投递

Logstore和Bucket属于同一阿里云账号。

操作步骤

  1. 创建RAM用户ram-user。具体操作,请参见创建RAM用户

  2. 授权RAM用户ram-user读取Logstore数据以及投递数据到OSS。

    1. 创建自定义权限策略ShipLogsToOSS,策略脚本如下所示。具体操作步骤,请参见创建自定义权限策略

      说明

      请根据实际情况替换脚本中的Project名称Logstore名称

      {
        "Version": "1",
        "Statement": [{
          "Effect": "Allow",
          "Action": [
            "log:GetLogStore",
            "log:GetIndex",
            "log:GetLogStoreHistogram",
            "log:GetLogStoreLogs"
          ],
          "Resource": [
            "acs:log:*:*:project/Project名称/logstore/Logstore名称",
            "acs:log:*:*:project/Project名称/logstore/internal-diagnostic_log"
          ]
        },
          {
            "Effect": "Allow",
            "Action": [
              "log:CreateJob",
              "log:UpdateJob",
              "log:DeleteJob",
              "log:ListJobs",
              "log:GetJob"
            ],
            "Resource": "acs:log:*:*:project/Project名称/job/*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "log:ListLogStores",
              "log:ListDashboard",
              "log:ListSavedSearch"
            ],
            "Resource": "acs:log:*:*:project/Project名称/*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "ram:PassRole",
              "ram:GetRole",
              "ram:ListRoles"
            ],
            "Resource": "*"
          }
        ]
      }

后续操作

使用RAM用户登录日志服务控制台,并创建OSS投递任务。具体操作,请参见创建OSS投递任务(旧版)

跨账号投递

Logstore和Bucket属于不同阿里云账号,假如Logstore属于A账号,Bucket属于B账号。

操作步骤

  1. B账号修改AliyunLogDefaultRole的信任策略,以便于A账号可以写入B账号的Bucket。

  2. A账号创建RAM用户ram-user-a。具体操作,请参见创建RAM用户

  3. 授权RAM用户ram-user-a读取Logstore数据以及投递数据到OSS。

    1. 创建自定义权限策略ShipLogsToOSS,策略脚本如下所示,其中请根据实际情况替换{阿里云账号B的主账号ID}。具体操作步骤,请参见创建自定义权限策略

      {
        "Version": "1",
        "Statement": [{
          "Effect": "Allow",
          "Action": [
            "log:GetLogStore",
            "log:GetIndex",
            "log:GetLogStoreHistogram",
            "log:GetLogStoreLogs"
          ],
          "Resource": [
            "acs:log:*:*:project/Project名称/logstore/Logstore名称",
            "acs:log:*:*:project/Project名称/logstore/internal-diagnostic_log"
          ]
        },
          {
            "Effect": "Allow",
            "Action": [
              "log:CreateJob",
              "log:UpdateJob",
              "log:DeleteJob",
              "log:ListJobs",
              "log:GetJob"
            ],
            "Resource": "acs:log:*:*:project/Project名称/job/*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "log:ListLogStores",
              "log:ListDashboard",
              "log:ListSavedSearch"
            ],
            "Resource": "acs:log:*:*:project/Project名称/*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "ram:PassRole",
              "ram:GetRole",
              "ram:ListRoles"
            ],
            "Resource": "acs:ram::{阿里云账号B的主账号ID}:role/aliyunlogdefaultrole"
          }
        ]
      }
    2. 为RAM用户ram-user-a添加ShipLogsToOSS权限。具体操作,请参见为RAM用户授权

后续操作

使用RAM用户登录日志服务控制台,并创建OSS投递任务。具体操作,请参见创建OSS投递任务(旧版)

使用阿里云主账号创建OSS投递任务

重要
  • 阿里云主账号拥有账号下所有云资源的管理权限,为了降低安全风险,强烈建议使用RAM用户。

  • 每一个OSS投递任务只能指定一个OSS Bucket,如果您需要同时投递到两个阿里云账号的OSS Bucket,请创建两个投递任务。

同账号投递

Logstore和Bucket属于同一阿里云账号。

操作步骤

创建RAM角色(AliyunLogDefaultRole),具体步骤请参见云资源访问授权

后续操作

使用阿里云账号(主账号)登录日志服务控制台,并创建OSS投递任务。具体操作,请参见创建OSS投递任务(旧版)

跨账号投递

Logstore和Bucket属于不同阿里云账号,假如Logstore属于A账号,Bucket属于B账号。

操作步骤

  1. B账号创建RAM角色(AliyunLogDefaultRole),具体步骤请参见云资源访问授权

  2. B账号修改AliyunLogDefaultRole的信任策略,以便于A账号可以写入B账号的Bucket。

后续操作

使用阿里云账号(主账号)登录日志服务控制台,并创建OSS投递任务。具体操作,请参见创建OSS投递任务(旧版)

修改AliyunLogDefaultRole的信任策略

将阿里云账号A下的日志投递至账号B下的OSS Bucket中,需要修改AliyunLogDefaultRole的信任策略。操作步骤如下所示:

  1. 阿里云账号B在云资源访问授权页面,创建角色AliyunLogDefaultRole。

  2. 使用阿里云账号B登录RAM 控制台

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

  4. 在RAM角色列表中,单击AliyunLogDefaultRole

  5. 信任策略页签中,单击编辑信任策略

    说明

    Service配置项中添加{阿里云账号A的主账号ID}@log.aliyuncs.com,其中请根据实际情况替换{阿里云账号A的主账号ID},您可以在账号中心中查看阿里云账号ID。

    {
    "Statement": [
     {
       "Action": "sts:AssumeRole",
       "Effect": "Allow",
       "Principal": {
         "Service": [
           "{阿里云账号A的主账号ID}@log.aliyuncs.com",
           "log.aliyuncs.com"
         ]
       }
     }
    ],
    "Version": "1"
    }