

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

# 輪換 AWS KMS keys
<a name="rotate-keys"></a>

若要為您的[客戶受管金鑰](concepts.md#customer-mgn-key)建立新的加密材料，您可以建立新的 KMS 金鑰，然後變更您的應用程式或別名來使用新的 KMS 金鑰。或者，您可以透過啟用自動金鑰輪換或執行隨需輪換，來輪換與現有 KMS 金鑰相關聯的金鑰材料。

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

您可以在 Amazon CloudWatch AWS CloudTrail和 AWS Key Management Service 主控台中[追蹤 KMS 金鑰的金鑰材料輪換](#monitor-key-rotation)。您也可以使用 [GetKeyRotationStatus](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyRotationStatus.html) 操作來驗證 KMS 金鑰是否已啟用自動輪換，並識別任何進行中的隨需輪換。您可以使用 [ListKeyRotations](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeyRotations.html) 操作來檢視已完成輪換的詳細資訊。

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

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

![\[Key rotation process showing key material change while Key ID remains constant.\]](http://docs.aws.amazon.com/zh_tw/kms/latest/developerguide/images/key-rotation-auto.png)


您可以決定建立新的 KMS 金鑰，並使用它來代替原始 KMS 金鑰。這與輪換現有 KMS 金鑰的金鑰材料有相同效果，所以通常被視為[手動輪換金鑰](rotate-keys-manually.md)。當您想要輪換不符合自動或隨需金鑰輪換資格的 KMS 金鑰時，包括[非對稱 KMS 金鑰](symmetric-asymmetric.md)、[HMAC KMS 金鑰](hmac.md)和[自訂金鑰存放](key-store-overview.md#custom-key-store-overview)區中的 KMS 金鑰，手動輪換是不錯的選擇。

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

**金鑰輪換和定價**  
AWS KMS 會針對為 KMS 金鑰維護之金鑰材料的第一次和第二次輪換收取每月費用。此價格提高上限為第二次輪換，任何後續輪換都不會計費。如需詳細資訊，請參閱 [AWS Key Management Service 定價](https://aws.amazon.com/kms/pricing/)。

**注意**  
您可利用 [AWS Cost Explorer Service](https://docs.aws.amazon.com/cost-management/latest/userguide/ce-what-is.html) 來檢視金鑰儲存費用明細。例如，您可指定 `$REGION-KMS-Keys` 作為**用量類型**，然後按 **API 操作**將資料分組，以便篩選檢視並查看作為目前及輪換 KMS 金鑰計費的金鑰總費用。  
您可能仍會看到歷史日期的舊版 `Unknown` API 操作執行個體。

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

如需金鑰資料和輪換的詳細資訊，請參閱 [AWS Key Management Service 密碼編譯詳細資訊](https://docs.aws.amazon.com/kms/latest/cryptographic-details/)。

**Topics**
+ [為什麼要輪換 KMS 金鑰？](#rotating-kms-keys)
+ [金鑰輪換的運作方式](#rotate-keys-how-it-works)
+ [啟用自動金鑰輪換](rotating-keys-enable.md)
+ [停用自動金鑰輪換](rotating-keys-disable.md)
+ [執行隨需金鑰輪換](rotating-keys-on-demand.md)
+ [列出輪換和金鑰資料](list-rotations.md)
+ [手動輪換金鑰](rotate-keys-manually.md)
+ [變更一組多區域金鑰中的主金鑰](multi-region-update.md)

## 為什麼要輪換 KMS 金鑰？
<a name="rotating-kms-keys"></a>

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

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

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

您可以考慮執行隨需輪換，以示範關鍵材料輪換功能或驗證自動化指令碼。建議針對意外輪換使用隨需輪換，並盡可能使用自動金鑰輪換搭配自訂[輪換期間](#rotation-period)。

## 金鑰輪換的運作方式
<a name="rotate-keys-how-it-works"></a>

AWS KMS 金鑰輪換旨在透明且易於使用。 僅 AWS KMS 支援[客戶受](concepts.md#customer-mgn-key)管金鑰的選用自動和隨需金鑰輪換。

**自動金鑰輪換**  
AWS KMS 會在輪換期間定義的下一個輪換日期自動輪換 KMS 金鑰。您不必記住或排程更新。  
只有具有 AWS KMS 產生 (`AWS_KMS` 原始伺服器） 金鑰材料的對稱加密 KMS 金鑰才支援自動金鑰輪換。  
對於客戶受管 KMS 金鑰，自動輪換是選用的。 AWS KMS 一律每年輪換 AWS 受管 KMS 金鑰的金鑰材料。 AWS 擁有的 KMS 金鑰輪換由 AWS 服務 擁有金鑰的 管理。

**隨需輪換**  
立即啟動與 KMS 金鑰相關聯的金鑰材料輪換，無論是否啟用自動金鑰輪換。  
具有 AWS KMS 產生 (`AWS_KMS` 原始伺服器） 金鑰材料的對稱加密 KMS 金鑰和具有匯入金鑰材料 (`EXTERNAL` 原始伺服器） 的對稱加密 KMS 金鑰支援隨需金鑰輪換。

**手動輪換**  
下列類型的 KMS 金鑰不支援自動或隨需金鑰輪換，但您可以[手動輪換這些 KMS 金鑰](rotate-keys-manually.md)。  
+ [非對稱 KMS 金鑰](symmetric-asymmetric.md)
+ [HMAC KMS 金鑰](hmac.md)
+ [自訂金鑰存放區](key-store-overview.md#custom-key-store-overview)中的 KMS 金鑰

**管理金鑰資料**  
AWS KMS 即使金鑰輪換已停用， 仍會保留具有`AWS_KMS`原始伺服器的 KMS 金鑰的所有金鑰材料。只有在您刪除 KMS 金鑰時， 才會 AWS KMS 刪除金鑰材料。  
您可以使用`EXTERNAL`原始伺服器管理對稱加密金鑰的金鑰材料。您可以使用 [DeleteImportedKeyMaterial](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteImportedKeyMaterial.html) 操作刪除任何金鑰材料，或在匯入材料時設定過期時間。一旦其任何資料過期或刪除，KMS 金鑰就會變得無法使用。

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

**輪換期間**  
輪換期間會定義您啟用自動金鑰輪換後 AWS KMS 將輪換金鑰材料的天數，以及之後每次自動金鑰輪換之間的天數。如果您在啟用自動金鑰輪換`RotationPeriodInDays`時未指定 的值，預設值為 365 天。  
您可以使用 [kms:RotationPeriodInDays](conditions-kms.md#conditions-kms-rotation-period-in-days) 條件索引鍵，進一步限制主體可以在 `RotationPeriodInDays` 參數中指定的值。

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

**輪換日期**  
AWS KMS 會在輪換期間定義的輪換日期自動輪換 KMS 金鑰。預設輪換期間為 365 天。    
**客戶自管金鑰**  <a name="rotate-customer-keys"></a>
由於自動金鑰輪換在[客戶自管金鑰](concepts.md#customer-mgn-key)是選擇性，且可隨時啟用及停用，因此輪換日期取決於最近啟用輪換的日期。如果您修改先前啟用自動金鑰輪換之金鑰的輪換期間，日期可能會變更。在金鑰的生命週期內，輪換日期可能會變更多次。  
例如，如果您在 2022 年 1 月 1 日建立客戶受管金鑰，並在 2022 年 3 月 15 日啟用預設輪換期間為 365 天的自動金鑰輪換，則 會在 2023 年 3 月 15 日、2024 年 3 月 15 日及之後每 365 天 AWS KMS 輪換金鑰材料。  
下列範例假設已啟用自動金鑰輪換，預設輪換期間為 365 天。這些範例示範可能會影響金鑰輪換期間的特殊案例。  
+ 停用金鑰輪換 — 如您在任何時候[停用自動金鑰輪換](rotating-keys-disable.md)，KMS 金鑰會繼續使用停用輪換時所用的金鑰資料版本。如果您再次啟用自動金鑰輪換， 會根據新的啟用輪換日期輪換 AWS KMS 金鑰材料。
+ 停用 KMS 金鑰 — 當 KMS 金鑰停用時， AWS KMS 不會輪換它。不過，金鑰輪換狀態不會變更，而且當 KMS 金鑰停用時您無法變更它。當 KMS 金鑰重新啟用時，如果金鑰材料超過其上次排定的輪換日期 ， 會立即 AWS KMS 輪換它。如果金鑰材料尚未錯過其上次排定的輪換日期， 會 AWS KMS 繼續原始金鑰輪換排程。
+ KMS 金鑰待刪除 — 當 KMS 金鑰待刪除時， AWS KMS 不會輪換它。金鑰輪換狀態會設定為 `false`，且等待刪除時您無法變更它。如果刪除已取消，會恢復先前的金鑰輪換狀態。如果金鑰材料超過上次排定的輪換日期， 會立即 AWS KMS 輪換。如果金鑰材料尚未錯過其上次排定的輪換日期， 會 AWS KMS 繼續原始金鑰輪換排程。  
**AWS 受管金鑰**  <a name="rotate-aws-managed-keys"></a>
AWS KMS AWS 受管金鑰 每年自動輪換 （約 365 天）。您無法啟用或停用 [AWS 受管金鑰](concepts.md#aws-managed-key) 的金鑰輪換。  
的金鑰材料 AWS 受管金鑰 會在建立日期的一年後首次輪換，之後每年 （大約從上次輪換起 365 天） 輪換。  
在 2022 年 5 月， 的輪換排程 AWS 受管金鑰 從每三年 （約 1，095 天） AWS KMS 變更為每年 （約 365 天）。  
**AWS 擁有的金鑰**  <a name="rotate-aws-owned-keys"></a>
您無法啟用或停用 AWS 擁有的金鑰的金鑰輪換。的[金鑰輪換](#rotate-keys)策略 AWS 擁有的金鑰 取決於建立和管理金鑰 AWS 的服務。如需詳細資訊，請參閱該服務使用者指南或開發人員指南中的*靜態加密*主題。

**旋轉多區域金鑰**  
輪換行為會因金鑰材料是由 AWS KMS (`AWS_KMS`原始伺服器） 產生或匯入 (`EXTERNAL`原始伺服器） 而有所不同。    
**具有`AWS_KMS`原始伺服器的多區域金鑰**  <a name="rotating-aws-kms-multi-region--keys"></a>
您可以啟用和停用自動輪換，並在具有`AWS_KMS`原始伺服器的對稱加密[多區域](multi-region-keys-overview.md)金鑰中執行金鑰資料的隨需輪換。金鑰輪換是多區域金鑰的[共用屬性](multi-region-keys-overview.md#mrk-sync-properties)。  
您只能在主要金鑰上啟用和停用自動金鑰輪換。您只能在主索引鍵上啟動隨需輪換。  
+ 當 AWS KMS 同步多區域金鑰時，它會將金鑰輪換屬性設定從主金鑰複製到其所有相關複本金鑰。
+ 當 AWS KMS 輪換金鑰材料時，它會為主要金鑰建立新的金鑰材料，然後將新的金鑰材料跨區域邊界複製到所有相關複本金鑰。金鑰材料永遠不會讓 AWS KMS 處於未加密狀態。這個步驟經過精心控制，以確保在密碼編譯操作中使用任何金鑰之前，金鑰材料已完全同步。
+ AWS KMS 不會使用新的金鑰材料加密任何資料，直到該金鑰材料可在主金鑰及其每個複本金鑰中使用。
+ 當您複寫已輪換的主要金鑰時，新的複本金鑰會具有目前的金鑰材料，以及其相關多區域金鑰的所有舊版金鑰材料。
這種模式可確保相關的多區域金鑰完全可互通操作。任何多區域金鑰都可以解密由相關多區域金鑰加密的任何加密文字，即使加密文字在建立金鑰之前已加密。  
**具有`EXTERNAL`原始伺服器的多區域金鑰**  <a name="rotating-external-multi-region--keys"></a>
您可以在具有`EXTERNAL`原始伺服器的對稱加密[多區域](multi-region-keys-overview.md)金鑰中，執行金鑰資料的隨需輪換。金鑰輪換是多區域金鑰的[共用屬性](multi-region-keys-overview.md#mrk-sync-properties)。  
只有在將新金鑰材料匯入主金鑰和每個複本金鑰之後，您才會在主金鑰上啟動隨需輪換。  
+ 當您將新的金鑰材料匯入主金鑰時， 會將金鑰材料識別符和金鑰材料描述從主金鑰 AWS KMS 複製到所有相關複本金鑰。它不會複製金鑰材料。
+ 您必須個別將相同的金鑰材料匯入每個複本金鑰。金鑰材料匯入所有相關多區域金鑰後，您可以在主金鑰上啟動隨需輪換。這可確保 AWS KMS 不會使用新的金鑰材料加密任何資料，直到該金鑰材料可在主金鑰及其每個複本金鑰中使用。
+ 主索引鍵或任何複本索引鍵中的每個索引鍵資料，可以與相同索引鍵或任何其他相關多區域索引鍵中的其他索引鍵資料分開過期或刪除。

**AWS 服務**  
您可以在用於 AWS 服務中伺服器端加密[的客戶受管金鑰](concepts.md#customer-mgn-key)上啟用自動金鑰輪換。年度輪換是透明的，並且與 AWS 服務相容。

**監控金鑰輪換**  <a name="monitor-key-rotation"></a>
當 AWS KMS 輪換 [AWS 受管金鑰](concepts.md#aws-managed-key)或[客戶受](concepts.md#customer-mgn-key)管金鑰的金鑰材料時，它會將`KMS CMK Rotation`事件寫入 Amazon EventBridge，並將 [RotateKey 事件](ct-rotatekey.md)寫入您的 AWS CloudTrail 日誌。您可以使用這些記錄來驗證 KMS 金鑰是否已輪換。  
您可以使用 AWS Key Management Service 主控台來檢視剩餘隨需輪換的數量，以及 KMS 金鑰所有已完成金鑰材料輪換的清單。  
您可以使用 [ListKeyRotations](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeyRotations.html) 操作來檢視已完成輪換的詳細資訊。

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