是否可以避免 DDoS 攻擊期間 AWS S3 或雲端的無效請求所帶來的成本?

是否可以避免 DDoS 攻擊期間 AWS S3 或雲端的無效請求所帶來的成本?

網路上有許多教學,宣傳透過 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 攻擊期間,您只能透過盡快刪除您的 Cloudfront 分配或 S3 儲存桶來避免這些成本嗎?

還是我在AWS的定價結構上犯了錯?

答案1

非常有趣的分析。猜測唯一的方法是嚴格監控流量和成本。另外可以看看AWS Shield Advanced。即使每月有額外費用,他們也會吸收 DDOS 造成的擴展費用。

透過 AWS Shield Advanced,您可以獲得“DDoS 成本保護”,該功能可以保護您的 AWS 帳單免受因 DDoS 攻擊而導致 EC2、Elastic Load Balancing (ELB)、Amazon CloudFront 和 Amazon Route 53 使用高峰的影響。

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

相關內容