全部產品
Search
文件中心

Key Management Service:密鑰輪轉

更新時間:Feb 04, 2026

KMS提供了密鑰輪轉功能,您可以通過定期輪轉來加強密鑰使用的安全性,有效地提升業務資料的安全性。本文介紹KMS密鑰輪轉的原理和配置方法。

為什麼需要密鑰輪轉

  • 減少每個祕密金鑰加密的資料量,降低密碼分析(Cryptanalysis)攻擊風險。

    一個密鑰的安全性與被它加密的資料量呈負相關。資料量通常是指同一個祕密金鑰加密的資料總位元組數。通過定期輪轉密鑰,可使每個密鑰具有更小的密碼分析攻擊面,使加密方案整體具有更高的安全性。

  • 提前具備響應安全事件的能力。

    在系統設計和實現時引入密鑰輪轉的功能,使密鑰輪轉作為常規的系統安全管理事務之一,這樣可以使系統在特定安全事件發生時具備實際執行能力。

  • 減少破解密鑰的時間視窗。

    如果在定期輪轉密鑰的基礎上,將舊祕密金鑰加密的密文資料用新密鑰重新加密,則輪轉周期即為一個密鑰的破解時間視窗。這意味著惡意者只有在兩次輪轉之間完成破解,才能拿到資料。這對於保護資料不受密碼分析攻擊具有很強的實踐意義。

  • 滿足合規規範。

    密鑰的周期性輪轉功能可以方便企業符合各種合規規範。要求密鑰進行輪轉的標準、規範包含(但不限於):

    • 支付卡行業資料安全標準(PCI DSS)。

    • 中國國家密碼管理局發布的密碼行業相關標準,例如:《GM/T 0051-2016 密碼裝置管理-對稱金鑰管理技術規範》。

    • 美國國家標準技術委員會(NIST)發布的密碼使用相關標準,例如:《NIST Special Publication 800-57 Recommendation for Key Management》。

密鑰輪轉原理

密鑰支援多個密鑰版本,同一個密鑰下的多個密鑰版本在密碼學上互不相關,KMS通過產生一個新的密鑰版本來實現密鑰的輪轉,並使用最新的密鑰版本進行密碼運算操作,不支援指定某一個密鑰版本。

說明
  • 密鑰輪轉僅新增密鑰版本,密鑰ID、密鑰ARN、別名等屬性不會發生改變。

  • KMS不會刪除任何密鑰版本,密鑰版本僅隨密鑰刪除而刪除。

密鑰建立後KMS會產生初始密鑰版本並將其設定為主要版本,輪轉後會產生一個新的密鑰版本,並將新的密鑰版本設定為主要版本,具體請參見下圖。

image

如果您設定了周期性自動輪轉,則下一次的輪轉時間=上一次的輪轉時間+輪轉周期。

說明
  • 您可以調用DescribeKey介面,返回的LastRotationDate欄位即上一次的輪轉時間,NextRotationDate欄位即KMS計算出的啟動執行下一次輪轉任務的時間。

  • 如果密鑰設定了周期性自動輪轉,在兩次輪轉的間隙您又進行了立即輪轉,計算下一次的輪轉時間時,上一次的輪轉時間取值為立即輪轉的時間。

適用範圍

  • 密鑰類型和來源:

    密鑰類型

    密鑰材料來源

    周期性自動輪轉

    手動立即輪轉

    軟體密鑰 (對稱)

    KMS 產生

    支援

    支援

    外部匯入 (BYOK)

    不支援

    支援

    軟體密鑰 (非對稱)

    KMS 產生、外部匯入 (BYOK)

    不支援

    硬體密鑰(對稱和非對稱)

    KMS 產生

    外部匯入 (BYOK)

  • 密鑰狀態:密鑰的狀態為已連接

    當密鑰處於已禁用待刪除狀態時,已開啟的輪轉功能會被停止,當密鑰重新啟用時,輪轉功能會重新啟動。

  • 特定密鑰的附加條件:

    若為預設密鑰,需要購買單獨的輪轉增值服務。

