如何从GCP项目A的SQL虚拟机连接到项目B的BigQuery?
解决GCP跨项目VM连接BigQuery的问题
方案1:Cloud NAT + 公网访问BigQuery
- 无需修改现有VPC,适合生产环境快速落地:
- 在项目A的VPC中创建Cloud NAT网关,关联对应子网
- 确认VM的防火墙规则允许出站访问443端口(BigQuery默认用该端口,多数默认防火墙已开放)
- 给VM分配外部IP或通过NAT实现公网访问,在SQL镜像中配置BigQuery公网API端点的连接参数
- 关键前提:给VM绑定的服务账号配置对应BigQuery权限(如
roles/bigquery.dataEditor)
方案2:VPC服务控制 + 私网访问BigQuery
- 避开VPC对等的地址冲突问题,通过服务边界实现安全私网访问:
- 在组织级别创建VPC服务控制边界,纳入项目A的VPC网络和项目B的BigQuery资源
- 配置边界内访问规则,允许项目A的VM访问项目B的BigQuery
- 给VM配置BigQuery私网域名解析(
bigquery.googleapis.com),确保流量走内部网络
方案3:调整单项目默认VPC(生产环境需谨慎)
- 若坚持用VPC对等,需修改其中一个项目的默认VPC IP段:
- 备份项目内依赖默认VPC的所有资源(VM、负载均衡等)
- 删除现有默认VPC(会销毁关联子网、防火墙规则,需停机操作)
- 创建自定义VPC,使用与另一项目不重叠的IP段(如项目A用10.0.0.0/16,项目B用192.168.0.0/16)
- 重新部署资源到新VPC后,配置VPC对等连接
- 注意:操作风险高,需提前做好备份和回滚计划,避开业务高峰
方案4:共享VPC(无生产影响,适合长期架构)
- 共享VPC不会干扰现有服务,还能统一管理网络资源:
- 选择宿主项目(可复用项目A/B或新建项目C)创建共享VPC
- 将项目A、B关联到共享VPC,分配不重叠的子网
- 把项目A的VM迁移到共享VPC子网,配置防火墙规则允许VM访问BigQuery
- 优势:从根源解决跨项目VPC地址冲突,简化多项目网络管理
内容的提问来源于stack exchange,提问作者Lina
相关产品推荐
相关产品推荐

