首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制对AWS上特定域的访问

问限制对AWS上特定域的访问
EN

Server Fault用户
提问于 2018-06-26 14:28:13
回答 2查看 5.4K关注 0票数 2

我们目前的设置是

代码语言:javascript
复制
ALB -> Target Group -> EC2 instances

目前,可以使用ALB的IP地址、DNS名称(例如xxxx 55555555.eu-west-1.elb.amazonaws.com)以及DNS中指定的域(例如aaa.bbbbbbb.com)访问负载均衡器后面的aaa.bbbbbbb.com服务器。

当使用IP地址或DNS名称时,是否可以阻止对ALB的访问,而只有在使用域名(aaa.bbbbbbb.com)时才允许访问?如果是的话,我该怎么安排呢?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2018-06-26 16:56:49

备选案文1。

将ALB的默认目标组设置为空目标组,不包含实例。这是一个有效的配置。

发送给该目标组的请求中,100%将始终失败,因此这些请求将受到503 Service Unavailable的欢迎。

然后添加第二个目标组,即“真正的”目标组,并附加实例,并配置平衡器,只向该组发送匹配所需的Host的请求。

https://serverfault.com/a/868017/153161类似,但与这种情况相反,默认组处理大多数请求,但虚拟/黑洞目标组处理要阻止的请求,从而导致相同的行为--阻止的请求从未发送到实例。

备选案文2。

亚马逊网络应用防火墙 (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头时返回错误响应。作为最佳实践,您的服务器不应该对这样的请求作出有利的响应。

这些选项没有特别的顺序。

票数 5
EN

Server Fault用户

发布于 2022-07-17 20:04:53

如果您正在使用cloudflare,这里是您可以使用的terraform模块。https://github.com/orzarchi/terraform-aws-cloudflare-security-group

只需在此处更新您的ALB安全组ID,https://github.com/orzarchi/terraform-aws-cloudflare-security-group/blob/master/vars.tf#L1-L3

并更改cron作业启动的时间,以删除除cloudflare端点之外的所有其他访问。

那么您的EC2将得到充分的保护。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/918312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档