Jam*_*ieD 1 routing architecture amazon-ec2 amazon-web-services amazon-alb
我们目前的设置是
ALB -> Target Group -> EC2 instances
Run Code Online (Sandbox Code Playgroud)
目前,可以使用 ALB 的 IP 地址、DNS 名称(例如 xxxx-5555555555.eu-west-1.elb.amazonaws.com)以及中指定的域访问负载均衡器后面的 EC2 服务器DNS(例如 aaa.bbbbbbbb.com)。
是否可以在使用 IP 地址或 DNS 名称时阻止对 ALB 的访问,而仅在使用域名 (aaa.bbbbbbbb.com) 时才允许访问?如果是这样,我将如何设置?
选项1。
使您的 ALB 的默认目标组成为空目标组,没有实例。这是一个有效的配置。
发送到该目标组的请求 100% 将始终失败,因此这些请求将收到503 Service Unavailable.
然后添加第二个目标组,即“真实”目标组,并附加实例,并将平衡器配置为仅发送Host与该组匹配的请求。
https://serverfault.com/a/868017/153161类似,但与这种情况相反,默认组处理大部分请求,而 dummy/blackhole 目标组处理您要阻止的请求,结果相同行为——被阻止的请求永远不会发送到实例。
选项 2。
Amazon Web Application Firewall (WAF) 也可以通过创建字符串匹配规则来与传入请求的Host标头进行比较来实现这一点。WAF 与 ALB 集成。
这种设置可能意味着成本增加,因为您必须为 WAF 付费(每百万个 Web 请求 0.60 美元,目前并非在所有地区都可用)……但是如果您已经在此 ALB 上将 WAF 用于其他目的(速率限制) 、XSS、SQL、字符串匹配等),附加规则的成本可以忽略不计或为零,具体取决于当前配置。
有一种误解,认为您的流量“通过”了 WAF,但事实并非如此。ALB 从每个请求中克隆前几个 KB,并向 WAF 发送一个数据包,请求判断是否允许该请求。如果通过,则允许该请求,并且 WAF 不在流量循环中。如果失败,ALB 返回一个403. 如果 ALB 根本无法从 WAF 获得答案(例如,由于系统故障),则始终允许该请求,从而防止 WAF 成为故障点。
选项 3. (h/t @ceejayoz)
使用默认配置配置 Web 服务器的虚拟主机行为,以Host在传入请求中出现意外/未知标头时返回错误响应。作为最佳实践,您的服务器不应积极响应此类请求。
这些选项没有特定的顺序。
| 归档时间: |
|
| 查看次数: |
3156 次 |
| 最近记录: |