我的 Amazon Simple Storage Service (Amazon S3) 儲存貯體指定錯誤的 Amazon Virtual Private Cloud (Amazon VPC) ID 或 VPC 端點 ID。我想要修正政策,以便我可以再次存取儲存貯體。
解決方案
注意事項:
VPC ID 或 VPC 端點 ID 有效,但卻用於錯誤的 VPC
**注意事項:**如果您在儲存貯體政策中指定了 VPC ID,則必須將 VPC 端點與 VPC 建立關聯。否則,您無法更新儲存貯體。
完成下列步驟:
-
連線至允許的 VPC 中的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。
**注意事項:**Amazon EC2 執行個體還必須使用路由表,該表會允許透過 VPC 端點傳輸的 Amazon S3 流量。此外,執行個體必須具有可存取 S3 儲存貯體許可的角色或憑證。
-
在執行個體中,執行 get-bucket-policy AWS CLI 命令以取得儲存貯體政策:
aws s3api get-bucket-policy --bucket example_bucket
-
**重要事項:**複製現有的儲存貯體政策,以用於稍後的步驟。
-
刪除儲存貯體政策:
aws s3api delete-bucket-policy --bucket example_bucket
-
編輯先前的儲存貯體政策,以指向正確的 VPC 或 VPC 端點。或者,如果您不需要 VPC 來限制存取權,則請移除 VPC 限制。
-
以 JSON 格式儲存更正的政策。
-
從具有儲存貯體存取權的 AWS 帳戶,執行 put-bucket-policy 命令,將更正的儲存貯體政策新增至該儲存貯體:
aws s3api put-bucket-policy --bucket example_bucket --policy file://policy.json
VPC ID 或 VPC 端點 ID 無效
如果儲存貯體政策中的 VPC ID 或 VPC 端點 ID 無效或輸入錯誤,則會收到錯誤。若要更新政策,您必須具有帳戶根使用者存取權。您無法使用僅有管理員層級存取權來進行編輯或移除政策。
**注意事項:**這些程序不適用於 AWS GovCloud (美國)。如果您是 AWS GovCloud (美國) 使用者,則請聯絡 AWS Support 以取得協助。
使用 Amazon S3 主控台以更正儲存貯體政策
完成下列步驟:
- 以根使用者身分開啟 Amazon S3 主控台。
- 選取 Amazon S3 儲存貯體,其具有您想要刪除或編輯的儲存貯體政策。
**注意事項:**開啟儲存貯體後,您可能會在主控台中看到「存取遭拒」錯誤。您仍然可以繼續執行下一步。
- 選擇「許可」檢視。
- 選擇「儲存貯體政策」。
- 若要刪除儲存貯體政策,請選擇「刪除」。若僅要編輯 VPC ID 或 VPC 端點 ID,請更正「儲存貯體政策編輯器」中的 ID,然後選擇「儲存」。
**警告:**如果您刪除儲存貯體政策,請務必保留現有儲存貯體政策的副本以供參考。
使用 AWS CLI 以更正儲存貯體政策
**警告:**此程序會使用根使用者憑證 (存取金鑰)。最佳實務是僅在緊急或復原情況下使用根使用者憑證。如需詳細資訊,請參閱保護您的根使用者憑證,不要將其用於日常任務。
完成下列步驟:
-
執行下列命令以設定 AWS CLI:
aws configure
-
請輸入您的根使用者憑證。如需如何產生這些憑證的指示,請參閱建立根使用者的存取金鑰。
-
取得儲存貯體政策:
aws s3api get-bucket-policy --bucket example_bucket
-
**重要事項:**複製現有的儲存貯體政策,以用於稍後的步驟。
-
執行下列命令以刪除儲存貯體政策:
aws s3api delete-bucket-policy --bucket example_bucket
-
編輯先前的儲存貯體政策,以指向正確的 VPC 或 VPC 端點。或者,如果您不需要 VPC 來限制存取權,則請移除 VPC 限制。
-
以 JSON 格式儲存更正的政策。
-
執行 put-bucket-policy 命令,將更正的儲存貯體政策新增至該儲存貯體:
aws s3api put-bucket-policy --bucket example_bucket --policy file://policy.json
遵循 AWS 最佳實務
更正儲存貯體政策後,請遵循下列最佳實務:
相關資訊
使用儲存貯體政策,控制 VPC 端點的存取權