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

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

互联网上有许多教程,推广通过 AWS S3 + AWS Cloudfront(+ Cloudflare)廉价托管静态网站。

例如:


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

即使使用可以阻止特定 IP 地址范围的 Amazon WAF 也无济于事,因为请求者仍然会收到“拒绝访问”消息或类似内容。


无效请求将导致:

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

定价(北弗吉尼亚的 S3 / Cloudfront 美国;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       -
---------------------------------------------------------------------------------------


无效请求的 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       -
-------------------------------------------------------------------------------------------------------------


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

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

该解决方案仍然存在的唯一问题是,人们仍然可以根据需要生成任意数量的无效请求。

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

在这种情况下,攻击者仍然可以通过任意数量的无效请求到达原点,因为 Cloudflare 每次都会出现缓存未命中的情况。


现在终于可以回答我的问题了:

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

或者我对 AWS 的定价结构犯了错误?

答案1

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

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

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

相关内容