更新时间:2024-11-25 GMT+08:00
分享

对单个IAM用户授予桶的读写权限

场景介绍

本案例介绍如何为华为云账号下的某个IAM用户授予OBS桶的读写权限。

推荐配置方法

对单个IAM用户授予资源级别权限,推荐使用桶策略。

配置须知

本案例预置的“桶读写”模板允许指定IAM用户对整个桶及桶内所有对象执行除以下权限以外的所有权限:

  • DeleteBucket:删除桶
  • PutBucketPolicy:设置桶策略
  • PutBucketAcl:设置桶ACL

按照本案例配置后,可以正常通过API或SDK完成读写操作(上传、下载、删除桶内所有对象),但如果通过控制台或OBS Browser+登录,会出现无权限的相关提示信息。报错原因

如果希望IAM用户能在控制台或OBS Browser+顺利完成相关读写操作,请按照后续操作继续配置IAM自定义策略。

配置完成进入桶后仍然会出现无权限相关提示,属于正常现象,因为控制台还调用了其他高级配置的接口,但此时已可以正常完成读写模式中允许的操作。

配置步骤

  1. 在OBS管理控制台左侧导航栏选择“桶列表”
  2. 在桶列表单击目标桶的桶名称,进入“对象”页面。
  3. 在左侧导航栏,单击“访问权限控制>桶策略”,进入桶策略页面。
  4. 单击“创建”。
  5. 根据使用习惯,策略配置方式以可视化视图为例。单击“可视化视图”。
  6. 配置桶策略内容。

    图1 配置桶策略
    表1 桶策略配置说明

    参数

    说明

    策略名称

    输入自定义策略的名称

    策略内容

    效力

    允许

    被授权用户

    • 被授权用户:当前账号
    • 选择子用户:选择被授权的IAM用户

    授权资源

    • 资源范围:整个桶(包括桶内对象)

    授权操作

    • 动作范围:模板配置
    • 模板:桶读写

  7. 核对权限配置信息,确认无误后单击“创建”,完成桶策略创建。
  8. 权限配置信息可以在桶策略列表查看。

    图2 查看桶策略列表权限配置信息

后续操作

如果希望在控制台或OBS Browser+顺利完成读写操作,需要能“看到”桶和桶中的对象,即需要通过IAM自定义策略配置列举桶(obs:bucket:ListAllMyBuckets)和列举桶中对象(obs:bucket:ListBucket)的权限。

obs:bucket:ListAllMyBuckets面向所有资源,obs:bucket:ListBucket只面向授权的桶,所以策略要分别添加两条权限。

  1. 使用账号登录华为云,在右上角单击“控制台”。
  2. 在控制台页面,鼠标移动至右上方的用户名,在下拉列表中选择“统一身份认证”。
  3. 在左侧导航窗格中,单击“权限管理”>“权限”>“创建自定义策略”。
  4. 配置自定义策略参数。

    图3 配置自定义策略
    表2 自定义策略参数配置说明

    参数

    说明

    策略名称

    输入自定义策略的名称

    策略配置方式

    根据使用习惯进行选择,此处以“可视化视图”为例

    策略内容

    【权限1】

    • 选择“允许”
    • 选择“对象存储服务 (OBS)”
    • 勾选“列表”操作中的“obs:bucket:ListAllMyBuckets”
    • 选择“所有资源”

    【权限2】

    • 选择“允许”
    • 选择“对象存储服务 (OBS)”
    • 勾选“列表”操作中的“obs:bucket:ListBucket”
    • 选择“特定资源 > 通过资源路径指定 >添加资源路径”,在路径中输入授权的桶名称,表示本策略只对该桶生效

    作用范围

    默认为“全局级服务”

  5. 单击“确定”,完成自定义策略创建。
  6. 创建用户组并授权

    按照IAM文档指导,将前面步骤创建的自定义策略添加到用户组中。

  7. 将需要授权的IAM用户加入到创建的用户组中,授权完成。

    由于缓存的存在,授予OBS相关的策略后,大概需要等待10~15分钟策略才能生效。

相关文档