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

多项目环境下通过VPN隐藏Cloud Run应用的最佳实践及Shared VPC跨项目访问问题解决

隐藏Cloud Run免受第三方访问的最佳实践(适配多项目Shared VPC场景)

咱们先把你遇到的Shared VPC跨项目访问问题捋顺,再一步步落地“彻底隐藏Cloud Run”的最佳方案——毕竟核心需求是阻断第三方访问,同时保证内部跨项目能正常使用对吧?

一、先解决Shared VPC下父项目主机访问服务项目Cloud Run的问题

这是实现隐藏的基础,先把内部通路打通:

  • 配置服务项目Cloud Run的IAM权限:给父项目的主机服务账号(或者父项目的compute.networkUser角色组)添加Cloud Run的roles/run.invoker权限,确保内部身份能合法调用服务
  • 确认VPC Connector的跨项目权限:在共享VPC的主机项目中,给服务项目的VPC Connector服务账号授予roles/compute.networkUser权限,允许它使用共享VPC的网络资源
  • 检查路由和防火墙规则:共享VPC的路由要覆盖父项目主机IP段到服务项目VPC Connector IP范围的通路,同时防火墙要放行这部分内部TCP/HTTP(S)流量

二、核心:彻底阻断第三方访问,仅开放内部/VPN通路

1. 关闭Cloud Run公网匿名访问(必做)

直接在Cloud Run服务设置里禁用Allow unauthenticated invocations,这一步直接把公网匿名访问的口子堵死,只有经过IAM授权的身份才能访问,是隐藏的基础。

2. 全流量走VPC Connector + Shared VPC

  • 所有项目的Cloud Run都启用Route all traffic through the VPC Connector,每个服务项目创建自己的VPC Connector并关联到共享VPC的子网
  • 在共享VPC中配置路由,把Cloud Run的所有出站/入站流量都导向VPN网关,确保所有流量都走内部/VPN通道,完全脱离公网

3. 用Identity-Aware Proxy (IAP) 做细粒度管控(可选但推荐)

如果需要更精准的访问控制(比如只允许特定VPN用户组访问),可以叠加IAP:

  • 把Cloud Run的IAM权限设置为仅允许roles/iap.httpsResourceAccessor角色调用
  • 在IAP中配置访问策略,仅放行来自VPN IP段、内部VPC IP段或者特定内部身份的请求

4. 防火墙和路由加固

  • 在共享VPC防火墙上,只放行来自VPN网关IP段、内部VPC IP段的流量到Cloud Run的业务端口,直接拒绝所有其他来源的请求
  • 清理所有指向Cloud Run的公网路由,确保没有任何公网通路能触达服务

5. 跨项目权限统一管理

  • 在共享VPC的主机项目中创建自定义IAM角色,整合Cloud Run调用、VPC资源访问的必要权限,批量授予需要跨项目访问的用户/服务账号,避免逐个项目重复配置
  • 借助组织级IAM政策,统一管控所有项目的Cloud Run访问权限,确保只有内部身份能获取访问权限

三、验证配置有效性

  • 在父项目主机上用curl调用服务项目Cloud Run的域名,确认能正常访问
  • 用公网IP尝试访问Cloud Run,应该得到403权限错误,验证公网访问被阻断
  • 查看Cloud Run日志,确认所有访问请求都来自内部/VPN IP,没有公网来源的记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 16:27:29