如何阻止直接访问AWS负载均衡器URL(ECS自定义域名场景)
阻止AWS应用负载均衡器原生DNS直接访问的解决方案
方法1:通过ALB监听器规则拦截非法请求(推荐,无额外成本)
这是最直接便捷的方式,利用ALB的Host头匹配规则,仅放行来自example.com的请求:
- 登录AWS控制台,进入目标应用负载均衡器的监听器配置页面
- 针对HTTPS(443端口)监听器:
- 新建一条高优先级规则:设置条件为
Host header等于example.com,动作选择转发到您的ECS Fargate目标组 - 将原有的默认规则(若存在)修改为固定响应:选择返回403 Forbidden状态码,可自定义响应内容(比如填写"This site is only accessible via example.com")
- 新建一条高优先级规则:设置条件为
- 若配置了HTTP(80端口)监听器,同步做对应配置:
- 高优先级规则:Host头等于
example.com时,重定向到HTTPS的example.com - 默认规则返回403 Forbidden
- 高优先级规则:Host头等于
方法2:使用AWS WAF拦截(适合已有WAF配置的场景)
如果已为ALB关联AWS WAF,可添加匹配规则拦截非法Host头:
- 新建WAF规则,设置匹配条件为
Host header不等于example.com - 规则动作为Block(阻止请求)
- 将该规则关联到目标ALB
注意事项
- 确保ALB的证书覆盖
example.com(您已配置AWS托管证书,此条件已满足),用户通过原生DNS访问时会触发证书警告,但拦截规则会在忽略警告后生效,直接返回403 - 测试时建议清除浏览器缓存或使用匿名窗口,避免缓存干扰测试结果
内容的提问来源于stack exchange,提问作者Garret Wilson
相关产品推荐
相关产品推荐

