设置密钥管理服务 (KMS) 提供者
虚拟私有云 传统基础设施 Satellite
您可以通过启用密钥管理服务 (KMS) 提供程序 (例如 IBM® Key Protect for IBM Cloud® 或 Hyper Protect Crypto Services) 来保护 Kubernetes 私钥以及私钥中存储的任何凭证。
请勿删除 KMS 实例中的根密钥,即使轮换到新密钥也是如此。 如果删除群集使用的根密钥,群集将无法使用,丢失所有数据,并且无法恢复。 同样,如果禁用根密钥,那么依赖于读取私钥的操作将失败。 但是,与删除根密钥不同,您可以重新启用已禁用的密钥以使集群再次可用。
必须先创建 KMS 实例和根密钥,然后才能在集群中启用密钥管理服务 (KMS) 提供程序。
-
创建要使用的 KMS 提供程序的实例。
-
在 KMS 实例中创建一个根密钥。
- Key Protect 根密钥。
- Hyper Protect Crypto Services 根密钥。 缺省情况下,会创建没有到期日期的根密钥。
Key Protect: 需要设置失效日期以遵守内部安全政策? 请使用 API 创建根密钥,并包含
expirationDate参数。 重要:在根密钥过期之前,请重复这些步骤更新群集以使用新的根密钥。 当根密钥到期时,无法解密集群密钥,并且集群变为不可用。 根据集群版本,根密钥到期与集群不再能够解密私钥之间的时间间隔可能约为 1 小时,也可能是刷新主密钥时。 -
检查您是否在 IBM Cloud IAM 中具有必需的服务授权策略。 浏览到控制台中的“服务授权”页面,并查找具有 源服务 (指定为 Kubernetes 服务),目标服务 (指定为 KMS 提供程序 (例如 Key Protect)) 以及 目标帐户 (指定为集群所在的帐户) 的授权。 如果您未看到服务授权,请执行以下步骤来创建服务授权:
- Kubernetes Service 和 KMS 提供程序所需的服务访问策略
- 如果要授权访问 KMS 的集群位于当前帐户中,请为 此帐户 设置 源帐户,否则,如果集群位于其他帐户下,请选择 其他帐户 并提供帐户标识。
- 将 源服务 设置为 Kubernetes Service。
- 将 目标服务 设置为 KMS 提供程序,例如 Key Protect。
- 至少包含 读者 服务访问权。
- 启用源服务和从属服务的授权。
- Kubernetes Service 和 KMS 提供程序所需的服务访问策略
-
确保您在 IBM Cloud Identity and Access Management (IAM) 中具有正确的许可权,以在集群中启用 KMS。
- 确保您具有集群的 管理员 IBM Cloud IAM 平台访问角色。
- 确保为集群所在区域和资源组设置的 API 密钥 的 API 密钥所有者对 KMS 提供程序具有正确的许可权。
- 例如,要创建实例和根密钥,您至少需要针对 KMS 提供者的 编辑者 平台和 写入者 服务访问角色。
- 如果计划使用现有 KMS 实例和根密钥,那么至少需要针对 KMS 提供者的 查看者 平台和 读者 服务访问角色。
-
可选:如果计划 为 VPC 群集设置工作节点磁盘加密,请完成以下附加步骤。
-
创建集群并启用私钥加密。
旋转 KMS 根密钥
要轮换用于加密集群的根密钥,可以重复步骤以从 KMS 提供程序 CLI 或控制台启用 KMS 加密。 轮换根密钥时,不能对同一集群复用先前的根密钥。
您可以从 KMS 实例轮换根密钥。 此操作将使用新的根密钥在集群中自动重新启用 KMS。 要手动轮换密钥,请参阅 KMS 提供者文档。