本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
重要
Amazon S3 現在將伺服器端加密與 Amazon S3 受管金鑰 (SSE-S3) 套用為 Amazon S3 中每個儲存貯體的基本加密層級。從 2023 年 1 月 5 日起,所有上傳到 Amazon S3 的新物件都會自動加密,無需額外費用,也不會影響效能。 AWS CloudTrail 日誌、S3 庫存、S3 Storage Lens、Amazon S3 主控台,以及 AWS Command Line Interface 和 AWS SDKs 中的其他 Amazon S3 API 回應標頭中,提供 S3 儲存貯體預設加密組態和新物件上傳的自動加密狀態。 S3 如需詳細資訊,請參閱預設加密常見問答集。
所有上傳到 Amazon S3 儲存貯體的新物件均會使用伺服器端加密與 Amazon S3 受管金鑰 (SSE-S3) 進行加密。
伺服器端加密保護靜態資料。Amazon S3 會使用不重複的金鑰加密每個物件。它使用定期輪換的金鑰自行加密金鑰,提供額外的防護。Amazon S3 伺服器端加密使用 256 位元 Galois/計數器模式中的進階加密標準 (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。
若要使用物件建立 REST API,用以設定伺服器端加密,請務必提供 x-amz-server-side-encryption
要求標頭。如需 REST APIs 的相關資訊,請參閱使用 REST API。
下列 Amazon S3 API 支援此標頭。
-
PUT 操作 — 使用
PUT
API 上傳資料時,請指定要求標頭。如需詳細資訊,請參閱 PUT 物件。 -
啟動分段上傳 — 使用分段上傳 API 操作上傳大型物件時,您可於起始要求時,指定這些標頭。如需詳細資訊,請參閱啟動分段上傳。
-
COPY 操作 — 當您複製物件時,要有來源物件與目標物件。如需詳細資訊,請參閱 PUT 物件 - 複製。
注意
使用 POST
操作上傳物件時,請您提供與表單欄位中相同的資訊,而非提供要求標頭。如需詳細資訊,請參閱 POST 物件。
AWS SDKs 也提供包裝 APIs可用來請求伺服器端加密。您也可以使用 AWS Management Console 上傳物件並請求伺服器端加密。
如需更多一般資訊,請參閱《AWS Key Management Service 開發人員指南》中的 AWS KMS 概念。