对象存储服务 OBS-给用户配置OBS系统权限或桶读写权限后仍然提示拒绝访问,请检查相应权限:原因
原因
- 给用户配置了OBS系统权限
在 IAM 中给用户配置了OBS ReadOnlyAccess、OBS OperateAccess、OBS Buckets Viewer等系统权限后,实际上只允许执行一部分OBS操作,例如OBS OperateAccess可以执行列举桶、获取桶基本信息、获取桶元数据、列举对象(不包含多版本)、上传对象、下载对象、删除对象、获取对象ACL操作。
- 给用户配置了桶读写权限
通过桶策略给用户配置了桶的读写权限后,实际上授予的权限如下:
- GetObject:下载对象
- GetObjectVersion:下载多版本对象
- PutObject:上传对象
- DeleteObject:删除对象
- DeleteObjectVersion:删除多版本对象
上述每一个权限对应一个OBS功能接口,用户使用API或SDK可以正常调用这些接口。但是通过控制台或者客户端工具(OBS Browser+)登录时,加载桶列表、桶概览等页面时会调用获取桶列表(ListAllMyBuckets)等接口,加载对象列表时会调用列举桶内对象(ListBucket)等接口,其他页面也会调用其他的OBS接口。如果授予的权限中没有包含这些接口,则会提示“拒绝访问,请检查相应权限”,或者“不允许在请求的资源上执行此操作”。
例如桶概览页面会通过接口查看桶的生命周期规则、CORS规则等是否已经配置,如图1,而预置的系统权限并未包含这些操作权限。