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

Cloud Build访问存储桶被拒:GitHub Actions构建镜像失败排查

问题排查与解决思路

1. Cloud Build默认服务账号权限缺失

gcloud builds submit执行过程中,除了你的github-sa账号,Cloud Build的默认服务账号(格式为<项目号>@cloudbuild.gserviceaccount.com)也需要对目标存储桶具备操作权限。即便github-sa拥有Storage Object Admin权限,若Cloud Build服务账号无对应权限,仍会触发访问失败。

  • 检查该默认服务账号是否被授予Storage Object Admin或Cloud Build Editor角色,确保它能读写dev-00-ebcd_cloudbuild存储桶。

2. 存储桶IAM绑定存在问题

即便通过Terraform配置了角色,也可能出现IAM策略延迟生效或配置逻辑错误:

  • 手动验证存储桶的IAM绑定,确认github-sa确实被授予了针对dev-00-ebcd_cloudbuild存储桶的Storage Object Admin权限(需确认绑定范围是存储桶而非项目,避免权限作用对象错误)。
  • 检查Terraform代码中是否正确指定了存储桶的资源ID,防止权限绑定到错误资源上。

3. 工作负载身份验证的 impersonation 权限未配置

github-sa的角色配置正常不代表允许被GitHub Actions的身份impersonate:

  • 确认在GCP中,已为GitHub Actions对应的身份(格式通常为principalSet://iam.googleapis.com/projects/<项目号>/locations/global/workloadIdentityPools/<池ID>/attribute.repository/<你的GitHub仓库>)授予roles/iam.serviceAccountTokenCreator角色,允许其模拟github-sa。

4. Cloud Build API未启用

虽然github-sa拥有Service Usage Admin角色,但Cloud Build API本身可能未被启用:

  • 执行 gcloud services list --enabled 检查cloudbuild.googleapis.com是否在启用列表中;若未启用,运行gcloud services enable cloudbuild.googleapis.com(github-sa有权限执行该命令)。

5. 存储桶名称或路径错误

确认错误提示中的存储桶名称dev-00-ebcd_cloudbuild是否准确:

  • Cloud Build默认存储桶格式通常为<项目ID>_cloudbuild,检查你的项目ID是否为dev-00-ebcd,避免因拼写错误访问不存在的存储桶。

内容的提问来源于stack exchange,提问作者Stefan Falk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 09:40:29