

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 為您的 S3 儲存貯體設定封鎖公開存取
<a name="configuring-block-public-access-bucket"></a>

Amazon S3 Block Public Access 提供存取點、儲存貯體、組織和帳戶的設定，協助您管理對 Amazon S3 資源的公開存取。依預設，新的儲存貯體、存取點和物件不允許公開存取。如需詳細資訊，請參閱[封鎖對 Amazon S3 儲存體的公開存取權](access-control-block-public-access.md)。

**注意**  
儲存貯體層級封鎖公開存取設定可與組織和帳戶層級政策搭配使用。S3 會在儲存貯體層級和有效的帳戶層級組態之間套用最嚴格的設定 （如果有的話，可由組織政策強制執行）。

您可以使用 S3 主控台、 AWS CLI、 AWS SDKs 和 REST API 來授予一或多個儲存貯體的公有存取權。您也可以封鎖對已公開之儲存貯體的公開存取。如需詳細資訊，請參閱以下各區段。

若要為您帳戶中的每個儲存貯體設定封鎖公開存取，請參閱 [為您的帳戶設定封鎖公開存取](configuring-block-public-access-account.md)。如需整個組織的集中式管理，請參閱*AWS Organizations 《 使用者指南*》中的 [S3 政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_s3.html)。

如需有關為存取點設定封鎖公開存取的資訊，請參閱 [在存取點執行封鎖公開存取操作](access-control-block-public-access.md#access-control-block-public-access-examples-access-point)。

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

Amazon S3 封鎖公開存取可防止套用任何設定而允許公開存取 S3 儲存貯體內的資料。本節說明如何編輯一或多個 S3 儲存貯體的封鎖公開存取設定。如需使用 AWS CLI、 AWS SDKs和 Amazon S3 REST APIs 封鎖公開存取的資訊，請參閱 [封鎖對 Amazon S3 儲存體的公開存取權](access-control-block-public-access.md)。

在 **IAM Access Analyzer** 欄，您可以查看您的儲存貯體是否可從**儲存貯體**清單中公開存取。如需詳細資訊，請參閱[使用 IAM Access Analyzer for S3 檢閱儲存貯體存取權](access-analyzer.md)。

如果您在列出儲存貯體及其公用存取設定時看到 `Error`，則您可能沒有所需的許可。檢查以確保您已將下列許可新增至您的使用者或角色政策中：

```
s3:GetAccountPublicAccessBlock
s3:GetBucketPublicAccessBlock
s3:GetBucketPolicyStatus
s3:GetBucketLocation
s3:GetBucketAcl
s3:ListAccessPoints
s3:ListAllMyBuckets
```

在極少數狀況下，請求也可能因 AWS 區域 中斷而失敗。

**編輯單個 S3 儲存貯體的 Amazon S3 封鎖公開存取設定**

如果您需要變更單一 S3 儲存貯體的公開存取設定，請遵循下列步驟。

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 在 **Bucket name** (儲存貯體名稱) 清單中，選擇所需的儲存貯體名稱。

1. 選擇 **Permissions** (許可)。

1. 選擇**封鎖公開存取 (儲存貯體設定)** 旁的**編輯**，以變更儲存貯體的公開存取設定。如需四個 Amazon S3 封鎖公開存取設定的詳細資訊，請參閱「[封鎖公開存取設定](access-control-block-public-access.md#access-control-block-public-access-options)」。

1. 選擇其中一個設定，然後選擇**儲存變更**。

1. 出現確認提示時，輸入 **confirm**。然後選擇 **Confirm** (確認) 以儲存變更。

**重要**  
即使您停用儲存貯體層級封鎖公開存取設定，您的儲存貯體仍可能受到帳戶層級或組織層級政策的保護。S3 一律在所有層級套用最嚴格的設定組合。

建立儲存貯體時，您也可以變更 Amazon S3 封鎖公開存取設定。如需詳細資訊，請參閱[建立一般用途儲存貯體](create-bucket-overview.md)。

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

若要封鎖儲存貯體上的公有存取，或刪除公有存取區塊，請使用 AWS CLI 服務`s3api`。使用此服務的儲存貯體層級操作如下：
+ `PutPublicAccessBlock` (適用於儲存貯體)
+ `GetPublicAccessBlock` (適用於儲存貯體)
+ `DeletePublicAccessBlock` (適用於儲存貯體)
+ `GetBucketPolicyStatus`

如需詳細資訊，請參閱《AWS CLI 參考》**中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-public-access-block.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-public-access-block.html)。

**注意**  
這些儲存貯體層級操作不受組織層級政策的限制。不過，有效的公開存取行為仍受儲存貯體、帳戶和組織設定的最嚴格組合所規範。如需階層和政策互動的詳細資訊，請參閱 [使用 S3 主控台](block-public-access-bucket.md)。

## 使用 AWS SDKs
<a name="configuring-block-public-access-bucket-sdk"></a>

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

```
AmazonS3 client = AmazonS3ClientBuilder.standard()
	  .withCredentials(<credentials>)
	  .build();

client.setPublicAccessBlock(new SetPublicAccessBlockRequest()
		.withBucketName(<bucket-name>)
		.withPublicAccessBlockConfiguration(new PublicAccessBlockConfiguration()
				.withBlockPublicAcls(<value>)
				.withIgnorePublicAcls(<value>)
				.withBlockPublicPolicy(<value>)
				.withRestrictPublicBuckets(<value>)));
```

**重要**  
此範例僅適用於儲存貯體層級操作，這類操作會使用 `AmazonS3` 用戶端類別。針對帳戶層級操作，請參閱以下範例。

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

如需使用其他 AWS SDKs的資訊，請參閱《[Amazon S3 API 參考》中的使用 AWS SDKs 與 Amazon S3 一起開發](https://docs.aws.amazon.com/AmazonS3/latest/API/sdk-general-information-section.html)。 *Amazon S3 *

------

## 使用 REST API
<a name="configuring-block-public-access-bucket-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)
  + [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicyStatus.html)