為您的 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 儲存體的公開存取權

您可以在 Buckets (儲存貯體)清單中查看您的儲存貯體是否可公開存取。在 Access (存取)欄中,Amazon S3 標示儲存貯體的許可,如下所示:

  • 公開 - 每個人都擁有下列其中一或多項的存取:列出物件、寫入物件、讀取和寫入許可。

  • 物件可為公開 - 儲存貯體非公開,但具備適當許可的人員都可授予物件公開存取。

  • 儲存貯體和物件不可為公開 - 儲存貯體和物件不可公開存取。

  • 只有此帳戶的授權使用者 - 存取會與此帳戶 AWS 和服務主體中的IAM使用者和角色隔離,因為有授予公有存取權的政策。

您也可以依存取類型來篩選儲存貯體搜尋。從 Search for buckets (搜尋儲存貯體) 列旁的下拉式清單選擇存取類型。

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

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

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

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

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

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

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

  3. 選擇 Permissions (許可)。

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

  5. 選擇您希望變更的設定,然後選擇 Save (儲存)。

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

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

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

  • PUT PublicAccessBlock (適用於儲存貯體)

  • GET PublicAccessBlock (適用於儲存貯體)

  • DELETE PublicAccessBlock (適用於儲存貯體)

  • GET BucketPolicyStatus

如需詳細資訊和範例,請參閱 參考 put-public-access-block中的 。 AWS CLI

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 參考 中的使用 開發 AWS SDKs Amazon S3API

如需透過 使用 Amazon S3 Block Public Access REST 的相關資訊APIs,請參閱 Amazon Simple Storage Service API參考 中的下列主題。