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

为Cloud Build配置Secrets Manager权限及部署容器IAM账号配置

问题解决方案

一、解决Cloud Build构建时的权限问题

1. 定位Cloud Build默认服务账号

你提到的99999999@cloudbuild.gserviceaccount.com是Cloud Build的默认服务账号,它不会显示在常规的服务账号列表中,需直接到IAM页面搜索该邮箱地址找到它。

2. 授予Secrets Manager访问权限

  • 控制台操作:进入IAM页面,搜索到该账号后点击「编辑权限」,添加Secret Manager Secret Accessor角色(该角色包含secretmanager.versions.access权限);若需要更细粒度控制,可直接添加secretmanager.versions.access权限。
  • 命令行操作:
    gcloud projects add-iam-policy-binding myproject \
      --member="serviceAccount:99999999@cloudbuild.gserviceaccount.com" \
      --role="roles/secretmanager.secretAccessor"
    

二、部署后Docker容器的权限配置

根据你部署容器的平台,按以下方式配置IAM服务账号:

1. 部署在GKE(Google Kubernetes Engine)

  • 准备一个服务账号,为其授予Secret Manager Secret Accessor角色。
  • 确保GKE集群已启用工作负载身份(Workload Identity)。
  • 在Deployment/StatefulSet的配置中,指定服务账号:
    spec:
      template:
        spec:
          serviceAccountName: 你的服务账号名称 # 需与服务账号在同一命名空间
    
    容器内的程序可直接通过Google Cloud客户端库访问Secrets Manager,客户端会自动从元数据服务器获取凭据。

2. 部署在Cloud Run

  • 准备一个服务账号,为其授予Secret Manager Secret Accessor角色。
  • 部署时指定该服务账号:
    gcloud run deploy 你的服务名称 \
      --image gcr.io/myproject/你的镜像名 \
      --service-account=你的服务账号@myproject.iam.gserviceaccount.com
    
    程序无需额外配置凭据,客户端库会自动获取权限。

3. 部署在Compute Engine(VM)

  • 准备一个服务账号,为其授予Secret Manager Secret Accessor角色。
  • 为VM关联该服务账号:
    gcloud compute instances set-service-account 你的VM名称 \
      --service-account=你的服务账号@myproject.iam.gserviceaccount.com
    
    确保容器能访问VM的元数据服务器(默认host网络或配置代理即可),程序即可通过客户端库自动获取凭据。

内容的提问来源于stack exchange,提问作者Mark McWiggins

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:48:17