關於抵禦 DDoS 攻擊的想法
背景:我正在使用 Amazon API Gateway、Amazon S3、AWS Lambda 等建構 Web 應用程序。
注意:如果您不了解 AWS,我們將不勝感激任何建議。
搜尋如何保護 API Gateway 免受 DDoS 攻擊,我發現了一些關鍵字,如 AWS Shield、AWS WAF 等。無論如何,除此之外,我已經想到了一個想法。但是Google搜尋這個想法,搜尋沒有命中任何,所以我不能確定這個想法是否正確。
這個想法類似於以下內容。
經過身份驗證的使用者動態獲取端點,這意味著有一個端點可以讓端點訪問資源。現在一些端點由於 DDoS 攻擊而關閉,使用者收到 503 錯誤,但使用者自動通過“獲取端點的端點”獲取備份端點,因為我這樣編寫前端程式碼並在 Amazon API Gateway 中創建一些複製的備份端點。
我想知道這是否可以正常工作。
如果您擔心 API GW 後面的端點,則可以將 GW 實例配置為添加每使用者限制,因此經過身份驗證的使用者不能執行超過您允許的請求。您可以添加參數檢查,以便格式錯誤的請求不會到達您的後端。
此外,API GW 是一種容錯且高度可用的服務,因此您無法將其關閉(但可能超出預算),因此 GW 端點(從世界可見,如 d123456.cloudfront.net)不會關閉.
聽起來您在描述 CDN(內容傳遞網路)。這本質上是作為新前端的靜態站點的只讀副本。重要的方面是 CDN 前端不再有伺服器端程式碼,因為該前端是通過瀏覽器抓取生成的,然後在解釋後重新呈現,因此可以託管在 S3 中,其中 EC2 實例具有以前需要一個 Web 伺服器 - 允許您在 DDoS 攻擊下更好地擴展和控制條件。這對靜態站點有效,但顯然不適用於動態應用程序。
如果您正在執行動態應用程序並需要防止此類攻擊,WAF 非常有效,並且具有足夠靈活的規則來限制幾乎任何類型的流量。當您看到這些攻擊發生時,WAF 將使您能夠充分適應,而無需啟動昂貴的解決方案,例如 F5 ASM。雖然 API 網關的使用為您的問題提供了高容錯性和容錯能力的解決方案,但攻擊確實會搞砸賬單。API 網關的規則可以讓您防止這種過度使用的發生,並且結合 WAF 可以讓您鎖定這種業務。
最後,您可能會考慮邊緣網路記憶體。邊緣記憶體伺服器將允許您通過全球分佈式前端記憶體伺服器擁有這種“端點的端點”。當您的原始伺服器出現故障時,您的記憶體將使您的站點和潛在的應用程序保持活動狀態,就像它們在停機時間視窗之前一樣。有一些產品可以做到這一點,最著名的是 CloudFront 或 Akamai。
在所有這些解決方案之間,您應該對大多數類型的 DOS 攻擊具有很大的抵抗力,並具有適應以後適應新類型的能力。