預設密鑰設定輪轉

計費說明

預設密鑰僅用於雲產品服務端加密,由KMS免費提供,但對預設密鑰進行輪轉為增值服務。

費用:9美元/年/地區。購買後該地區下的所有預設密鑰(包含服務密鑰、主要金鑰)均支援輪轉。

輪轉方式及輪轉日期

僅支援周期性自動輪轉,不支援手動立即輪轉。

輪轉周期為365天且不支援修改。開啟輪轉後,當密鑰版本建立時間滿365天后會首次輪轉,以後每隔365天輪轉一次。

說明

輪轉增值服務按年購買,請確保下次輪轉時您的訂單有效,否則不會發生輪轉。

開啟輪轉(周期性自動輪轉)

  1. 購買密鑰輪轉增值服務。

    1. 登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊资源 > 密钥管理

    2. 默认密钥頁簽,單擊购买轮转服务,完成配置項設定。

      1. 密鑰管理類型:選擇密鑰增值服務

      2. 密鑰增值服務:選擇預設密鑰輪轉

      3. 地區:選擇預設密鑰所在地區。

      4. 購買數量:一個地區只需購買1套。

    3. 仔細閱讀服務合約,單擊立即購買後,單擊購買輪轉服務完成購買。

  2. 開啟密鑰輪轉。

    • 服務密鑰

      無需配置,KMS會自動開啟輪轉。

    • 主要金鑰

      通過控制台

      1. 密钥管理默认密钥頁簽,單擊主要金鑰的ID。

      2. 在詳情頁面下方,單擊密鑰版本頁簽,然後單擊设置轮转

      3. 設定輪轉策略對話方塊,開啟轮转状态開關,單擊確認。密鑰詳情頁面,轮转状态變更為已開啟輪轉周期

      通過API

      • 建立密鑰時開啟。

        調用CreateKey介面,設定EnableAutomaticRotation(是否開啟自動輪轉)和RotationInterval(自動輪轉的時間周期)參數。

      • 建立密鑰時未開啟,建立後再開啟。

        調用UpdateRotationPolicy介面,設定EnableAutomaticRotation(是否開啟自動輪轉)和RotationInterval(自動輪轉的時間周期)參數。

使用輪轉密鑰

預設密鑰僅可用於雲產品服務端加密,開啟輪轉後雲產品將自動管理,無需人工操作。更多資訊,請參見雲產品整合KMS加密概述

查看輪轉詳情

通過控制台

  1. 密钥管理默认密钥頁簽,定位到要查看的服務密鑰或主要金鑰。

  2. 單擊密鑰ID,在詳情頁面查看轮转状态輪轉周期密鑰版本

通過API

  • 調用DescribeKey介面,查看返回的AutomaticRotation(是否開啟了自動輪轉)和RotationInterval(自動輪轉的時間周期)參數。

  • 調用ListKeyVersions介面,查看返回的KeyVersions(密鑰版本)參數。

KMS執行個體中的密鑰設定輪轉

配額消耗

輪轉消耗KMS執行個體的密鑰配額,密鑰的每個密鑰版本消耗一個密鑰配額。例如密鑰有V1、V2、V3三個密鑰版本,則消耗3個密鑰配額。如需提升配額,請參見升配KMS執行個體

輪轉方式及輪轉日期

支援周期性自動輪轉和立即輪轉。

  • 周期性自動輪轉:自訂輪轉周期(7~365天),周期性地產生新的密鑰版本。

  • 手動立即輪轉:立即產生一個新的密鑰版本。

