设置对象ACL
功能介绍
OBS支持对对象的操作进行权限控制。默认情况下,只有对象的创建者才有该对象的读写权限。用户也可以设置其他的访问策略,比如对一个对象可以设置公共访问策略,允许所有人对其都有读权限。SSE-KMS方式加密的对象即使设置了ACL,跨租户也不生效。
OBS用户在上传对象时可以设置权限控制策略,也可以通过ACL操作API接口对已存在的对象更改或者获取ACL(access control list) 。一个对象的ACL最多支持100条Grant授权。
本节将介绍如何更改对象ACL,改变对象的访问权限。
多版本
默认情况下,更改的是最新版本的对象ACL。要设置指定版本的对象ACL,请求可以带参数versionId。
请求消息格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
PUT /ObjectName?acl HTTP/1.1 Host: bucketname.obs.region.myhuaweicloud.com Date: date Authorization: authorization <AccessControlPolicy> <Owner> <ID>ID</ID> </Owner> <Delivered>true</Delivered> <AccessControlList> <Grant> <Grantee> <ID>ID</ID> </Grantee> <Permission>permission</Permission> </Grant> </AccessControlList> </AccessControlPolicy> |
请求消息参数
请求参数说明如表1所示。
参数名称 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
versionId |
否 |
String |
参数解释: 对象的版本号。表示更改指定版本对象的ACL。如何获取对象的版本ID请参见列举桶内对象。 约束限制: 不涉及 取值范围: 长度为32的字符串。 默认取值: 不涉及,如果不设置则默认修改最新版本的对象。 |
请求消息头
该请求使用公共请求消息头,具体参见表3。
请求消息元素
该请求消息通过带消息元素来传递对象的ACL信息,元素的意义如表2所示。
参数名称 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
AccessControlList |
是 |
XML |
参数解释: 访问控制列表,AccessControlList是Grant、 Grantee、Permission的父节点。 约束限制: 不涉及 取值范围: 请详见表3。 默认取值: 不涉及 |
Owner |
是 |
XML |
参数解释: 桶的所有者信息,Owner是ID的父节点。 约束限制: 不涉及 取值范围: 请详见表4。 默认取值: 不涉及 |
Canned |
否 |
String |
参数解释: 向所有人授予权限。 约束限制: 不涉及 取值范围: Everyone 默认取值: 不涉及 |
参数名称 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Grant |
否 |
XML |
参数解释: 用于标记用户及用户的权限,Grant是Grantee、Delivered的父节点。 约束限制: 单个对象的ACL,Grant元素不能超过100个。 取值范围: 请详见表5。 默认取值: 不涉及 |
Grantee |
否 |
XML |
参数解释: 记录被授权用户信息。 约束限制: 不涉及 取值范围: 不涉及 默认取值: 不涉及 |
Permission |
否 |
String |
参数解释: 授予对象的权限。 约束限制: 不涉及 取值范围:
默认取值: 不涉及 |
参数名称 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
ID |
是 |
String |
参数解释: 被授权用户的租户ID。 约束限制: 不涉及 取值范围: 如何获取用户的DomainId请详见获取账号、IAM用户、项目、用户组、区域、委托的名称和ID。 默认取值: 不涉及 |
响应消息样式
1 2 3 |
HTTP/1.1 status_code Content-Length: length Content-Type: application/xml |
响应消息元素
该请求的响应消息中不带有消息元素。
错误响应消息
该请求的响应无特殊错误,所有错误已经包含在表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 |
PUT /obj2?acl HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 04:42:34 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:8xAODun1ofjkwHm8YhtN0QEcy9M= Content-Length: 727 <AccessControlPolicy xmlns="http://obs.ap-southeast-1.myhuaweicloud.com/doc/2015-06-30/"> <Owner> <ID>b4bf1b36d9ca43d984fbcb9491b6fce9</ID> </Owner> <Delivered>false</Delivered> <AccessControlList> <Grant> <Grantee> <ID>b4bf1b36d9ca43d984fbcb9491b6fce9</ID> </Grantee> <Permission>FULL_CONTROL</Permission> </Grant> <Grant> <Grantee> <ID>783fc6652cf246c096ea836694f71855</ID> </Grantee> <Permission>READ</Permission> </Grant> <Grant> <Grantee> <Canned>Everyone</Canned> </Grantee> <Permission>READ</Permission> </Grant> </AccessControlList> </AccessControlPolicy> |
响应示例
1 2 3 4 5 6 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: 8DF400000163D3F0FD2A03D2D30B0542 x-obs-id-2: 32AAAUgAIAABAAAQAAEAABAAAQAAEAABCTjCqTmsA1XRpIrmrJdvcEWvZyjbztdd Date: WED, 01 Jul 2015 04:42:34 GMT Content-Length: 0 |
请求示例:已启用版本控制
PUT /object01?acl&versionId=G001118A6803675AFFFFD3043F7F91D0 HTTP/1.1 Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4= User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Date: WED, 01 Jul 2015 02:37:22 GMT Content-Type: application/xml <AccessControlPolicy xmlns="http://obs.region.myhuaweicloud.com/doc/2015-06-30/"> <Owner> <ID>d029cb567d46458sp0x75800575ee4cf</ID> </Owner> <Delivered>false</Delivered> <AccessControlList> <Grant> <Grantee> <ID>f98sx63gg849422e8f330af1349c588f</ID> </Grantee> <Permission>FULL_CONTROL</Permission> </Grant> <Grant> <Grantee> <ID>fa558a82a84946sn98u30af195as3hi5</ID> </Grantee> <Permission>READ</Permission> </Grant> <Grant> <Grantee> <Canned>Everyone</Canned> </Grantee> <Permission>READ</Permission> </Grant> </AccessControlList> </AccessControlPolicy>
响应示例:已启用版本控制
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSmpL2dv6zZLM2HmUrXKTAi258MPqmrp x-obs-request-id: 0000018A2A73AF59D3085C8F8ABF0C65 Server: OBS Content-Length: 0 Date: WED, 01 Jul 2015 02:37:22 GMT x-obs-version-id: G001118A6803675AFFFFD3043F7F91D0