全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
日志服务

OSS投递RAM授权进阶

更新时间:2017-06-12 17:00:05

本文是作为快捷授权的补充,介绍细粒度Policy设置、父子账号Role授权等功能。

授权 Role 管理

通过快捷授权,OSS 用户主账号 B 默认创建的 AliyunLogDefaultRole 角色描述如下:

  1. {
  2. "Statement": [
  3. {
  4. "Action": "sts:AssumeRole",
  5. "Effect": "Allow",
  6. "Principal": {
  7. "Service": [
  8. "log.aliyuncs.com"
  9. ]
  10. }
  11. }
  12. ],
  13. "Version": "1"
  14. }

如日志服务用户主账号 A 与 OSS 用户主账号 B 相同,保持默认角色描述即可,log.aliyuncs.com 等价于 B_ALIYUN_ID@log.aliyuncs.com

否则,请登录 账号管理->安全设置 查看 A 账号 ID 并修改角色描述,添加 A_ALIYUN_ID@log.aliyuncs.com(支持添加多个),假设 A 的主账号 ID 为1654218965343050:

  1. {
  2. "Statement": [
  3. {
  4. "Action": "sts:AssumeRole",
  5. "Effect": "Allow",
  6. "Principal": {
  7. "Service": [
  8. "1654218965343050@log.aliyuncs.com",
  9. "log.aliyuncs.com"
  10. ]
  11. }
  12. }
  13. ],
  14. "Version": "1"
  15. }

该角色描述 A 有权限通过日志服务获取临时 Token 来操作 B 的资源(细节请参考 权限控制 STS)。

授权 Policy 管理

通过快捷授权,角色 AliyunLogDefaultRole 默认被授予 AliyunLogRolePolicy,具有写用户 B 所有 OSS Bucket 的权限。

AliyunLogRolePolicy 的授权描述如下:

  1. {
  2. "Version": "1",
  3. "Statement": [
  4. {
  5. "Action": [
  6. "oss:PutObject"
  7. ],
  8. "Resource": "*",
  9. "Effect": "Allow"
  10. }
  11. ]
  12. }

若希望更精细的访问控制粒度,请解除角色 AliyunLogDefaultRole 的 AliyunLogRolePolicy 授权,并参考 OSS 授权 创建更细粒度的 Policy,授权给角色 AliyunLogDefaultRole。

主子账号 Role 授权

默认情况下,OSS 用户主账号 B 为日志服务主账号 A 创建角色、授权后,由 A 使用角色在日志服务创建 OSS 投递配置。

如果 A 的子账号 a_1 需要使用该角色创建日志投递数据到 OSS 规则,那么,主账号 A 需要为子账号 a_1 授予 PassRole 权限。

进入阿里云“访问控制”控制台,主账号 A 可以为子账号 a_1 授予 AliyunRAMFullAccess 权限。如此,a1 将具备 RAM 所有权限,可以使用 B 为 A 创建的角色来配置日志服务投递 OSS 规则。

AliyunRAMFullAccess 权限较大,如果 A 需要控制 a_1 的权限范围,只授予投递 OSS 的必须权限,可以修改授权策略的 Action、Resource,如下示例(其中45643 只是示例uid,请以实际uid为准):

  1. {
  2. "Statement": [
  3. {
  4. "Action": "ram:PassRole",
  5. "Effect": "Allow",
  6. "Resource": "acs:ram::45643:role/aliyunlogdefaultrole"
  7. }
  8. ],
  9. "Version": "1"
  10. }
本文导读目录