本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
開始使用 AWS WAF
本教學課程顯示如何使用 AWS WAF 來執行下列工作:
設定 AWS WAF。
-
使用 AWS WAF 主控台中的精靈建立 Web 存取控制清單 (Web ACL)。
-
選擇您要 AWS WAF 檢查 Web 請求的 AWS 資源。本教程介紹了 Amazon 的步驟 CloudFront。Amazon API 閘道 REST API、應用程式負載平衡器、 AWS AppSync GraphQL API、Amazon Cognito 使用者集區、 AWS App Runner 服務或 AWS 已驗證存取執行個體的程序基本上相同。
-
新增您要用來篩選 Web 請求的規則和規則群組。例如,您可以指定要求來源的 IP 位址,並在要求中指定僅由攻擊者使用的值。對於每個規則,您可以指定如何處理相符的 Web 要求。您可以執行諸如阻止或計數之類的事情,並且可以運行 CAPTCHA 之類的機器人挑戰。您可以為在 Web ACL 內定義的每個規則,以及在規則群組內定義的每個規則定義動作。
指定 Web ACL 的預設動作,Block或Allow。當 Web ACL 中的規則未明確允許或封鎖 AWS WAF 要求時,這是針對要求所採取的動作。
注意
AWS 一般而言,對於您在本教學課程中建立的資源,每天收取的費用不到 USD $0.25。當您完成此教學課程,我們建議您刪除資源以免產生不必要的費用。
步驟 1:設定 AWS WAF
如果您尚未遵循中的一般設定步驟設定,請立即執行。
步驟二:建立 Web ACL
主 AWS WAF 控台會引導您完成設定程序, AWS WAF 以根據您指定的條件封鎖或允許 Web 要求,例如要求來源的 IP 位址或要求中的值。在此步驟中,建立Web ACL。如需有關 AWS WAF Web ACL 的詳細資訊,請參閱網頁存取控制清單 (網路 ACL)。
建立 Web ACL
請登入 AWS Management Console 並開啟 AWS WAF 主控台,網址為 https://console.aws.amazon.com/wafv2/
。 -
在 AWS WAF 首頁中,選擇「建立 Web ACL」。
-
對於 Name (名稱),輸入您要用來識別此 Web ACL 的名稱。
注意
建立 Web ACL 後無法修改名稱。
-
(選擇性) 對於 Description - optional (描述 - 選用性),如果需要,請為 Web ACL 輸入較長的描述。
-
若為CloudWatch 量度名稱,請變更預設名稱 (如果適用)。遵循主控台上的指引,以瞭解有效的字元。名稱不能包含特殊字元、空格或保留給 AWS WAF使用的指標名稱,包括「All」和「Default_Action」。
注意
建立 Web ACL 之後,您就無法變更 CloudWatch 量度名稱。
-
對於「資源型態」,請選擇CloudFront分配。「區域」會自動填入「全域」(CloudFront) 以進 CloudFront 行分配。
-
(選擇性) 針對關聯 AWS 資源-選擇性,請選擇 [新增 AWS 資源]。在對話方塊中,選擇您要關聯的資源,然後選擇 [新增]。 AWS WAF 返回「描述 Web ACL 和相關 AWS 資源」頁面。
-
選擇下一步。
步驟 3:新增字串比對規則
在此步驟中,您會建立使用字串比對陳述式的規則,並指出如何處理比對請求。字串比對規則陳述式會識別要在 AWS WAF 要求中搜尋的字串。通常,字串包含可列印 ASCII 字元,但您可以指定十六字元範圍 0x00 到 0xFF 的任何字元 (小數點 0 到 255)。除了指定要搜尋的字串之外,您還可以指定要搜尋的 Web 要求元件,例如標頭、查詢字串或要求主體。
此陳述式類型會在 Web 要求元件上運作,而且需要下列要求元件設定:
要求元件 — 要檢查的 Web 要求部分,例如查詢字串或內文。
警告
如果您檢查要求元件內文、JSON 內文、標頭或 Cookie,請參閱 AWS WAF 可以檢查多少內容的限制處理過大的 Web 請求組件 AWS WAF。
如需 Web 要求元件的詳細資訊,請參閱網頁要求元件。
選擇性文字轉換 — 您要在檢查要求元件之前對 AWS WAF 要求元件執行的轉換。例如,您可以轉換為小寫或標準化空格。如果您指定多個轉換,則會依照列出的順 AWS WAF 序處理這些轉換。如需相關資訊,請參閱文字轉換。
如需 AWS WAF 規則的其他資訊,請參閱AWS WAF 規則。
建立字串比對規則陳述式
-
在 Add rules and rule groups (新增規則和規則群組) 頁面上,選擇 Add rules (新增規則)、Add my own rules and rule groups (新增我自己的規則和規則群組)、Rule builder (規則建置器) 及 Rule visual editor (規則視覺化編輯器)。
注意
主控台提供 Rule visual editor (規則視覺化編輯器) 和 Rule JSON editor (規則 JSON 編輯器)。JSON 編輯器可讓您在 Web ACL 之間輕鬆複製組態,並且是更複雜的規則集所需,例如具有多層巢狀的規則集。
此程序使用 Rule visual editor (規則視覺化編輯器)。
-
對於 Name (名稱),輸入您要用來識別此規則的名稱。
-
對於 Type (類型),選擇 Regular rule (一般規則)。
-
對於 If a request (如果請求),選擇 matches the statement (比對陳述式)。
其他選項適用於邏輯規則陳述式類型。您可以使用它們來合併或否定其他規則陳述式的結果。
-
在陳述式上,針對「檢查」,開啟下拉式清單,然後選擇您要檢查的 Web AWS WAF 要求元件。在此範例中,請選擇 Header (標頭)。
當您選擇 Header (標題) 時,您也可以指定要 AWS WAF 檢查的標題。輸入
User-Agent
。此值不會區分大小寫。 -
對於 Match type (比對類型),選擇指定的字串必須顯示在
User-Agent
標頭中的位置。對於此範例,選擇 Exactly matches string (完全符合字串)。這表示會 AWS WAF 檢查每個 Web 要求中的使用者代理程式標頭,找出與您指定的字串相同的字串。
-
對於 String to match (要比對的字串),指定您要 AWS WAF 搜尋的字串。String to match (符合值) 的長度上限為 200 個字元。如果您想要指定 base64 編碼值,可在編碼前指定最多 200 個字元。
在此範例中,輸入MyAgent。 AWS WAF 將檢查 Web 請求中的
User-Agent
標題以獲取值MyAgent
。 -
將 Text transformation (文字轉換) 保持設定為 None (無)。
-
針對「動作」,選取您希望規則在符合 Web 要求時採取的動作。在此範例中,選擇 [計數] 並保留其他選項不變。計數動作會為符合規則的 Web 要求建立量度,但不會影響要求是允許還是封鎖。如需有關動作選擇的詳細資訊,請參閱規則動作和Web ACL 規則和規則群組評估。
-
選擇新增規則。
步驟 4:新增受 AWS 管規則規則群組
AWS 受管規則提供一組受管規則群組供您使用,其中大部分對 AWS WAF 客戶免費。如需規則群組的詳細資訊,請參閱規則群組。我們會將受 AWS 管規則規則群組新增至此 Web ACL。
新增 AWS 受管規則規則群組
-
在 Add rules and rule groups (新增規則和規則群組) 頁面上,選擇 Add rules (新增規則),然後選擇 Add managed rule groups (新增受管規則群組)。
-
在 [新增受管規則群組] 頁面上,展開AWS 受管規則群組的清單。(你也會看到為 AWS Marketplace 賣家提供的物品。 您可以訂閱其提供項目,然後以與「 AWS 受管規則」規則群組相同的方式使用它們。)
-
針對您要新增的規則群組,執行下列動作:
-
在「動作」欄中,開啟「新增至網頁 ACL」切換。
-
選取「編輯」,然後在規則群組的「規則」清單中開啟「覆寫所有規則動作」下拉式清單,然後選取Count。這會將規則群組中所有規則的動作設定為僅計數。這可讓您在使用任何規則之前,先查看規則群組中的所有規則與 Web 要求的行為。
-
選擇 [儲存規則]。
-
-
在 [新增受管規則群組] 頁面中,選擇 [新增規則]。您會返回「新增規則和規則群組」頁面。
步驟 5:完成您的網頁 ACL 設定
完成將規則和規則群組新增至 Web ACL 組態時,請在 Web ACL 中管理規則的優先順序,以及進行指標、標記和記錄等設定來完成工作。
完成您的 Web ACL 組態
-
在 Add rules and rule groups (新增規則和規則群組) 頁面上,選擇 Next (下一步)。
-
在 [設定規則優先順序] 頁面上,您可以看到 Web ACL 中規則和規則群組的處理順序。 AWS WAF 從清單頂端開始處理它們。您可以向上或向下移動規則來變更處理順序。若要這樣做,請在清單中選取一個,然後選擇 Move up (上移) 或 Move down (下移)。如需有關規則優先順序的詳細資訊,請參閱 Web ACL 中規則和規則群組的處理順序。
-
選擇下一步。
-
在設定指標頁面上,對於 Amazon CloudWatch 指標,您可以查看規則和規則群組的計劃指標,並且可以查看 Web 請求取樣選項。如需檢視取樣請求的資訊,請參閱。檢視 Web 請求的範例如需 Amazon CloudWatch 指標的相關資訊,請參閱使用 Amazon 監控 CloudWatch。
您可以在 AWS WAF 主控台的「流量概觀」標籤下,在 Web ACL 頁面上存取 Web 流量測量結果的摘要。主控台儀表板提供 Web ACL Amazon CloudWatch 指標的近乎即時的摘要。如需詳細資訊,請參閱 網頁 ACL 流量概觀儀表板。
-
選擇下一步。
-
在 Review and create web ACL (檢閱並建立 Web ACL) 頁面上,檢閱您的設定,然後選擇 Create web ACL (建立 Web ACL)。
精靈會帶您回到 Web ACL 頁面,其中會列出新的 Web ACL。
步驟 6:清除您的資源
現在,您已成功完成教學課程。若要避免帳戶產生額外 AWS WAF 費用,請清除您建立的 AWS WAF 物件。或者,您可以更改配置以匹配您真正想要使用管理的 Web 請求 AWS WAF。
注意
AWS 一般而言,對於您在本教學課程中建立的資源,每天收取的費用不到 USD $0.25。當您完成時,我們建議您刪除資源以免產生不必要的費用。
若要刪除 AWS WAF 收費的物件
-
在 Web ACL 頁面中,從清單中選取您的 Web ACL,然後選擇 Edit (編輯)。
-
在 [關聯的 AWS 資源] 索引標籤上,針對每個關聯的資源選取資源名稱旁的選項按鈕,然後選擇 [取消關聯]。這會取消 Web ACL 與 AWS 資源的關聯性。
-
在下列每個畫面中,選擇 Next (下一步),直到您回到 Web ACL 頁面為止。
在 Web ACL 頁面中,從清單中選取您的 Web ACL,然後選擇 Delete (刪除)。
規則和規則陳述式無法存在於規則群組和 Web ACL 定義之外。如果您刪除 Web ACL,這會刪除您在 Web ACL 中定義的所有個別規則。當您從 Web ACL 移除某個規則群組時,您只是移除對它的參考。