gcloud deploy指定自定义服务账号部署App Engine仍调用默认服务账号
根因说明
你执行的gcloud auth activate-service-account和gcloud config set account仅指定了执行部署操作的身份,并未指定App Engine应用运行时使用的服务账号,所以部署时默认调用项目的App Engine默认服务账号,触发权限报错。
解决方案
方案1:部署命令显式指定服务账号
在gcloud app deploy命令中添加--service-account参数直接指定自定义服务账号,同时添加--quiet参数禁用CI环境下的交互确认,修改后的部署命令为:
gcloud app deploy --service-account=<你的自定义服务账号完整邮箱地址> --quiet
方案2:app.yaml配置文件固定服务账号
如果需要长期使用该自定义服务账号,直接在项目的app.yaml配置文件中添加如下配置即可,无需修改部署命令:
service_account: <你的自定义服务账号完整邮箱地址>
前置权限校验
必须完成以下权限配置否则仍会触发权限报错:
- 执行部署操作的服务账号(即你激活的密钥对应的服务账号),需要被授予
roles/iam.serviceAccountUser角色,授权对象为你要使用的自定义运行服务账号 - 自定义运行服务账号本身需要配置App Engine运行所需的基础权限,以及你业务用到的其他云服务(如云存储、云数据库等)的访问权限
内容的提问来源于stack exchange,提问作者firsni
相关产品推荐
相关产品推荐

