设置桶ACL-SetBucketAcl
功能介绍
OBS支持对桶操作进行权限控制。默认情况下,只有桶的创建者才有该桶的读写权限。用户也可以设置其他的访问策略,比如对一个桶可以设置公共访问策略,允许所有人对其都有读权限。
OBS用户在创建桶时可以设置权限控制策略,也可以通过ACL操作API接口对已存在的桶更改或者获取ACL(access control list) 。一个桶的ACL最多支持100条Grant授权。PUT接口为幂等的覆盖写语意,新设置的桶ACL将覆盖原有的桶ACL,如果需要修改或者删除某条ACL重新PUT一个新的桶ACL即可。
使用桶ACL进行权限控制请参考《对象存储服务权限配置指南》的OBS权限控制概述章节。
授权信息
您必须是桶拥有者或拥有设置桶ACL的权限,才能调用本接口,建议使用IAM或桶策略进行授权。了解更多OBS授权方式请参见OBS不同权限控制方式的区别。
- 如果使用IAM授权,那么请在“角色与策略授权”、“身份策略授权”两种IAM授权方式中选择一种,并配置相应权限:
- 如果使用角色与策略授权(旧版IAM,即IAM v3接口),需具备obs:bucket:PutBucketAcl权限,授权操作请参见创建IAM自定义策略。
- 如果使用身份策略授权(新版IAM,即IAM v5接口),如下表所示,需具备obs:bucket:putBucketAcl权限,授权操作请参见创建IAM自定义身份策略。
授权项
Action
访问级别
Access Level
资源类型(*为必须)
Resource Type (*: required)
Condition Key
Alias
依赖的授权项
Dependencies
obs:bucket:putBucketAcl
Permission_management
bucket *
-
-
-
- obs:EpochTime
- obs:SourceIp
- obs:TlsVersion
- obs:CustomDomain
- obs:x-obs-acl
- 如果使用桶策略进行授权,需具备obs:bucket:PutBucketAcl权限,具体操作请参见自定义创建桶策略。
URI
PUT /
请求消息样式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
PUT /?acl HTTP/1.1 Host: bucketname.obs.cn-north-4.myhuaweicloud.com Date: date Authorization: authorization Content-Type: application/xml Content-Length: length <AccessControlPolicy> <Owner> <ID>ID</ID> </Owner> <AccessControlList> <Grant> <Grantee> <ID>domainId</ID> </Grantee> <Permission>permission</Permission> <Delivered>false</Delivered> </Grant> </AccessControlList> </AccessControlPolicy> |
调用方法
您可以通过API Explorer在线调试该接口。也可以参见如何调用API,计算API签名并调用接口。
请求消息参数
该操作请求不带消息参数。
请求消息头
使用者可以使用头域设置的方式来更改桶的ACL,每一种头域设置的ACL都有一套自己预先定义好的被授权用户以及相应权限,通过头域设置的方式授予访问权限,使用者必须添加以下的头域并且指定取值。
|
名称 |
类型 |
是否必选 |
描述 |
|---|---|---|---|
|
x-obs-acl |
String |
否 |
参数解释: 通过canned ACL的方式来设置桶的ACL。 约束限制: 无 取值范围:
各策略详细说明见ACL章节的“使用头域设置ACL” 默认取值: private |
请求消息元素
更改桶的ACL请求需要在消息元素中带上ACL信息,元素的具体含义如表3所示。
|
元素名称 |
元素类型 |
是否必选 |
描述 |
|---|---|---|---|
|
Owner |
XML |
是 |
参数解释: 桶的所有者信息,是桶拥有者账号ID的父节点。 约束限制: 无 |
|
ID |
String |
是 |
参数解释: 桶拥有者账号ID。 约束限制: 无 取值范围: 无 默认取值: 无 |
|
AccessControlList |
XML |
是 |
参数解释: 访问控制列表,是Grant的父节点。 约束限制: 无 |
|
Grant |
XML |
否 |
参数解释: 用于标记用户及用户的权限,是Grantee、Permission和Delivered的父节点。 约束限制: 单个桶的ACL,Grant元素不能超过100个。 |
|
Grantee |
XML |
否 |
参数解释: 记录用户信息,是被授权账号ID的父节点。 约束限制: 无 |
|
ID |
String |
是 |
参数解释: 被授权用户的账号ID。 约束限制: 无 取值范围: 无 默认取值: 无 |
|
Canned |
String |
否 |
参数解释: 向所有人授予权限。 约束限制: 无 取值范围: Everyone:所有人 默认取值: 无 |
|
Permission |
String |
是 |
参数解释: 授予的权限。详情参见桶ACL访问权限。 约束限制: 无 取值范围:
默认取值: 无 |
|
Delivered |
Boolean |
否 |
参数解释: 桶的ACL是否向桶内对象传递。作用于桶内所有对象。 约束限制: 无 取值范围:
默认取值: false |
响应消息样式
1 2 3 |
HTTP/1.1 status_code Date: date Content-Length: length |
响应消息头
该请求的响应消息使用公共消息头,具体请参考表1。
响应消息元素
该请求的响应消息中不带有响应元素。
错误响应消息
无特殊错误,所有错误已经包含在表2中。
请求示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
PUT /?acl HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:37:22 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4= Content-Length: 727 <AccessControlPolicy xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/"> <Owner> <ID>b4bf1b36d9ca43d984fbcb9491b6fce9</ID> </Owner> <AccessControlList> <Grant> <Grantee> <ID>b4bf1b36d9ca43d984fbcb9491b6fce9</ID> </Grantee> <Permission>FULL_CONTROL</Permission> </Grant> <Grant> <Grantee> <ID>783fc6652cf246c096ea836694f71855</ID> </Grantee> <Permission>READ</Permission> <Delivered>false</Delivered> </Grant> <Grant> <Grantee> <Canned>Everyone</Canned> </Grantee> <Permission>READ_ACP</Permission> </Grant> </AccessControlList> </AccessControlPolicy> |
响应示例
1 2 3 4 5 6 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF2600000164361F2954B4D063164704 x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCT78HTIBuhe0FbtSptrb/akwELtwyPKs Date: WED, 01 Jul 2015 02:37:22 GMT Content-Length: 0 |
请求示例:使用头域方式指定的访问权限
PUT /?acl HTTP/1.1 Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4= User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com x-obs-acl: private Date: WED, 01 Jul 2015 02:37:22 GMT Content-Type: application/xml
响应示例:使用头域方式指定的访问权限
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSmpL2dv6zZLM2HmUrXKTAi258MPqmrp x-obs-request-id: 0000018A2A73AF59D3085C8F8ABF0C65 Server: OBS Content-Length: 0 Date: WED, 01 Jul 2015 02:37:22 GMT