华为云计算 云知识 设置桶策略SetBucketPolicy
设置桶策略SetBucketPolicy

 

接口说明

该接口的实现使用policy子资源创建或者修改一个桶的策略。如果桶已经存在一个策略,那么当前请求中的策略将完全覆盖桶中现存的策略。单个桶的桶策略条数(statement)没有限制,但一个桶中所有桶策略的JSON描述总大小不能超过20KB。

要使用该接口,使用者要求必须是桶的所有者,或者是桶所有者的子用户且具有设置桶策略的权限。

使用桶策略进行权限控制请参考《 对象存储服务 权限配置指南》的OBS权限控制概述章节。

URL
PUT  https://obs.cn-north-4.myhuaweicloud.com/ 
请求参数
名称 类型 IN 必选 描述
Authorization
 
string header

请求消息中可带的签名信息。

Date
 
string header

请求发起端的日期和时间,例如:Wed, 27 Jun 2018 13:39:15 +0000。 默认值:无。 条件:如果消息头中带了x-obs-date字段,则可以不带该字段,其他情况下必选。

bucket_name
 
string query

请求的桶名称。

policy
 
string query

policy表示请求桶策略API。

Body参数
名称 类型 必选 描述
Statement
 
Array of Statement objects  
参数:
Statement
名称 类型 必选 描述
Sid
 
string

statement Id,可选关键字,描述statement的字符串。

Principal
 
Principal object

可选关键字,被授权人,指定本条statement权限针对的Domain以及User,支持通配符“”,表示所有用户。当对Domain下所有用户授权时,Principal格式为domain/domainid:user/。当对某个User进行授权时,Principal格式为domain/domainid:user/userId或者domain/domainid:user/userName。

如果通过控制台进行桶清单配置,控制台会自动生成目标桶的桶策略。目标桶的桶策略中Principal取值则固定为{"Service": "obs"}。关于桶清单的详细介绍请参见桶清单说明

可选,Principal与NotPrincipal选其一。

NotPrincipal
 
NotPrincipal object

可选关键字,不被授权人,statement匹配除此之外的其他人。取值同Principal。

可选,NotPrincipal与Principal选其一。

Action
 
Array of strings

可选关键字,指定本条statement作用的操作,Action字段为OBS支持的所有操作集合,以字符串形式表示,不区分大小写。支持通配符“”,表示该资源能进行的所有操作。例如:"Action":["List", "Get*"]。 可选,Action与NotAction选其一。

NotAction
 
Array of strings

可选关键字,指定一组操作,statement匹配除该组操作之外的其他操作。 取值同Action。 可选,Action与NotAction选其一。

Effect
 
string

必选关键字,效果,指定本条statement的权限是允许还是拒绝,Effect的值必须为Allow或者Deny。

Resource
 
Array of strings

可选关键字,指定statement起作用的一组资源,支持通配符“*”,表示所有资源。 可选,Resource与NotResource选其一。

NotResource
 
Array of strings

可选关键字,指定一组资源,statement匹配除该组资源之外的其他资源。 取值同Resource。 可选,Resource与NotResource选其一。

Condition
 
Condition object

除了指定效果、被授权用户、资源、动作外,桶策略还可以指定生效条件。只有当条件设置的表达式与访问请求中的值匹配时,桶策略才生效。条件是可选参数,用户可以根据业务需要选择是否使用。

条件由条件运算符、键、值三部分组成,最终组成一个条件表达式,决定桶策略生效的条件。同一个条件运算符中,如果存在多个相同的键,则只会保留最后一个键。条件运算符、键两者之间存在互相限制的关联关系,例如: 条件运算符选择了一个String类型的,比如StringEquals,键就只能选择String类型的,比如UserAgent。 键选择了一个Date类型,比如CurrentTime,条件运算符就只能选择Date类型的,比如DateEquals。

Condition判断类型和键如桶策略参数说明表4-7所示。

参数:
Statement.Principal
名称 类型 必选 描述
ID
 
Array of strings

OBS支持的Principal或NotPrincipal有匿名用户、特定租户、特定用户、联合身份用户,委托用户。

参数:
Statement.NotPrincipal
名称 类型 必选 描述
ID
 
Array of strings

OBS支持的Principal或NotPrincipal有匿名用户、特定租户、特定用户、联合身份用户,委托用户。

返回参数
返回码: 204

成功响应消息

名称 类型 必选 描述
Content-Length
 
string

响应消息体的字节长度。

Connection
 
string

指明与服务器的连接是长连接还是短连接。

Date
 
string

OBS系统响应的时间。

ETag
 
string

对象的base64编码的128位MD5摘要。ETag是对象内容的唯一标识,可以通过该值识别对象内容是否有变化。比如上传对象时ETag为A,下载对象时ETag为B,则说明对象内容发生了变化。实际的ETag是对象的哈希值。ETag只反映变化的内容,而不是其元数据。上传的对象或拷贝操作创建的对象,通过MD5加密后都有唯一的ETag。如果通过多段上传对象,则无论加密方法如何,MD5会拆分ETag,此类情况ETag就不是MD5的摘要。

x-obs-id-2
 
string

帮助定位问题的特殊符号。

x-obs-request-id
 
string

由OBS创建来唯一确定本次请求的值,可以通过该值来定位问题。

返回码: 400

请求失败响应消息。

名称 类型 必选 描述
Code
 
string

错误响应消息体XML中错误响应对应的HTTP消息返回码,具体的错误码请参见错误码-表2

Message
 
string

错误响应消息体XML中具体错误更全面、详细的英文解释,具体的错误消息请参见错误码-表2

RequestId
 
string

本次错误请求的请求ID,用于错误定位。

HostId
 
string

返回该消息的服务端ID。

Resource
 
string

该错误相关的桶或对象资源。

请求示例
示例 1
 
"/?policy"
 
"PUT /?policy HTTP/1.1\nHost: examplebucket.obs.cn-north-4.myhuaweicloud.com\nDate: WED, 01 Jul 2015 02:32:25 GMT\nAuthorization: OBS H4IPJX0TQTHTHEBQQCEC:jZiAT8Vx4azWEvPRMWi0X5BpJMA=\n\n{\n \"Statement\": [\n {\n \"Sid\": \"Stmt1375240018061\",\n \"Action\": [\n \"GetBucketLogging\"\n ],\n \"Effect\": \"Allow\",\n \"Resource\": \"logging.bucket\",\n \"Principal\": {\n \"ID\": [\n \"domain/783fc6652cf246c096ea836694f71855:user/*\"\n ]\n }\n }\n ]\n}"
错误码
请参考 错误码说明

 

上一篇:直播梳理-AI赋能未来,人才培养如何满足发展需求 下一篇:分布式消息服务如何提高消息处理效率?