操作說明AWS WAF適用於 Amazon CloudFront 功能 - AWS WAF、AWS Firewall Manager 與 AWS Shield Advanced

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

操作說明AWS WAF適用於 Amazon CloudFront 功能

建立 Web ACL 時,您可以指定您想要的一或多個 CloudFront 分發AWS WAF進行檢查。AWS WAF開始對這些分發允許、封鎖或計數 web 請求,這些分佈是根據您在 web ACL 識別的條件而定。CloudFront 提供了一些功能,可增強AWS WAF功能。本章說明幾個方法讓您可以設定 CloudFront 使 CloudFront 和AWS WAF更好地一起工作。

使用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,和AWS WAF請求遭封鎖時所出現的要求。這表示您無法根據不同原因導致 HTTP 狀態碼 403 而傳回不同的自訂錯誤頁面。

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

使用AWS WAF使用 CloudFront 地理限制

您可以使用 Amazon CloudFront地理限制功能,也稱為地理位置,以防止特定地理位置的使用者存取您透過 CloudFront Web 分佈所分佈的內容。如果您想封鎖特定國家/地區的 Web 請求,並根據其他條件封鎖請求,則可以將 CloudFront 地理限制與AWS WAF。CloudFront 會將相同的 HTTP 狀態碼傳回給檢視器 (HTTP 403 (禁止),無論是嘗試從 CloudFront 地理限制清單上的國家/地區存取您的內容,或是否會被封鎖。AWS WAF。

注意

您可以在 web ACL 的 web 請求範本中看到發出請求的國家地區之雙字母國家/地區代碼。如需更多詳細資訊,請參閱 檢視 Web 請求的範例

如需 CloudFront 地理限制的詳細資訊,請參閱限制您的內容的地理分佈中的Amazon CloudFront 開發人員指南

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

當您使用AWS WAF使用 CloudFront 時,您可以保護在任何 HTTP Web 伺服器上執行的應用程式,無論是在 Amazon Elastic Compute Cloud (Amazon EC2) 中執行的 Web 伺服器,或是私人管理的 Web 伺服器。您也可以將 CloudFront 設定為在 CloudFront 與您自己的 Web 伺服器之間以及檢視器與 CloudFront 之間使用 HTTPS。

在 CloudFront 和您自己的 Web 伺服器之間需要 HTTPS

若要在 CloudFront 與您自己的 Web 伺服器之間要求使用 HTTPS,您可以使用 CloudFront 自訂原始功能並設定原始伺服器通訊協定政策原始網域名稱設定特定來源。在 CloudFront 組態中,您可以指定伺服器的 DNS 名稱,以及連接埠和在從原始伺服器中擷取物件時希望 CloudFront 使用的通訊協定。您也應確保您自訂原始伺服器上的 SSL/TLS 憑證符合您已設定的原始伺服器的網域名稱。當您使用自己在 AWS 之外的 HTTP Web 伺服器時,請針對 ELB 負載平衡器以外的原始伺服器,您必須使用信任第三方憑證授權單位 (CA) 簽署的憑證,例如 Comodo、DigiCert 或 Symantec。如需要求 CloudFront 與您自己的 Web 伺服器之間進行通訊的詳細資訊,請參閱主題CloudFront 與自訂原始伺服器之間的通訊需要 HTTPS中的Amazon CloudFront 開發人員指南

要求在檢視器與 CloudFront 之間使用 HTTPS

若要在檢視器與 CloudFront 之間請求使用 HTTPS,您可以變更檢視器通訊協定政策以獲得 CloudFront 分發中的一或多個快取行為。如需檢視器與 CloudFront 之間使用 HTTPS 的詳細資訊,請參閱主題檢視器和 CloudFront 之間的通訊需使用 HTTPS中的Amazon CloudFront 開發人員指南。您也可以攜帶自己的 SSL 憑證,讓觀眾可以使用您自己的網域名稱透過 HTTPS 連線到您的 CloudFront 發行版,例如https://www.mysite.com。如需詳細資訊,請參閱主題設定備用網域名稱和 HTTPS中的Amazon CloudFront 開發人員指南

選擇 CloudFront 回應的 HTTP 方法

當您建立 Amazon CloudFront Web 分發時,您可以選擇您希望 CloudFront 處理發到您的原始伺服器的 HTTP 方法處理。您可以從下列選項來選擇:

  • 獲取,頭部— 您只能使用 CloudFront 從您的原始伺服器取得物件或物件標頭。

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

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

您也可以使用 AWS WAF 位元組比對規則陳述式,以根據 HTTP 方法允許或封鎖請求,如字串比對規則陳述式中所述。如果您想要使用 CloudFront 支援的方法組合,例如GETHEAD,那麼您不需要配置AWS WAF來封鎖使用其他方法的請求。如果您想允許 CloudFront 不支持的方法組合,例如GETHEAD,以及POST,您可以將 CloudFront 設定為回應所有方法,然後使用AWS WAF來阻止使用其他方法的請求。

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