对象存储服务 OBS-桶策略:桶策略

时间:2023-11-13 17:20:19

桶策略

桶策略是作用于所配置的OBS桶及桶内对象的。OBS桶拥有者通过桶策略可为 IAM 用户或其他帐号授权桶及桶内对象的操作权限。

  • 创建桶和获取桶列表这两个服务级的操作权限,需要通过IAM权限配置。
  • 由于缓存的存在,配置桶策略后,最长需要等待5分钟策略才能生效。

桶策略模板:

OBS控制台预置了八种常用典型场景的桶策略模板,用户可以使用模板创建桶策略,快速完成桶策略配置。

选择使用模板创建时,部分模板需要指定被授权用户或资源范围,您也可以在原模板基础上修改被授权用户、资源范围、模板动作以及增加桶策略执行的条件。

表1 桶策略模板

被授权用户

授权资源

模板名称

模板动作

高级设置

所有帐号

整个桶(包括桶内对象)

公共读

允许所有帐号(所有互联网用户)对整个桶及桶内所有对象执行以下动作:

HeadBucket(判断桶是否存在、获取桶元数据)

GetBucketLocation(获取桶位置)

GetObject(获取对象内容、获取对象元数据)

RestoreObject(恢复归档存储对象)

GetObjectVersion(获取指定版本对象内容、获取指定版本对象元数据)

不支持排除以上授权操作

公共读写

允许所有帐号(所有互联网用户)对整个桶及桶内所有对象执行以下动作:

ListBucket(列举桶内对象、获取桶元数据)

ListBucketVersions(列举桶内多版本对象)

HeadBucket(判断桶是否存在、获取桶元数据)

GetBucketLocation(获取桶位置)

PutObject(PUT上传,POST上传,上传段,初始化上传段任务,合并段)

GetObject(获取对象内容、获取对象元数据)

ModifyObjectMetaData(修改对象元数据)

ListBucketMultipartUploads(列举多段上传任务)

ListMultipartUploadParts(列举已上传段)

AbortMultipartUpload(取消多段上传任务)

RestoreObject(恢复归档存储对象)

GetObjectVersion(获取指定版本对象内容、获取指定版本对象元数据)

PutObjectAcl(设置对象ACL)

GetObjectVersionAcl(获取指定版本对象ACL)

GetObjectAcl(获取对象ACL)

不支持排除以上授权操作

当前帐号/其他帐号/委托帐号

整个桶(包括桶内对象)

桶只读

允许指定帐号对整个桶及桶内所有对象执行以下动作:

Get*(所有获取操作)

List*(所有列举操作)

HeadBucket(判断桶是否存在、获取桶元数据)

不支持排除以上授权操作

桶读写

允许指定帐号对整个桶及桶内所有对象执行除以下动作以外的所有动作:

DeleteBucket(删除桶)

PutBucketPolicy(设置桶策略)

PutBucketAcl(设置桶ACL)

排除以上授权操作

所有帐号/当前帐号/其他帐号/委托帐号

当前桶+指定对象

目录只读

允许所有帐号(所有互联网用户)或指定帐号对当前桶和桶内指定资源执行以下动作:

GetObject(获取对象内容、获取对象元数据)

GetObjectVersion(获取指定版本对象内容、获取指定版本对象元数据)

GetObjectVersionAcl(获取指定版本对象ACL)

GetObjectAcl(获取对象ACL)

RestoreObject(恢复归档存储对象)

ListBucket(列举桶内对象、获取桶元数据)

ListBucketVersions(列举桶内多版本对象)

HeadBucket(判断桶是否存在、获取桶元数据)

GetBucketLocation(获取桶位置)

说明:

被授权用户选择所有帐号时,模板动作中不包含ListBucket、ListBucketVersions。

不支持排除以上授权操作

目录读写

允许所有帐号(所有互联网用户)或指定帐号对当前桶和桶内指定资源执行以下动作:

PutObject(PUT上传,POST上传,上传段,初始化上传段任务,合并段)

GetObject(获取对象内容、获取对象元数据)

GetObjectVersion(获取指定版本对象内容、获取指定版本对象元数据)

ModifyObjectMetaData(修改对象元数据)

ListBucketMultipartUploads(列举多段上传任务)

ListMultipartUploadParts(列举已上传段)

AbortMultipartUpload(取消多段上传任务)

GetObjectVersionAcl(获取指定版本对象ACL)

GetObjectAcl(获取对象ACL)

PutObjectAcl(设置对象ACL)

RestoreObject(恢复归档存储对象)

ListBucket(列举桶内对象、获取桶元数据)

ListBucketVersions(列举桶内多版本对象)

HeadBucket(判断桶是否存在、获取桶元数据)

GetBucketLocation(获取桶位置)

不支持排除以上授权操作

所有帐号/当前帐号/其他帐号/委托帐号

指定对象

对象只读

允许所有帐号(所有互联网用户)或指定帐号对桶内指定资源执行以下动作:

GetObject(获取对象内容、获取对象元数据)

GetObjectVersion(获取指定版本对象内容、获取指定版本对象元数据)

GetObjectVersionAcl(获取指定版本对象ACL)

GetObjectAcl(获取对象ACL)

RestoreObject(恢复归档存储对象)

不支持排除以上授权操作

对象读写

允许所有帐号(所有互联网用户)或指定帐号对桶内指定资源执行以下动作:

PutObject(PUT上传,POST上传,上传段,初始化上传段任务,合并段)

GetObject(获取对象内容、获取对象元数据)

GetObjectVersion(获取指定版本对象内容、获取指定版本对象元数据)

ModifyObjectMetaData(修改对象元数据)

ListMultipartUploadParts(列举已上传段)

AbortMultipartUpload(取消多段上传任务)

GetObjectVersionAcl

GetObjectAcl(获取对象ACL)

PutObjectAcl(设置对象ACL)

RestoreObject(恢复归档存储对象)

不支持排除以上授权操作

自定义桶策略:

你也可以根据实际业务场景的定制化需求,不使用预置桶策略模板,自定义创建桶策略。自定义桶策略由效力、被授权用户、资源、动作和条件5个桶策略基本元素共同决定。详细请参见OBS权限控制要素

support.huaweicloud.com/perms-cfg-obs/obs_40_0004.html