本文介绍用户将Logstore的日志投递到本账号或其他账号下的OSS Bucket的过程中,涉及的RAM权限配置步骤。
使用RAM用户创建OSS投递任务(推荐)
每一个OSS投递任务只能指定一个OSS Bucket,如果您需要同时投递到两个阿里云账号的OSS Bucket,请创建两个投递任务。
同账号投递
Logstore和Bucket属于同一阿里云账号。
操作步骤
创建RAM用户
ram-user
。具体操作,请参见创建RAM用户。授权RAM用户
ram-user
读取Logstore数据以及投递数据到OSS。创建自定义权限策略
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账号。
操作步骤
B账号修改AliyunLogDefaultRole的信任策略,以便于A账号可以写入B账号的Bucket。
A账号创建RAM用户
ram-user-a
。具体操作,请参见创建RAM用户。授权RAM用户
ram-user-a
读取Logstore数据以及投递数据到OSS。创建自定义权限策略
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" } ] }
为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账号。
操作步骤
B账号创建RAM角色(AliyunLogDefaultRole),具体步骤请参见云资源访问授权。
B账号修改AliyunLogDefaultRole的信任策略,以便于A账号可以写入B账号的Bucket。
后续操作
使用阿里云账号(主账号)登录日志服务控制台,并创建OSS投递任务。具体操作,请参见创建OSS投递任务(旧版)。
修改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" }