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

如何限制Google Compute Engine仅对Firebase云函数开放?能否通过VPC/防火墙规则实现?

限制Google Compute Engine仅允许Firebase云函数访问的实现方案

完全可以通过VPC配置、防火墙规则结合IAM权限来实现这个需求,我经常给用户推荐这种双重保障的方案,下面是分步的实操细节:

1. 先让Firebase云函数接入你的VPC网络

首先得确保你的Firebase云函数能访问到Compute Engine所在的VPC,最靠谱的方式是用Serverless VPC Access连接器(第二代云函数支持这个功能):

  • 登录Google Cloud控制台,创建一个VPC连接器,选和你的Compute Engine实例相同的VPC网络和子网就行。
  • 在Firebase函数的部署配置里,把这个连接器加上。比如在firebase.json里这么写:
    {
      "functions": {
        "source": "functions",
        "vpcConnector": "你的连接器名称",
        "vpcConnectorEgressSettings": "PRIVATE_RANGES_ONLY"
      }
    }
    
    这样配置后,你的Firebase函数就只会通过这个连接器访问VPC内的资源,不会走公网,安全性直接拉满。

2. 配置Compute Engine的防火墙规则(核心步骤)

接下来要把Compute Engine的访问来源锁死,这里有两种实用的方法,你可以根据场景选:

方法一:基于VPC连接器的IP范围限制

  • 先去Serverless VPC Access控制台找到你创建的连接器的IP段(一般是一个私网CIDR)。
  • 新建一条防火墙规则:
    • 目标:给你的Compute Engine实例打个标签(比如backend-service),然后规则目标选这个标签,这样只对目标实例生效。
    • 来源IP范围:填入刚才找到的VPC连接器IP段。
    • 协议和端口:指定你的服务用的端口(比如tcp:8080,如果是HTTP服务就是80/443)。
    • 动作:选“允许”。
  • 别忘了把默认的公网访问规则调整一下——要么删掉允许所有公网IP访问的规则,要么把优先级调低,确保我们的新规则先生效。

方法二:结合服务账号IAM权限(更安全的双重验证)

除了网络层的防火墙,还可以通过IAM权限来确保只有Firebase函数的服务账号能访问:

  • 找到你的Firebase云函数用的服务账号(默认是你的项目ID@appspot.gserviceaccount.com)。
  • 给这个账号授予合适的IAM角色:比如如果是访问Compute Engine的HTTP服务,可能需要roles/compute.instanceAdmin.v1;如果需要SSH登录,就给roles/compute.osLogin。当然,能选更细粒度的角色就尽量选,遵循最小权限原则。
  • 如果你的Compute Engine上跑的是自定义API,还可以在代码里加一层验证——检查请求的服务账号身份,确保只有Firebase函数的账号发起的请求才被处理。

3. 验证配置是否生效

  • 部署更新后的Firebase函数,测试它能不能正常访问Compute Engine实例。
  • 用自己的电脑或者其他公网服务试试访问Compute Engine的公网IP(如果有的话),应该会被防火墙拦下来。
  • 要是你的Compute Engine实例没开公网IP,只用内部IP,那只有通过VPC连接器的Firebase函数能访问,安全性就更高了。

对了,如果你用的是第一代Firebase云函数,VPC连接器的配置方式有点不一样,但核心思路是一样的——先让函数接入VPC,再通过防火墙锁死来源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:26:40