使用 Amazon S3 受管金鑰 (SSE-S3) 進行伺服器端加密 - Amazon Simple Storage Service

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

使用 Amazon S3 受管金鑰 (SSE-S3) 進行伺服器端加密

重要

Amazon S3 現在將伺服器端加密與 Amazon S3 受管金鑰 (SSE-S3) 套用為 Amazon S3 中每個儲存貯體的基本加密層級。從 2023 年 1 月 5 日起,所有上傳到 Amazon S3 的新物件都會自動加密,無需額外費用,也不會影響效能。S3 儲存貯體預設加密組態和新物件上傳的自動加密狀態可在 AWS CloudTrail 日誌、S3 庫存、S3 儲存鏡頭、Amazon S3 主控台中使用,以及作為和 AWS 開發套件中的額外 Amazon S3 API 回應標頭。 AWS Command Line Interface 如需詳細資訊,請參閱預設加密常見問答集

所有上傳到 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:::DOC-EXAMPLE-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 (SSE-KMS AWS KMS)、使用金鑰的雙層伺服器端加密 (DSSE-KMS),或使用客戶提供的金 AWS 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 SDK 也提供包裝 API,您可以用來要求伺服器端加密。您也可以使用上 AWS Management Console 載物件並要求伺服器端加密。

如需更多一般資訊,請參閱《AWS Key Management Service 開發人員指南》中的 AWS KMS 概念