更新时间:2024-08-15 GMT+08:00

对IAM用户组授予OBS指定资源的指定操作权限

场景介绍

本案例介绍如何为华为云账号下的多个IAM用户或用户群组授予OBS指定资源的指定操作权限,资源可以具体到某个桶或对象。

推荐配置方法

IAM自定义策略

配置须知

按照本案例配置后,可以正常通过API或SDK完成权限所允许的操作,但如果通过控制台或OBS Browser+登录,可能会出现无权限的相关提示信息。

报错原因:通过控制台或者OBS Browser+登录后,加载桶列表时会调用获取桶列表(ListAllMyBuckets)等接口,加载对象列表时会调用列举桶内对象(ListBucket)等接口,其他页面也会调用其他的OBS接口。如果指定的权限中没有包含如obs:bucket:ListAllMyBuckets、obs:bucket:ListBucket及一些控制台和OBS Browser+加载页面时需要调用的接口权限,会提示“拒绝访问,请检查相应权限”,或者“不允许在请求的资源上执行此操作”。

如果希望IAM用户能在控制台或OBS Browser+顺利完成桶和对象相关操作,建议至少在自定义策略中包含obs:bucket:ListAllMyBuckets和obs:bucket:ListBucket两个权限。

obs:bucket:ListAllMyBuckets面向所有资源,资源选择时要选择所有资源。

obs:bucket:ListBucket只面向授权的桶,资源选择时根据情况选择所有资源或者指定的桶。

配置步骤

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

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

    参数

    说明

    策略名称

    输入自定义策略的名称

    策略配置方式

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

    策略内容

    【权限1】(被授权用户需要在控制台或OBS Browser+操作时必选)

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

    【权限2】

    • 选择“允许”
    • 选择“对象存储服务 (OBS)”
    • 勾选需要授权的操作

      OBS支持的操作及对应权限说明请参见桶相关授权项对象相关授权项

    • 选择“特定资源 > bucket”指定桶资源

      【格式】

      obs:*:*:bucket:桶名称

      【说明】

      对于桶资源,IAM自动生成资源路径前缀obs:*:*:bucket:

      通过桶名称指定具体的资源路径,支持通配符*。例如:

      obs:*:*:bucket:*表示任意OBS桶,obs:*:*:bucket:examplebucket表示策略作用范围为桶名为examplebucket的桶。

      被授权用户需要在控制台或OBS Browser+操作时,需要给指定桶添加obs:bucket:ListBucket权限。

    • 选择“特定资源 > object”指定对象资源

      【格式】

      指定目录下对象:obs:*:*:object:桶名称/前缀/*

      指定对象:obs:*:*:object:桶名称/对象名称

      【说明】

      对于对象资源,IAM自动生成资源路径前缀obs:*:*:object:

      通过桶名称/对象名称指定具体的资源路径,支持通配符*。例如:

      obs:*:*:object:my-bucket/my-object/*表示my-bucket桶下my-object目录下的任意对象。

      obs:*:*:object:my-bucket/exampleobject表示my-bucket桶下exampleobject对象。

    作用范围

    默认为“全局级服务”

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

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

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

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