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

如何将Cloud Armor与Firebase Hosting集成实现IP访问限制

Firebase Hosting 结合 Cloud Armor 实现IP访问限制方案及问题排查

一、当前负载均衡+Firebase Hosting 出现「Site Not Found」的解决办法

出现这个错误的核心原因是:Firebase Hosting 会校验请求的 Host 头,只有当请求的Host是已绑定到Firebase项目的域名(包括默认的 *.firebaseapp.com 或你已验证的自定义域名)时,才会返回正常内容。你当前通过负载均衡转发请求时,Host 头被设置为负载均衡绑定的新域名,Firebase无法识别,因此返回错误页面。

解决步骤:

  • 进入GCP负载均衡的后端服务配置页面,找到对应的Internet NEG后端
  • 在后端服务的「请求头设置」中,添加自定义请求头修改规则:将 Host 头替换为你的Firebase Hosting绑定的原始域名(比如 your-project.web.app 或你已验证的自定义域名)
  • 确保负载均衡的SSL证书已正确关联新域名,且DNS解析已将新域名指向负载均衡的公网IP
  • 等待配置生效后,重新访问新域名即可正常加载Firebase内容

二、通过Cloud Armor实现IP访问限制的完整方案

基于上述负载均衡的配置,添加Cloud Armor安全策略即可实现IP白名单/黑名单限制:

  1. 创建Cloud Armor安全策略
    • 在GCP控制台进入Cloud Armor页面,创建新策略
    • 添加规则:选择「允许」或「拒绝」动作,设置IP范围(比如允许特定IP段 192.168.1.0/24 访问,拒绝其他所有IP)
  2. 关联安全策略到负载均衡
    • 进入负载均衡的前端配置页面,找到对应的HTTP(S)转发规则
    • 将创建好的Cloud Armor安全策略绑定到该转发规则上
  3. 验证效果
    • 用允许的IP访问新域名,应正常加载Firebase内容
    • 用被拒绝的IP访问,会返回Cloud Armor的403错误页面

三、IP访问限制的替代方案

如果不想通过负载均衡+Cloud Armor的方式,还可以选择以下方案:

1. Firebase Hosting + Cloud Functions 自定义IP校验

  • 创建一个Cloud Functions函数,函数逻辑为:获取请求的客户端IP,对比预设的允许IP列表,符合则转发请求到Firebase静态内容,不符合则返回403
  • 在Firebase Hosting的 firebase.json 中配置重写规则,将所有请求转发到该Cloud Functions函数
  • 示例重写规则:
    {
      "hosting": {
        "rewrites": [
          {
            "source": "**",
            "function": "ipCheckFunction"
          }
        ]
      }
    }
    

2. 使用CDN服务商的IP控制功能

如果你的Firebase域名已经接入第三方CDN,可以直接在CDN控制台配置IP访问规则,设置允许/拒绝的IP范围,无需依赖GCP服务。

3. VPC Service Controls(仅限内部IP访问场景)

如果仅需限制GCP VPC内的IP访问Firebase内容,可以配置VPC Service Controls的访问权限,将Firebase Hosting纳入服务边界,仅允许指定VPC的IP访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 23:37:28