本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配 Amazon S3 受管金鑰使用伺服器端加密 (SSE-S3)
重要
Amazon S3 現在會使用 Amazon S3 受管金鑰 (SSE-S3) 套用伺服器端加密,做為 Amazon S3 中每個儲存貯體的加密基礎層級。從 2023 年 1 月 5 日起,所有上傳到 Amazon S3 的新物件都會自動加密,無需額外費用,也不會影響效能。S3 儲存貯體預設加密組態和新物件上傳的自動加密狀態可在 AWS CloudTrail 日誌、S3 庫存、S3 儲存鏡頭、Amazon S3 API 主控台,以及在 AWS Command Line Interface 以及 AWS SDKs。如需詳細資訊,請參閱預設加密FAQ。
根據預設,所有上傳到 Amazon S3 儲存貯體的新物件都會使用 Amazon S3 受管金鑰 (SSE-S3) 的伺服器端加密進行加密。
伺服器端加密保護靜態資料。Amazon S3 會使用不重複的金鑰加密每個物件。它使用定期輪換的金鑰自行加密金鑰,提供額外的防護。Amazon S3 伺服器端加密使用 256 位元進階加密標準 GaloI/計數器模式 (AES-GCM) 來加密所有上傳的物件。
使用伺服器端加密搭配 Amazon S3 受管金鑰 (SSE-S3) 無需額外費用。不過,請求設定預設加密功能會產生標準 Amazon S3 請求費用。如需定價的資訊,請參閱 Amazon S3 定價
若您希望上傳的資料僅使用 Amazon S3 受管金鑰加密,您可以使用下列儲存貯體政策。例如,除非要求包含 x-amz-server-side-encryption
標頭以要求伺服器端加密,否則以下儲存貯體政策會拒絕上傳物件的許可權限:
{ "Version": "2012-10-17", "Id": "PutObjectPolicy", "Statement": [ { "Sid": "DenyObjectsThatAreNotSSES3", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
/*", "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption": "AES256" } } } ] }
注意
伺服器端加密只會加密物件資料,非物件中繼資料。
API支援伺服器端加密
根據預設,所有 Amazon S3 儲存貯體都設定了加密,所有上傳到 S3 儲存貯體的新物件都會在靜態時自動加密。使用 Amazon S3 受管金鑰 (SSE-S3) 進行伺服器端加密是 Amazon S3 中每個儲存貯體的預設加密組態。若要使用不同類型的加密,您可以指定 S3 PUT
請求中要使用的伺服器端加密類型,也可以在目的地儲存貯體中設定預設加密組態。
如果您想要在要PUT
求中指定不同的加密類型,您可以使用伺服器端加密
AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS)、雙層伺服器端加密 AWS KMS 金鑰 (DSSE-KMS),或使用客戶提供的金鑰 (SSE-C) 進行伺服器端加密。如果要在目的地值區中設定不同的預設加密組態,可以使用 SSE-KMS 或 DSSE-KMS。
若要使用物件建立來設定伺服器端加密 RESTAPIs,您必須提供x-amz-server-side-encryption
要求標頭。如需有關的資訊 RESTAPIs,請參閱使用 REST API。
以下 Amazon S3 APIs 支持此標頭:
注意
使用 POST
操作上傳物件時,請您提供與表單欄位中相同的資訊,而非提供要求標頭。如需詳細資訊,請參閱POST物件。
所以此 AWS SDKs也提供可用來要求伺服器端加密的包裝函式APIs。您也可以使用 AWS Management Console 上傳物件並要求伺服器端加密。
如需更多一般資訊,請參閱 AWS KMS中的概念 AWS Key Management Service 開發人員指南。