KMS使用 Amazon S3 儲存貯體金鑰降低成本 SSE - Amazon Simple Storage Service

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

KMS使用 Amazon S3 儲存貯體金鑰降低成本 SSE

Amazon S3 儲存貯體金鑰可降低 Amazon S3 伺服器端加密的成本 AWS Key Management Service (AWS KMS)鍵(SSE-KMS)。使用桶級密鑰-可以減少 SSE KMS AWS KMS 將 Amazon S3 的請求流量減少到最多 99% 的請求成本 AWS KMS。 隨著在點擊幾下 AWS Management Console,您可以在不對用戶端應用程式進行任何變更的情況下,將儲存貯體設定為SSE在新物件上使用 S3 儲存貯體金鑰進行KMS加密。

注意

S3 儲存貯體金鑰不支援雙層伺服器端加密 AWS Key Management Service (AWS KMS)鍵(DSSE-KMS)。

S3 儲存貯體鍵,適用於 SSE-KMS

存取使用SSE加密的數百萬或數十億個物件的工作負載,KMS可以產生大量要求 AWS KMS。 當您使用 SSE-KMS 為了在不使用 S3 儲存貯體金鑰的情況下保護資料時,Amazon S3 會使用個別的 AWS KMS 每個物件的資料索引鍵。在這種情況下,Amazon S3 打電話 AWS KMS 每次對KMS加密對象發出請求時。若要取得有關如何SSEKMS運作的資訊,請參閱使用伺服器端加密 AWS KMS 按鍵 (SSE-KMS)

當您將儲存貯體設定為使用 S3 儲存貯體SSE金鑰時KMS, AWS 從中生成一個短命的桶級密鑰 AWS KMS,然後暫時將其保存在 S3 中。此儲存貯體層級金鑰會其生命週期中建立資料金鑰。S3 儲存貯體金鑰在 Amazon S3 中使用有限的時間段,減少 S3 發出請求的需求 AWS KMS 完成加密作業。這樣可以將 S3 的流量減少到 AWS KMS,允許您訪問 AWS KMS Amazon S3 中的加密物件,只需先前成本的一小部分。

每個請求者至少會擷取一次唯一的儲存貯體層級金鑰,以確保要求者對金鑰的存取權限會擷取於 AWS KMS CloudTrail 事件。當來電者使用不同的角色或帳戶時,Amazon S3 會將來電者視為不同的請求者,或使用不同範圍政策的相同角色。 AWS KMS 節省請求反映了請求者的數量,請求模式以及請求對象的相對年齡。例如,較少的請求者數量、在有限的時間範圍內請求多個物件,以及使用相同的儲存貯體層級金鑰加密,會節省更多成本。

注意

使用 S3 儲存貯體金鑰可讓您節省成本 AWS KMS 通過減少您的請求來請求成本 AWS KMS 對於EncryptGenerateDataKey、和透過使用儲存貯體層級的金鑰進Decrypt行操作。根據設計,利用此值區層級索引鍵的後續要求不會產生 AWS KMS API請求或驗證存取 AWS KMS 金鑰政策。

當您設定 S3 儲存貯體金鑰時,儲存貯體中已存在的物件不會使用 S3 儲存貯體金鑰。若要為現有物件設定 S3 儲存貯體金鑰,您可以使用 CopyObject 操作。如需詳細資訊,請參閱在物件層級設定 S3 儲存貯體金鑰

Amazon S3 只會為由相同加密的物件共用 S3 儲存貯體金鑰 AWS KMS key。 S3 儲存貯體金鑰與建立的KMS金鑰相容 AWS KMS,進口的密鑰材料由自定義密鑰存儲支持的關鍵材料。

圖表, 顯示 AWS KMS 生成一個值區密鑰,該密鑰為存儲桶中的對象創建數據密鑰。

設定 S3 儲存貯體金鑰

您可以透過 Amazon S3 主控台將儲存貯體設定為SSEKMS在新物件上使用 S3 儲存貯體金鑰, AWS SDKs, AWS CLI,或RESTAPI。在儲存貯體上啟用 S3 儲存貯體金鑰後,使用不同指定 SSE-金KMS鑰上傳的物件將使用自己的 S3 儲存貯體金鑰。無論您的 S3 儲存貯體金鑰設定為何,您都可以在請求中包含具有 truefalse 值的 x-amz-server-side-encryption-bucket-key-enabled 標頭,以覆寫儲存貯體設定。

