gcloud app deploy部署报错缺少vpcaccess.connectors.use权限如何解决
GAE部署提示缺少vpcaccess.connectors.use权限解决方案
- 先核对当前操作账号
执行gcloud auth list查看当前激活的账号,确认带*标识的就是你用于部署的自定义服务账号。如果账号不匹配,重新执行激活命令,或者执行gcloud config set account account_name@project-name.iam.gserviceaccount.com手动切换。
很多时候本地存在多个账号缓存,激活操作没有实际切换到目标账号,会导致权限校验失败,哪怕你给正确的账号授予了再高的权限也没用。 - 核对权限授予的项目层级
如果你使用的是共享VPC,VPC Access Connector创建在共享VPC的宿主项目中,仅在部署GAE的业务项目给服务账号授权是无效的,你需要在VPC连接器所在的宿主项目中给你的自定义服务账号授予Serverless VPC Access User角色。 - 给Cloud Build默认服务账号授权
GAE部署流程会调用Cloud Build完成镜像构建、资源配置等操作,如果你配置了VPC访问规则,Cloud Build的默认服务账号也需要vpcaccess.connectors.use权限。
你的项目默认Cloud Build服务账号格式为[项目ID对应的数字编号]@cloudbuild.gserviceaccount.com,给该账号授予Serverless VPC Access User角色即可。 - 等待权限传播生效
IAM权限授予后存在1-5分钟的传播延迟,刚赋权立刻部署会出现权限不生效的情况,哪怕是授予Owner角色也会存在这个问题,赋权后稍等几分钟再执行部署命令。 - 核对VPC连接器配置
检查app.yaml中vpc_access_connector的配置是否正确,完整的连接器路径格式为projects/[项目ID]/locations/[区域]/connectors/[连接器名称],如果路径配置错误,也可能出现误报权限缺失的问题。
如果需要手动验证账号权限,可以执行以下命令,替换对应占位符即可直接校验权限是否生效:
gcloud projects test-iam-permissions [你的项目ID] \ --permissions vpcaccess.connectors.use \ --account [你的自定义服务账号邮箱]
如果返回结果中包含vpcaccess.connectors.use就说明权限已经正常授予,否则说明权限配置有误。
内容的提问来源于stack exchange,提问作者fedrbodr
相关产品推荐
相关产品推荐

