輪換 AWS KMS keys - AWS Key Management Service

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

輪換 AWS KMS keys

若要為您的客戶受管金鑰建立新的加密材料,您可以建立新的 KMS 金鑰,然後變更您的應用程式或別名來使用新的 KMS 金鑰。或者,您可以透過啟用自動金鑰輪換或執行隨需輪換,來輪換與現有 KMS 金鑰相關聯的金鑰材料。

根據預設,當您為 KMS 金鑰啟用自動金鑰輪換時, 每年都會為 KMS 金鑰 AWS KMS 產生新的密碼編譯資料。您也可以指定自訂rotation-period來定義啟用自動金鑰輪換後 AWS KMS 將輪換金鑰材料的天數,以及之後每次自動輪換之間的天數。如果您需要立即啟動金鑰材料輪換,無論是否啟用自動金鑰輪換,您都可以執行隨需輪換。隨需輪換不會變更現有的自動輪換排程。

您可以在 Amazon CloudWatch AWS CloudTrail和 AWS Key Management Service 主控台中追蹤 KMS 金鑰的金鑰材料輪換。您也可以使用 GetKeyRotationStatus 操作來驗證 KMS 金鑰是否已啟用自動輪換,並識別任何進行中的隨需輪換。您可以使用 ListKeyRotations 操作來檢視已完成輪換的詳細資訊。

金鑰輪換只會變更目前的金鑰材料,這是加密操作中使用的密碼編譯秘密。當您使用輪換的 KMS 金鑰來解密加密文字時, AWS KMS 會使用用來加密的金鑰材料。您無法選取特定金鑰材料進行解密操作, AWS KMS 而 會自動選擇正確的金鑰材料。由於 使用適當的金鑰材料 AWS KMS 透明地解密,因此您可以在應用程式中安全地使用輪換的 KMS 金鑰, AWS 服務 無需變更程式碼。

無論其金鑰材料變更多少次,KMS 金鑰都是相同的邏輯資源。KMS 金鑰的屬性不會變更,如下圖所示。

Key rotation process showing key material change while Key ID remains constant.

您可以決定建立新的 KMS 金鑰,並使用它來代替原始 KMS 金鑰。這與輪換現有 KMS 金鑰的金鑰材料有相同效果,所以通常被視為手動輪換金鑰。當您想要輪換不符合自動或隨需金鑰輪換資格的 KMS 金鑰時,包括非對稱 KMS 金鑰HMAC KMS 金鑰自訂金鑰存放區中的 KMS 金鑰,以及具有匯入金鑰材料的多區域 KMS 金鑰時,手動輪換是不錯的選擇。

注意

金鑰輪換不會影響 KMS 金鑰保護的資料。它不會輪換 KMS 金鑰產生的資料金鑰,或重新加密受 KMS 金鑰保護的任何資料。金鑰輪換不會降低資料金鑰遭到入侵的影響。

金鑰輪換和定價

AWS KMS 會針對為 KMS 金鑰維護之金鑰材料的第一次和第二次輪換收取每月費用。此價格提高上限為第二次輪換,任何後續輪換都不會計費。如需詳細資訊,請參閱 AWS Key Management Service 定價

注意

您可利用 AWS Cost Explorer Service 來檢視金鑰儲存費用明細。例如,您可指定 $REGION-KMS-Keys 作為用量類型,然後按 API 操作將資料分組,以便篩選檢視並查看作為目前及輪換 KMS 金鑰計費的金鑰總費用。

您可能仍會看到歷史日期的舊版 Unknown API 操作執行個體。

金鑰輪換和配額

在計算金鑰資源配額時,每個 KMS 金鑰都被視為一個金鑰,而不考慮輪換的金鑰資料版本編號。

如需金鑰資料和輪換的詳細資訊,請參閱 AWS Key Management Service 密碼編譯詳細資訊

為什麼要輪換 KMS 金鑰?

密碼編譯最佳實務不鼓勵直接加密資料的金鑰廣泛重複使用,例如 AWS KMS 產生的資料金鑰。當 256 位元資料金鑰加密數百萬則訊息時,這些金鑰可能會用盡,並開始產生帶有詭祕模式的密文,狡猾分子可利用這些模式來發現金鑰中的位元。最好使用資料金鑰一次或幾次,以緩解此金鑰耗盡。

然而,KMS 金鑰最常用作包裝金鑰,也稱為金鑰加密的金鑰。包裝金鑰不會加密資料,其所加密的是用於加密資料的資料金鑰。因此,其使用頻率遠低於資料金鑰,且重複使用頻率之低,鮮少具金鑰額度用盡風險。

