对其他账号授予指定对象的读权限
场景介绍
本案例介绍如何为其他账号授予OBS桶中某个对象或某类对象的读权限。这里的账号指华为云账号本身,不包含账号下的IAM用户,如果要为IAM用户授权,请参见对其他账号下的IAM用户授予桶和桶内资源的访问权限。
推荐配置方法
对其他账号授权,推荐使用桶策略。
配置须知
本案例预置的“对象只读”模板允许其他账号对桶内指定对象执行以下权限:
- GetObject:获取对象内容、获取对象元数据
- GetObjectVersion:获取指定版本对象内容、获取指定版本对象元数据
- GetObjectVersionAcl:获取指定版本对象ACL
- GetObjectAcl:获取对象ACL
- RestoreObject:恢复归档存储对象
按照本案例配置后,可以正常通过API或SDK完成读操作(下载指定对象),但如果通过控制台或OBS Browser+登录,会出现无权限的相关提示信息。
报错原因:通过控制台或者OBS Browser+登录后,加载桶列表时会调用获取桶列表(ListAllMyBuckets)等接口,加载对象列表时会调用列举桶内对象(ListBucket)等接口,其他页面也会调用其他的OBS接口。而授予的只读权限中并没有包含这些操作的权限,所以会提示“拒绝访问,请检查相应权限”,或者“不允许在请求的资源上执行此操作”。
配置步骤
- 在OBS管理控制台左侧导航栏选择“桶列表”。
- 在桶列表单击目标桶的桶名称,进入“对象”页面。
- 在左侧导航栏,单击“访问权限控制>桶策略”,进入桶策略页面。
- 在“桶策略”页面,单击“创建”。
- 根据使用习惯,策略配置方式以可视化视图为例。单击“可视化视图”。
- 配置桶策略内容。
图1 配置桶策略
表1 桶策略配置说明 参数
说明
策略名称
输入自定义策略的名称
策略内容
效力
允许
被授权用户
- 被授权用户:其他账号
说明:
账号ID和IAM用户ID可在“我的凭证”页面获取。
输入格式:domainId/userld,可授权给多个账号,每行一个。
domainId/*表示授权给账号下的所有用户。
授权资源
- 资源范围:指定对象
- 资源路径:输入对象前缀
授权操作
- 动作范围:模板配置
- 模板:对象只读
- 被授权用户:其他账号
- 核对权限配置信息,确认无误后单击“创建”,完成桶策略创建。
- 权限配置信息可以在桶策略列表查看。
图2 查看桶策略列表权限配置信息