設定 AWS WAF 及其元件 - AWS WAFAWS Firewall Manager、 和 AWS Shield Advanced

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

設定 AWS WAF 及其元件

本教學課程說明如何使用 AWS WAF 來執行下列任務:

  • 設定 AWS WAF。

  • 使用 AWS WAF 主控台中的精靈建立 Web 存取控制清單 (Web ACL)。

  • 選擇 AWS WAF 您要檢查 Web 請求 AWS 的資源。本教學課程涵蓋 Amazon CloudFront 的步驟。Amazon API Gateway REST API、Application Load Balancer、a AWS AppSync GraphQL API、Amazon Cognito 使用者集區、 AWS App Runner 服務或 AWS Verified Access 執行個體的程序基本上相同。

  • 新增您要用來篩選 Web 請求的規則和規則群組。例如,您可以指定請求來源的 IP 地址,並在請求中指定僅供攻擊者使用的數值。針對每個規則,您可以指定如何處理相符的 Web 請求。您可以執行區塊或計數等操作,也可以執行 CAPTCHA 等機器人挑戰。您可以為您在 Web ACL 中定義的每個規則,以及您在規則群組中定義的每個規則,定義動作。

  • 指定 Web ACL 的預設動作,或 Block Allow。這是當 Web ACL 中的規則未明確允許或封鎖請求時,對請求 AWS WAF 採取的動作。

注意

AWS 通常針對您在本教學課程中建立的資源,每天收取不到 0.25 美元的費用。當您完成此教學課程,我們建議您刪除資源以免產生不必要的費用。

步驟 1:設定 AWS WAF

如果您尚未遵循 中的一般設定步驟設定您的帳戶以使用 服務,請立即執行此操作。

步驟二:建立 Web ACL

AWS WAF 主控台會引導您完成設定程序 AWS WAF ,以根據您指定的條件封鎖或允許 Web 請求,例如請求來源的 IP 地址或請求中的值。在此步驟中,建立Web ACL。如需 AWS WAF Web ACLs的詳細資訊,請參閱在 中使用 Web ACLs AWS WAF

建立 Web ACL
  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/wafv2/ 開啟 AWS WAF 主控台。

  2. 在 AWS WAF 首頁中,選擇建立 Web ACL

  3. 對於 Name (名稱),輸入您要用來識別此 Web ACL 的名稱。

    注意

    建立 Web ACL 後無法修改名稱。

  4. (選擇性) 對於 Description - optional (描述 - 選用性),如果需要,請為 Web ACL 輸入較長的描述。

  5. 針對 CloudWatch 指標名稱,請變更預設名稱,如果適用的話。遵循主控台上的指引,以瞭解有效的字元。名稱不能包含特殊字元、空格或保留給 AWS WAF使用的指標名稱,包括「All」和「Default_Action」。

    注意

    您無法在建立 Web ACL 之後變更 CloudWatch 指標名稱。

  6. 對於 Resource type (資源類型),選擇 CloudFront distributions (CloudFront 分發)Region (區域) 會自動填入 CloudFront 分發的 Global (CloudFront) (全域 (CloudFront))

  7. (選用) 針對關聯的 AWS 資源 - 選用,選擇新增 AWS 資源。在對話方塊中,選擇您要關聯的資源,然後選擇新增。 會 AWS WAF 返回描述 Web ACL 和關聯的 AWS 資源頁面。

  8. 選擇 Next (下一步)

步驟 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

如需 AWS WAF 規則的詳細資訊,請參閱AWS WAF 規則

建立字串比對規則陳述式
  1. 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 (規則視覺化編輯器)

  2. 對於 Name (名稱),輸入您要用來識別此規則的名稱。

  3. 對於 Type (類型),選擇 Regular rule (一般規則)

  4. 對於 If a request (如果請求),選擇 matches the statement (比對陳述式)

    其他選項適用於邏輯規則陳述式類型。您可以使用它們來合併或否定其他規則陳述式的結果。

  5. 陳述式上,針對檢查,開啟下拉式清單,然後選擇 AWS WAF 您要檢查的 Web 請求元件。在此範例中,選擇單一標頭

    選擇單一標頭時,您也可以指定要 AWS WAF 檢查的標頭。輸入 User-Agent。此值不會區分大小寫。

  6. 對於 Match type (比對類型),選擇指定的字串必須顯示在 User-Agent 標頭中的位置。

    對於此範例,選擇 Exactly matches string (完全符合字串)。這表示 AWS WAF 會檢查每個 Web 請求中的使用者代理程式標頭是否有與您指定的字串相同的字串。

  7. 對於 String to match (要比對的字串),指定您要 AWS WAF 搜尋的字串。String to match (符合值) 的長度上限為 200 個字元。如果您想要指定 base64 編碼值,可在編碼前指定最多 200 個字元。

    在此範例中,輸入 MyAgent。 AWS WAF 將檢查 Web 請求中的User-Agent標頭是否有值 MyAgent

  8. Text transformation (文字轉換) 保持設定為 None (無)

  9. 針對動作,選取您希望規則在符合 Web 請求時採取的動作。在此範例中,選擇計數並保留其他選項。計數動作會為符合規則的 Web 請求建立指標,但不會影響是否允許或封鎖請求。如需動作選擇的詳細資訊,請參閱 在 中使用規則動作 AWS WAF在 中使用具有規則和規則群組ACLs AWS WAF

  10. 選擇新增規則

