密钥常用于保护特定的数据,因此,数据的安全依赖于密钥的安全。您可以通过密钥版本化和定期轮转来加强密钥使用的安全性,实现数据保护的安全策略和最佳实践。
密钥版本概述
KMS中的用户CMK支持多个密钥版本。每一个密钥版本是一个独立生成的密钥,同一个CMK下的多个密钥版本在密码学上互不相关。
- 对于对称密钥,密钥版本可通过自动轮转策略,由系统自动生成。
- 对于非对称密钥,可人工创建新的密钥版本。
设置自动轮转
对称密钥支持设置自动轮转,生成新的密钥版本。对称密钥版本分为主版本和非主版本:
主版本(Primary Key Version)
- 系统根据自动轮转策略,定期生成新的密钥版本,并自动设为主版本。
- 主版本是CMK的活跃加密密钥(Active Encryption Key)。每个CMK在任何时间点上有且仅有一个主版本。
- 调用GenerateDataKey、Encrypt等加密API接口时,KMS使用指定CMK的主版本对明文进行加密。
非主版本(Non-primary Key Version)
- 非主版本是CMK的非活跃加密密钥(Inactive Encryption Key)。每个CMK可以有零到多个非主版本。非主版本历史上曾经是主版本,在当时被用作活跃加密密钥。
- 密钥轮转产生新的主版本后,KMS不会删除或禁用非主版本,它们需要被用作解密数据。
创建密钥版本
由于公私钥使用场景的特殊性,KMS不支持对非对称的用户主密钥进行自动轮转。可在指定用户主密钥中人工创建新的密钥版本,生成全新的一对公钥和私钥。
除此之外,和对称类型的用户主密钥不同,非对称的用于主密钥没有主版本(PrimaryKeyVersion)的概念,因此使用非对称密码运算的接口除需指定用户主密钥标志符(或别名)之外,还需指定密钥版本。
不适用范围
KMS管理的以下类型的密钥不支持多个版本:
- 云产品的默认密钥:特定云产品托管在KMS上的、用于加密保护您的数据的默认密钥。这类密钥由特定云产品为用户代为管理,为您的数据提供最基本的加密保护。
- 用户自带密钥(BYOK):您导入到KMS中的密钥。这类CMK的Origin属性为External,KMS不负责为用户生成密钥材料,无法自动发起轮转行为。更多信息,请参见导入密钥材料。
操作步骤
设置自动轮转(对称密钥)
- 登录密钥管理服务控制台。
- 在页面最上方的导航栏的资源池下拉列表,选择密钥所在的区域。
- 在左侧导航栏,单击 密钥管理服务 ,进入 密钥列表 。
- 定位到待设置的对称密钥,点击 密钥ID ,进入 密钥详情页 。
- 在密钥版本区域,点击 设置轮转策略 。
- 在设置轮转策略对话框,选择轮转周期, 30天 、 90天 、 180天 ,或 自定义天数 。
- 设置了自动轮转策略后,将显示密钥下次轮转时间,点击确定完成设置。
- 可通过相同的步骤更改轮转周期,也可取消轮转策略。
创建密钥版本(非对称密钥)
- 登录密钥管理服务控制台。
- 在页面最上方的导航栏的资源池下拉列表,选择密钥所在的区域。
- 在左侧导航栏,单击 密钥管理服务 ,进入密钥列表。
- 定位待设置的非对称密钥,点击 密钥ID ,进入密钥详情页。
- 在密钥版本区域,点击 创建密钥版本 。
- 在弹出的对话框内,点击 确定 。
- 在密钥版本列表,可查看密钥版本ID、创建日期。点击 查看公钥 ,在弹出的对话框,可复制或下载公钥。