在您將儲存貯體設定為使用 S3 儲存貯體金鑰之前,請先檢閱 啟用 S3 儲存貯體金鑰之前,要注意的變更

使用 Amazon S3 主控台設定 S3 儲存貯體金鑰

建立新儲存貯體時,您可以將儲存貯體設定為SSEKMS在新物件上使用 S3 儲存貯體金鑰。您也可以透過更新儲存貯體屬性,將現有儲存貯體設定為SSEKMS在新物件上使用 S3 儲存貯體金鑰。 

如需詳細資訊,請參閱將儲存貯體設定為使用 S3 儲存貯體金鑰搭配 SSE-用KMS於新物件

REST API, AWS CLI和 AWS SDKS3 儲存貯體金鑰的支援

您可以使用 RESTAPI, AWS CLI,或 AWS SDK將存儲桶配置為SSEKMS在新對像上使用 S3 存儲桶密鑰。您也可以在物件層級啟用 S3 儲存貯體金鑰。

如需詳細資訊,請參閱下列內容: 

下列API操作支援-的 S3 儲存貯體SSE金鑰KMS:

使用 AWS CloudFormation

In (入) AWS CloudFormation,AWS::S3::Bucket資源包含一個稱為的加密屬性BucketKeyEnabled,您可以用來啟用或停用 S3 儲存貯體金鑰。

如需詳細資訊,請參閱使用 AWS CloudFormation

啟用 S3 儲存貯體金鑰之前,要注意的變更

啟用 S3 儲存貯體金鑰之前,請注意下列相關變更:

IAM或 AWS KMS 重要政策

如果您現有的 AWS Identity and Access Management (IAM) 政策或 AWS KMS 金鑰政策使用您的物件 Amazon 資源名稱 (ARN) 做為加密內容,以精簡或限制對KMS金鑰的存取,這些政策不適用於 S3 儲存貯體金鑰。S3 儲存貯體金鑰使用儲存貯體ARN做為加密內容。啟用 S3 儲存貯體金鑰之前,請更新您的IAM政策或 AWS KMS 使用儲存貯體ARN做為加密內容的金鑰政策。

如需加密內容與 S3 儲存貯體金鑰的詳細資訊,請參閱 加密內容

CloudTrail 的活動 AWS KMS

啟用 S3 儲存貯體金鑰後, AWS KMS CloudTrail 事件記錄您的存儲桶ARN而不是您的對象ARN。此外,您在日誌中看到的 SSE-對KMS象的KMS CloudTrail 事件更少。 由於 Amazon S3 中的金鑰材料是有時間限制的,所以請求減少 AWS KMS.

使用 S3 儲存貯體金鑰與複寫

您可以將 S3 儲存貯體金鑰與相同區域複寫 (SRR) 和跨區域複寫 (CRR) 搭配使用。

Amazon S3 複寫加密物件時,通常會在目的地儲存貯體中保留複本物件的加密設定。不過,如果來源物件未加密,且目的地儲存貯體使用預設加密或 S3 儲存貯體金鑰,Amazon S3 會使用目的地儲存貯體的組態加密物件。

下列範例說明 S3 儲存貯體金鑰如何與複寫搭配使用。如需詳細資訊,請參閱複寫加密物件 (-SSE C、SSE-S3、SSE-KMS、DSSE-) KMS。 

範例 1 — 來源物件使用 S3 儲存貯體金鑰,目的地儲存貯體使用預設加密

如果您的來源物件使用 S3 儲存貯體金鑰,但目的地儲存貯體使用預設加密搭配 SSE-KMS,則複本物件會在目的地儲存貯體中維護其 S3 儲存貯體金鑰加密設定。目標值區仍使用預設加密與 SSE-KMS。

範例 2 — 來源物件未加密;目標儲存貯體使用 S3 儲存貯體金鑰搭配 SSE-KMS

如果您的來源物件未加密,且目標儲存貯體使用帶有 SSE-的 S3 儲存貯體金鑰KMS,則會KMS在目的地儲存貯體中使用帶有 SSE-的 S3 儲存貯體金鑰來加密複本物件。這會導致來源物件的 ETag 與複本物件的 ETag 不同。您必須更新可使用 ETag 的應用程式來容納這項差異。

使用 S3 儲存貯體金鑰

如需啟用及使用 S3 儲存貯體金鑰的詳細資訊,請參閱下列章節: