看起来,将 WAF 规则应用于 CloudFront 分发仍然会导致后端应用程序负载均衡器不受保护。
在 AWS 控制台中,不清楚如何过渡地应用 WAF 规则,和/或锁定 ALB 以仅接受与 CloudFront 的连接。
有没有关于此的任何文献或轶事最佳实践?
答案1
IP 限制
您可以使用安全组保护您的 ALB/实例,该安全组仅将 CloudFront IP 地址列入白名单。此列表会定期更改,但 AWS 拥有CloudFront 更新安全组 Lambda,它可以帮助您保持 IP 列表最新。但它不会进行 IP 的初始填充。
我不太确定进行初始安全组 IP 填充的最佳方法。你必须获得AWS IP 列表并从中提取 CloudFront IP,此脚本可能有用。这似乎是某人应该已经解决的问题,因此搜索一下可能会找到解决方案。MLu 可能知道,他可能会在接下来的一两天内发表评论。
我通常使用 NACL 来仅允许端口/协议通过 ALB 进入子网,然后使用 CloudFront IP 的安全组。不要忘记将公共 IP 所需的任何管理列入白名单,但最佳做法是使用堡垒主机进行公共访问。
网页应用防火墙
AWS WAF 或其他 WAF 可以防御应用程序层攻击。它们还可以缓解 DDOS 攻击。
其他
正如您在评论中指出的那样,攻击者可以创建自己的 CF 分发,这意味着他们可以直接攻击服务器。CloudFront/Shield 仍将应用 DDOS 保护,这在一定程度上缓解了这种情况。
安全性必须分层。除了 CDN/WAF,您还需要一个安全、可扩展的应用层。您可以在应用层进行速率限制,使用实例防火墙、IDS/IPS。
有很多方法可以增加攻击者的攻击难度。如果你在线,你就容易受到攻击。这就是为什么安全的异地备份和演练过的恢复计划也很重要。