通过GCP Cloud Build访问GitHub私有仓库遇账号及权限问题求助
解决方案
先解决Cloud Build默认服务账号缺失的问题
检查Cloud Build API是否已启用
执行命令确认:gcloud services list --enabled | grep cloudbuild.googleapis.com如果没返回结果,启用API:
gcloud services enable cloudbuild.googleapis.com启用后等待3-5分钟,GCP需要时间生成默认服务账号,之后再去IAM页面刷新查看。
确认当前操作的GCP项目和项目编号
用命令检查当前项目:gcloud config get-value project确保是你操作的
MYPROJECT,同时确认项目编号正确(服务账号格式是PROJECTNUMBER@cloudbuild.gserviceaccount.com,不是项目ID),可以通过gcloud projects describe MYPROJECT --format='value(projectNumber)'获取项目编号。触发服务账号自动生成
如果API启用后还是没出现,手动创建一个简单的Cloud Build触发器(比如选择“镜像构建”,随便填一个镜像名,不用关联代码仓库),触发器创建过程中GCP会自动生成默认服务账号,完成后再去IAM列表里找。
解决Secret Manager权限问题
当服务账号出现后,给它添加Secret Manager的访问权限:
- 命令行方式:
gcloud projects add-iam-policy-binding MYPROJECT --member="serviceAccount:PROJECTNUMBER@cloudbuild.gserviceaccount.com" --role="roles/secretmanager.secretAccessor" - 控制台方式:进入IAM页面,找到
PROJECTNUMBER@cloudbuild.gserviceaccount.com账号,点击编辑,添加Secret Manager Secret Accessor角色,保存即可。
之后重新执行gcloud builds submit --config=cloudbuild.yaml .应该就能正常运行了。
内容的提问来源于stack exchange,提问作者dips
相关产品推荐
相关产品推荐

