本文介绍用户将Logstore的日志投递到本账号或其他账号下的OSS Bucket的过程中,涉及的RAM权限配置步骤。
前提条件
OSS Bucket拥有者已创建RAM角色(AliyunLogDefaultRole),具体步骤请参见云资源访问授权。
使用RAM用户创建OSS投递任务
每一个OSS投递任务只能指定一个OSS Bucket,如果您需要同时投递到两个阿里云账号的OSS Bucket,请创建两个投递任务。
Logstore和Bucket属于同账号
如果您要使用RAM用户创建投递任务,需由阿里云账号为RAM用户授予相关权限。
使用阿里云账号登录RAM 控制台。
创建权限策略。
在左侧导航栏中,单击权限管理 > 权限策略。
单击创建权限策略。
选择脚本编辑。将策略文档中的原有脚本替换为如下内容,然后单击继续编辑基本信息。
输入策略名称,然后单击确定。
说明权限策略中需要包含PassRole权限。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "log:*", "Resource": "*" }, { "Effect": "Allow", "Action": "ram:PassRole", "Resource": "*" } ] }
创建RAM用户。具体操作,请参见创建RAM用户。
为RAM用户授权。
在左侧导航栏中,单击身份管理 > 用户。
找到目标RAM用户,单击添加权限。
在权限策略区域,从下拉列表中选择自定义策略,选中步骤2中创建的策略,然后单击确认新增授权。
Logstore和Bucket属于不同账号
Logstore和Bucket属于不同云账号,Logstore属于A账号,Bucket属于B账号。
B账号完成前提条件。
B账号修改AliyunLogDefaultRole的信任策略,以便于A账号可以写入B账号的Bucket。
使用阿里云账号A登录RAM 控制台。
创建RAM用户A1。具体操作,请参见创建RAM用户。
为RAM用户A1授予AliyunRAMFullAccess权限。
在左侧导航栏中,选择身份管理 > 用户。
找到RAM用户A1,单击添加权限。
在权限策略区域,搜索并选中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" }
获取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账号。
B账号完成前提条件。
B账号修改AliyunLogDefaultRole的信任策略,以便于A账号可以写入B账号的Bucket。
修改AliyunLogDefaultRole的信任策略
如果将阿里云账号A下的日志投递至账号B下的OSS Bucket中,需要修改AliyunLogDefaultRole的信任策略。
阿里云账号B在云资源访问授权页面,创建角色AliyunLogDefaultRole。
使用阿里云账号B登录RAM 控制台。
在左侧导航栏中,选择身份管理 > 角色。
在RAM角色列表中,单击
AliyunLogDefaultRole
。在信任策略页签中,单击编辑信任策略。
在
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" }
获取RAM角色标识(ARN)。在该角色的基本信息中查看,例如
acs:ram::13234:role/logrole
。阿里云账号A配置投递任务时,在写OSS RAM角色中输入此步骤中获取的RAM角色标识。
相关文档
日志服务可以通过扮演AliyunLogDefaultRole获取所有Bucket的写入权限,如果需要缩小权限范围,请解除AliyunLogDefaultRole角色的AliyunLogRolePolicy权限,为AliyunLogDefaultRole角色授予自定义权限策略。