如何在GCP共享VPC中配置带静态出站IP的Cloud Run?
配置带静态出站IP的Cloud Run(适配共享VPC+对等安全项目架构)
核心逻辑
Direct VPC Egress只能让Cloud Run接入共享VPC,但本身不提供静态出站IP——必须搭配Cloud NAT才能绑定静态公网IP。另外,只要规划好专属子网,完全不会和同VPC内的GCE实例产生IP冲突。
具体配置步骤
1. 规划共享VPC专属子网
- 给Cloud Run单独划一个独立子网(比如
10.0.10.0/24),子网段不要和现有GCE实例的子网重叠,从根源避免IP冲突。 - 开启该子网的私有Google访问,让Cloud Run无需公网就能访问GCP内部服务。
2. 在IT项目部署Cloud NAT网关
- 创建Cloud NAT网关,关联到Cloud Run的专属子网。
- 给NAT网关绑定提前预留的静态外部IP,这样Cloud Run的所有出站流量都会通过这个静态IP对外访问。
- 配置NAT规则:允许Cloud Run流量通过NAT访问公网,同时保留到安全项目VM防火墙的路由。
3. 配置Cloud Run使用Direct VPC Egress
- 创建或更新Cloud Run服务时,指定共享VPC和专属子网:
这里不用VPC Connector,直接用gcloud run services update [你的服务名] \ --vpc-network [共享VPC名称] \ --vpc-subnet [Cloud Run专属子网名] \ --vpc-egress all-traffic--vpc-egress all-traffic让所有流量走共享VPC。
4. 同步对等网络的路由与防火墙规则
- 在安全项目和IT项目的对等连接中,确保路由同步:允许Cloud Run子网访问安全项目的VM防火墙。
- 安全项目的VM防火墙要配置规则,放行Cloud Run子网的流量,同时按业务需求做流量过滤/转发。
关键注意点
- IP冲突问题:只要Cloud Run用独立子网,子网段不与GCE子网重叠,就不会冲突——Cloud Run的Pod IP从专属子网分配,和GCE实例IP完全隔离。
- 静态IP验证:部署后在Cloud Run服务里执行
curl ifconfig.me,返回的应该是你绑定的NAT静态IP。 - 权限要求:操作账号需要拥有共享VPC的
compute.networkAdmin、Cloud Run的run.admin、Cloud NAT的compute.natAdmin权限。
内容的提问来源于stack exchange,提问作者Lina
相关产品推荐
相关产品推荐

