更新时间:2024-03-04 GMT+08:00

对其他账号授予指定对象的读权限

场景介绍

本案例介绍如何为其他账号授予OBS桶中某个对象或某类对象的读权限。这里的账号指华为云账号本身,不包含账号下的IAM用户,如果要为IAM用户授权,请参见对其他账号下的IAM用户授予桶和桶内资源的访问权限

推荐配置方法

对其他账号授权,推荐使用桶策略。

配置须知

本案例预置的“对象只读”模板允许其他账号对桶内指定对象执行以下权限:

  • GetObject:获取对象内容、获取对象元数据
  • GetObjectVersion:获取指定版本对象内容、获取指定版本对象元数据
  • GetObjectVersionAcl:获取指定版本对象ACL
  • GetObjectAcl:获取对象ACL
  • RestoreObject:恢复归档存储对象

按照本案例配置后,可以正常通过API或SDK完成读操作(下载指定对象),但如果通过控制台或OBS Browser+登录,会出现无权限的相关提示信息。

报错原因:通过控制台或者OBS Browser+登录后,加载桶列表时会调用获取桶列表(ListAllMyBuckets)等接口,加载对象列表时会调用列举桶内对象(ListBucket)等接口,其他页面也会调用其他的OBS接口。而授予的只读权限中并没有包含这些操作的权限,所以会提示“拒绝访问,请检查相应权限”,或者“不允许在请求的资源上执行此操作”。

配置步骤

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

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

    参数

    说明

    策略名称

    输入自定义策略的名称

    策略内容

    效力

    允许

    被授权用户

    • 被授权用户:其他账号
      说明:

      账号ID和IAM用户ID可在“我的凭证”页面获取。

      输入格式:domainId/userld,可授权给多个账号,每行一个。

      domainId/*表示授权给账号下的所有用户。

    授权资源

    • 资源范围:指定对象
    • 资源路径:输入对象前缀
      说明:
      • 指定对象支持输入多个资源路径,单击“添加资源路径”按钮即可。
      • 您可以指定资源路径为具体对象、对象集或目录,*表示桶内所有对象。

        如果指定某个对象:对象名称

        如果指定某个对象集:“对象名称前缀”+“*”、“*”+“对象名后缀”或“*”

    授权操作

    • 动作范围:模板配置
    • 模板:对象只读

  7. 核对权限配置信息,确认无误后单击“创建”,完成桶策略创建。