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

如何用Vault获取的GCP访问令牌生成ID令牌调用Cloud Functions?

如何用GCP访问令牌生成Cloud Functions所需的ID令牌

可以通过两种方式实现:

1. 用现有访问令牌调用GCP IAM Credentials API生成ID令牌

你需要确保手中的访问令牌对应的服务账号拥有roles/iam.serviceAccountTokenCreator角色(或至少拥有iam.serviceAccounts.signJwt权限)。之后调用generateIdToken接口生成目标ID令牌:

curl -X POST "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/your-service-account@your-project.iam.gserviceaccount.com:generateIdToken" \
  -H "Authorization: Bearer YOUR_VAULT_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "audience": "https://us-central1-your-project.cloudfunctions.net/your-function",
    "includeEmail": true
  }'

关键注意:audience字段必须严格匹配你的Cloud Functions触发URL,否则生成的ID令牌会被Cloud Functions拒绝。

2. 直接通过Vault生成ID令牌(更高效)

Vault的GCP引擎支持直接生成ID令牌,无需先获取访问令牌再转换。只需:

  • 配置RoleSet时,在token_scopes中包含https://www.googleapis.com/auth/iam
  • 调用Vault的gcp/id-token端点:
vault write gcp/id-token/your-roleset-name \
  audience="https://us-central1-your-project.cloudfunctions.net/your-function"

该请求会直接返回可用于Cloud Functions认证的ID令牌,省去中间转换步骤。

额外注意事项

  • 确保Vault关联的服务账号拥有生成ID令牌的权限,否则两种方式都会失败。
  • Cloud Functions的身份验证规则需配置为接受该服务账号的身份凭证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 22:03:11