儘管額度用盡風險非常低,但由於業務或合約規則或政府法規,您仍可能需要輪換 KMS 金鑰。當您被迫輪換 KMS 金鑰時,建議您在支援的地方使用自動金鑰輪換,如果不支援自動輪換,則使用隨需輪換,如果不支援自動或隨需金鑰輪換,則使用手動金鑰輪換。

您可以考慮執行隨需輪換,以示範關鍵材料輪換功能或驗證自動化指令碼。我們建議針對非計劃輪換使用隨需輪換,並盡可能使用自動金鑰輪換搭配自訂輪換期間

金鑰輪換的運作方式

中的金鑰輪換 AWS KMS 旨在透明且易於使用。 僅 AWS KMS 支援客戶受管金鑰的選用自動和隨需金鑰輪換。

自動金鑰輪換

AWS KMS 會在輪換期間定義的下一個輪換日期自動輪換 KMS 金鑰。您不必記住或排程更新。

只有具有 AWS KMS 產生 (AWS_KMS 原始伺服器) 金鑰材料的對稱加密 KMS 金鑰才支援自動金鑰輪換。

對於客戶受管 KMS 金鑰,自動輪換是選用的。 AWS KMS 一律每年輪換 AWS 受管 KMS 金鑰的金鑰材料。 AWS 擁有的 KMS 金鑰輪換由 AWS 服務 擁有金鑰的 管理。

隨需輪換

立即啟動與 KMS 金鑰相關聯的金鑰材料輪換,無論是否啟用自動金鑰輪換。

具有 AWS KMS 產生 ( 原始伺服器) 金鑰材料的對稱加密 KMS 金鑰,以及具有匯入金鑰材料EXTERNAL (AWS_KMS 原始伺服器) 的單一區域對稱加密 KMS 金鑰,支援隨需金鑰輪換。

手動輪換

下列類型的 KMS 金鑰不支援自動或隨需金鑰輪換,但您可以手動輪換這些 KMS 金鑰

管理金鑰資料

AWS KMS 即使金鑰輪換已停用, 仍會保留具有AWS_KMS原始伺服器的 KMS 金鑰的所有金鑰材料。只有在您刪除 KMS 金鑰時, 才會 AWS KMS 刪除金鑰材料。

您可以使用EXTERNAL原始伺服器管理對稱加密金鑰的金鑰材料。您可以使用 DeleteImportedKeyMaterial 操作刪除任何金鑰材料,或在匯入材料時設定過期時間。一旦其任何資料過期或刪除,KMS 金鑰就會變得無法使用。

使用金鑰資料

當您使用輪換的 KMS 金鑰來加密資料時, AWS KMS 會使用目前的金鑰材料。當您使用輪換的 KMS 金鑰來對加密文字進行解密時, AWS KMS 會使用原先用來加密的相同版本的金鑰資料。您無法為解密操作選取特定版本的金鑰材料, AWS KMS 而 會自動選擇正確的版本。

輪換期間

輪換期間會定義您啟用自動金鑰輪換後 AWS KMS 將輪換金鑰材料的天數,以及之後每次自動金鑰輪換之間的天數。如果您在啟用自動金鑰輪換RotationPeriodInDays時未指定 的值,預設值為 365 天。

您可以使用 kms:RotationPeriodInDays 條件索引鍵,進一步限制主體可以在 RotationPeriodInDays 參數中指定的值。

輪換日期

輪換日期反映 KMS 金鑰的目前金鑰材料因為自動 (排程) 輪換或隨需金鑰輪換而更新的日期。

輪換日期

AWS KMS 會在輪換期間定義的輪換日期自動輪換 KMS 金鑰。預設輪換期間為 365 天。

客戶受管金鑰

由於自動金鑰輪換在客戶自管金鑰是選擇性,且可隨時啟用及停用,因此輪換日期取決於最近啟用輪換的日期。如果您修改先前啟用自動金鑰輪換之金鑰的輪換期間,日期可能會變更。在金鑰的生命週期內,輪換日期可能會變更多次。

例如,如果您在 2022 年 1 月 1 日建立客戶受管金鑰,並在 2022 年 3 月 15 日啟用預設輪換期間為 365 天的自動金鑰輪換,則 會在 2023 年 3 月 15 日、2024 年 3 月 15 日及之後每 365 天 AWS KMS 輪換金鑰材料。

