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

如何限制Google Cloud VM仅允许Firebase服务器访问?

当然可以实现!以下是具体的步骤和方案:

我们的核心目标是让你的VM彻底脱离公网,仅在VPC内部暴露API,同时让Firebase服务通过专属内部通道访问它。

1. 移除VM的公网访问权限

先把VM的外部IP彻底移除,确保它只能通过VPC内部IP被访问:

  • 登录GCP控制台,找到你的VM实例
  • 点击「编辑」按钮,在「网络接口」区域,把「外部IP」设置为「无」
  • 保存修改后,VM就只剩VPC内部IP了,公网任何请求都无法直接触达它

2. 配置Serverless VPC Access连接器

Firebase的服务(比如Cloud Functions)默认运行在Google公共网络中,无法直接访问VPC内部资源,所以需要用Serverless VPC Access搭建专属通道:

  • 在GCP控制台搜索「Serverless VPC Access」进入服务页面
  • 点击「创建连接器」,填写关键信息:
    • 名称:起个好记的名字(比如firebase-vpc-link)
    • 区域:必须选择和你的VM相同的区域(跨区域无法直接访问内部IP)
    • VPC网络:选择VM所在的VPC
    • 子网:可以选VM所在的子网,也可以新建一个专属子网(注意IP范围不要和现有子网冲突)
  • 创建完成后,这个连接器就会成为Firebase服务访问VPC的唯一入口

3. 让Firebase服务绑定连接器

假设你用Cloud Functions作为前端服务调用VM的API,需要配置函数通过连接器访问VPC:

  • 命令行部署时,添加参数:firebase deploy --only functions --vpc-connector=projects/你的项目ID/locations/区域/connectors/连接器名称
  • 或者在firebase.json里配置:
"functions": {
  "vpcConnector": "firebase-vpc-link",
  "vpcConnectorEgressSettings": "PRIVATE_RANGES_ONLY"
}

这样配置后,你的Firebase函数只会通过VPC连接器发送请求,完全不走公网。

4. 配置VPC防火墙规则

最后要确保VPC内部防火墙允许Firebase的流量访问VM的API端口:

  • 进入GCP控制台「VPC网络」→「防火墙」页面
  • 点击「创建防火墙规则」:
    • 名称:比如allow-firebase-to-vm-api
    • 网络:选择VM所在的VPC
    • 方向:入站
    • 目标:选择「指定目标标签」,输入你给VM打的标签(如果没打标签,先给VM加个标签比如api-service-vm)
    • 来源IP范围:填写Serverless VPC Access连接器的IP范围(在连接器详情页可以查看)
    • 协议和端口:选择「指定协议和端口」,输入你的API用的TCP端口(比如8080或443)
    • 动作:允许
  • 保存规则后,Firebase的流量就能通过连接器正常访问VM的API了

额外注意点

  • 如果是Firebase Hosting需要调用VM API,不能直接连接,得通过Cloud Functions做中间层转发(Hosting本身无法访问VPC内部资源)
  • 若VM和Firebase不在同一个GCP项目,需要配置共享VPC,把VM所在的VPC共享给Firebase项目后再创建连接器
  • 测试时,先用Firebase Emulator在本地验证函数调用VM内部IP的响应,再部署上线;同时用公网工具(比如curl)直接访问VM内部IP,应该会失败,这就说明公网访问已经被彻底阻断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 22:32:41