在 DDoS 攻击期间,是否可以避免 AWS S3 或云前端的无效请求成本?

use*_*174 9 amazon-s3 amazon-cloudfront amazon-web-services cloudflare

互联网上有很多教程,通过 AWS S3 + AWS Cloudfront (+ Cloudflare) 促进静态网站的廉价托管。

例如:


我查看了 AWS 服务的定价结构,在 S3 或 Cloudfront 的情况下,我认为不可能限制与无效请求相关的成本,因为亚马逊也在对无效或被阻止请求产生的流量和请求进行计费。

即使使用可以阻止特定 IP 地址范围的 Amazon WAF 也不会对您有帮助,因为请求者仍应收到“拒绝访问”消息或类似消息。


无效请求将导致:

  1. 对不存在的对象的请求
  2. 用例“提供私人内容”
    • 缺少签名 URL/签名 cookie 的参数
    • 错误的 IAM/隐身凭证

定价(北弗吉尼亚州的 S3 / Cloudfront USA;2018-03-25)

---------------------------------------------------------------------------------------
- service      -   # requests type                         -           pricing        -
---------------------------------------------------------------------------------------
- S3           -   1000 PUT/COPY/POST requests             -         0.0050 USD       -
---------------------------------------------------------------------------------------
- S3           -   1000 GET and other requests             -         0.0004 USD       -
---------------------------------------------------------------------------------------
- Cloudfront   -   10000 HTTP                              -         0.0075 USD       -
---------------------------------------------------------------------------------------
- Cloudfront   -   10000 HTTPS                             -         0.0100 USD       -
---------------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)


无效请求的 DDoS 攻击成本

-------------------------------------------------------------------------------------------------------------
- requests per second      -   service              - type    -  costs per day     -  costs per month       -
-------------------------------------------------------------------------------------------------------------
- 200                      -   S3 (North-Verginia)  - POST    -    86.400 USD      -      2592.00 USD       -
-------------------------------------------------------------------------------------------------------------
- 500                      -   S3 (North-Verginia)  - POST    -   216.000 USD      -      6480.00 USD       -
-------------------------------------------------------------------------------------------------------------
- 1000                     -   S3 (North-Verginia)  - POST    -   432.000 USD      -     12960.00 USD       -
-------------------------------------------------------------------------------------------------------------
- 200                      -   S3 (North-Verginia)  - GET     -     6.912 USD      -       207.36 USD       -
-------------------------------------------------------------------------------------------------------------
- 500                      -   S3 (North-Verginia)  - GET     -    17.280 USD      -       518.40 USD       -
-------------------------------------------------------------------------------------------------------------
- 1000                     -   S3 (North-Verginia)  - GET     -    34.560 USD      -      1036.80 USD       -
-------------------------------------------------------------------------------------------------------------
- 200                      -   Cloudfront (USA)     - HTTPS   -    17.000 USD      -       518.40 USD       -
-------------------------------------------------------------------------------------------------------------
- 500                      -   Cloudfront (USA)     - HTTPS   -   216.000 USD      -      1296.00 USD       -
-------------------------------------------------------------------------------------------------------------
- 1000                     -   Cloudfront (USA)     - HTTPS   -   432.000 USD      -      2592.00 USD       -
-------------------------------------------------------------------------------------------------------------
- 10000                    -   Cloudfront (USA)     - HTTPS   -   864.000 USD      -     25920.00 USD       -
-------------------------------------------------------------------------------------------------------------
- 200                      -   Cloudfront (USA)     - HTTP    -    12.960 USD      -       388.80 USD       -
-------------------------------------------------------------------------------------------------------------
- 500                      -   Cloudfront (USA)     - HTTP    -    32.400 USD      -       972.00 USD       -
-------------------------------------------------------------------------------------------------------------
- 1000                     -   Cloudfront (USA)     - HTTP    -    64.800 USD      -      1944.00 USD       -
-------------------------------------------------------------------------------------------------------------
- 10000                    -   Cloudfront (USA)     - HTTP    -   648.000 USD      -     19440.00 USD       -
-------------------------------------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)


可能的解决方案:使用 CDN?

一些教程指定的针对此问题的建议解决方案是使用 Cloudflare CDN 的免费服务,该服务可以通过为它们提供来自 AWS S3 或 AWS cloudfront 的缓存结果来处理所有这些请求。

这个解决方案仍然存在的唯一问题是,人们仍然可以生成尽可能多的无效请求。

示例:
www.flare-example.com/iza7648hklto
www.flare-example.com/dsatnygp4851021
...

在这种情况下,攻击者仍然可以使用任意数量的无效请求到达源,因为 Cloudflare 每次都会有缓存未命中。


现在终于到了我的问题:

在 DDoS 攻击期间,您是否只能通过尽快删除您的 Cloudfront 分发或 S3 存储桶来避免这些成本?

还是我在 AWS 的定价结构上犯了错误?

小智 5

非常有趣的分析。猜测唯一的方法是对流量和成本进行严格监控。另外可以看看AWS Shield高级。即使每月有额外费用,他们也会吸收由于 DDOS 引起的扩展费用。

借助 AWS Shield Advanced,您可以获得“DDoS 成本保护”,该功能可以保护您的 AWS 账单免受 DDoS 攻击导致的 EC2、Elastic Load Balancing (ELB)、Amazon CloudFront 和 Amazon Route 53 使用高峰的影响。

https://aws.amazon.com/shield/