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

如何创建带24小时有效期角色的GCP服务账号?突破1小时限制

GCP服务账号24小时有效角色权限的实现方案

核心背景

默认GCP短-lived服务账号凭证的最大有效期是1小时,但通过调整IAM组织/项目级约束,可将上限提升至GCP允许的最大值——24小时。以下是具体实现步骤:

步骤1:调整IAM约束,放开有效期上限

你需要拥有Org Policy Administrator权限(组织或项目级),修改iam.allowServiceAccountCredentialLifetimeExtension约束:

  • 控制台操作:进入IAM与管理员 > 组织政策,搜索该约束,设置为“允许”,并指定最大有效期为86400s(24小时)
  • 命令行操作:创建policy.yaml文件,内容如下:
constraint: constraints/iam.allowServiceAccountCredentialLifetimeExtension
listPolicy:
  allValues: ALLOW
  suggestedValue: 86400s

然后执行:

# 组织级
gcloud org-policies set-policy policy.yaml

# 项目级(替换为你的项目ID)
gcloud org-policies set-policy policy.yaml --project=your-project-id

步骤2:创建服务账号并绑定角色

先创建目标服务账号,再为其分配所需权限角色:

# 创建服务账号
gcloud iam service-accounts create temp-24h-sa --display-name="24小时临时服务账号"

# 绑定角色(替换项目ID和目标角色)
gcloud projects add-iam-policy-binding your-project-id \
  --member="serviceAccount:temp-24h-sa@your-project-id.iam.gserviceaccount.com" \
  --role="roles/your-target-role"

步骤3:生成24小时有效期的临时凭证

通过服务账号 impersonation 生成有效期为24小时的访问凭证:

# 生成访问令牌
gcloud auth print-access-token \
  --impersonate-service-account=temp-24h-sa@your-project-id.iam.gserviceaccount.com \
  --lifetime=24h

# 或者生成带有效期的JSON格式凭证
gcloud iam service-accounts generate-access-token \
  temp-24h-sa@your-project-id.iam.gserviceaccount.com \
  --lifetime=86400s \
  --format=json

重要注意事项

  • 24小时是GCP允许的短-lived凭证最长有效期,无法进一步延长
  • 必须先完成步骤1的约束调整,否则指定24小时有效期会报错
  • 临时凭证过期后自动失效,若无需保留服务账号,可在过期后手动删除:
gcloud iam service-accounts delete temp-24h-sa@your-project-id.iam.gserviceaccount.com

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 01:35:27