步驟 4:新增 AWS 受管規則規則群組

AWS 受管規則提供一組 受管規則群組供您使用,其中大多數都是免費提供給 AWS WAF 客戶。如需規則群組的詳細資訊,請參閱AWS WAF 規則群組。我們會將 AWS 受管規則規則群組新增至此 Web ACL。

新增 AWS 受管規則規則群組
  1. Add rules and rule groups (新增規則和規則群組) 頁面上,選擇 Add rules (新增規則),然後選擇 Add managed rule groups (新增受管規則群組)

  2. 新增受管規則群組頁面上,展開AWS 受管規則群組的清單。(您也會看到提供給 AWS Marketplace 賣方的清單。 您可以訂閱其方案,然後以與 AWS 受管規則規則群組相同的方式使用它們。)

  3. 對於您要新增的規則群組,請執行下列動作:

    1. 動作欄中,開啟新增至 Web ACL 切換。

    2. 選取編輯,然後在規則群組的規則清單中,開啟覆寫所有規則動作下拉式清單,然後選取 Count。這會將規則群組中所有規則的動作設定為僅計數。這可讓您了解規則群組中的所有規則如何在 Web 請求中運作,然後再使用任何規則群組。

    3. 選擇儲存規則

  4. 新增受管規則群組頁面中,選擇新增規則。這會讓您返回新增規則和規則群組頁面。

步驟 5:完成您的 Web ACL 組態

完成將規則和規則群組新增至 Web ACL 組態時,請在 Web ACL 中管理規則的優先順序,以及進行指標、標記和記錄等設定來完成工作。

完成您的 Web ACL 組態
  1. Add rules and rule groups (新增規則和規則群組) 頁面上,選擇 Next (下一步)

  2. 設定規則優先順序頁面上,您可以查看 Web ACL 中規則和規則群組的處理順序。 會從清單頂端開始 AWS WAF 處理它們。您可以上下移動規則來變更處理順序。若要這樣做,請在清單中選取一個,然後選擇 Move up (上移)Move down (下移)。如需有關規則優先順序的詳細資訊,請參閱 在 Web ACL 中設定規則優先順序

  3. 選擇 Next (下一步)

  4. 設定指標頁面上,對於 Amazon CloudWatch 指標,您可以查看規則和規則群組的計劃指標,也可以查看 Web 請求取樣選項。如需有關檢視取樣請求的資訊,請參閱 檢視 Web 請求的範例。如需 Amazon CloudWatch 指標的相關資訊,請參閱 使用 Amazon CloudWatch 監控

    您可以在 AWS WAF 主控台的 Web ACL 頁面上,流量概觀索引標籤下存取 Web 流量指標的摘要。主控台儀表板提供 Web ACL Amazon CloudWatch 指標的近乎即時摘要。如需詳細資訊,請參閱Web ACL 流量概觀儀表板

  5. 選擇 Next (下一步)

  6. 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 通常針對您在本教學課程中建立的資源,每天收取不到 0.25 美元的費用。當您完成時,我們建議您刪除資源以免產生不必要的費用。

刪除 AWS WAF 收費的物件
  1. Web ACL 頁面中,從清單中選取您的 Web ACL,然後選擇 Edit (編輯)

  2. 關聯的 AWS 資源索引標籤上,針對每個相關聯的資源,選取資源名稱旁的選項按鈕,然後選擇取消關聯。這會將 Web ACL 與您的 AWS 資源取消關聯。

  3. 在下列每個畫面中,選擇 Next (下一步),直到您回到 Web ACL 頁面為止。

    Web ACL 頁面中,從清單中選取您的 Web ACL,然後選擇 Delete (刪除)

規則和規則陳述式無法存在於規則群組和 Web ACL 定義之外。如果您刪除 Web ACL,這會刪除您在 Web ACL 中定義的所有個別規則。當您從 Web ACL 移除某個規則群組時,您只是移除對它的參考。