設定和監控目錄儲存貯體的預設加密
根據預設,Amazon S3 儲存貯體皆已啟動儲存貯體加密,且使用伺服器端加密與 Amazon S3 受管金鑰 (SSE-S3) 自動加密新物件。此加密免費適用於 Amazon S3 儲存貯體中的所有新物件。
若您需要對加密金鑰進行更多控制,例如管理金鑰輪換和授予存取政策,您可以選擇使用 AWS Key Management Service (AWS KMS) 金鑰的伺服器端加密 (SSE-KMS)。
注意
建議儲存貯體的預設加密使用所需的加密組態,而且您不會覆寫
CreateSession請求或PUT物件請求中的儲存貯體預設加密。然後,新的物件會以所需的加密設定自動加密。如需目錄儲存貯體中加密覆寫行為的詳細資訊,請參閱為新的物件上傳指定使用 AWS KMS 的伺服器端加密。若要使用 SSE-KMS 加密目錄儲存貯體中的新物件,您必須使用 KMS 金鑰 (特別是客戶自管金鑰) 將 SSE-KMS 指定為目錄儲存貯體的預設加密組態。然後,在為區域端點 API 操作建立工作階段時,系統會在工作階段期間使用 SSE-KMS 和 S3 儲存貯體金鑰自動加密和解密新物件。
當您將預設儲存貯體加密設定為 SSE-KMS 時,目錄儲存貯體中的
GET和PUT操作一律會啟用 S3 儲存貯體金鑰,且無法停用。當您透過 CopyObject、UploadPartCopy、Batch Operations 中的 Copy 操作或 import 作業,將 SSE-KMS 加密物件從一般用途儲存貯體複製到目錄儲存貯體、從目錄儲存貯體複製到一般用途儲存貯體或在目錄儲存貯體之間複製時,不支援 S3 儲存貯體金鑰。在此情況下,每次對 KMS 加密物件提出複製請求時,Amazon S3 都會呼叫 AWS KMS。如需 S3 儲存貯體金鑰如何降低 AWS KMS 請求成本的詳細資訊,請參閱使用 Amazon S3 儲存貯體金鑰降低 SSE-KMS 的成本。當您在目錄儲存貯體中指定用於加密的 AWS KMS 客戶自管金鑰時,請僅使用金鑰 ID 或金鑰 ARN。不支援 KMS 金鑰的金鑰別名格式。
不支援以使用 AWS KMS 金鑰的伺服器端加密 (DSSE-KMS) 和使用客戶提供加密金鑰的伺服器端加密 (SSE-C) 作為目錄儲存貯體中的預設加密。
如需設定預設加密的詳細資訊,請參閱設定預設加密。
如需預設加密所需許可的詳細資訊,請參閱 Amazon Simple Storage Service API 參考中的 PutBucketEncryption。
您可以使用 Amazon S3 主控台、AWS 開發套件、Amazon S3 REST API 和 AWS Command Line Interface (AWS CLI),為 S3 儲存貯體設定 Amazon S3 預設加密。
設定 Amazon S3 儲存貯體的預設加密
登入 AWS 管理主控台,並開啟位於 https://console.aws.amazon.com/s3/
的 Amazon S3 主控台。 -
在左側導覽窗格中,選擇 Buckets (儲存貯體)。
-
在 Buckets (儲存貯體) 清單中,選擇您所需的儲存貯體名稱。
-
選擇屬性索引標籤。
-
在伺服器端加密設定下,目錄儲存貯體會使用 Amazon S3 受管金鑰的伺服器端加密 (SSE-S3)。
-
選擇儲存變更。
這些範例說明如何使用 SSE-S3 或具有 S3 儲存貯體金鑰的 SSE-KMS 來設定預設加密。
如需預設加密的詳細資訊,請參閱對 Amazon S3 儲存貯體設定預設伺服器端加密行為。如需有關使用 AWS CLI 設定預設加密的詳細資訊,請參閱 put-bucket-encryption
範例 – 使用 SSE-S3 預設加密
此範例會使用 Amazon S3 受管金鑰設定預設儲存貯體加密。若要使用此命令,請以您自己的資訊取代使用者輸入預留位置。
aws s3api put-bucket-encryption --bucketbucket-base-name--zone-id--x-s3 --server-side-encryption-configuration '{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" } } ] }'
範例 – 使用 S3 儲存貯體金鑰以 SSE-KMS 預設加密
此範例會使用 S3 儲存貯體金鑰,以 SSE-KMS 設定預設儲存貯體加密。若要使用此命令,請以您自己的資訊取代使用者輸入預留位置。
aws s3api put-bucket-encryption --bucketbucket-base-name--zone-id--x-s3 --server-side-encryption-configuration '{ "Rules": [ { "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "aws:kms", "KMSMasterKeyID": "KMS-Key-ARN" }, "BucketKeyEnabled": true } ] }'
使用 REST API PutBucketEncryption 操作,將預設加密設定為要使用的伺服器端加密類型 (SSE-S3 或 SSE-KMS)。
如需詳細資訊,請參閱 Amazon Simple Storage Service API 參考中的 PutBucketEncryption。
使用 AWS 開發套件時,您可以請求 Amazon S3 將 AWS KMS keys 用於伺服器端加密。下列適用於 Java 和 .NET 的 AWS SDK 範例使用 SSE-KMS 和 S3 儲存貯體金鑰設定目錄儲存貯體的預設加密組態。如需其他 SDK 的資訊,請參閱 AWS 開發人員中心的範例程式碼和程式庫
重要
當您使用 AWS KMS key 在 Amazon S3 中進行伺服器端加密時,必須選擇對稱加密 KMS 金鑰。Amazon S3 只支援對稱加密 KMS 金鑰。如需詳細資訊,請參閱《AWS Key Management Service開發人員指南》中的對稱加密 KMS 金鑰。
使用 AWS CloudTrail 監控目錄儲存貯體的預設加密
您可以使用 AWS CloudTrail 事件追蹤 Amazon S3 目錄儲存貯體的預設加密組態請求。CloudTrail 日誌使用下列 API 事件名稱:
-
PutBucketEncryption -
GetBucketEncryption -
DeleteBucketEncryption
注意
目錄儲存貯體不支援 EventBridge。
目錄儲存貯體不支援使用 AWS Key Management Service (AWS KMS) 金鑰的雙層伺服器端加密 (DSSE-KMS),也不支援使用客戶提供加密金鑰的伺服器端加密 (SSE-C)。
如需使用 AWS CloudTrail 監控預設加密的詳細資訊,請參閱使用 AWS CloudTrail 與 Amazon EventBridge 監控預設加密。