当您使用RAM用户或跨阿里云账号投递日志服务数据到OSS时,需先完成RAM授权。本文介绍不同场景下的RAM授权步骤。

前提条件

OSS Bucket拥有者已完成授权。具体操作,请参见云资源访问授权

授权完成后,日志服务有权限扮演角色(STS机制)对OSS Bucket进行写入操作。

概述

不同场景下,配置投递任务所需完成的RAM授权。

修改授权策略

通过云资源访问授权后,AliyunLogDefaultRole角色被授予AliyunLogRolePolicy权限,日志服务具有所有OSS Bucket的写入权限。如果您需要更精细的访问控制粒度,请解除AliyunLogDefaultRole角色的AliyunLogRolePolicy权限,为AliyunLogDefaultRole角色授予自定义权限策略。具体操作,请参见RAM Policy概述

跨阿里云账号投递

如果您的日志服务Project和OSS Bucket不在同一个阿里云账号时需完成RAM授权才能进行投递操作,例如将阿里云账号A下的日志服务中的日志投递至阿里云账号B下的OSS Bucket中,您可以按照以下步骤进行授权。

说明 创建OSS投递任务时,只能指定一个OSS Bucket。故投递任务支持将阿里云账号A的日志投递到阿里云账号B,不支持将阿里云账号A的日志同时投递到阿里云账号B和C。如果您需要同时投递到两个阿里云账号的OSS Bucket,可以创建两个投递任务。
  1. 阿里云账号B通过云资源访问授权创建角色AliyunLogDefaultRole。
  2. 使用阿里云账号B登录RAM 控制台
  3. 在左侧导航栏中,选择身份管理 > 角色
  4. 在RAM角色列表中,单击AliyunLogDefaultRole。
  5. 信任策略管理页签中,单击修改信任策略
    Service配置项中添加账号A对应的阿里云账号ID@log.aliyuncs.com,其中请根据实际情况替换账号A对应的阿里云账号ID,您可以在账号中心中查看阿里云账号ID。该策略表示阿里云账号A有权限通过日志服务获取临时Token来操作阿里云账号B的资源。
    {
    "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。

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

通过RAM用户投递(跨账号)

如果阿里云账号A下的RAM用户A1创建投递任务,要将阿里云账号A下的日志服务中的数据投递至阿里云账号B下的OSS Bucket中,需要由阿里云账号A为RAM用户A1授予PassRole权限。

  1. 阿里云账号B已完成跨阿里云账号投递中的配置。
  2. 使用阿里云账号A登录RAM 控制台
  3. 创建RAM用户A1。具体操作,请参见创建RAM用户
  4. 为RAM用户A1授予AliyunRAMFullAccess权限。
    1. 在左侧导航栏中,单击身份管理 > 用户
    2. 找到RAM用户A1,单击添加权限
    3. 选中系统策略下的AliyunRAMFullAccess,单击确定

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

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

      {
      "Statement": [
      {
      "Action": "ram:PassRole",
      "Effect": "Allow",
      "Resource": "acs:ram::1111111:role/aliyunlogdefaultrole"
      }
      ],
      "Version": "1"
      }
  5. 获取RAM角色标识(ARN)。
    在该角色的基本信息中查看,例如acs:ram::13234:role/logrole。

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

通过RAM用户投递(同账号)

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

  1. 使用阿里云账号登录RAM 控制台
  2. 创建权限策略。
    1. 在左侧导航栏中,单击权限管理 > 权限策略管理
    2. 单击创建权限策略
    3. 新建自定义权限策略页面中,配置如下参数,并单击确定
      参数 说明
      策略名称 配置策略名称。
      配置模式 选择脚本配置
      策略内容 将配置框中的原有脚本替换为如下内容。
      说明 权限策略中需要包含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中创建的策略,然后单击确定