
# 开启密钥轮换
KMS提供了密钥轮换功能，您可以通过定期轮转来加强密钥使用的安全性，有效地提升业务数据的安全性。本文介绍KMS密钥轮转的原理和配置方法。
默认情况下，自定义密钥的自动密钥轮换处于禁用状态。当您启用（或重新启用）密钥轮换时，KMS会根据您设置的轮换周期自动轮换自定义密钥。开启密钥轮换后会产生一定费用，具体费用计算可参见[开通密钥轮转如何收费？](https://support.huaweicloud.com/price-dew/dew_01_0234.html)。
#### 为什么需要轮换密钥
广泛重复的使用加密密钥，会对加密密钥的安全造成风险。为了确保加密密钥的安全性，建议您定期轮换密钥，更改原密钥的密钥材料。
定期轮换密钥有如下优点：
- 减少每个密钥加密的数据量 一个密钥的安全性与被它加密的数据量呈反比。数据量通常是指同一个密钥加密的数据总字节数或总消息数。
  
- 增强应对安全事件的能力 在系统安全设计的初期，设计密钥轮换功能并将其作为日常运维手段。这样可以使系统在特定安全事件发生时具备实际执行能力。
  
- 加强对数据的隔离能力 轮换密钥使得轮换前后产生的密文数据形成隔离效果。特定密钥的安全事件可以被快速定义影响范围，从而采取进一步措施。
  
- 满足合规规范 密钥的周期性轮转功能可以帮助企业轻松符合各种合规规范。
  
 
#### 密钥轮换的两种方法
华为云服务提供了两种密钥轮换方法：
- 手动轮换密钥 方式一：创建一个新的密钥B，使用密钥B替换当前正在使用的密钥A。
  方式二：对密钥A的密钥材料进行更改，继续使用密钥A。
  示例：
  以OBS服务为例：需要手动轮换密钥时，用户先在KMS界面创建一个新的自定义密钥，后在OBS界面将原自定义密钥替换为新的自定义密钥。
  图1手动轮换密钥工作原理   
  ![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002260165660.png "点击放大") 
- 自动轮换密钥 KMS会根据设置的轮换周期（默认365天）自动轮换密钥，系统自动生成一个新的密钥B，并替换当前使用的密钥A。自动轮换密钥只会更改主密钥的密钥材料，即加密操作中所使用的加密材料。不管密钥材料有没有变更或变更了多少次，该主密钥仍是相同的逻辑资源。主密钥的属性（密钥ID、别名、描述、权限）不会发生变化。
  自动密钥轮换具有以下特点：
  1. 为现有的自定义密钥开启密钥轮换后，KMS自动为该自定义密钥生成新的密钥材料。
  
  2. 自动密钥轮换对主密钥所保护的数据无效。它不会轮换主密钥生成的数据密钥，也不会对任何受主密钥保护的数据重新加密，并且它无法减轻数据密钥泄露的影响。
  
  
  图2自动密钥轮换工作原理   
  ![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002294782713.png "点击放大")
  ![](https://support.huaweicloud.com/usermanual-dew/public_sys-resources/note_3.0-zh-cn.png)
  KMS会保留与该自定义密钥关联的所有版本的自定义密钥。这使得KMS可以解密使用该自定义密钥加密的任何密文。
  - 加密数据时，KMS会自动使用当前最新版本的自定义密钥来执行加密操作。
  
  - 解密数据时，KMS会自动使用加密时所使用的自定义密钥来执行解密操作。
   
  两种方式的优缺点比较如下所示：
  表1优缺点比较 
  | 特性  | 手动轮换密钥                          | 自动轮换密钥                                 |
  |:---|:---|:---|
  | 灵活性 | 高，可以根据具体需求选择轮换时机。               | 较低，按预定策略自动轮换。                          |
  | 可控性 | 强，管理员完全控制轮换过程。                  | 低，依赖系统自动化。                             |
  | 操作性 | 操作过程较为繁琐。                       | 操作简便。                                  |
  | 安全性 | 手动操作容易出现人为错误，可能导致密钥管理不当，增加安全风险。 | 高，定期自动轮换密钥可以减少密钥被长期使用带来的安全风险，提高系统的安全性。 |
     
  总之，**自动轮换密钥** 适合需要高安全性和低管理负担的场景，特别是在大规模和复杂环境中。**手动轮换密钥**适合需要高度灵活性和控制的场景，特别是在特定时间和特定条件下需要进行密钥轮换的情况下。选择哪种方式取决于具体的安全需求、管理能力和合规性要求。在实际应用中，可以结合使用这两种方式，以达到最佳的安全性和管理效果。
  
 
#### 密钥支持的轮换方式
表2密钥轮换方式 
| 密钥的来源或状态 | 支持的密钥轮换方式                                                                                                                                                                                                                                                           |
|:---|:---|
| 默认密钥     | 不支持密钥轮换。                                                                                                                                                                                                                                                            |
| 自定义密钥    | 支持自动轮换密钥或手动轮换密钥，根据密钥算法类型决定。 - 对称密钥：支持自动轮换密钥和手动轮换密钥。  - 非对称密钥：仅支持手动轮换密钥。   |
| 外部密钥     | 支持手动轮换密钥，根据密钥算法类型决定。                                                                                                                                                                                                                                                |
| 已禁用的主密钥  | 禁用主密钥后，KMS不会对它进行轮换。但是，密钥轮换状态不会发生改变，并且在主密钥处于禁用状态时不能对其进行更改。重新启用主密钥后，如果已禁用的自定义密钥已超过轮换周期，KMS会立即轮换。如果已禁用的自定义密钥少于轮换周期，KMS会恢复之前的密钥轮换计划。                                                                                                                                    |
| 计划删除的主密钥 | 对于计划删除的主密钥，KMS不会对它进行轮换。如果取消删除，将恢复之前的密钥轮换状态。如果计划删除的自定义密钥已超过轮换周期，KMS会立即轮换。如果计划删除的用户主密钥少于轮换周期，KMS会恢复之前的密钥轮换计划。                                                                                                                                                         |
   
![](https://support.huaweicloud.com/usermanual-dew/public_sys-resources/note_3.0-zh-cn.png)
用户可在"轮换策略"页面查看轮换详情，例如：上次轮换时间、轮换次数。
#### 约束条件
- 如果自定义密钥开启密钥轮换以后，禁用了自定义密钥，KMS也不会轮换该自定义密钥。 当自定义密钥恢复到"启用"状态时，密钥轮换将立即重新激活。如果刚恢复"启用"状态的自定义密钥距离上次轮换的时间已超过轮换周期，KMS将在24小时内轮换该自定义密钥。
  
- 只有区域主密钥可以进行轮转，副本密钥不支持进行密钥轮转。
- 仅对称密钥支持开启密钥轮换。
- 密钥必须处于"启用"状态才支持开启密钥轮换
- 启用自定义密钥轮换可能会生成额外的费用。费用详情查阅[计费说明](https://support.huaweicloud.com/price-dew/dew_03_0001.html)。
- 一个密钥材料轮转支持最大100次轮转
 
#### 开启密钥轮换
通过KMS创建的密钥，参照[自定义密钥开启密钥轮换]执行；导入的外部密钥材料，参照[外部密钥轮转密钥材料]执行。
- [自定义密钥开启密钥轮换]
  
  "状态"为"启用"，"托管类型"为"平台托管"的自定义密钥，且密钥算法为对称密钥，按以下方法开启密钥轮换。
  ![](https://support.huaweicloud.com/usermanual-dew/public_sys-resources/caution_3.0-zh-cn.png)
  密钥轮转后，密码安全中心会对每个新增密钥材料进行收费。请合理规划您的轮转周期。针对不同的安全考虑，推荐您配置：90天、180天、270天、365天。
  1. [登录DEW服务控制台](https://console.huaweicloud.com/dew/?locale=zh-cn#/dew/)。
  
  2. 单击管理控制台左上角![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002259682412.png)，选择区域或项目。
  
  
  
  3. 单击目标自定义密钥的名称，进入密钥详细信息页面。
  
  4. 单击"轮换策略"页签，进入"轮换策略"页面。
  
  5. 单击![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002259785250.png)，将"密钥轮换"设置为![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002294275357.png)，弹出"启用轮换策略"对话框。
  
  6. 设置轮换周期（天），单击"确定"。如[图3]所示。参数说明如[表3]所示。
     
     图3开启密钥轮换   
     ![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002294275365.png "点击放大")
      表3密钥轮换参数说明 
     | 参数      | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
     |:---|:---|
     | 密钥轮换    | 密钥轮换开关，默认![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002294275373.png)。 ![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002294322317.png)：关闭。 ![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002259682176.png)：开启。 开启密钥轮换后，密钥在设置的轮换周期到达后开始轮换。 说明： - 如果自定义密钥开启密钥轮换以后，禁用了自定义密钥，KMS也不会轮换该自定义密钥。  - 当自定义密钥恢复到"启用"状态时，密钥轮换将立即重新激活。如果刚恢复"启用"状态的自定义密钥距离上次轮换的时间已超过轮换周期，KMS将在24小时内轮换该自定义密钥。   |
     | 轮换周期（天） | 轮换周期。取值范围为"30\~365"的整数，默认"365"天。 轮换周期需要根据自定义密钥的使用频率进行设置，如果密钥使用频率高，建议设置为短周期；反之，则设置为长周期。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
        
     
     
  
  7. 开启后，页面显示密钥轮换详情，如[图 密钥轮换详情]所示。
     
     图4密钥轮换详情   
     ![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002294275377.png "点击放大")
     ![](https://support.huaweicloud.com/usermanual-dew/public_sys-resources/note_3.0-zh-cn.png)
     用户可单击![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002259785262.png)，修改轮换周期。修改轮换周期后，根据新设置的轮换周期进行轮换。
     
     
   
- [外部密钥轮转密钥材料]
  
  "状态"为"启用"，"托管类型"为"平台托管"的外部密钥，且密钥算法为对称密钥，按以下方法开启立即轮转。
  1. [登录DEW服务控制台](https://console.huaweicloud.com/dew/?locale=zh-cn#/dew/)。
  
  2. 单击管理控制台左上角![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002259682412.png)，选择区域或项目。
  
  3. 导入新的密钥材料。 
     1. 在"状态"为"启用"的外部密钥所在行的"操作"列，单击"更多 \> 导入密钥材料"。
     
     2. 在"获取包装密钥和导入令牌"配置项，根据[表 密钥包装算法说明]，选择密钥包装算法。
        图5获取包装密钥和导入令牌
        ![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002524563784.png "点击放大")
         表4密钥包装算法说明 
        | 密钥包装算法             | 说明                            | 设置                                                                                                                           |
        |:---|:---|:---|
        | RSAES_OAEP_SHA_256 | 具有"SHA-256"哈希函数的OAEP的RSA加密算法。 | 请您根据自己的HSM功能选择加密算法。 如果您的HSM支持"RSAES_OAEP_SHA_256"加密算法，推荐使用"RSAES_OAEP_SHA_256"加密密钥材料。 |
        | SM2_ENCRYPT        | 国密推荐的SM2椭圆曲线公钥密码算法。           | 请在支持国密的局点使用SM2加密算法。                                                                                                          |
           
        根据实际情况选择以下两种导入密钥材料的方式：
        - **方式一** ：使用API接口获取到包装密钥和导入令牌的场景，选择"已有密钥材料"，单击"下一步"后，在"导入密钥材料"配置项，填写"密钥材料"内容。密钥材料的获取，参考[步骤二：下载包装密钥和导入令牌](https://support.huaweicloud.com/usermanual-dew/dew_01_0089.html#dew_01_0089__scfd68ea997e74909a825386e20128afc)和[步骤三：使用包装密钥加密密钥材料](https://support.huaweicloud.com/usermanual-dew/dew_01_0089.html#dew_01_0089__section1250155684817)。
          图6导入密钥材料
          ![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002555524963.png "点击放大")
          
        
        - **方式二** ：选择"下载密钥材料"，密钥材料将自动下载到本地。
          引导程序已自动帮您传递导入令牌，您仅需使用下载的包装密钥，从您的密钥管理设备中导出密钥材料。中途退出引导程序，导入令牌将自动失效。
          单击"下一步"后，在"导入密钥材料"配置项，单击"添加文件"，导入本地密钥材料。
          图7导入密钥材料   
          ![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002524567438.png "点击放大") 
         
     
     3. 单击"下一步"，进入"密钥导入令牌"页面。根据[表5]设置参数。
        图8导入密钥令牌   
        ![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002524408044.png "点击放大")
         表5导入密钥令牌参数说明 
        | 参数       | 操作说明                      |
        |:---|:---|
        | 密钥ID     | 创建密钥时，随机生成的密钥ID。          |
        | 密钥材料失效模式 | 仅支持选择"永不失效"：导入的密钥材料永久不失效。 |
           
        
     
     4. 单击"确定"，完成密钥材料导入。
     
     
     
     
  
  4. 开启密钥轮转。 
     1. 在"状态"为"启用"的外部密钥所在行的"操作"列，单击"更多 \> 立即轮转"。
     
     2. 在弹框中单击"确定"。
     
     
     
     
   
#### 关闭自定义密钥轮换
外部密钥仅支持手动轮转，不涉及关闭。
1. 单击目标自定义密钥的名称，进入密钥详细信息页面。
2. 单击"轮换策略"页签，进入"轮换策略"页面。
3. 单击![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002260258242.png)，关闭密钥轮换。
4. 在弹出的确认是否关闭密钥轮换提示框中，单击"确定"，完成关闭密钥轮换操作。
 
#### 查看轮转日志
对称密钥可查看所有密钥材料的详细信息。
![](https://support.huaweicloud.com/usermanual-dew/public_sys-resources/note_3.0-zh-cn.png)
仅对称密钥支持显示密钥材料的详细信息。
1. 单击目标密钥的名称，进入密钥详细信息页面。
2. 单击"轮换策略"页签，进入"轮换策略"页面。
3. 查看密钥材料的详细信息，如[图9]所示。
   
   图9密钥材料信息   
   ![](https://support.huaweicloud.com/usermanual-dew/zh-cn_image_0000002571038582.png "点击放大")
   
   
 
#### 相关操作
通过API开启密钥轮换，请参见[开启密钥轮换](https://support.huaweicloud.com/api-dew/EnableKeyRotation.html)。
