

**推出 的新主控台體驗 AWS WAF**

您現在可以使用更新後的體驗，在主控台的任何位置存取 AWS WAF 功能。如需詳細資訊，請參閱[使用 主控台](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html)。

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

# 在 中使用保護套件 (Web ACLs) 搭配規則和規則群組 AWS WAF
<a name="web-acl-processing"></a>

本節介紹保護套件 (Web ACLs) 和 Web ACLs 如何與規則和規則群組搭配使用。

保護套件 (Web ACL) 處理 Web 請求的方式取決於下列項目：
+ 保護套件 (Web ACL) 和規則群組內規則的數值優先順序設定
+ 規則和保護套件的動作設定 (Web ACL)
+ 您在新增的規則群組中放置在規則上的任何覆寫

如需規則動作設定的清單，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)。

您可以在規則動作設定和預設保護套件 (Web ACL) 動作設定中自訂請求和回應處理。如需相關資訊，請參閱[中的自訂 Web 請求和回應 AWS WAF](waf-custom-request-response.md)。

**Topics**
+ [設定規則優先順序](web-acl-processing-order.md)
+ [AWS WAF 如何處理規則和規則群組動作](web-acl-rule-actions.md)
+ [在 中覆寫規則群組動作 AWS WAF](web-acl-rule-group-override-options.md)

# 設定規則優先順序
<a name="web-acl-processing-order"></a>

本節說明如何 AWS WAF 使用數值優先順序設定來設定規則的評估順序。

在保護套件 (Web ACL) 和任何規則群組中，您可以使用數值優先順序設定來判斷規則的評估順序。您必須為保護套件 (Web ACL) 中的每個規則提供該保護套件 (Web ACL) 內的唯一優先順序設定，並且必須為規則群組中的每個規則提供該規則群組內的唯一優先順序設定。

**注意**  
當您透過主控台管理規則群組、保護套件 (Web ACLs) 時， 會根據清單中的規則順序為您 AWS WAF 指派唯一的數值優先順序設定。 AWS WAF 會將最低數值優先順序指派給清單頂端的規則，並將最高數值優先順序指派給底部的規則。

當 針對 Web 請求 AWS WAF 評估任何規則群組、保護套件 (Web ACL) 時，它會評估 上最低數值優先順序設定的規則，直到找到終止評估或耗盡所有規則的相符項目為止。

例如，假設您的保護套件 (Web ACL) 中有下列規則和規則群組，其優先順序如下所示：
+ Rule1 – 優先順序 0
+ RuleGroupA – 優先順序 100
  + RuleA1 – 優先順序 10，000
  + RuleA2 – 優先順序 20，000
+ Rule2 – 優先順序 200
+ RuleGroupB – 優先順序 300
  + RuleB1 – 優先順序 0
  + RuleB2 – 優先順序 1

AWS WAF 會依下列順序評估此保護套件 (Web ACL) 的規則：
+ Rule1
+ RuleGroupA RuleA1
+ RuleGroupA RuleA2
+ Rule2
+ RuleGroupB RuleB1
+ RuleGroupB RuleB2

# AWS WAF 如何處理規則和規則群組動作
<a name="web-acl-rule-actions"></a>

本節說明如何 AWS WAF 使用規則和規則群組來處理動作。

當您設定規則和規則群組時，您可以選擇 AWS WAF 如何處理相符的 Web 請求：
+ **Allow 和 Block 正在終止動作** – Allow而 Block動作會停止對相符 Web 請求進行保護套件 (Web ACL) 的所有其他處理。如果保護套件 (Web ACL) 中的規則找到請求的相符項目，且規則動作為 Allow或 Block，則相符項目會決定保護套件 (Web ACL) 之 Web 請求的最終處置。 AWS WAF 不會處理在相符項目之後的保護套件 (Web ACL) 中的任何其他規則。對於您直接新增至保護套件 (Web ACL) 的規則，以及新增規則群組內的規則，這是如此。透過 Block動作，受保護的資源不會接收或處理 Web 請求。
+ **Count 是非終止動作** – 當具有Count動作的規則符合請求時， 會 AWS WAF 計算請求，然後繼續處理保護套件 (Web ACL) 規則集中遵循的規則。
+ **CAPTCHA 和 Challenge 可以是非終止或終止動作** – 當具有這些動作之一的規則符合請求時， 會 AWS WAF 檢查其字符狀態。如果請求具有有效的字符， 會 AWS WAF 處理類似相符項目的Count相符項目，然後繼續處理保護套件 (Web ACL) 規則集中遵循的規則。如果請求沒有有效的字符， 會 AWS WAF 終止評估，並向用戶端傳送要解決的 CAPTCHA 拼圖或無提示背景用戶端工作階段挑戰。

