操作說明AWS WAFAmazon CloudFront 功能可搭配傳統功能 - AWS WAF、AWS Firewall Manager 與 AWS Shield Advanced

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

操作說明AWS WAFAmazon CloudFront 功能可搭配傳統功能

注意

這是AWS WAF傳統文件中)。如果您在 2019 年 11 月 AWS WAF 之前建立 AWS WAF 資源 (例如規則和 Web ACL),而且並未將其移轉至最新版本,則應該只使用此版本。若要移轉資源,請參閱 遷移您的AWS WAF傳統資源AWS WAF

對於最新版的AWS WAF,請參閱AWS WAF

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

使用AWS WAFClassic (傳統) 自訂錯誤頁面

時機AWS WAFClassic 會根據您指定的條件封鎖 Web 請求,它會傳回 HTTP 狀態碼 403 (禁止) 給 CloudFront。然後,CloudFront 會傳回該狀態碼傳回給檢視器。檢視器然後會顯示與此相似的簡短且稀疏格式化的預設訊息:

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

如果您寧願顯示自訂錯誤訊息,其可能使用與您網站其餘部分相同的格式化,則您可以設定 CloudFront 讓 CloudFront 傳回包含自訂錯誤訊息的物件給檢視器 (例如,HTML 檔案)。

注意

CloudFront 無法區別由您原始伺服器傳回的 HTTP 狀態碼 403,和AWS WAF請求遭封鎖時傳統。這表示您無法根據不同原因導致 HTTP 狀態碼 403 而傳回不同的自訂錯誤頁面。

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

使用AWS WAF經典與 CloudFront 地理限制

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

注意

您可以在 web ACL 的 web 請求範本中看到發出請求的國家地區之雙字母國家/地區代碼。如需詳細資訊,請參閱檢視 API Gateway CloudFront 或 Application Load Balancer 轉發到的 Web 請求範例AWS WAF傳統

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

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

當您使用AWS WAFCloudFront 的 CloudFront,您可以保護在任何 HTTP Web 伺服器上執行的應用程式,無論是否是在 Amazon Elassic CElastic 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 與您自己的網路伺服器之間要求 HTTPS 進行通訊的詳細資訊,請參閱主題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 WAFClassic (傳統) 封鎖使用其他方法的請求。如果您想允許 CloudFront 不支持的方法組合,例如GETHEAD,以及POST,您可以配置 CloudFront 以回應所有方法,然後使用AWS WAF經典阻止使用其他方法的請求。

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