我有一个在我的 Amazon EC2 实例上运行的 Web 应用程序。如何将 Web 应用程序防火墙与我的 EC2 集成?
我已尝试设置 WAF,但它只能与 CloudFront 分配或 Elastic Load Balancer 关联。我是否需要设置 CloudFront 分配并将其指向我的 EC2 实例?
我有一个在我的 Amazon EC2 实例上运行的 Web 应用程序。如何将 Web 应用程序防火墙与我的 EC2 集成?
我已尝试设置 WAF,但它只能与 CloudFront 分配或 Elastic Load Balancer 关联。我是否需要设置 CloudFront 分配并将其指向我的 EC2 实例?
我最终设置了一个指向我的单个实例的弹性负载均衡器,然后添加了指向负载均衡器的 Web 应用程序防火墙。它工作得很好,并且每月从 AWS 上花费的费用不会太多。
您可以通过以下两种方法将 AWS WAF 连接到您的 EC2 实例,
每种方法都有其优点和缺点。如果您的应用程序服务器可以缓存更多内容,那么将 AWS CloudFront 与 WAF 结合使用。如果您的应用程序集群需要扩展但大部分是动态内容,那么选择 ALB 更合理。
注意:每个月的 ALB 都会增加固定成本(除了不显着的可变成本),而 CloudFront 成本是可变的且由消耗驱动。
也可以同时使用 CloudFront 和 ALB,您只能将 WAF 添加到 CloudFront。
这就是您使用 AWS WAF 的方式,它只适用于这两种场景。对于 EC2 应用程序,最好在其前面配置一个 ALB(即使您只有一个实例)。
顺便说一句:您可能只使用 AWS 的应用程序负载均衡器 (ALB),这比传统的 AWS ELB 所做的内容有效性检查更多。
您至少需要设置应用层负载均衡器才能使用 AWS WAF。
旁注:AWS WAF 有很多限制。对于基于请求计数的阻止,您最终将使用 LAMBDA 脚本来计数并更新 AWS WAF 规则集。此外,据我所知,他们不提供 WAF 日志。尝试查看 SOPHOS 等云 WAF 解决方案。