将群集机密和工作节点从 HPCS 迁移到 Key Protect
虚拟私有云 传统基础设施
您可以使用 Key Protect 迁移工具,将群集密文加密、工作池和工作节点磁盘加密从 Hyper Protect Crypto Services (HPCS) 迁移到 IBM® Key Protect for IBM Cloud®。 此过程会更新加密密钥和实例引用,以及群集机密、加密工作者和工作者池的使用情况。
迁移过程可能需要一个小时或更长时间,具体取决于需要迁移的资源数量。 一定要做好相应的计划。
准备工作
在从 HPCS 迁移到 Key Protect 之前,请查看以下要求和注意事项。
- 您必须创建 Key Protect 实例和根密钥。 有关详细信息,请参阅 设置密钥管理服务(KMS)提供商。
- 您必须在 IBM Cloud Identity and Access Management (IAM) 中拥有正确的权限,才能在群集中启用 KMS。 有关详细信息,请参阅 设置密钥管理服务(KMS)提供商。
- 服务对服务的授权策略必须到位,并且必须在 Key Protect 实例或服务级别,而不是在密钥环或密钥级别确定范围。 这是目前适用于工作节点和群集密文加密的限制。
在迁移完成并确认成功之前,请勿删除 HPCS 根密钥。
步骤 1. 设置服务对服务授权
在从 HPCS 迁移到 Key Protect 之前,必须在 IBM Cloud IAM 中设置所需的服务对服务授权策略。 群集机密和工作节点必须分别完成此步骤。 请注意,您可能已经有了这些策略,在这种情况下无需重新创建。
群组密文加密授权
要迁移群集密文加密,需要将 IBM Cloud Kubernetes Service 的服务授权策略迁移到 Key Protect 实例。
- 导航至 IBM Cloud 控制台中的 服务授权页面。
- 单击创建。
- 如果群集位于当前账户中,则将源账户设置为“此账户”。 如果群集在其他账户中,请选择“其他账户”并提供账户 ID。
- 将源服务设置为 Kubernetes Service.
- 将目标服务设置为 Key Protect.
- 将授权范围扩大到 Key Protect 服务或实例级别。 不要将范围限定在特定的钥匙圈或钥匙上。
- 至少包括读者服务通道。
- 允许源服务和依赖服务进行授权委托。
- 单击授权。
工人节点磁盘加密授权
要为 VPC 群集迁移工作节点磁盘加密,需要将 IBM Cloud Kubernetes Service 和 Cloud Block Storage 的服务授权策略迁移到 Key Protect 实例。
请按照以下步骤为 IBM Cloud Kubernetes Service 创建授权。 如果这些策略已经存在,则无需重新创建。
- 导航至 IBM Cloud 控制台中的 服务授权页面。
- 单击创建。
- 如果群集位于当前账户中,则将源账户设置为“此账户”。 如果群集在其他账户中,请选择“其他账户”并提供账户 ID。
- 将源服务设置为 Kubernetes Service.
- 将目标服务设置为 Key Protect.
- 将授权范围扩大到 Key Protect 服务或实例级别。 不要将范围限定在特定的钥匙圈或钥匙上。
- 至少包括读者服务通道。
- 允许源服务和依赖服务进行授权委托。
- 单击授权。
请按照以下步骤为 Cloud Block Storage 创建授权。
- 导航至 IBM Cloud 控制台中的 服务授权页面。
- 单击创建。
- 如果群集位于当前账户中,则将源账户设置为“此账户”。 如果群集在其他账户中,请选择“其他账户”并提供账户 ID。
- 将源服务设置为 Cloud Block Storage. 请注意,在 CLI 中,源服务被称为 server-protect。
- 将目标服务设置为 Key Protect.
- 将授权范围扩大到 Key Protect 服务或实例级别。 不要将范围限定在特定的钥匙圈或钥匙上。
- 至少包括读者服务通道。
- 单击授权。
Red Hat OpenShift on IBM Cloud 会自动在 IBM-managed 服务账户中为 Cloud Block Storage 服务创建额外的服务对服务委托策略,并将其发送到 Key Protect 实例。 需要使用此委托策略,以便 VPC 基础设施使用 Key Protect 根密钥加密工作节点的启动卷。 如果迁移后出现问题,请验证 IAM 授权中是否存在此委托授权策略。
步骤 2. 确定迁移的主要用途
确定账户中哪些资源需要从 HPCS 迁移到 Key Protect。 有关识别使用情况的不同方法,请参阅 Key Protect 文档中的 搜索使用情况。
使用 ibmcloud kp registrations -i KMS_INSTNACE_ID KEY_ID 命令可以查看每个群集的密钥注册情况。 输出结果显示了以下密钥注册信息: - 群组机密只需登记一次
- 每个加密工人池注册一次
- 每个加密工人只能注册一次
这些注册信息可能与以下内容类似:
"crn:v1:staging:public:containers-kubernetes:us-south:a/1152aa1c1ec54274ac42b8ad8507c90c:d70mi70206f7fchch5h0::
crn:v1:staging:public:containers-kubernetes:us-south:a/1152aa1c1ec54274ac42b8ad8507c90c:d79qqpt20aca2a0ii8v0:worker-pool:d79qqpt20aca2a0ii8v0-edea88a
crn:v1:staging:public:is:us-south-1:a/e2523561f3864f058711d94392c19e9b::volume:r134-799cdc60-c598-4a58-913b-b29ad312a143
可选:使用密钥使用情况报告工具
识别密钥使用情况的一个可用方法是密钥使用情况报告器(KUR)工具,它可以扫描你的账户,并提供使用中的 HPCS 密钥报告。 该检测工具可帮助您识别哪些群集使用 HPCS 密钥启用了秘密加密,哪些工作池使用 HPCS 密钥启用了工作节点磁盘加密。 报告输出将群集机密、工作者和工作者池显示为与特定 HPCS 密钥和实例绑定的独立资源。 有关运行检测工具的详细说明,请参阅 Key Protect 文档中的 检测 HPCS 密钥使用 情况。
请注意,KUR 工具可能无法显示所有 HPCS 使用情况,因此必须审查所有识别使用情况的方法。 如果使用跨账户 KMS 实例,则必须在所有相关账户中运行 KUR 工具。
步骤 3. 运行迁移工具
确定使用 HPCS 密钥的资源并设置所需的服务授权后,使用 Key Protect 迁移工具迁移加密密钥。 完成此步骤前,请确保已创建 所需的服务对服务授权策略。
有关运行迁移工具的详细说明,请参阅 Key Protect 文档中的 迁移至 Key Protect。
迁移过程中会发生什么
运行迁移工具时,会发生以下操作:
- 群组秘密加密
- 迁移会触发在 Key Protect 密钥上创建密钥注册。 然后,使用 Key Protect 密钥而不是 HPCS 密钥重新加密数据加密密钥。 然后从 HCPS 密钥中删除注册。 运行期间预计不会出现停机,您的群集将继续正常运行。
- 工作节点磁盘加密
-
- 对于加密工人池:迁移会触发在工人池上为加密工人创建密钥注册。 对 HPCS 实例和密钥的引用将更新为指向 Key Protect 实例和密钥。 然后从 HPCS 密钥中删除注册。 添加到工人池的任何新工人现在都会使用更新后的密钥信息。 在操作过程中不会出现预期的停机时间,您的工人池将继续正常运行。
-
- 对于单个工作人员:迁移会触发在 Key Protect 密钥上创建密钥注册。 然后,使用 Key Protect 密钥而不是 HPCS 密钥重新加密数据加密密钥。 然后从 HCPS 密钥中删除注册。 手术期间预计不会出现停机,您的工人可以继续正常工作。
在迁移过程中,Red Hat OpenShift on IBM Cloud 会自动在 IBM-managed 服务账户中为 Cloud Block Storage 服务创建额外的服务对服务委托策略,并将其发送到 Key Protect 实例。 需要使用此委托策略,以便 VPC 基础设施使用 Key Protect 根密钥加密工作节点的启动卷。 如果在迁移过程中或迁移后出现问题,请验证 IAM 授权中是否存在此委托授权策略。
步骤 4. 验证迁移
迁移完成后,验证群集是否使用 Key Protect 密钥。
-
检查群集状态,确保主服务器已准备就绪。
ibmcloud oc cluster get -c CLUSTER_NAME_OR_ID在输出中,验证主状态是否为就绪,密钥管理服务是否显示 Key Protect 实例的 KMS 实例 ID 和 KMS 根密钥 ID。
-
对于 Worker 节点加密,请验证 Worker 池是否引用了 Key Protect 密钥。
ibmcloud oc worker-pool get --worker-pool WORKER_POOL_NAME_OR_ID --cluster CLUSTER_NAME_OR_ID查看输出中的 KMS 和 CRK 字段,确认它们引用了你的 Key Protect 实例和根密钥。
-
验证是否可以访问群集机密。
oc get secrets --all-namespaces -
在 Key Protect 实例中,验证群集、工作者和工作者池是否已注册到新的根密钥,以及旧的 HPCS 密钥上是否不存在密钥注册。 有关更多信息,请参阅 查看根密钥与加密 IBM Cloud 资源之间的关联。
后续步骤
成功迁移到 Key Protect 并验证迁移后:
- 监控群集是否存在任何与加密或密钥访问相关的问题。
- 更新任何引用 HPCS 实例的文档或运行手册。
- 考虑根据安全策略 轮流使用 Key Protect 根密钥。