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

在Jenkins中模拟GCP SA-developer账号登录及连接GCP服务的方案咨询

在Jenkins中模拟GCP服务账号访问及Vault集成方案

一、Jenkins中实现模拟GCP服务账号的方法

方法1:Google Cloud SDK插件+服务账号密钥(通用方案)

  • 安装Jenkins的Google Cloud SDK插件,确保构建节点已部署gcloud命令行工具
  • 在Jenkins凭据管理中添加sa-developer服务账号的JSON密钥文件,存储为"Secret file"类型凭据
  • 在构建步骤中调用以下命令完成身份配置:
# 激活目标服务账号
gcloud auth activate-service-account sa-developer@project-id.iam.gserviceaccount.com --key-file=${JENKINS_SECRET_FILE_PATH}
# 设置应用默认凭据的配额项目
gcloud auth application-default set-quota-project project-id
  • 后续构建任务中的应用会自动通过ADC(应用默认凭据)机制使用该服务账号权限,访问Secret Manager或PubSub

方法2:工作负载身份(GKE部署场景最优)

  • 若Jenkins运行在GKE集群,可配置工作负载身份绑定:将Jenkins Pod使用的K8s服务账号,与GCP的sa-developer服务账号建立绑定关系
  • 绑定完成后,Pod内的ADC会自动获取sa-developer的身份权限,无需手动管理密钥,直接访问GCP服务

二、通过Vault连接GCP服务账号的方案

可以借助Vault的GCP Secrets Engine实现短期凭据的生成与管理,步骤如下:

  1. 在Vault中启用GCP Secrets Engine:
vault secrets enable gcp
  1. 配置Vault使用具备模拟权限的GCP服务账号(需提前为该账号授予roles/iam.serviceAccountTokenCreator角色,允许模拟sa-developer)
  2. 创建Vault角色,关联到sa-developer服务账号:
vault write gcp/roles/gcp-sm-access \
    service_account_email=sa-developer@project-id.iam.gserviceaccount.com \
    token_scopes="https://www.googleapis.com/auth/cloud-platform"
  1. 在Jenkins中安装Vault插件,配置Vault服务器连接,在构建步骤中获取短期GCP凭据,将其写入临时文件并设置环境变量:
export GOOGLE_APPLICATION_CREDENTIALS=/tmp/gcp-creds.json
vault read -format=json gcp/roles/gcp-sm-access/token | jq -r '.data.token' > $GOOGLE_APPLICATION_CREDENTIALS
  • 应用即可通过ADC读取该临时凭据,以sa-developer身份访问GCP服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 19:40:18