You need to enable JavaScript to run this app. ESPV2访问仅内部流量的NodeJS+Express Cloud Run服务授权问题
优惠活动
大模型
产品
解决方案
定价
更多

ESPV2访问仅内部流量的NodeJS+Express Cloud Run服务授权问题

配置步骤

1. 配置ESPV2的VPC访问能力

如果你的ESPV2部署在Cloud Run上,需要为其绑定VPC连接器,确保ESPV2发往后端Cloud Run的请求走GCP内部网络,才能匹配后端「仅允许内部流量」的访问规则:

  • 提前在和ESPV2同区域创建VPC连接器
  • 更新ESPV2的Cloud Run服务配置,绑定VPC连接器,设置出口流量规则为「所有流量都走VPC连接器」
    如果ESPV2部署在GKE等其他内部资源上,确保该资源和后端Cloud Run所属VPC网络已打通。

2. 授予ESPV2服务账号后端调用权限

找到你部署ESPV2时使用的服务账号,为其授予后端NodeJS Cloud Run服务的调用权限:

gcloud run services add-iam-policy-binding <你的NodeJS服务名称> \
  --member="serviceAccount:<ESPV2服务账号邮箱>" \
  --role="roles/run.invoker" \
  --region=<服务部署区域>

如果你部署ESPV2时没有指定自定义服务账号,默认使用的是项目默认计算服务账号,格式为<项目编号>-compute@developer.gserviceaccount.com

3. 修改OpenAPI配置添加JWT Audience

ESPV2调用受IAM保护的Cloud Run服务时,需要在请求头中携带符合要求的ID Token,你需要在x-google-backend配置中添加jwt_audience字段,值和后端Cloud Run的访问地址完全一致:

x-google-backend:
  address: https://<nodejs-expess-cloud-run-url>.a.run.app
  protocol: h2
  jwt_audience: "https://<nodejs-expess-cloud-run-url>.a.run.app"

其他配置保持你原有的内容即可。

4. 重新部署生效

  • 用修改后的OpenAPI配置重新生成ESPV2部署配置
  • 重新部署ESPV2服务,验证调用效果:此时可以将后端NodeJS服务的访问规则改为「仅允许内部流量」、「不允许未授权调用」,通过ESPV2的地址即可正常访问接口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 23:06:03