AWS WAF 經典版如何與 Amazon CloudFront 功能搭配 - AWS WAF、 AWS Firewall Manager、和 AWS Shield Advanced

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS WAF 經典版如何與 Amazon CloudFront 功能搭配

注意

這是AWS WAF 經典文檔。只有在您在 2019 年 11 月 AWS WAF 之前建立了規則和 Web ACL 等 AWS WAF 資源,但尚未將資源移轉至最新版本時,才應使用此版本。若要移轉資源,請參閱 將您的 AWS WAF 傳統資源遷移到 AWS WAF

如需的最新版本 AWS WAF,請參閱AWS WAF

建立 Web ACL 時,您可以指定一個或多個要 AWS WAF 傳統檢查的 CloudFront 分佈。 AWS WAF 傳統版會根據您在 Web ACL 中識別的條件,開始允許、封鎖或計數這些散佈的 Web 要求。 CloudFront 提供了一些增強經 AWS WAF 典功能的功能。本章介紹了幾種可以配置CloudFront 為使 CloudFront 和 C AWS WAF lassic 一起更好地工作的方法。

使用 AWS WAF 經典與 CloudFront 自定義錯誤頁面

當 AWS WAF 經典根據您指定的條件阻止 Web 請求時,它會將 HTTP 狀態碼 403(禁止)返回到 CloudFront。接下來,將該狀態碼 CloudFront 傳回給檢視器。檢視器然後會顯示與此相似的簡短且稀疏格式化的預設訊息:

Forbidden: You don't have permission to access /myfilename.html on this server.

如果您想要顯示自訂錯誤訊息 (可能使用與網站其他部分相同的格式),您可 CloudFront 以設定將包含您自訂錯誤訊息的物件 (例如 HTML 檔案) 傳回給檢視者。

注意

CloudFront 無法區分您的來源返回的 HTTP 狀態碼 403 和 C AWS WAF lassic 在請求被阻止時返回的 HTTP 狀態碼 403。這表示您無法根據不同原因導致 HTTP 狀態碼 403 而傳回不同的自訂錯誤頁面。

如需有關自 CloudFront 訂錯誤頁面的詳細資訊,請參閱 Amazon CloudFront 開發人員指南中的自訂錯誤回應

CloudFront針對在您自己的 HTTP 伺服器上執行的應用程式使用 AWS WAF 典型

搭配使用 C AWS WAF lassic 時 CloudFront,您可以保護在任何 HTTP 網路伺服器上執行的應用程式,無論是在 Amazon 彈性運算雲端 (Amazon EC2) 中執行的網路伺服器,還是您私下管理的網路伺服器。您還可以配置 CloudFront 為在 CloudFront和您自己的網絡服務器之間以及查看者和 CloudFront.

在 CloudFront 與您自己的網絡服務器之間需要 HTTPS

要在 CloudFront 和您自己的網絡服務器之間要求 HTTPS,您可以使用自定 CloudFront 義來源功能並為特定來源配置原始協議策略和原始域名設置。在您的 CloudFront 配置中,您可以指定服務器的 DNS 名稱以及端口和從源獲取對象時 CloudFront 要使用的協議。您也應確保您自訂原始伺服器上的 SSL/TLS 憑證符合您已設定的原始伺服器的網域名稱。當您在以外的地方使用自己的 HTTP Web 伺服器時 AWS,您必須使用由受信任的第三方憑證授權單位 (CA) 簽署的憑證,例如 Comodo 或賽門鐵克。 DigiCert如需需要 HTTPS 才能 CloudFront與您自己的網路伺服器之間進行通訊的詳細資訊,請參閱 Amazon CloudFront 開發人員指南的〈需要 HTTPS 進行通訊〉主題。 CloudFront

在檢視器和檢視器之間需要 HTTPS CloudFront

若要在檢視器和之間要求 HTTPS CloudFront,您可以針對 CloudFront發行版中的一或多個快取行為變更檢視器通訊協定原則。如需有關 CloudFront在檢視者之間使用 HTTPS 的詳細資訊 CloudFront,請參閱 < 在檢視者之間需要 HTTPS 進行通訊 > 主題和 Amazon CloudFront 開發人員指南。您還可以攜帶自己的 SSL 證書,以便觀眾可以使用您自己的域名 CloudFront 通過 HTTPS 連接到您的分發,例如 https://www.mysite.com。如需詳細資訊,請參閱 Amazon CloudFront 開發人員指南中的設定替代網域名稱和 HTTPS 主題。

選擇可 CloudFront回應的 HTTP 方法

當您建立 Amazon CloudFront 網路分發時,您可 CloudFront 以選擇要處理的 HTTP 方法並轉寄到原始伺服器。您可以從下列選項來選擇:

  • GET,HEAD — 您 CloudFront 只能使用來從您的來源獲取對象或獲取對象標題。

  • GET、HEAD、OPTI ONS — 您 CloudFront 只能使用從原始伺服器取得物件、取得物件標頭,或擷取原始伺服器支援的選項清單。

  • 取得、標頭、選項、PUT、POST、修補程式、刪除 — 您可以使用 CloudFront 來取得、新增、更新和刪除物件,以及取得物件標頭。此外,您可以執行其他 POST 操作,例如從 Web 表單提交資料。

您也可以使用 AWS WAF 傳統字串比對條件,根據 HTTP 方法允許或封鎖要求,如中所述使用字串比對條件。如果您想要使用 CloudFront 支援的方法組合,例如GETHEAD,則不需要將 C AWS WAF lassic 設定為封鎖使用其他方法的要求。如果您想要允許 CloudFront 不支援的方法組合,例如、和 GET HEADPOST,您可以設定 CloudFront 為回應所有方法,然後使用 C AWS WAF lassic 封鎖使用其他方法的要求。

如需有關選擇可 CloudFront 回應之方法的詳細資訊,請參閱 Amazon CloudFront 開發人員指南中建立或更新 Web 分發時指定的值主題中的允許的 HTTP 方法