使用密钥部件文件旋转主密钥
您需要定期轮换 IBM Cloud® Hyper Protect Crypto Services 实例的主密钥,以满足行业标准和加密最佳实践。 要在本地工作站上使用主密钥部件文件来轮换主密钥,请执行以下步骤。
轮换主密钥时,仍可以执行一些 KMS 密钥操作,例如列出密钥,检索密钥元数据或删除密钥,但不能创建或轮换密钥。 在主密钥轮换期间,不能调用 PKCS #11 API 或 GREP11 API。
旋转主密钥将使用新的主密钥值对密钥存储器中的密钥进行重新加密。 重新加密密钥存储器中的密钥后,新的主密钥寄存器中的值将提升到当前主密钥寄存器。 在开始旋转主密钥之前,需要执行以下步骤:
- 了解如何 针对标准套餐 或 针对 Unified Key Orchestrator 套餐 旋转主密钥。
- 分配 管理者 服务访问角色或 加密单元管理员 角色以执行 TKE CLI 操作。 有关访问权管理的更多信息,请参阅“管理用户访问权”针对标准套餐 或 针对 Unified Key Orchestrator 计划。
- 配置服务实例中的所有加密单元。
在主密钥轮换之后,不会自动轮换内存中密钥库中的密钥对象。 如果在服务实例中启用了 PKCS #11 密钥库,那么在主密钥轮换完成后,需要重新启动所有活动的 PKCS #11 应用程序以清除内存中的密钥库。 有关更多信息,请参阅 PKCS #11 实现组件。
准备工作
开始之前,请确保执行以下步骤:
-
通过运行以下命令,检查并确保当前主密钥寄存器处于
Valid
状态,当前主密钥已装入,新的主密钥寄存器为空,并且服务实例的加密单元未处于印记方式:ibmcloud tke cryptounit-compare
-
新的主密钥部件准备进行旋转。 有关如何创建新的主密钥部件的更多信息,请参阅 创建一组要使用的主密钥部件。
使用密钥部件文件旋转主密钥
要使用工作站上的密钥部件文件来轮换主密钥,请执行以下步骤:
-
使用以下命令将新的主密钥部件装入到新的主密钥寄存器:
ibmcloud tke cryptounit-mk-load
要装入主密钥寄存器,公共工作站上必须存在要使用的所有主密钥部件文件和签名密钥文件。 如果这些文件是在不同的工作站中创建的,请确保使用不同的文件名以避免冲突。 在公共工作站上装入主密钥寄存器时,主密钥部分文件所有者和签名密钥文件所有者需要输入文件密码。
将显示在工作站上找到的主密钥部件的列表。
提示时,输入要装入到新主密钥寄存器中的主密钥部件,要使用的签名密钥文件的密码以及每个所选密钥部件文件的密码。
新的主密钥现在在新的主密钥寄存器中处于
Full uncommitted
状态。要装入新的主密钥,需要至少输入两个主密钥部件。 确保至少有一个主密钥部件未用于当前主密钥。 否则,将生成相同的主密钥,并且您无法将其装入到新的主密钥寄存器中。
-
使用以下命令落实新的主密钥:
ibmcloud tke cryptounit-mk-commit
提示时,输入要使用的签名密钥文件的密码。 需要一组完整的签名来强制实施定额认证。
新的主密钥现在在新的主密钥寄存器中处于
Full committed
状态。 -
如果您有任何使用当前主密钥使用 GREP11 API 加密且未存储在 Hyper Protect Crypto Services 密钥库中的加密密钥,请调用 RewrapKeyBlob GREP11 API 以使用新的主密钥对密钥进行重新加密。
在轮换主密钥之前,请确保执行此步骤。 否则,无法重新加密和使用使用当前主密钥加密的密钥。
有关 GREP11 API 的简介,请参阅 基于 gRPC的 EP11 简介。 您还可以在 GREP11 API 用法上找到以 Golang 和 JavaScript 编写的代码示例。
-
使用新的主密钥轮换当前主密钥,并通过执行以下步骤对所管理的密钥进行重新加密:
-
通过运行以下命令来启动主密钥轮换:
ibmcloud tke cryptounit-mk-rotate
-
提示时,输入
y
以继续执行预检查。将检查以下设置:
- 仅选择一个服务实例,并且将选择该服务实例中的所有加密单元。
- 所有选定的加密单元都具有左印记方式,并且具有相同的签名阈值。
- 所选管理员与加密单元中安装的管理员相匹配。
- 所有加密单元都正确配置了新的和当前的密钥寄存器。
-
要轮换主密钥并激活新的主密钥,请在提示时输入要使用的签名密钥文件的密码。
当主密钥轮换完成时,将显示一条成功消息。 可能需要大约 60 秒来重新加密 3000 个密钥。
新的主密钥现在在当前主密钥寄存器中处于
Valid
状态。 请查看主密钥轮换 针对标准套餐 或 针对 Unified Key Orchestrator 计划,以获取有关密钥状态如何更改的更多信息。 -
现在,您的加密密钥受新的主密钥保护。
如果在主密钥轮换期间发生错误,请参阅 为什么无法使用密钥部件文件轮换主密钥。
下一步
- 要了解有关以编程方式管理密钥的更多信息,请查看 Hyper Protect Crypto Services 密钥管理服务 API 参考文档 或 Unified Key Orchestrator API 参考文档。
- 要了解有关使用 Hyper Protect Crypto Services的云 HSM 功能对数据进行加密的更多信息,请查看 PKCS #11 API 参考 和 GREP11 API 参考文档