如果規則評估不會導致任何終止動作，則 會將保護套件 (Web ACL) 預設動作 AWS WAF 套用至請求。如需相關資訊，請參閱[在 中設定保護套件 (Web ACL) 預設動作 AWS WAF](web-acl-default-action.md)。

在保護套件 (Web ACL) 中，您可以覆寫規則群組內規則的動作設定，也可以覆寫規則群組傳回的動作。如需相關資訊，請參閱[在 中覆寫規則群組動作 AWS WAF](web-acl-rule-group-override-options.md)。

**動作與優先順序設定之間的互動**  
 AWS WAF 套用至 Web 請求的動作會受到保護套件 (Web ACL) 中規則的數值優先順序設定影響。例如，假設您的保護套件 (Web ACL) 具有具有Allow動作 的規則和數字優先順序 50，以及具有Count動作 和數字優先順序 100 的另一個規則。 從最低設定開始， 會依其優先順序 AWS WAF 評估保護套件 (Web ACL) 中的規則，因此它將在計數規則之前評估允許規則。符合兩個規則的 Web 請求會先符合允許規則。由於 Allow是終止動作， AWS WAF 會停止此相符項目的評估，而不會針對計數規則評估請求。
+ 如果您只想在計數規則指標中包含不符合允許規則的請求，則規則的優先順序設定會有效。
+ 另一方面，如果您想要計數規則中的計數指標，即使請求符合允許規則，您也需要為計數規則提供比允許規則更低的數值優先順序設定，以便先執行。

如需優先順序設定的詳細資訊，請參閱 [設定規則優先順序](web-acl-processing-order.md)。

# 在 中覆寫規則群組動作 AWS WAF
<a name="web-acl-rule-group-override-options"></a>

本節說明如何覆寫規則群組動作。

當您將規則群組新增至保護套件 (Web ACL) 時，您可以覆寫在相符的 Web 請求上所採取的動作。覆寫保護套件 (Web ACL) 組態內規則群組的動作並不會改變規則群組本身。它只會改變 AWS WAF 如何在保護套件 (Web ACL) 的內容中使用規則群組。

## 規則群組規則動作覆寫
<a name="web-acl-rule-group-override-options-rules"></a>

您可以將規則群組內規則的動作覆寫為任何有效的規則動作。當您執行此操作時，比對請求的處理方式與設定的規則動作為覆寫設定完全相同。

**注意**  
規則動作可以是終止或非終止。終止動作會停止請求的保護套件 (Web ACL) 評估，並讓它繼續到您的受保護應用程式或封鎖它。

以下是規則動作選項：
+ **Allow** – AWS WAF 允許將請求轉送至受保護 AWS 的資源以進行處理和回應。這是終止動作。在您定義的規則中，您可以將自訂標頭插入請求，然後再將其轉送至受保護的資源。
+ **Block** – AWS WAF 封鎖請求。這是終止動作。根據預設，受保護 AWS 的資源會以 HTTP `403 (Forbidden)` 狀態碼回應。在您定義的規則中，您可以自訂回應。當 AWS WAF 封鎖請求時，Block動作設定會決定受保護資源傳回用戶端的回應。
+ **Count** – AWS WAF 計算請求，但不決定允許或封鎖請求。這是非終止動作。 會 AWS WAF 繼續處理保護套件 (Web ACL) 中的其餘規則。在您定義的規則中，您可以將自訂標頭插入請求，也可以新增其他規則可比對的標籤。
+ **CAPTCHA 和 Challenge** – AWS WAF 使用 CAPTCHA 拼圖和靜音挑戰來驗證請求不是來自機器人，並使用 AWS WAF 字符來追蹤最近成功的用戶端回應。

  CAPTCHA 拼圖和無提示挑戰只能在瀏覽器存取 HTTPS 端點時執行。瀏覽器用戶端必須在安全的內容中執行，才能取得字符。
**注意**  
當您在其中一個規則中使用 CAPTCHA或 Challenge 規則動作，或做為規則群組中的規則動作覆寫時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

  這些規則動作可以終止或非終止，取決於請求中字符的狀態：
  + **未終止有效、未過期的字符** – 如果字符有效且根據設定的 CAPTCHA 或挑戰抗擾性時間未過期， 會 AWS WAF 處理類似 Count動作的請求。 會根據保護套件 (Web ACL) 中的其餘規則 AWS WAF 繼續檢查 Web 請求。與Count組態類似，在您定義的規則中，您可以選擇使用自訂標頭來設定這些動作，以插入請求中，也可以新增其他規則可比對的標籤。
  + **以無效或過期權杖的封鎖請求終止** – 如果權杖無效或指定的時間戳記已過期， 會 AWS WAF 終止 Web 請求的檢查並封鎖請求，類似於 Block動作。 AWS WAF 然後以自訂回應碼回應用戶端。對於 CAPTCHA，如果請求內容指出用戶端瀏覽器可以處理它， AWS WAF 會在 JavaScript 間質中傳送 CAPTCHA 拼圖，這旨在區分人類用戶端和機器人。對於 Challenge動作， AWS WAF 會傳送具有無提示挑戰的 JavaScript 間質，此挑戰旨在區分正常瀏覽器與機器人正在執行的工作階段。

  如需其他資訊，請參閱 [CAPTCHA 和 Challenge 中的 AWS WAF](waf-captcha-and-challenge.md)。

