对单个IAM用户授予指定对象的指定操作权限
场景介绍
本案例介绍如何为账号下的某个IAM用户授予OBS桶中指定对象的指定操作权限,此处以授予下载对象的权限为例。
如果需要配置其他指定的权限,在桶策略的动作名称中选择对应动作即可。OBS支持的动作
推荐配置方法
对单个IAM用户授予资源级别权限,推荐使用桶策略。
配置须知
按照本案例配置后,可以正常通过API完成对象下载操作,但如果通过控制台或OBS Browser+登录桶列表,会出现无权限的相关提示信息。
报错原因:通过控制台或者OBS Browser+登录后,加载桶列表时会调用获取桶列表(ListAllMyBuckets)等接口,加载对象列表时会调用列举桶内对象(ListBucket)等接口,其他页面也会调用其他的OBS接口。而授予的只读权限中并没有包含这些操作的权限,所以会提示“拒绝访问,请检查相应权限”,或者“不允许在请求的资源上执行此操作”。
如果希望IAM用户能在控制台或OBS Browser+顺利完成对象下载操作,请按照后续操作继续配置IAM自定义策略。
配置步骤
- 在OBS管理控制台左侧导航栏选择“对象存储”。
- 在桶列表单击目标桶的桶名称,进入“概览”页面。
- 在左侧导航栏,单击“权限”,进入权限管理页面。
- 在“桶策略”页面“高级桶策略”下,单击“创建桶策略”。
- 配置桶策略参数。
表1 桶策略参数配置说明 参数
说明
策略模式
选择“自定义模式”
效果
选择“Allow”
被授权用户
- 选择包含 > 当前账号
- 用户名:选择被授权的IAM用户
资源
动作
- 包含
- 动作名称:选择“GetObject”
如果需要配置其他指定的权限,选择对应动作即可。OBS支持的动作
- 单击“确定”,完成桶策略创建。
后续操作
如果希望在控制台或OBS Browser+顺利完成指定的操作,需要能“看到”桶和桶中的对象,即需要通过IAM自定义策略配置列举桶(obs:bucket:ListAllMyBuckets)和列举桶中对象(obs:bucket:ListBucket)的权限。
obs:bucket:ListAllMyBuckets面向所有资源,obs:bucket:ListBucket只面向授权的桶,所以策略要分别添加两条权限。
- 使用云服务账号登录管理控制台。
- 在顶部导航栏选择“服务列表>管理与部署>统一身份认证服务”,进入“统一身份认证服务”管理控制台。
- 在左侧导航栏单击“策略”,进入“策略”界面。
- 单击右上角“创建自定义策略”。
- 配置自定义策略参数。
表2 自定义策略参数配置说明 参数
说明
策略名称
输入自定义策略的名称
策略配置方式
根据使用习惯进行选择,此处以“可视化视图”为例
策略内容
【权限1】
- 选择“允许”
- 选择“对象存储服务 (OBS)”
- 勾选“列表”操作中的“obs:bucket:ListAllMyBuckets”
- 选择“所有资源”
【权限2】
- 选择“允许”
- 选择“对象存储服务 (OBS)”
- 勾选“列表”操作中的“obs:bucket:ListBucket”
- 选择“特定资源 > 通过资源路径指定 >添加资源路径”,在路径中输入授权的桶名称,表示本策略只对该桶生效
作用范围
默认为“全局级服务”
- 单击“确定”,完成自定义策略创建。
- 创建用户组并授权。
按照IAM文档指导,将前面步骤创建的自定义策略添加到用户组中。
- 将需要授权的IAM用户加入到创建的用户组中,授权完成。
由于缓存的存在,授予OBS相关的策略后,大概需要等待10~15分钟策略才能生效。