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

Google Cloud Run对接VPC后前端访问内部后端返回403错误如何解决

Google Cloud Run 前端调用后端403错误排查方案

1. 验证内部访问链路是否生效

  • 首先确认前端调用后端时使用的是后端Cloud Run服务的官方域名,且请求确实通过VPC connector发起:可以在前端服务中临时添加调试逻辑,访问https://ifconfig.me获取出口IP,核对IP是否属于你配置的VPC connector的地址段。如果出口IP不属于VPC范围,说明前端的Route all traffic through the VPC connector配置未生效,需要重新部署前端服务确认配置已同步。
  • 确认两个服务绑定的是同一区域的VPC connector,跨区域的VPC访问会被后端的allow internal traffic only规则拦截。

2. 排查CORS预检请求拦截问题

  • 浏览器发起跨域请求时会先发送不带身份凭证的OPTIONS类型预检请求,Cloud Run的allow internal traffic only规则会先在边缘层拦截所有非内部来源的请求,若预检请求未走VPC链路会直接返回403,不会到达后端的CORS处理逻辑。需确保OPTIONS请求和后续业务请求均通过VPC链路传输,不要经过公网CDN、反向代理转发。
  • 需额外配置后端Cloud Run允许OPTIONS请求无需身份认证:Cloud Run默认会校验所有请求的身份凭证,但浏览器的预检请求不会携带Authorization头,未放行的情况下会直接返回403。你可以通过gcloud命令为后端添加配置:gcloud run services update [后端服务名] --allow-unauthenticated --method OPTIONS,仅对OPTIONS请求跳过身份校验。

3. 核对身份授权配置

  • 确认你授予Cloud Run Invoker角色的是前端服务的运行时服务账号,而非个人账号或其他服务账号,可在后端服务的权限面板直接搜索前端服务账号的邮箱地址,确认权限无继承限制、已生效。
  • 确认前端向后端发起请求时携带了正确的身份凭证:需要在请求头中添加Authorization: Bearer <ID_TOKEN>,该ID_TOKEN需用前端服务账号生成,且受众(audience)参数必须填写后端服务的完整根域名(如https://backend-xxx-uc.a.run.app,不能携带路径后缀)。未携带正确凭证的请求即使走内部链路也会返回403。

4. 检查VPC防火墙规则

  • 确认VPC网络的防火墙规则允许VPC connector的IP段向外部发起443端口的出站请求,没有相关拦截规则。

5. 快速验证定位问题

  • 临时将后端的ingress规则调整为allow all traffic,若仍返回403则问题出在身份认证或CORS配置,与内部访问规则无关;若调整后访问正常,则回到第一步重新排查VPC链路配置。
  • 可以在同一VPC下启动临时Compute Engine实例,使用前端服务账号模拟发起对后端的请求,若访问正常则问题出在前端服务的VPC出口配置或请求头配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:24:00