为什么需要轮换密钥
广泛重复的使用加密密钥,会对加密密钥的安全造成风险。为了确保加密密钥的安全性,建议您定期轮换密钥,更改原密钥的密钥材料。
定期轮换密钥有如下优点:
- 减少每个密钥加密的数据量:一个密钥的安全性与被它加密的数据量呈反比。数据量通常是指同一个密钥加密的数据总字节数或总消息数。
- 增强应对安全事件的能力:在系统安全设计的初期,设计密钥轮换功能并将其作为日常运维手段。这样可以使系统在特定安全事件发生时具备实际执行能力。
- 加强对数据的隔离能力:轮换密钥使得轮换前后产生的密文数据形成隔离效果。特定密钥的安全事件可以被快速定义影响范围,从而采取进一步措施。
密钥轮换的两种方法
云服务提供了两种密钥轮换方法:
手动轮换密钥
使用一个新的密钥替换使用中的密钥。即创建一个新的密钥B,并使用密钥B替代当前使用的密钥A,当密钥B使用的加密材料与密钥A使用的加密材料不相同时,使用密钥B与更改密钥A的密钥材料具有相同效果。
示例:
以OBS服务为例:需要手动轮换密钥时,用户先在KMS界面创建一个新的自定义密钥,后在OBS界面将原自定义密钥替换为新的自定义密钥。
手动轮换密钥工作原理
自动轮换密钥
KMS会根据设置的轮换周期(默认365天)自动轮换密钥,系统自动生成一个新的密钥B,并替换当前使用的密钥A。自动轮换密钥只会更改主密钥的密钥材料,即加密操作中所使用的加密材料。不管密钥材料有没有变更或变更了多少次,该主密钥仍是相同的逻辑资源。主密钥的属性(密钥ID、别名、描述、权限)不会发生变化。
自动密钥轮换具有以下特点:
- 为现有的自定义密钥开启密钥轮换后,KMS自动为该自定义密钥生成新的密钥材料。
- 自动密钥轮换对主密钥所保护的数据无效。它不会轮换主密钥生成的数据密钥,也不会对任何受主密钥保护的数据重新加密,并且它无法减轻数据密钥泄露的影响。
自动密钥轮换工作原理
说明KMS会保留与该自定义密钥关联的所有版本的自定义密钥。这使得KMS可以解密使用该自定义密钥加密的任何密文。
加密数据时,KMS会自动使用当前最新版本的自定义密钥来执行加密操作。
解密数据时,KMS会自动使用加密时所使用的自定义密钥来执行解密操作。
密钥支持的轮换方式
密钥轮换方式如下表:
密钥的来源或状态 | 支持的密钥轮换方式 |
---|---|
默认密钥 | 不支持密钥轮换。 |
自定义密钥 | 仅支持手动轮换密钥。 |
对称密钥 | 支持自动轮换密钥和手动轮换密钥。 |
非对称密钥 | 仅支持手动轮换密钥。 |
已禁用的主密钥 | 禁用主密钥后,KMS不会对它进行轮换。但是,密钥轮换状态不会发生改变,并且在主密钥处于禁用状态时不能对其进行更改。重新启用主密钥后,如果已禁用的自定义密钥已超过轮换周期,KMS会立即轮换。如果已禁用的自定义密钥少于轮换周期,KMS会恢复之前的密钥轮换计划。关于禁用密钥的信息,请参见禁用密钥。 |
计划删除的主密钥 | 对于计划删除的主密钥,KMS不会对它进行轮换。如果取消删除,将恢复之前的密钥轮换状态。如果计划删除的自定义密钥已超过轮换周期,KMS会立即轮换。如果计划删除的用户主密钥少于轮换周期,KMS会恢复之前的密钥轮换计划。关于计划删除密钥的信息,请参见删除密钥。 |
说明用户可在“轮换策略”页面查看轮换详情,例如:上次轮换时间、轮换次数。