使用Terraform创建GCP GKE集群出现Cloud KMS加密权限被拒错误问询
问题排查与解决步骤
- 第一步:修正KMS密钥的完整配置路径
你当前配置的boot_disk_kms_key仅填写到了密钥环(KeyRing)层级,缺少具体加密密钥路径,完整的配置格式应为:
boot_disk_kms_key = "projects/<PROJECT_ID>/locations/europe-west2/keyRings/<KEY_RING_NAME>/cryptoKeys/<CRYPTO_KEY_NAME>"
路径配置不全是触发该类报错的高频原因,会导致GCP无法定位到要使用的加密密钥。
第二步:调整KMS权限的授权对象
你为GKE集群指定的服务账号不需要KMS加密权限,节点启动盘加密属于GCE基础设施层面的操作,需要为Compute Engine服务代理账号授权,该账号固定格式为:service-<你的GCP项目数字ID>@compute-system.iam.gserviceaccount.com
请为该账号授予对应KMS密钥的roles/cloudkms.cryptoKeyEncrypterDecrypter权限。第三步:验证密钥区域匹配
你使用的KMS密钥必须和GKE集群所在的europe-west2区域完全一致,跨区域的客户管理密钥不支持用于GCE磁盘加密。第四步:校验权限配置有效性
可通过gcloud命令确认权限已正确生效:
gcloud kms keys get-iam-policy <CRYPTO_KEY_NAME> --keyring <KEY_RING_NAME> --location europe-west2 --project <PROJECT_ID>
确认返回的权限列表中包含上述compute-system服务代理账号的对应角色。
- 第五步:检查密钥状态
确认要使用的KMS密钥处于启用状态,未被禁用、归档或销毁。
内容的提问来源于stack exchange,提问作者floormind
相关产品推荐
相关产品推荐

