我想使用 Amazon CloudFront 和 AWS WAF 保護 Web 應用程式免受 Web 威脅。
簡短描述
常見的應用程式層攻擊包括 SQL injection 隱碼攻擊或跨網站指令碼 (XSS)。為了保護您的 Web 應用程式免受這些攻擊,請使用 AWS WAF 設定 CloudFront,以檢查邊緣節點的 HTTP/HTTPS 請求。這樣就能在惡意流量到達您的原始伺服器之前將其封鎖。如需詳細資訊,請參閱使用 AWS WAF 保護 CloudFront 發佈項目的常見使用案例。
解決方法
先決條件:
- 將流量路由到您的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體或任何其他 AWS 區域端點的 Application Load Balancer。
- 您的應用程式內容已部署並正在執行。
- 您擁有設定 CloudFront 和 AWS WAF 所需的權限。
設定 CloudFront
若要設定 CloudFront 作為安全屏障,請完成以下步驟:
- 開啟 CloudFront console (CloudFront 主控台)。
- 建立發佈項目。
- 在 Origin domain (來源網域) 欄位中,輸入您的網站位址。
- 在 Viewer Protocol Policy (檢視器協定政策) 下,選擇 Redirect HTTP to HTTPS (將 HTTP 重新導向到 HTTPS)。
- 選擇 Create distribution (建立發佈項目)。
注意: 當您在邊緣節點快取靜態和動態內容時,您會減少到達原始伺服器的請求數量。此舉可降低成本並提升效能。
設定 AWS WAF
若要將 AWS WAF 設定為安全守護者,請完成以下步驟:
- 開啟 AWS WAF console (AWS WAF 主控台)。
- 建立 Web ACL (Web 存取清單)。
- 選擇您的 AWS 區域。
- 為其命名。例如,"MyWebsiteProtection"。
- 選擇 Add rules (新增規則),然後選擇 Add rate-based rule (新增速率型規則)。
輸入以下速率限制規則:
將其設定為封鎖傳送過多請求的 IP 位址。例如,每 5 分鐘 2,000 個請求。
- 選擇 Add rules (新增規則),然後選擇 Add managed rules (新增受管規則)。
新增 AWS 受管規則核心規則集 (CRS)。CRS 包括針對SQL injection 隱碼攻擊和 XSS 等常見攻擊的保護。
注意: 邊緣節點會強制執行 AWS WAF 規則,並阻止更靠近來源的惡意流量。
- 選取 Next (下一步),然後選擇 Create web ACL (建立 Web ACL)。
**注意:**您現在可以使用更新的體驗,在主控台中的任何位置存取 AWS WAF 功能。如需詳細資訊,請參閱透過更新的主控台體驗開始使用 AWS WAF。
將 AWS WAF 連線到 CloudFront
若要確保 AWS WAF 和 CloudFront 協同運作,請完成以下步驟:
- 開啟 AWS WAF console (AWS WAF 主控台)。
- 選取您的 Web ACL。
- 選擇 Associated AWS resources (關聯的 AWS 資源)。
- 選取 Add AWS resources (新增 AWS 資源)。
- 選取您的 CloudFront 發佈項目。
- 選擇 Add (新增)。如需詳細資訊,請參閱將 AWS WAF 與 Amazon CloudFront 搭配使用。
設定監控
注意: 如果您啟用記錄,那麼您將產生額外的費用。CloudWatch 提供免費方案,但超出免費方案限制時需付費。有關目前定價,請參閱 Amazon CloudWatch 定價。
若要在 CloudFront 中設定監控,請完成以下步驟:
- 開啟 CloudFront console (CloudFront 主控台)。
- 選擇您的發佈項目。
- 前往 Logs (日誌)。
- 啟用標準記錄。
若要在 AWS WAF 中設定監控,請完成下列步驟:
- 開啟 AWS WAF console (AWS WAF 主控台)。
- 開啟您的 Web ACL。
- 選擇 Logging and metrics (記錄和指標)。
- 開啟記錄。如需詳細資訊,請參閱 CloudFront 和邊緣函式記錄。
相關資訊
使用 Shield Advanced 自動執行應用程式層 DDoS 緩解措施
使用 Amazon CloudFront 和 AWS WAF 加速並保護您的網站