文档首页/ 对象存储服务 OBS/ API参考/ API/ 桶的高级配置/ 设置桶级阻止公共访问配置
更新时间:2025-04-27 GMT+08:00
分享

设置桶级阻止公共访问配置

功能介绍

创建或修改OBS桶的PublicAccessBlock配置,以开启或关闭阻止公开访问。

要正确执行此操作,需要确保操作者有PutBucketPublicAccessBlock权限。默认情况下只有桶的所有者可以执行此操作,也可以通过设置桶策略或用户策略授权给其他用户。

如果开启阻止公开访问,则已有的公开访问权限会被忽略,并且不允许配置新的公开访问权限。如果关闭阻止公开访问,则已有的公开访问权限仍然生效,并且支持配置新的公开访问权限。

请求消息样式

PUT /?publicAccessBlock HTTP/1.1
Host: bucketname.obs.cn-north-4.myhuaweicloud.com
Date: date
Authorization: authorization
Content-Type: application/xml
Content-Length: length

<?xml version="1.0" encoding="UTF-8"?>
<PublicAccessBlockConfiguration>
	<BlockPublicAcls>boolean</BlockPublicAcls>
	<IgnorePublicAcls>boolean</IgnorePublicAcls>
	<BlockPublicPolicy>boolean</BlockPublicPolicy>
	<RestrictPublicBuckets>boolean</RestrictPublicBuckets>
</PublicAccessBlockConfiguration>

请求消息参数

该请求消息中不使用消息参数。

请求消息头

该请求使用公共消息头,具体参见表3

请求消息元素

该操作可以带附加请求消息元素,附加请求消息元素的具体描述如表1所示。

表1 请求消息元素

元素名称

元素类型

是否必选

描述

PublicAccessBlockConfiguration

XML

参数解释:

PublicAccessBlockConfiguration参数的根节点。

约束限制:

取值范围:

默认取值:

BlockPublicAcls

Boolean

参数解释:

指定是否应该禁止为桶或桶内对象配置公开的ACL(access control list)。如果指定为true,会出现以下现象:

  • 上传对象时,如果指定公开的ACL,则上传对象失败,返回403 Access Denied。
  • 修改桶ACL或对象ACL时,如果指定公开的ACL,则修改ACL失败,返回403 Access Denied。

约束限制:

该配置不会对存量桶或对象造成影响。

取值范围:

  • true:开启
  • false:关闭

默认取值:

false

BlockPublicPolicy

Boolean

参数解释:

指定是否应该禁止为桶配置公开的桶策略。如果指定为true,会出现以下现象:为桶配置桶策略时,如果指定公开的桶策略,则配置桶策略失败,返回403 Access Denied。

约束限制:

该配置不会对存量桶造成影响。

取值范围:

  • true:开启
  • false:关闭

默认取值:

false

IgnorePublicAcls

Boolean

参数解释:

指定是否需要忽略已经为桶或桶内对象配置的公开的ACL。如果指定为true,会出现以下现象:该桶或桶内对象公开的ACL均会失效。

约束限制:

该配置不会影响已有的ACL,也不会阻止配置新的公开ACL。

取值范围:

  • true:开启
  • false:关闭

默认取值:

false

RestrictPublicBuckets

Boolean

参数解释:

指定是否需要对已有的公开桶策略进行限制。如果指定为true,会出现以下现象:桶策略为公开时,只允许云服务账号和桶拥有者账号对该桶访问。

约束限制:

该配置不会影响已有的桶策略,也不会阻止配置新的公开桶策略。

取值范围:

  • true:开启
  • false:关闭

默认取值:

false

响应消息样式

HTTP/1.1 status_code
Date: date

响应消息头

该请求的响应消息使用公共消息头,具体请参考表1

响应消息元素

该请求的响应中不带有响应元素。

错误响应消息

此请求可能的特殊错误如下表2描述。

错误码

描述

HTTP状态码

InvalidRequest

BlockPublicAcls、BlockPublicPolicy、IgnorePublicAcls、RestrictPublicBuckets四个配置均未指定,至少需要指定其中一个配置。

400

MethodNotAllowed

不允许使用该方法(特性开关未开启)

405

其余错误已经包含在表2中。

请求示例 :设置四个配置均为true

put /?publicAccessBlock HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com
Accept: */*
Date: Sat, 16 Nov 2024 08:59:07 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:75/Y4Ng1izvzc1nTGxpMXTE6ynw=
Content-Length: 288

<?xml version="1.0" encoding="UTF-8"?>
<PublicAccessBlockConfiguration>
	<BlockPublicAcls>true</BlockPublicAcls>
	<IgnorePublicAcls>true</IgnorePublicAcls>
	<BlockPublicPolicy>true</BlockPublicPolicy>
	<RestrictPublicBuckets>true</RestrictPublicBuckets>
</PublicAccessBlockConfiguration>

响应示例 :设置四个配置均为true

HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BF260000016435CE298386946AE4C482
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCT9W2tcvLmMJ+plfdopaD62S0npbaRUz
Date: Sat, 16 Nov 2024 08:59:08 GMT
Content-Length: 0

请求示例 :仅配置BlockPublicAcls为true

PUT /?publicAccessBlock HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com
Accept: */*
Date: Sat, 16 Nov 2024 08:59:07 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:75/Y4Ng1izvzc1nTGxpMXTE6ynw=
Content-Length: 147

<?xml version="1.0" encoding="UTF-8"?>
<PublicAccessBlockConfiguration>
	<BlockPublicAcls>true</BlockPublicAcls>
</PublicAccessBlockConfiguration>

响应示例 :仅配置BlockPublicAcls为true

HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BF260000016435CE298386946AE4C482
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCT9W2tcvLmMJ+plfdopaD62S0npbaRUz
Date: Sat, 16 Nov 2024 08:59:08 GMT
Content-Length: 0

相关文档