CloudFront 可以保护 EC2 服务器免受 DDOS 攻击吗?

ram*_*owl 4 ddos amazon-ec2 amazon-web-services

我正在为 EC2 实例上的 Web 应用程序维护一个嵌入式数据库。由于这个中央服务器是单线程的,它很容易受到 DDOS 的攻击(即使是非分布式攻击也会使其瘫痪)。

AWS 为其 CDN CloudFront 提供了 DDOS 保护,所以我想知道是否可以使用 CloudFront 作为围绕我的 EC2 实例的间接层来进行 DDOS 保护。

问题在于如何有效防止用户绕过 CloudFront 直接攻击服务器。我的问题:

  • 用户是否能够跟踪网络路径以获取我的 EC2 实例的 IP,还是只能看到 Cloudfront 的 API url?
  • 如果流量不是通过 Cloudfront 来的,有没有办法阻止流量到达我的 EC2 实例?我看到有一个选项可以从 Cloudfront 发送自定义源标头,但这并不能解决问题——我仍然需要处理我的 EC2 实例中的每个请求。有没有办法为我的服务器配置输入规则,以防止它处理非 Cloudfront 请求?

我刚开始考虑网络架构和安全性,因此非常感谢所有建议!

Ash*_*han 9

AWS Shield Standard自动且透明地包含在 Amazon CloudFront 分配中,提供,

  • 具有网络流量监控和自动永远在线检测的主动流量监控。
  • 攻击缓解与常见 DDoS 攻击(例如 SYN 泛洪、ACK 泛洪、UDP 泛洪、反射攻击)、自动内联缓解以及您可以结合使用 AWS WAF 来缓解第 7 层攻击。

为防止用户绕过 CloudFront 并直接访问您的 EC2 实例,您可以使用将 AWS CloudFront IP 地址列表列入白名单的安全组。由于此列表可能会更改,因此您可以设置 Lambda 函数以在 AWS 更改 CloudFront IP 后自动更新它。有关这方面的更多信息,请参阅文章如何使用 AWS Lambda 自动更新 Amazon CloudFront 和 AWS WAF 的安全组

如果您使用的是 Application Load Balancer,则可以将标头列入白名单并将其添加到 CloudFront 源,以便仅在标头存在时才接受请求。(这也可以添加到 Web 服务器标头白名单中,但是 HTTP 请求将仅在您明确标识的 Web 服务器级别被拒绝)。

此外,您可以包含一个 AWS WAF 配置(在 ALB 或 CloudFront 中,无论您使用哪个作为外部接口)和速率限制,以防止任何易于设置且具有成本效益的滥用。