本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS WAF 與 Amazon CloudFront
本節說明如何使用 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 (Forbidden)
給檢視器 CloudFront,並將該狀態碼 CloudFront 傳回給檢視器。檢視器接著會顯示類似下列內容的簡短且格式稀疏的預設訊息:
Forbidden: You don't have permission to access /myfilename.html on this server.
你可以覆蓋這個行為 AWS WAF 通過定義自定義響應的 Web ACL 規則。如需使用自訂回應行為的詳細資訊 AWS WAF 規則,請參閱傳送自訂回應 Block actions。
注意
您自訂使用的回應 AWS WAF 規則的優先順序高於您在 CloudFront 自訂錯誤頁面中定義的任何回應規格。
如果您想通過顯示自定義錯誤消息 CloudFront,可能使用與您網站其他部分相同的格式,則可 CloudFront 以配置為將包含自定義錯誤消息的對象(例如,HTML文件)返回給查看器。
注意
CloudFront 無法區分您的來源返回的HTTP狀態碼 403 和返回的狀態碼 403 AWS WAF 當請求被阻止時。這表示您無法根據HTTP狀態碼 403 的不同原因傳回不同的自訂錯誤頁面。
如需有關 CloudFront 自訂錯誤頁面的詳細資訊,請參閱 Amazon CloudFront 開發人員指南中的產生自訂錯誤回應。
使用 AWS WAF 與在您自己 CloudFront的HTTP服務器上運行的應用程序
當您使用 AWS WAF 透過 CloudFront,您可以保護在任何HTTP網路伺服器上執行的應用程式,無論是在 Amazon 彈性運算雲端 (AmazonEC2) 中執行的網路伺服器,還是您私下管理的網路伺服器。您還可以配置 CloudFront 為在HTTPS CloudFront和您自己的網絡服務器之間以及查看者和 CloudFront.
需要HTTPS CloudFront 和您自己的網絡服務器
要在 CloudFront 和您自己的 Web 服務器HTTPS之間進行要求,您可以使用自定 CloudFront 義來源功能並為特定來源配置原始協議策略和原始域名設置。在您的 CloudFront 配置中,您可以指定服務器的DNS名稱以及端口和從源獲取對象時 CloudFront 要使用的協議。您也應該確保自訂原始伺服器上的SSL/TLS憑證與您設定的原始網域名稱相符。當你在外面使用自己的HTTP網絡服務器 AWS,您必須使用由受信任的第三方憑證授權單位 (CA) 簽署的憑證,例如 Comodo 或賽門鐵克。 DigiCert如需需要HTTPS CloudFront與您自己的網路伺服器之間進行通訊的詳細資訊,請參閱 Amazon CloudFront 開發人員指南中HTTPS的〈需要 CloudFront 與您的自訂原始伺服器之間進行通訊〉主題。
在檢視者和HTTPS之間需要 CloudFront
若要在檢視器和HTTPS之間進行要求 CloudFront,您可以針對 CloudFront發行版中的一或多個快取行為變更檢視器通訊協定原則。如需有關在檢視者HTTPS之間使用的詳細資訊 CloudFront,請參閱《需要HTTPS檢視者之間的溝通》主題和 Amazon CloudFront 開發人員指南 CloudFront中的。例如,您也可以攜帶自己的SSL證書,以便查看者可以HTTPS使用您自己的域名連接到您的 CloudFront 分發https://www.mysite.com。如需詳細資訊,請參閱設定替代網域名稱主題和 Amazon CloudFront 開發人員指南HTTPS中的。
選擇 CloudFront回應的HTTP方法
建立 Amazon CloudFront Web 分發時,您可 CloudFront 以選擇要處理的HTTP方法並轉發到原始伺服器。您可以從下列選項來選擇:
GET
,HEAD
— 您 CloudFront 只能使用來從來源取得物件或取得物件標頭。GET
HEAD
、OPTIONS
— 您 CloudFront 只能使用來從原始伺服器取得物件、取得物件標頭,或擷取原始伺服器支援的選項清單。GET
、HEAD
、、OPTIONS
、PUT
POST
PATCH
、DELETE
— 您可以使用 CloudFront 來取得、新增、更新和刪除物件,以及取得物件標頭。此外,您還可以執行其他POST
操作,例如從 Web 表單提交數據。
您也可以使用 AWS WAF 位元組比對規則陳述式,可根據HTTP方法允許或封鎖要求,如中所述字串比對規則陳述式。如果您想要使用 CloudFront 支援的方法組合,例如GET
和HEAD
,則不需要進行設定 AWS WAF 封鎖使用其他方法的要求。如果您想要允許 CloudFront 不支援的方法組合,例如GET
、和 HEAD
POST
,您可以設定為 CloudFront 回應所有方法,然後使用 AWS WAF 封鎖使用其他方法的要求。
如需有關選擇可 CloudFront 回應之方法的詳細資訊,請參閱 Amazon CloudFront 開發人員指南中建立或更新 Web 分發時指定的值主題中的允許HTTP方法。