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

如何为GCP服务间身份验证令牌设置自定义过期时间

解决方案

核心原因

你当前调用的GCE元数据服务接口默认返回的服务账号OIDC身份令牌固定有效期为3600秒(1小时),该接口本身没有提供自定义有效期的参数,无法直接通过修改请求参数延长有效期。

实现6小时有效期的操作方案

首先需要给你使用的服务账号授予roles/iam.serviceAccountTokenCreator角色,该角色支持服务账号生成自定义有效期的身份令牌,最高支持10小时有效期,完全满足你6小时(21600秒)的需求。

方案1:使用gcloud命令生成(推荐)

直接执行以下命令即可拿到有效期6小时的身份令牌:

gcloud auth print-identity-token --audiences=[AUDIENCE] --include-email --token-lifetime=21600s

方案2:调用IAM Credentials API生成(适合无gcloud环境)

分两步执行:

  1. 先从元数据服务获取短期访问令牌
curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token" \
 -H "Metadata-Flavor: Google"

从返回结果中提取access_token字段的值,同时确认实例绑定的服务账号邮箱。

  1. 调用IAM接口生成自定义有效期的身份令牌
    将对应参数替换后执行以下请求:
curl -X POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/[你的服务账号邮箱]:generateIdToken \
 -H "Authorization: Bearer [上一步拿到的access_token]" \
 -H "Content-Type: application/json" \
 -d '{"audience": "[你的目标AUDIENCE]", "includeEmail": true, "lifetime": "21600s"}'

注意事项

  • 权限配置完成后可能需要1-2分钟生效,出现403报错时优先检查角色是否正确授予
  • 如非必要不建议设置过长的令牌有效期,避免泄露带来的安全风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:54:05