開啟輪轉

  • 開啟周期性自動輪轉

    通過控制台

    • 建立密鑰時開啟。具體操作,請參見管理密鑰

      1. 密钥管理用户主密钥頁簽,選擇執行個體ID後,單擊建立密鑰

      2. 建立密鑰面板中完成配置項設定,開啟自动轮转並設定轮转周期,然後單擊確認

    • 建立密鑰時未開啟,建立後再開啟。

      1. 密钥管理用户主密钥頁簽,選擇執行個體ID後,單擊目標密鑰的ID。

      2. 在密鑰詳情頁下方的密鑰版本地區單擊设置轮转,在設定輪轉策略對話方塊中開啟定時自動輪轉開關並設定輪轉周期,單擊確認

    通過API

    • 建立密鑰時開啟。

      調用CreateKey介面,設定EnableAutomaticRotation(是否開啟自動輪轉)和RotationInterval(自動輪轉的時間周期)參數。

    • 建立密鑰時未開啟,建立後再開啟。

      調用UpdateRotationPolicy介面,設定EnableAutomaticRotation(是否開啟自動輪轉)和RotationInterval(自動輪轉的時間周期)參數。

  • 手動立即輪轉

    • 密鑰材料由KMS產生的密鑰。

      通過控制台

      1. 密钥管理用户主密钥頁簽,選擇執行個體ID後,單擊目標密鑰的ID。

      2. 在密鑰詳情頁下方的密鑰版本地區單擊设置轮转,在設定輪轉策略選擇立即輪轉,然後單擊確認

      通過API

      調用CreateKeyVersion介面。

    • 密鑰材料由外部匯入的內建密鑰(BYOK)。

      1. 匯入新的密鑰材料

        1. 登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊资源 > 密钥管理

        2. 用戶主密鑰頁簽,選擇執行個體ID後,單擊目標密鑰操作列详情按鈕。

        3. 密钥材料和版本頁簽,單擊左上方导入新的密钥材料。參照匯入對稱金鑰材料,將密鑰材料匯入。

        4. 新的密鑰材料匯入後,產生一條新的密鑰版本,可在密鑰版本列表中查看,狀態為“待輪轉”。

          重要

          在新版本未執行輪轉前,不允許匯入新版本。

      2. 執行輪轉

        1. 單擊步驟1產生密鑰版本操作列的轮转

        2. 立即輪轉彈框內,確認密鑰材料ID是否正確後,單擊確認

使用輪轉密鑰

用於雲產品服務端加密時,開啟輪轉後雲產品將自動管理,無需人工操作。用於自建應用加密時,請通過如下API介面進行密碼運算操作,介面預設使用輪轉後最新版本的密鑰。

使用阿里雲SDK時

阿里雲SDK調用的是OpenAPI,加解密請調用以下介面。

  • 產生資料密鑰:GenerateDataKey,KMS使用指定密鑰的主要版本對資料密鑰進行加密。

  • 加密:Encrypt,KMS使用指定密鑰的主要版本對明文進行加密。

  • 解密:Decrypt,KMS使用傳入的密文對應的密鑰版本進行解密。

使用KMS執行個體SDK時(不推薦)

不推薦新購使用者使用該SDK。KMS執行個體SDK調用的是執行個體API,加解密請調用以下介面。

  • 產生資料密鑰:AdvanceGenerateDataKey,KMS使用指定密鑰的主要版本對資料密鑰進行加密。

  • 加密:AdvanceEncrypt,KMS使用指定密鑰的主要版本對明文進行加密。

  • 解密:AdvanceDecrypt,KMS使用傳入的密文對應的密鑰版本進行解密。

重要

如果您的密鑰開啟了自動輪轉,請勿使用EncryptDecryptGenerateDataKey介面,上述介面在加密解密時使用的是密鑰的初始密鑰版本,不會使用輪轉後產生的新密鑰版本。

查看輪轉詳情

通過控制台

  1. 密钥管理用户主密钥頁簽,選擇執行個體ID後,單擊目標密鑰的ID。

  2. 在詳情頁面查看轮转状态輪轉周期密鑰版本

通過API

  • 調用DescribeKey介面,查看返回的AutomaticRotation(是否開啟了自動輪轉)和RotationInterval(自動輪轉的時間周期)參數。

  • 調用ListKeyVersions介面,查看返回的KeyVersions(密鑰版本)參數。