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

如何让Google Cloud Run作业的容器使用VM默认凭据?

解决Cloud Run作业容器访问凭据连接BigQuery的问题

方案一:使用Cloud Run作业专属服务账号(推荐,符合GCP最佳实践)

Cloud Run作业本身支持绑定GCP服务账号,无需依赖启动它的VM凭据,这是最安全可控的方式:

  • 准备一个拥有BigQuery必要权限的服务账号,比如需要bigquery.dataEditor(读写数据)、bigquery.jobUser(提交查询作业)等权限,根据你的DBT操作需求分配。
  • 部署Cloud Run作业时指定该服务账号:
    gcloud run jobs deploy <你的作业名称> --image <你的Docker镜像地址> --service-account <服务账号邮箱>
    
  • DBT的profiles.yml配置无需额外指定凭据路径,GCP SDK会自动获取Cloud Run作业的服务账号默认凭据,OAuth连接会自动生效,示例配置:
    dbt_bigquery:
      target: dev
      outputs:
        dev:
          type: bigquery
          method: oauth
          project: <你的GCP项目ID>
          dataset: <你的BigQuery数据集>
          location: <区域,比如us-central1>
    

方案二:复用VM的默认凭据(不推荐,存在凭据管理风险)

如果必须使用VM上的默认凭据,可通过Secret Manager中转挂载:

  1. 在启动Cloud Run作业的VM上,导出默认凭据文件(通常路径为~/.config/gcloud/application_default_credentials.json)
  2. 将该凭据文件上传到Secret Manager:
    gcloud secrets create vm_default_creds --data-file ~/.config/gcloud/application_default_credentials.json
    
  3. 部署Cloud Run作业时,挂载该秘密并设置环境变量指向凭据路径:
    gcloud run jobs deploy <你的作业名称> --image <你的Docker镜像地址> --update-secrets=GOOGLE_APPLICATION_CREDENTIALS=vm_default_creds:latest
    
  4. 此时DBT会通过GOOGLE_APPLICATION_CREDENTIALS环境变量找到VM的凭据,完成OAuth连接。

注意:此方案需要定期更新VM的凭据(默认凭据有有效期),且权限范围与VM默认凭据一致,不如服务账号权限粒度可控,仅作为特殊场景下的备选。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:02:12