如需如何使用此選項的詳細資訊，請參閱 [覆寫規則群組中的規則動作](web-acl-rule-group-settings.md#web-acl-rule-group-rule-action-override)。

### 將規則動作覆寫為 Count
<a name="web-acl-rule-group-override-to-count"></a>

規則動作覆寫最常見的使用案例是將部分或全部規則動作覆寫至 Count，以測試和監控規則群組的行為，然後再將其投入生產環境。

您也可以使用它來對產生誤報的規則群組進行故障診斷。當規則群組封鎖您預期不會封鎖的流量時，就會發生誤報。如果您在規則群組中識別規則，以封鎖您想要允許通過的請求，您可以保留該規則上的計數動作覆寫，以排除它對您的請求採取行動。

如需在測試中使用規則動作覆寫的詳細資訊，請參閱 [測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

### JSON 清單：`RuleActionOverrides`取代 `ExcludedRules`
<a name="web-acl-rule-group-override-replaces-exclude"></a>

如果您在 2022 年 10 月 27 日之前將保護套件 (Web ACL) 組態Count中的規則群組規則動作設為 ，則 會將保護套件 (Web ACL) JSON 中的覆寫 AWS WAF 儲存為 `ExcludedRules`。現在，覆寫規則的 JSON 設定Count位於`RuleActionOverrides`設定中。

建議您將 JSON 清單中的所有`ExcludedRules`設定更新為動作設為 `RuleActionOverrides`的設定Count。如果您只使用新的設定，API 會接受任一設定，但您會在主控台工作與 API 工作之間取得 JSON 清單中的一致性`RuleActionOverrides`。

**注意**  
在 AWS WAF 主控台中，保護套件 (Web ACL) **取樣請求**索引標籤不會顯示具有舊設定的規則範例。如需詳細資訊，請參閱[檢視 Web 請求的範例](web-acl-testing-view-sample.md)。

當您使用 AWS WAF 主控台編輯現有的規則群組設定時，主控台會自動將 JSON 中的任何`ExcludedRules`設定轉換為 `RuleActionOverrides`設定，並將覆寫動作設定為 Count。
+ 目前的設定範例：

  ```
         "ManagedRuleGroupStatement": {
            "VendorName": "AWS",
            "Name": "AWSManagedRulesAdminProtectionRuleSet",
            "RuleActionOverrides": [
              {
                "Name": "AdminProtection_URIPATH",
                "ActionToUse": {
                  "Count": {}
                }
              }
            ]
  ```
+ 舊設定範例：

  ```
  OLD SETTING
         "ManagedRuleGroupStatement": {
            "VendorName": "AWS",
            "Name": "AWSManagedRulesAdminProtectionRuleSet",
            "ExcludedRules": [
              {
                "Name": "AdminProtection_URIPATH"
              }
            ]
  OLD SETTING
  ```

## 規則群組傳回動作覆寫至 Count
<a name="web-acl-rule-group-override-options-rule-group"></a>

您可以覆寫規則群組傳回的動作，將其設定為 Count。

**注意**  
這不是在規則群組中測試規則的好選項，因為它不會改變規則群組本身 AWS WAF 的評估方式。它只會影響 AWS WAF 如何處理從規則群組評估傳回至保護套件 (Web ACL) 的結果。如果您想要測試規則群組中的規則，請使用上一節中所述的選項 [規則群組規則動作覆寫](#web-acl-rule-group-override-options-rules)。

當您將規則群組動作覆寫為 時Count， 會正常 AWS WAF 處理規則群組評估。

如果規則群組中沒有規則相符或所有相符規則都有Count動作，則此覆寫不會影響規則群組或保護套件 (Web ACL) 的處理。

規則群組中符合 Web 請求且具有終止規則動作的第一個規則 AWS WAF 會導致 停止評估規則群組，並將終止動作結果傳回至保護套件 (Web ACL) 評估層級。此時，在保護套件 (Web ACL) 評估中，此覆寫會生效。 會 AWS WAF 覆寫終止動作，使得規則群組評估的結果僅為Count動作。 AWS WAF 然後繼續處理保護套件 (Web ACL) 中的其餘規則。

如需如何使用此選項的詳細資訊，請參閱 [將規則群組的評估結果覆寫為 Count](web-acl-rule-group-settings.md#web-acl-rule-group-action-override)。