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

App Engine默认凭证删除超30天后的恢复及部署方案咨询

核心问题答复
  • 已删除超过30天的App Engine默认服务账号完全不支持恢复:Google Cloud对所有服务账号执行统一的30天软删除策略,超出保留期后账号的唯一标识、权限绑定数据会被永久从底层清除,不存在任何内部或公开的恢复通道,不需要在这个方向尝试任何方案。
  • 完全可以用新创建的自定义服务账号替代原默认账号,不需要重建整个GAE项目或应用。
  • 支持强制GAE所有新版本、全应用使用非默认的自定义服务账号,部署和运行流程不会因为缺少原始默认账号受影响。
落地操作步骤
  1. 提前准备替代用的服务账号
  • 在当前GAE所属项目下新建普通服务账号,命名没有强制要求,不需要刻意模仿原默认账号的命名规则。
  • 给新建的服务账号绑定必需的角色,满足部署和运行需求:
    • roles/appengine.appAdmin:拥有GAE应用、版本的管理权限
    • roles/editor:覆盖GCP基础资源调用权限,生产环境可根据实际业务需求收缩为最小权限集
    • roles/storage.objectAdmin:支持部署时上传版本包到项目关联的Cloud Storage桶
    • roles/cloudbuild.builds.builder:如果使用Cloud Build执行部署构建流程,需要绑定该角色拉取依赖、执行构建任务
  • 给你用来执行部署操作的身份(本地gcloud登录的账号、CI/CD流程用的服务账号)绑定新服务账号的roles/iam.serviceAccountUser角色,否则部署时会触发“无权模拟服务账号”的报错。
  1. 配置GAE使用新服务账号部署运行
  • 单次部署指定服务账号的话,直接在gcloud部署命令中加参数即可:
gcloud app deploy --service-account=替换为你新建服务账号的完整邮箱
  • 要做全局默认配置的话,直接修改项目根目录下的app.yaml,在顶层配置项中加入服务账号字段:
service_account: 替换为你新建服务账号的完整邮箱
runtime: 你的应用使用的运行时,例如python311、nodejs20
# 其余原有配置保持不变即可
  • 执行部署后,新发布的版本会完全使用指定的自定义服务账号运行,不会再调用已删除的原默认服务账号。

避坑提示:

  1. 不要尝试创建和原默认账号同名的服务账号,新账号的系统唯一UID和被删除的原账号完全不同,GCP不会将其识别为原默认账号,纯属无效操作。
  2. 之前部署的、绑定了已删除默认账号的旧版本会持续报权限错误,不需要尝试修复旧版本,等新版本部署完成、把全部流量切到新版本后,直接删除异常旧版本即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 20:12:26