给IAM用户配置了桶读写权限,登录控制台仍然提示拒绝访问,请检查相应权限
原因
通过桶策略给IAM用户配置桶的读写权限后,实际上授予的权限如下:
- GetObject:下载对象
- GetObjectVersion:下载多版本对象
- PutObject:上传对象
- DeleteObject:删除对象
- DeleteObjectVersion:删除多版本对象
上述每一个权限对应一个OBS功能接口,IAM用户使用API或SDK可以正常调用这些接口。但是通过控制台或者客户端工具(OBS Browser+)登录时,加载桶列表时会调用获取桶列表(ListAllMyBuckets)等接口,加载对象列表时会调用列举桶内对象(ListBucket)等接口,其他页面也会调用其他的OBS接口。而授予的读写权限中并没有包含这些操作的权限,所以会提示“拒绝访问,请检查响应权限”,或者“不允许在请求的资源上执行此操作”。
解决方法
即使界面出现了权限不足的提示,也并不影响已有的权限生效。通过API或SDK可以正常调用相关接口。
对于控制台或客户端工具(OBS Browser+)而言,需要在IAM中配置OBS自定义策略,授予更多的OBS权限,并将IAM用户加入到对应的用户组中。