【问题标题】:Use a Web Application Firewall (WAF) with an EC2 instance将 Web 应用程序防火墙 (WAF) 与 EC2 实例一起使用
【发布时间】:2018-08-06 11:08:43
【问题描述】:

我有一个在我的 Amazon EC2 实例上运行的 Web 应用程序。如何将 Web 应用程序防火墙与我的 EC2 集成?

我已尝试设置 WAF,但它只能与 CloudFront 分配或 Elastic Load Balancer 关联。我是否需要设置 CloudFront 分配并将其指向我的 EC2 实例?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-waf


    【解决方案1】:

    我最终设置了一个指向我的单个实例的弹性负载均衡器,然后添加了指向负载均衡器的 Web 应用程序防火墙。它工作得很好,而且 AWS 每月的费用不会增加太多。

    【讨论】:

      【解决方案2】:

      您可以通过这两种方法将 AWS WAF 连接到您的 EC2 实例,

      • AWS CloudFront
      • 应用负载均衡器 (ALB)

      每种方法都有其优点和缺点。如果您的应用程序服务器可以缓存更多内容,那么将 AWS CloudFront 与 WAF 结合使用。如果您的应用程序集群需要扩展但大部分是动态内容,那么选择 ALB 更合理。

      注意:ALB 每个月都会增加一个固定成本(除了不重要的可变成本),而 CloudFront 成本是可变的且由消耗驱动。

      也可以同时使用 CloudFront 和 ALB,您可以只将 WAF 添加到 CloudFront。

      【讨论】:

      • 请注意,ALB 成本是固定的 Balancer-hours 加上可变的 Load Balancer Capacity Unit (LCU)-hours。 LCU 与请求率和带宽有关。
      • 我找到了 this question 关于使用 EC2 设置 CloudFront。考虑到我的应用程序不需要扩展,我认为这可能是一个更好的选择。不过,我们会缓存页面(不是图像,而是需要很长时间才能加载数据的 javascript 图表)。 CloudFront 如何帮助缓存它?它会缓存整个页面并提供服务吗?
      • Cloudfront 将内容缓存在更接近消费者的边缘位置,与区域级别的缓存相比,这减少了检索延迟。您可以控制需要缓存的文件/路径、TTL 等。
      【解决方案3】:

      这就是您使用 AWS WAF 的方式,它只适用于这两种场景。对于 EC2 应用程序,最好在其前面配置一个 ALB(即使您只有一个实例)。

      顺便说一句:您可能只使用 AWS 的应用程序负载均衡器 (ALB),这比传统的 AWS ELB 所做的内容有效性检查更多。

      【讨论】:

        【解决方案4】:

        您至少需要设置应用层负载均衡器才能使用 AWS WAF。

        旁注:AWS WAF 有很多限制。对于基于请求计数的阻止,您最终将使用 LAMBDA 脚本来计数并更新 AWS WAF 规则集。此外,据我所知,他们不提供 WAF 日志。尝试查看 SOPHOS 等云 WAF 解决方案。

        【讨论】:

          猜你喜欢
          • 2020-04-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-12-05
          • 1970-01-01
          • 2014-01-15
          • 2013-07-11
          • 2021-04-27
          相关资源
          最近更新 更多