為您的 S3 儲存貯體設定封鎖公開存取 - Amazon Simple Storage Service

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

為您的 S3 儲存貯體設定封鎖公開存取

Amazon S3 封鎖公開存取功能可提供存取點、儲存貯體和帳戶的設定,以協助您管理對 Amazon S3 資源的公開存取。依預設,新的儲存貯體、存取點和物件不允許公開存取。

如需詳細資訊,請參閱封鎖對 Amazon S3 儲存體的公開存取權

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

若要為您帳戶中的每個儲存貯體設定封鎖公開存取,請參閱 為您的帳戶設定封鎖公開存取。如需有關為存取點設定封鎖公開存取的資訊,請參閱 在存取點執行封鎖公開存取操作

Amazon S3 封鎖公開存取可防止套用任何設定而允許公開存取 S3 儲存貯體內的資料。本節說明如何編輯一或多個 S3 儲存貯體的封鎖公開存取設定。如需有關使用 AWS CLI、 AWS SDKs和 Amazon S3 REST APIs 封鎖公開存取的資訊,請參閱 封鎖對 Amazon S3 儲存體的公開存取權

您可以在 IAM Access Analyzer 欄中,查看儲存貯體是否可以從儲存貯體清單中公開存取。如需詳細資訊,請參閱使用 IAM Access Analyzer for S3 檢閱儲存貯體存取權

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

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

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

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

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

  1. 登入 AWS Management Console ,並在 http://http://console.aws.amazon.com/s3/ 開啟 Amazon S3 主控台。

  2. Bucket name (儲存貯體名稱) 清單中,選擇所需的儲存貯體名稱。

  3. 選擇 Permissions (許可)。

  4. 選擇封鎖公開存取 (儲存貯體設定) 旁的編輯,以變更儲存貯體的公開存取設定。如需四個 Amazon S3 封鎖公開存取設定的詳細資訊,請參閱「封鎖公開存取設定」。

  5. 選擇其中一個設定,然後選擇儲存變更

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

您也可以在建立儲存貯體時變更 Amazon S3 封鎖公開存取設定。如需詳細資訊,請參閱建立一般用途儲存貯體

若要封鎖儲存貯體上的公有存取或刪除公有存取區塊,請使用 AWS CLI 服務s3api。使用此服務的儲存貯體層級操作如下:

  • PutPublicAccessBlock (適用於儲存貯體)

  • GetPublicAccessBlock (適用於儲存貯體)

  • DeletePublicAccessBlock (適用於儲存貯體)

  • GetBucketPolicyStatus

如需詳細資訊,請參閱《AWS CLI 參考》中的 put-public-access-block

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 一起開發Amazon S3

如需有關透過 REST API 使用 Amazon S3 封鎖公開存取的資訊,請參閱《Amazon Simple Storage Service API 參考》中的下列主題。