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

如何配置Cloud Armor规则实现同负载均衡下API与应用的流量管控?

解决方案:限制App Engine与Compute Engine服务间的流量

核心问题分析

你的场景中,请求经过负载均衡器后,remoteIP为客户端设备IP,因此无法通过IP过滤实现服务间流量限制;Host/Referer头可伪造,安全性不足。需要依赖不可伪造的服务身份标识来实现流量控制。

方案一:Cloud Armor + 服务身份验证(推荐)

通过Google Cloud的服务账号身份验证结合Cloud Armor规则,确保只有合法的App Engine服务能访问FastAPI服务器:

  1. 为App Engine配置服务账号:创建专用服务账号,授予其访问Compute Engine FastAPI服务的权限(例如roles/compute.instanceAdmin或自定义权限)。
  2. FastAPI端验证身份:使用google-auth-library等工具,验证请求携带的Authorization头中的OAuth2令牌,确认请求来自合法的App Engine服务账号。
  3. Cloud Armor规则配置:
    • 针对demo-api.com:创建规则,仅允许携带有效、签名正确的Authorization令牌的请求;拒绝所有未携带令牌或令牌无效的请求。
    • 针对demo-app.com:创建规则,仅允许来自App Engine服务的请求(可结合身份感知代理IAP,验证用户身份的同时限制API请求发起源)。

方案二:内部通信隔离(适用于无需对外暴露API的场景)

如果FastAPI服务器无需对外提供服务,仅需与App Engine通信:

  1. 将Compute Engine实例部署在VPC网络内,配置内部负载均衡器。
  2. 启用App Engine的VPC访问功能,让Angular应用通过内部网络访问FastAPI。
  3. Cloud Armor规则配置为仅允许VPC内部IP段的流量访问FastAPI,拒绝所有外部流量。

Cookie方案的局限性

不推荐使用Cookie实现:

  • Cookie可被客户端篡改、窃取,安全性无法保障。
  • Cloud Armor仅能检查Cookie的存在,无法验证其有效性(即使使用签名Cookie,也需要额外的签名校验逻辑,Cloud Armor无法直接完成)。
  • 跨域名(demo-app.com与demo-api.com)场景下,Cookie跨域共享配置复杂,且存在CSRF等安全风险。

参考资料指引

  • Cloud Armor官方文档:重点关注「身份感知代理集成」「自定义HTTP头匹配规则」章节
  • App Engine VPC访问文档:学习如何配置App Engine与VPC网络的连接
  • FastAPI Google身份验证文档:了解如何在FastAPI中集成Google Cloud服务账号身份验证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:43:27