下列範例假設已啟用自動金鑰輪換,預設輪換期間為 365 天。這些範例示範可能會影響金鑰輪換期間的特殊案例。

  • 停用金鑰輪換 — 如您在任何時候停用自動金鑰輪換,KMS 金鑰會繼續使用停用輪換時所用的金鑰資料版本。如果您再次啟用自動金鑰輪換, 會根據新的啟用輪換日期輪換 AWS KMS 金鑰材料。

  • 停用 KMS 金鑰 — 當 KMS 金鑰停用時, AWS KMS 不會輪換它。不過,金鑰輪換狀態不會變更,而且當 KMS 金鑰停用時您無法變更它。當 KMS 金鑰重新啟用時,如果金鑰材料超過其上次排定的輪換日期 , 會立即 AWS KMS 輪換它。如果金鑰材料尚未錯過上次排定的輪換日期, 會 AWS KMS 繼續原始金鑰輪換排程。

  • KMS 金鑰待刪除 — 當 KMS 金鑰待刪除時, AWS KMS 不會輪換它。金鑰輪換狀態會設定為 false,且等待刪除時您無法變更它。如果刪除已取消,會恢復先前的金鑰輪換狀態。如果金鑰材料超過上次排定的輪換日期, 會立即 AWS KMS 輪換。如果金鑰材料尚未錯過上次排定的輪換日期, 會 AWS KMS 繼續原始金鑰輪換排程。

AWS 受管金鑰

AWS KMS AWS 受管金鑰 每年自動輪換 (約 365 天)。您無法啟用或停用 AWS 受管金鑰 的金鑰輪換。

的金鑰材料 AWS 受管金鑰 會在建立日期的一年後首次輪換,之後每年 (自上次輪換後約 365 天) 輪換。

注意

在 2022 年 5 月, 的輪換排程 AWS 受管金鑰 從每三年 (約 1,095 天) AWS KMS 變更為每年 (約 365 天)。

AWS 擁有的金鑰

您無法啟用或停用 AWS 擁有的金鑰的金鑰輪換。的金鑰輪換策略 AWS 擁有的金鑰 取決於建立和管理金鑰的 AWS 服務。如需詳細資訊,請參閱該服務使用者指南或開發人員指南中的靜態加密主題。

旋轉多區域金鑰

您可以啟用和停用自動輪換,並在具有AWS_KMS原始伺服器的對稱加密多區域金鑰中執行金鑰資料的隨需輪換。金鑰輪換是多區域金鑰的共用屬性

您只能在主要金鑰上啟用和停用自動金鑰輪換。您只能在主索引鍵上啟動隨需輪換。

  • 當 AWS KMS 同步多區域金鑰時,它會將金鑰輪換屬性設定從主金鑰複製到其所有相關複本金鑰。

  • 當 AWS KMS 輪換金鑰材料時,它會為主要金鑰建立新的金鑰材料,然後將新的金鑰材料跨區域邊界複製到所有相關複本金鑰。金鑰材料永遠不會讓 AWS KMS 處於未加密狀態。這個步驟經過精心控制,以確保在密碼編譯操作中使用任何金鑰之前,金鑰材料已完全同步。

  • AWS KMS 不會使用新的金鑰材料加密任何資料,直到該金鑰材料可在主金鑰及其每個複本金鑰中使用。

  • 當您複寫已輪換的主要金鑰時,新的複本金鑰會具有目前的金鑰材料,以及其相關多區域金鑰的所有舊版金鑰材料。

這種模式可確保相關的多區域金鑰完全可互通操作。任何多區域金鑰都可以解密由相關多區域金鑰加密的任何加密文字,即使加密文字在建立金鑰之前已加密。

AWS 服務

您可以啟用您在 AWS 服務中用於伺服器端加密之客戶受管金鑰的自動金鑰輪換。年度輪換是透明的,而且與 AWS 服務相容。

監控金鑰輪換

當 AWS KMS 輪換 AWS 受管金鑰客戶受管金鑰的金鑰材料時,它會將KMS CMK Rotation事件寫入 Amazon EventBridge,並將 RotateKey 事件寫入您的 AWS CloudTrail 日誌。您可以使用這些記錄來驗證 KMS 金鑰是否已輪換。

您可以使用 AWS Key Management Service 主控台來檢視剩餘隨需輪換的數量,以及 KMS 金鑰所有已完成金鑰材料輪換的清單。

您可以使用 ListKeyRotations 操作來檢視已完成輪換的詳細資訊。

最終一致性

金鑰輪換會受到與其他 AWS KMS 管理操作相同的最終一致性影響。在新的金鑰材料可用於整個 AWS KMS之前,可能會稍微延遲。然而,輪換金鑰材料不會造成密碼編譯操作中的任何中斷或延遲。在新的金鑰材料可用於整個 AWS KMS之前,目前的金鑰材料會用於密碼編譯操作。當多區域金鑰的金鑰材料自動輪換時, AWS KMS 會使用目前的金鑰材料,直到新的金鑰材料可用於具有相關多區域金鑰的所有區域。