我是 AWS 新手,目前正在尝试实现以下内容。
我有一个位于 EC2 实例中的 API 服务器。我想为两组客户端实现一些过滤和重新路由机制:
- 民众。
- 具有特定 IP 范围的客户端。
我想要的是允许所有人公开访问,并/public
在他们访问我的服务器时重定向到。而特定客户端/specific
在访问我的服务器时将被重新路由到。公共客户端将不允许访问,/specific
因为它仅供具有特定 IP 的特定客户端使用,但反过来应该是可能的 - 应该允许特定客户端访问/public
。
我相信使用目标组 + 应用程序负载均衡器可以实现重新路由部分。我也考虑过使用 Nginx,但是,我不确定从现在开始该怎么做。
答案1
Web 应用程序防火墙 (WAF)可以附加到 ALB 并根据规则分析(例如客户端 IP 地址或路径(或组合))允许或拒绝某些请求,但仅限于允许或拒绝请求(或“计数”它们 - 用于诸如测试规则匹配而不实际应用它的目的)。
因此,在初次阅读您的问题时,您不能仅使用 ALB(或 ALB + WAF)来执行这些操作 - 您无法有选择地重定向或更改流量的去向(目标组使用静态规则作为主机和/或路径模式,并且这些规则不与 WAF 规则交互 - 这些规则仅适用于 WAF 选择允许的流量)。
但是,如果仅仅阻止访问特定路径(例如)/specific
和/specific/*
不在允许列表中的客户端就足够了,那么 ALB 可以使用 WAF 来做到这一点。
从营销材料中不一定能看得清楚,但 WAF 并不完全是一项独立的服务,因为没有实际的防火墙设备或平台来处理所有流量,而且它不能单独使用。WAF 本质上是 ALB、CloudFront 和 API Gateway 的附加功能,这些服务前端的钩子会发送每个请求的第一个完整缓冲区进行分析,然后 WAF 会根据您的规则决定告诉前端是允许还是拒绝每个请求。