设置密钥管理服务 (KMS) 提供者

虚拟私有云 传统基础设施 Satellite

您可以通过启用密钥管理服务 (KMS) 提供程序 (例如 IBM® Key Protect for IBM Cloud® 或 Hyper Protect Crypto Services) 来保护 Kubernetes 私钥以及私钥中存储的任何凭证。

请勿删除 KMS 实例中的根密钥,即使轮换到新密钥也是如此。 如果删除群集使用的根密钥,群集将无法使用,丢失所有数据,并且无法恢复。 同样,如果禁用根密钥,那么依赖于读取私钥的操作将失败。 但是,与删除根密钥不同,您可以重新启用已禁用的密钥以使集群再次可用。

必须先创建 KMS 实例和根密钥,然后才能在集群中启用密钥管理服务 (KMS) 提供程序。

  1. 创建要使用的 KMS 提供程序的实例。

  2. 在 KMS 实例中创建一个根密钥。

    Key Protect: 需要设置失效日期以遵守内部安全政策? 请使用 API 创建根密钥,并包含 expirationDate 参数。 重要:在根密钥过期之前,请重复这些步骤更新群集以使用新的根密钥。 当根密钥到期时,无法解密集群密钥,并且集群变为不可用。 根据集群版本,根密钥到期与集群不再能够解密私钥之间的时间间隔可能约为 1 小时,也可能是刷新主密钥时。

  3. 检查您是否在 IBM Cloud IAM 中具有必需的服务授权策略。 浏览到控制台中的“服务授权”页面,并查找具有 源服务 (指定为 Kubernetes 服务),目标服务 (指定为 KMS 提供程序 (例如 Key Protect)) 以及 目标帐户 (指定为集群所在的帐户) 的授权。 如果您未看到服务授权,请执行以下步骤来创建服务授权:

    • Kubernetes Service 和 KMS 提供程序所需的服务访问策略
      1. 如果要授权访问 KMS 的集群位于当前帐户中,请为 此帐户 设置 源帐户,否则,如果集群位于其他帐户下,请选择 其他帐户 并提供帐户标识。
      2. 源服务 设置为 Kubernetes Service
      3. 目标服务 设置为 KMS 提供程序,例如 Key Protect
      4. 至少包含 读者 服务访问权。
      5. 启用源服务和从属服务的授权。
  4. 确保您在 IBM Cloud Identity and Access Management (IAM) 中具有正确的许可权,以在集群中启用 KMS。

    • 确保您具有集群的 管理员 IBM Cloud IAM 平台访问角色
    • 确保为集群所在区域和资源组设置的 API 密钥 的 API 密钥所有者对 KMS 提供程序具有正确的许可权。
      • 例如,要创建实例和根密钥,您至少需要针对 KMS 提供者的 编辑者 平台和 写入者 服务访问角色。
      • 如果计划使用现有 KMS 实例和根密钥,那么至少需要针对 KMS 提供者的 查看者 平台和 读者 服务访问角色。
  5. 可选:如果计划 为 VPC 群集设置工作节点磁盘加密,请完成以下附加步骤。

  6. 创建集群并启用私钥加密。

旋转 KMS 根密钥

要轮换用于加密集群的根密钥,可以重复步骤以从 KMS 提供程序 CLI 或控制台启用 KMS 加密。 轮换根密钥时,不能对同一集群复用先前的根密钥。

您可以从 KMS 实例轮换根密钥。 此操作将使用新的根密钥在集群中自动重新启用 KMS。 要手动轮换密钥,请参阅 KMS 提供者文档。