You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Cloud实例组健康检查配置权限缺失问题咨询

解决GCP实例组滚动替换时的健康检查权限报错问题

你碰到的这个问题本质上是Cloud Build使用的服务账号没有访问指定健康检查资源的权限——就是报错里明确提到的compute.healthChecks.use权限。下面是具体的解决步骤:

1. 找到Cloud Build的默认服务账号

默认情况下,Cloud Build会使用项目专属的Cloud Build服务账号,格式是:

[你的项目编号]@cloudbuild.gserviceaccount.com

你可以用这条命令获取自己项目的编号:

gcloud projects describe YOUR_PROJECT_ID --format='value(projectNumber)'

记得把命令里的YOUR_PROJECT_ID替换成你实际的项目ID。

2. 给服务账号添加必要权限

推荐遵循最小权限原则,你可以选下面两种方式之一:

方式一:仅添加健康检查使用权限(最安全)

如果只需要满足这次滚动替换的需求,直接给服务账号添加roles/compute.healthCheckUser角色就够了——这个预定义角色刚好包含compute.healthChecks.use权限,专门用来允许使用健康检查资源:

gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
  --member="serviceAccount:[刚才获取的项目编号]@cloudbuild.gserviceaccount.com" \
  --role="roles/compute.healthCheckUser"

方式二:添加更宽泛的实例管理权限(适合多场景)

如果你的Cloud Build还需要管理其他GCE资源(比如实例、实例组配置等),可以直接添加roles/compute.instanceAdmin.v1角色,它包含了健康检查相关权限以及大部分实例管理所需的权限:

gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
  --member="serviceAccount:[刚才获取的项目编号]@cloudbuild.gserviceaccount.com" \
  --role="roles/compute.instanceAdmin.v1"

3. 为什么移除健康检查后就正常了?

当你移除实例组的健康检查配置后,滚动替换操作就不再需要访问projects/MY-PROJECT-ID/global/healthChecks/hc这个资源了,自然不会触发对应的权限校验,所以构建就能成功完成啦。

内容的提问来源于stack exchange,提问作者Bmaed Riasbet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 10:32:39