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

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

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

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

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

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

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

Amazon S3 封鎖公開存取可防止套用任何設定而允許公開存取 S3 儲存貯體內的資料。本節說明如何編輯一或多個 S3 儲存貯體的封鎖公開存取設定。如需使用 AWS CLI、開 AWS 發套件和 Amazon S3 REST API 封鎖公用存取的相關資訊,請參閱封鎖對 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。使用此服務的儲存貯體層級操作如下:

  • 放 PublicAccessBlock (用於桶)

  • GET PublicAccessBlock (用於一個桶)

  • 刪除 PublicAccessBlock (用於存儲桶)

  • 獲取 BucketPolicyStatus

如需詳細資訊和範例,請參閱〈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 SDK 的相關資訊,請參閱使用 AWS SDK 和 Explorer 來透過 Amazon S3 進行開發

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