搭配 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 Storage Lens、Amazon S3 主控台,以及 AWS Command Line Interface 和 AWS SDKs 中的其他 Amazon S3 API 回應標頭中使用。如需詳細資訊,請參閱預設加密FAQ

所有上傳至 Amazon S3 儲存貯體的新物件預設都會使用 Amazon S3 受管金鑰 (SSE-S3) 進行伺服器端加密。

伺服器端加密保護靜態資料。Amazon S3 會使用不重複的金鑰加密每個物件。它使用定期輪換的金鑰自行加密金鑰,提供額外的防護。Amazon S3 伺服器端加密使用 256 位元進階加密標準 Galois/Counter 模式 (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 來設定伺服器端加密APIs,您必須提供x-amz-server-side-encryption請求標頭。如需 REST 的相關資訊APIs,請參閱 使用 REST API

下列 Amazon S3 APIs 支援此標頭:

  • PUT 操作 – 使用 API PUT 上傳資料時指定請求標頭。如需詳細資訊,請參閱 PUT 物件

  • 啟動分段上傳 – 使用分段上傳 API 操作上傳大型物件時,在啟動請求中指定標頭。如需詳細資訊,請參閱啟動分段上傳

  • COPY操作 – 複製物件時,您同時擁有來源物件和目標物件。如需詳細資訊,請參閱 PUT 物件 - 複製

注意

使用 POST 操作上傳物件時,請您提供與表單欄位中相同的資訊,而非提供要求標頭。如需詳細資訊,請參閱 POST 物件

The AWS SDKs 也提供包裝 APIs,您可以用來請求伺服器端加密。您也可以使用 AWS Management Console 上傳物件並請求伺服器端加密。

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