主密钥轮换- Unified Key Orchestrator 套餐
将主密钥装入到具有 Unified Key Orchestrator 实例的 Hyper Protect Crypto Services 后,可以根据需要轮换主密钥以满足行业标准和加密最佳实践。
主密钥用于打包服务实例中管理的加密密钥。 通过主密钥轮换,您将撤销原始主密钥,并装入重新加密整个密钥存储器的新主密钥。
轮换主密钥时,仍可以执行一些 KMS 密钥操作,例如列出密钥,检索密钥元数据或删除密钥,但不能创建或轮换密钥。 在主密钥轮换期间,不能调用 PKCS #11 API 或 GREP11 API。
主密钥轮换的工作方式
主密钥轮换通过在加密单元中的两种类型的主密钥寄存器之间安全地转移值来工作: 新的主密钥寄存器和当前主密钥寄存器。 根据 用于初始化服务实例的方法,旋转过程略有不同。
在主密钥轮换之后,不会自动轮换内存中密钥库中的密钥对象。 如果在服务实例中启用了 PKCS #11 密钥库,那么在主密钥轮换完成后,需要重新启动所有活动的 PKCS #11 应用程序以清除内存中的密钥库。 有关详细信息,请参阅 PKCS #11 实现组件。
以下图表说明在主密钥轮换期间主密钥寄存器状态如何更改。
使用智能卡和管理实用程序旋转主密钥
使用“管理实用程序”创建的主密钥可以通过使用存储主密钥部件的智能卡进行旋转。 在轮换主密钥之前,需要创建要使用的密钥部件。
您可以使用 2 或 3 密钥部件来创建新的主密钥值。 为了能够轮换主密钥,当前主密钥寄存器必须处于具有相同验证模式的 Valid
状态,并且新的主密钥寄存器必须为 Empty
。
您可以使用“管理实用程序”来轮换主密钥,而不管您的服务实例是否具有分配给它的恢复加密单元。
以下流程显示主密钥轮换在此方式下的工作方式:
- 通过单击“可信密钥输入”应用程序中的 装入 按钮来装入新的主密钥寄存器。 新的主密钥寄存器的状态已从
Empty
更改为Full uncommitted
。 - 通过单击“可信密钥输入”应用程序中的 落实 按钮来落实新的主密钥值。 新的主密钥注册状态将更改为
Full committed
。 - 通过单击“可信密钥输入”应用程序中的 旋转 按钮,重新加密密钥存储器并激活新的主密钥:
- 使用当前主密钥寄存器中的值对密钥存储器中的加密密钥进行解密,然后使用新主密钥寄存器中的值进行重新加密。 重新包装在硬件安全模块 (HSM) 内进行,因此是安全的。
- 将激活新的主密钥并将其装入到处于
Valid
状态的当前主密钥寄存器,并且将清除新的主密钥寄存器并将其恢复到Empty
状态。
有关详细指示信息,请参阅 使用智能卡和管理实用程序旋转主密钥。
使用恢复加密单元旋转主密钥
如果服务实例分配了恢复加密单元,那么除了使用工作站文件外,还可以使用 ibmcloud tke auto-mk-rotate
命令来轮换主密钥。 使用此命令,将在服务实例的其中一个恢复加密单元中生成随机的新主密钥值,并将其安全地移至服务实例中的其他加密单元。
在主密钥轮换之前,您不需要准备新的主密钥。 在可以使用 IBM TKE CLI 插件来轮换主密钥之前,操作加密单元 和 恢复加密单元 中的所有当前主密钥寄存器都需要处于 Valid
状态,并且当前主密钥已装入,并且所有新的主密钥寄存器都需要为空。
与从本地工作站文件装入新的主密钥值的选项相比,此方式的主要区别在于,首先在恢复加密单元中随机生成新的主密钥值,然后将其导出到其他加密单元。
以下流程显示主密钥轮换在此方式下的工作方式:
- 在分配给服务实例的恢复加密单元的新主密钥寄存器中生成新的随机主密钥值。 新的主密钥寄存器的状态已从
Empty
更改为Full uncommitted
。 - 新的主密钥值将复制到分配给服务实例的加密单元以及服务实例的其他恢复加密单元的新主密钥寄存器。 所有新的主密钥寄存器现在都处于
Full uncommitted
状态。 - 将落实新的主密钥,并且所有新的主密钥寄存器状态都将更改为
Full committed
。 - 密钥存储器已重新加密。 在服务实例中管理的加密密钥将使用当前主密钥寄存器中的当前主密钥进行解密,并使用新主密钥寄存器中的新主密钥进行重新加密。
- 新的主密钥将装入到处于
Valid
状态的服务实例的操作和恢复加密单元的当前主密钥寄存器中,并且新的主密钥寄存器将被清除并返回到Empty
状态。
有关如何使用恢复加密单元轮换主密钥的详细指示信息,请参阅 使用恢复加密单元轮换主密钥。
使用工作站文件旋转主密钥
可以使用 TKE CLI 插件来轮换从工作站文件创建的主密钥。 轮换主密钥时,主密钥部件将存储在本地工作站上的文件中。
与使用管理实用程序类似,您需要首先创建要使用的 2 或 3 关键部件。 为了能够轮换主密钥,当前主密钥寄存器必须处于具有相同验证模式的 Valid
状态,并且新的主密钥寄存器必须为 Empty
。
无论服务实例是否分配了恢复加密单元,都可以使用 TKE CLI 插件来轮换主密钥。
以下流程显示主密钥轮换在此方式下的工作方式:
- 使用
cryptounit-mk-load
命令装入新的主密钥寄存器。 新的主密钥寄存器的状态已从Empty
更改为Full uncommitted
。 - 使用
cryptounit-mk-commit
命令落实新的主密钥值。 新的主密钥注册状态将更改为Full committed
。 - 使用
cryptounit-mk-rotate
命令重新加密密钥存储器并激活新的主密钥:- 使用当前主密钥寄存器中的值对密钥存储器中的加密密钥进行解密,然后使用新主密钥寄存器中的值进行重新加密。 重新包装在 HSM 内进行,因此是安全的。
- 将激活新的主密钥并将其装入到处于
Valid
状态的当前主密钥寄存器,并且将清除新的主密钥寄存器并将其恢复到Empty
状态。
在主密钥轮换期间如何保护密钥
在 Hyper Protect Crypto Services with Unified Key Orchestrator 套餐中,受管密钥以不同方式受保护:
- 在内部 KMS 密钥库中激活的内部 KMS 密钥由主密钥直接加密。
- 外部密钥由一个或多个具有高级加密的密钥加密密钥包装。 密钥加密密钥由主密钥加密。
如果要在主密钥轮换期间创建受管密钥或保险库文件,请记住以下注意事项:
- 您仍可以创建或激活内部 KMS 密钥。 但是,可能会显示 不同步 标志。 要同步其中每个密钥,请在主密钥轮换完成后,在“操作”
菜单上选择 显示详细信息,然后单击 同步密钥。
- 您可以创建没有限制的外部密钥。
- 只有在主密钥轮换过程完成后,才能创建保险库文件。
UI 如何反映主密钥轮换
以下流程显示了如何在 UI 中显示主密钥轮换进度:
-
主密钥轮换过程启动
使用 主密钥轮换简介 中引入的其中一种方法启动主密钥轮换过程后,可以返回到 UI 以查看进度。
-
密钥重新包装开始
装入新的主密钥寄存器后,将由新的主密钥重新包装所有受管密钥。 如果密钥重新打包进度失败或手动取消主密钥轮换,那么将在 UI 中显示相应的通知。 在导航中的 概述 下,您可以在密钥回绕过程中查看 加密单元 下的关键进度指示器。 将显示三种类型的关键进度指标:
- 系统内部密钥: 显示用户无法访问的任何系统内部密钥 (例如密钥加密密钥) 的重新包装进度。
- IBM Cloud KMS 密钥: 显示内部 KMS 密钥库中存储的 KMS 密钥的重新打包进度。
如果唯一重新打包的密钥是系统内部密钥,那么可以在 加密单元下以百分比指示符的形式查看进度。 如果需要重新包装多种类型的密钥,您可以通过单击 加密单元 旁边的刷新按钮或重新装入 Web 页面来查看最新的密钥重新包装进度。
-
密钥重新包装完成
完成密钥重新打包过程后,将在 UI 中显示通知。 然后,您可以继续落实并使用您选择的方法激活新的主密钥。
-
主密钥轮换完成
主密钥轮换过程完成后,将在 UI 中显示通知。 在导航的“概述”下,还可以在 加密单元下找到密钥更新的时间戳记。
下一步
有关用于轮换主密钥的选项的更详细指示信息,请参阅: