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

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

前提条件

OSS Bucket拥有者已创建RAM角色(AliyunLogDefaultRole),具体步骤请参见云资源访问授权

使用RAM用户创建OSS投递任务

重要

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

Logstore和Bucket属于同账号

如果您要使用RAM用户创建投递任务,需由阿里云账号为RAM用户授予相关权限。

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

  2. 创建权限策略。

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

    2. 单击创建权限策略

    3. 选择脚本编辑。将策略文档中的原有脚本替换为如下内容,然后单击继续编辑基本信息

    4. 输入策略名称,然后单击确定

      说明

      权限策略中需要包含PassRole权限。

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "log:*",
            "Resource": "*"
          },
          {
            "Effect": "Allow",
            "Action": "ram:PassRole",
            "Resource": "*"
          }
        ]
      }
  3. 创建RAM用户。具体操作,请参见创建RAM用户

  4. 为RAM用户授权。

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

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

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

Logstore和Bucket属于不同账号

Logstore和Bucket属于不同云账号,Logstore属于A账号,Bucket属于B账号。

  1. B账号完成前提条件。

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

  3. 使用阿里云账号A登录RAM 控制台

  4. 创建RAM用户A1。具体操作,请参见创建RAM用户

  5. 为RAM用户A1授予AliyunRAMFullAccess权限。

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

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

    3. 权限策略区域,搜索并选中AliyunRAMFullAccess,然后单击确认新增授权

      授权成功后,RAM用户A1具备访问控制(RAM)的所有权限。

      如果您需要控制RAM用户A1的权限范围,只授予投递到OSS的必要权限,可以为RAM用户A1授予自定义权限策略,策略脚本如下所示,其中Resource中配置为账号B的AliyunLogDefaultRole的角色标识。创建自定义权限策略的操作步骤请参见创建自定义权限策略

      {
      "Statement": [
      {
      "Action": "ram:PassRole",
      "Effect": "Allow",
      "Resource": "acs:ram::${阿里云账号B的主账号ID}:role/aliyunlogdefaultrole"
      }
      ],
      "Version": "1"
      }
  6. 获取RAM角色标识(ARN)。

    在该角色的基本信息中查看,例如acs:ram::13234:role/logrole。

    使用RAM用户A1配置投递任务时,写OSS RAM角色中输入此步骤中获取的RAM角色标识。

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

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

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

  • Logstore和Bucket属于同一云账号:只需完成前提条件。

  • Logstore和Bucket属于不同云账号,Logstore属于A账号,Bucket属于B账号。

    1. B账号完成前提条件。

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

修改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"
    }
  6. 获取RAM角色标识(ARN)。在该角色的基本信息中查看,例如acs:ram::13234:role/logrole

  7. 阿里云账号A配置投递任务时,在写OSS RAM角色中输入此步骤中获取的RAM角色标识。

相关文档

日志服务可以通过扮演AliyunLogDefaultRole获取所有Bucket的写入权限,如果需要缩小权限范围,请解除AliyunLogDefaultRole角色的AliyunLogRolePolicy权限,为AliyunLogDefaultRole角色授予自定义权限策略