

# 为您的账户配置屏蔽公共访问权限设置
<a name="configuring-block-public-access-account"></a>

**重要**  
如果您的账户由组织级别的屏蔽公共访问权限策略管理，则您无法修改这些账户级别的设置。组织级别的策略会覆盖账户级别的配置。有关集中管理选项的更多信息，请参阅《AWS Organizations 用户指南》**中的 [S3 策略](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_s3.html)。

Amazon S3 屏蔽公共访问权限提供接入点、存储桶、组织和账户的设置，帮助您管理对 Amazon S3 资源的公共访问。默认情况下，新存储桶、接入点和对象不允许公有访问。有关更多信息，请参阅 [阻止对您的 Amazon S3 存储的公有访问](access-control-block-public-access.md)。

**注意**  
账户级别设置会覆盖各个对象的设置。将您的账户配置为屏蔽公共访问权限后，将覆盖对账户内单个对象所设定的任何公共访问权限设置。当组织级别的策略生效时，账户级别的设置会自动继承组织策略，并且无法直接修改。

如果您账户中的所有存储桶并非由组织策略管理，您可以使用 S3 控制台、AWS CLI、AWS SDK 和 REST API 为存储桶配置屏蔽公共访问权限设置。有关更多信息，请参阅以下部分。

要为存储桶配置屏蔽公共访问权限设置，请参阅 [为 S3 存储桶配置屏蔽公共访问权限设置](configuring-block-public-access-bucket.md)。有关接入点的信息，请参阅 [在接入点上执行屏蔽公共访问权限操作](access-control-block-public-access.md#access-control-block-public-access-examples-access-point)。

## 使用 S3 控制台
<a name="block-public-access-account"></a>

Amazon S3 屏蔽公共访问权限将阻止所有在设置中允许对 S3 存储桶中的数据进行公有访问的应用程序。本部分介绍如何为 AWS 账户 中的所有 S3 存储桶编辑屏蔽公共访问权限设置。有关屏蔽公共访问权限的更多信息，请参阅[阻止对您的 Amazon S3 存储的公有访问](access-control-block-public-access.md)。

**为 AWS 账户 中的所有 S3 存储桶编辑屏蔽公共访问权限设置**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 请选择 **Block Public Access settings for this account (阻止此账户的公有访问设置)**。

1. 请选择 **Edit（编辑）**以便为 AWS 账户 中的所有存储桶更改屏蔽公共访问权限设置。

1. 请选择要更改的设置，然后选择 **Save changes (保存更改)**。

1. 当系统要求确认时，请输入 **confirm**。然后选择 **Confirm (确认)** 以保存更改。

如果您收到一条错误消息，说明“由于组织生效的 S3 屏蔽公共访问权限策略，此账户不允许更改其账户级别的 S3 屏蔽公共访问权限设置”，则您的账户由组织级别的策略管理。请联系您的组织管理员修改这些设置。

## 使用 AWS CLI
<a name="access-control-block-public-access-examples-cli"></a>

您可以通过 AWS CLI 使用 Amazon S3 屏蔽公共访问权限。有关设置和使用 AWS CLI 的更多信息，请参阅[什么是 AWS Command Line Interface？](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) 

** 账户**
+ 为了对账户执行屏蔽公共访问权限操作，请使用 AWS CLI 服务 `s3control`。使用此服务的账户级别的操作如下所示：
  + `PutPublicAccessBlock`（对于账户）
  + `GetPublicAccessBlock`（对于账户）
  + `DeletePublicAccessBlock`（对于账户）

**注意**  
当账户由组织级别的策略管理时，`PutPublicAccessBlock` 和 `DeletePublicAccessBlock` 操作将返回“访问被拒绝”错误。账户级别的 `GetPublicAccessBlock` 操作将返回强制执行的组织级别策略（如果存在）。

有关更多信息和示例，请参阅《AWS CLI Reference》**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/put-public-access-block.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/put-public-access-block.html)。

## 使用 AWS 开发工具包
<a name="access-control-block-public-access-examples-sdk"></a>

------
#### [ Java ]

以下示例展示了如何将 Amazon S3 屏蔽公共访问权限与 适用于 Java 的 AWS SDK 结合使用，以在 Amazon S3 账户中放置公有访问阻止配置。

**注意**  
如果账户由组织级别的策略管理，`PutPublicAccessBlock` 和 `DeletePublicAccessBlock` 操作将失败并返回“访问被拒绝”错误。

```
AWSS3ControlClientBuilder controlClientBuilder = AWSS3ControlClientBuilder.standard();
controlClientBuilder.setRegion(<region>);
controlClientBuilder.setCredentials(<credentials>);
					
AWSS3Control client = controlClientBuilder.build();
client.putPublicAccessBlock(new PutPublicAccessBlockRequest()
		.withAccountId(<account-id>)
		.withPublicAccessBlockConfiguration(new PublicAccessBlockConfiguration()
				.withIgnorePublicAcls(<value>)
				.withBlockPublicAcls(<value>)
				.withBlockPublicPolicy(<value>)
				.withRestrictPublicBuckets(<value>)));
```

**重要**  
此示例仅适用于使用 `AWSS3Control` 客户端类的账户级别操作。对于存储桶级别的操作，请参阅前面的示例。

------
#### [ Other SDKs ]

有关使用其它 AWS SDK 的信息，请参阅《Amazon S3 API 参考》**中的 [Developing with Amazon S3 using the AWS SDKs](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html)。

------

## 使用 REST API
<a name="access-control-block-public-access-examples-api"></a>

有关通过 REST API 使用 Amazon S3 屏蔽公共访问权限的信息，请参阅 *Amazon Simple Storage Service API 参考*中的以下主题。
+ 账户级别操作
  + [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutPublicAccessBlock.html)：账户由组织策略管理时失败。
  + [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetPublicAccessBlock.html)：返回生效配置，包括组织策略。
  + [https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeletePublicAccessBlock.html)：账户由组织策略管理时失败。

您将看到以下有关受限操作的错误消息：“由于生效的组织 S3 屏蔽公共访问权限策略，此账户不允许更改其账户级别的 S3 屏蔽公共访问权限设置。”