

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

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

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

# AWS WAF
新增對 AWS 的 Verified Access 執行個體支援 AWS WAF

您現在可以將 AWS WAF Web ACL 與 Verified Access 執行個體建立關聯。此變更僅適用於最新版本的 AWS WAF ，不適用於 AWS WAF Classic。新增對 的支援 AWS App Runner 至 AWS WAF

您現在可以將 AWS WAF Web ACL 與 AWS App Runner 服務建立關聯。此變更僅適用於最新版本的 AWS WAF ，不適用於 AWS WAF Classic。新增對 Amazon Cognito 使用者集區的支援 AWS WAF

您現在可以將 AWS WAF Web ACL 與 Amazon Cognito 使用者集區建立關聯。此變更僅適用於最新版本的 AWS WAF ，不適用於 AWS WAF Classic。AWS WAF 指南組織的變更

新增了受管保護的頂層區段。將 CAPTCHA 區段從規則下移至新受管保護區段下。將標籤區段從規則下移至自己的頂層區段。新增對 的支援 AWS AppSync 至 AWS WAF

您現在可以將 AWS WAF Web ACL 與 AWS AppSync GraphQL API 建立關聯。此變更僅適用於最新版本的 AWS WAF ，不適用於 AWS WAF Classic。

AWS WAF 是一種 Web 應用程式防火牆，可讓您監控轉送至受保護 Web 應用程式資源的 HTTP(S) 請求。您可以保護下列資源類型：
+ Amazon CloudFront 分佈
+ Amazon API Gateway REST API
+ Application Load Balancer
+ AWS AppSync GraphQL API
+ Amazon Cognito 使用者集區
+ AWS App Runner 服務
+ AWS 已驗證的存取執行個體
+ AWS Amplify

AWS WAF 可讓您控制對內容的存取。根據您指定的條件，例如請求的 IP 地址或查詢字串的值，與您的受保護資源相關聯的服務會使用請求的內容、HTTP 403 狀態碼 （禁止） 或自訂回應來回應請求。

**注意**  
您也可以使用 AWS WAF 來保護託管在 Amazon Elastic Container Service (Amazon ECS) 容器中的應用程式。Amazon ECS 是一種高度可擴展的快速容器管理服務，可讓您輕鬆地在叢集上執行、停止和管理 Docker 容器。若要使用此選項，請將 Amazon ECS 設定為使用已啟用 的 Application Load Balancer AWS WAF ，以路由和保護服務中任務的 HTTP(S) layer 7 流量。如需詳細資訊，請參閱《*Amazon Elastic Container Service 開發人員指南*》中的 [Service Load Balancing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html)。

**Topics**
+ [

# 開始使用 AWS WAF
](getting-started.md)
+ [

# AWS WAF 運作方式
](how-aws-waf-works.md)
+ [

# 在 中設定保護 AWS WAF
](web-acl.md)
+ [

# AWS WAF 規則
](waf-rules.md)
+ [

# AWS WAF 規則群組
](waf-rule-groups.md)
+ [

# 中的 Web ACL 容量單位 WCUs) AWS WAF
](aws-waf-capacity-units.md)
+ [

# 在 中過大 Web 請求元件 AWS WAF
](waf-oversize-request-components.md)
+ [

# 中支援的規則表達式語法 AWS WAF
](waf-regex-pattern-support.md)
+ [

# 中的 IP 集和 regex 模式集 AWS WAF
](waf-referenced-set-managing.md)
+ [

# 中的自訂 Web 請求和回應 AWS WAF
](waf-custom-request-response.md)
+ [

# 中的 Web 請求標籤 AWS WAF
](waf-labels.md)
+ [

# 中的智慧型威脅防禦 AWS WAF
](waf-managed-protections.md)
+ [

# 保護 AWS WAF 套件 (Web ACL) 流量的資料保護和記錄
](waf-data-protection-and-logging.md)
+ [

# 測試和調校您的 AWS WAF 保護
](web-acl-testing.md)
+ [

# AWS WAF 搭配 Amazon CloudFront 使用
](cloudfront-features.md)
+ [

# 您使用 AWS WAF 服務時的安全性
](security.md)
+ [

# AWS WAF 配額
](limits.md)
+ [

# 將您的 AWS WAF Classic 資源遷移至 AWS WAF
](waf-migrating-from-classic.md)

# 開始使用 AWS WAF
入門 AWS WAF

 入門 AWS WAF 取決於您使用的主控台體驗。這兩種體驗都可以存取相同的核心 AWS WAF 功能，但它們在您設定和管理 Web 應用程式保護的方式上有所不同。

 AWS WAF 提供兩種使用 主控台的選項：

 **新的主控台**旨在簡化標準主控台工作流程所需的 Web ACL 組態程序。您可以使用引導式工作流程，透過保護套件簡化 Web ACL 建立和管理程序。保護套件可讓您更輕鬆地在主控台中使用和管理 Web ACLs，但功能與 Web ACL 沒有差異。除了改善的保護組態程序之外，新的主控台還透過安全儀表板提供增強的防護可見性，讓您更輕鬆地在主控台中 AWS WAF 監控您的安全狀態。

 **標準 AWS WAF 主控台**提供使用 Web ACLs 設定 Web 應用程式防火牆保護的傳統方法。它提供對個別規則和規則群組的精細控制，並熟悉現有 AWS WAF 使用者。使用此主控台，您可以詳細控制保護組態，以便精確自訂您的安全設定。

**提示**  
 選擇最符合您需求的主控台體驗。如果您是初次接觸 ， AWS WAF 或想要根據 AWS 建議開始設定保護，我們建議您從新的主控台體驗開始。不過，標準體驗一律可從 主控台的導覽窗格開啟。

 下列各節提供兩種主控台體驗的入門指引。檢閱每個方法，並選取最符合您安全需求和操作偏好設定的方法：

**Topics**
+ [

# AWS WAF 開始使用新的主控台體驗
](setup-iap-console.md)
+ [

# AWS WAF 開始使用標準主控台體驗
](setup-existing-console.md)

# AWS WAF 開始使用新的主控台體驗
設定 AWS WAF （新主控台）

本節將引導您使用新的主控台體驗進行設定，這可提供簡化 AWS WAF 的組態工作流程和增強的安全管理功能。

## 存取新的主控台體驗


若要存取新的 AWS WAF 主控台體驗：

登入新的 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/wafv2-pro](https://console.aws.amazon.com/wafv2-pro) 開啟 AWS WAF 主控台。
+ 在導覽窗格中，尋找並選取**嘗試新的體驗**。

**注意**  
您可以隨時使用導覽窗格中的連結在主控台體驗之間切換。

## 開始使用保護套件 (Web ACL)


本教學課程說明如何建立和設定保護套件 (Web ACL) 來保護您的應用程式。保護套件 (Web ACLs) 提供針對特定工作負載類型量身打造的預先設定安全規則。

於本教學課程中，您會了解如何：
+ 建立保護套件 (Web ACL)
+ 設定應用程式特定的保護設定
+ 新增要保護 AWS 的資源
+ 選擇和自訂規則
+ 設定記錄和監控

**注意**  
AWS 對於您在本教學課程中建立的資源， 通常會向您收取每天不到 0.25 USD 的費用。當您完成時，我們建議您刪除資源以免產生不必要的費用。

### 步驟 1：設定 AWS WAF


如果您尚未遵循 中的一般設定步驟[設定您的帳戶以使用 服務](setting-up-waf.md)，請立即執行此操作。

### 步驟 2：建立保護套件 (Web ACL)


在此步驟中，您將建立保護套件 (Web ACL)，並設定其基本設定以符合您的應用程式類型。

1. 登入新的 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/wafv2-pro](https://console.aws.amazon.com/wafv2-pro) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇**資源與保護套件 (Web ACLs)**。

1. 在**資源與保護套件 (Web ACLs**頁面上，選擇**新增保護套件 (Web ACL)**。

1. 在**告訴我們您的應用程式**，針對**應用程式類別**，選取一或多個最能描述您應用程式的應用程式類別。

1. 針對**流量來源**，選擇應用程式處理的流量類型：
   + **API** - 僅適用於 API 的應用程式
   + **Web** - 僅適用於 Web 的應用程式
   + **API 和 Web** - 適用於處理這兩種流量的應用程式

### 步驟 3：新增要保護的資源


現在，您將指定要使用保護套件 (Web ACL) 保護哪些 AWS 資源。

1. 在**要保護的資源**下，選擇**新增資源**。

1. 選擇要與此保護套件建立關聯的 AWS 資源類別 (Web ACL)：
   + Amazon CloudFront 分佈
   + 區域資源

   如需資源類型的詳細資訊，請參閱 [將保護與 AWS 資源建立關聯](web-acl-associating.md)。

### 步驟 4：選擇初始保護


在此步驟中，您將選取保護套件 (Web ACL) 的規則。對於第一次使用的使用者，我們建議您選擇**建議**選項。

AWS WAF 會根據您在**告訴我們您的應用程式**區段中的選擇，為您產生**建議**。這些套件會為您的應用程式類型實作安全最佳實務。
+  選擇**下一步**以繼續保護套件 (Web ACL) 設定。

**注意**  
如果您有興趣建立自訂規則或使用**您建置的** 選項，建議您先取得預先設定選項的體驗。如需建立自訂保護套件 (Web ACLs) 和規則的詳細資訊，請參閱 [在 中建立保護套件 (Web ACL) AWS WAF](web-acl-creating.md)。

### 步驟 5：自訂保護套件 (Web ACL) 設定


現在，您將設定其他設定，例如預設動作、速率限制和記錄。

1. 在**名稱和描述**下，輸入保護套件的名稱 (Web ACL)。或者，輸入描述。
**注意**  
您無法在建立保護套件 (Web ACL) 之後變更名稱。

1. 在**自訂保護套件 (Web ACL)** 下，設定下列設定：

   1. 在**預設規則動作**下，為不符合任何規則的請求選擇預設動作。如需詳細資訊，請參閱[中的自訂 Web 請求和回應 AWS WAF](waf-custom-request-response.md)。

   1. 在**規則組態**下，自訂這些設定：
      + **預設速率限制** - 設定限制以防止 DDoS 攻擊
      + **IP 地址** - 設定 IP 允許/封鎖清單
      + 國家/**地區特定原始**伺服器 - 依國家/地區管理存取權

   1. 針對**記錄目的地**，設定您要存放日誌的位置。如需詳細資訊，請參閱[AWS WAF 記錄目的地](logging-destinations.md)。

1. 檢閱您的設定，然後選擇**新增保護套件 (Web ACL)**。

### 步驟 6：清理資源


現在，您已成功完成教學課程。為了防止您的帳戶產生 AWS WAF 額外費用，您應該刪除您建立的保護套件 (Web ACL)，或修改它以符合您的生產需求。

**刪除您的保護套件 (Web ACL)**

1. 在導覽窗格中，選擇**資源與保護套件 (Web ACLs)**。

1. 選取您建立的保護套件 (Web ACL)。

1. 選擇垃圾桶圖示，然後輸入「刪除」來確認刪除。

**注意**  
如果您計劃在生產環境中使用此保護套件 (Web ACL)，而不是將其刪除，您應該檢閱和調整保護設定，以符合應用程式的安全需求。

# AWS WAF 開始使用標準主控台體驗
設定 AWS WAF （標準主控台）

 AWS WAF 主控台會引導您完成設定程序 AWS WAF ，以根據您指定的條件封鎖或允許 Web 請求，例如請求源自的 IP 地址或請求中的值。在此步驟中，您會建立保護套件 (Web ACL)。如需 AWS WAF 保護套件 (Web ACLs) 的詳細資訊，請參閱 [在 中設定保護 AWS WAF](web-acl.md)。

本教學課程說明如何使用 AWS WAF 來執行下列任務：
+ 設定 AWS WAF。
+ 使用 AWS WAF 主控台中的精靈建立 Web 存取控制清單 (Web ACL)。

**建立 Web ACL**

  1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 的 AWS WAF 主控台。

  1. 在 AWS WAF 首頁中，選擇**建立 Web ACL**。

  1. 對於 **Name (名稱)**，輸入您要用來識別此 Web ACL 的名稱。
**注意**  
建立 Web ACL 後無法修改名稱。

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

  1. 對於 **CloudWatch 指標名稱**，如果適用，請變更預設名稱。遵循主控台上的指引，以瞭解有效的字元。名稱不能包含特殊字元、空格或保留給 AWS WAF使用的指標名稱，包括「All」和「Default\$1Action」。
**注意**  
您無法在建立 Web ACL 之後變更 CloudWatch 指標名稱。

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

  1. （選用） 對於**關聯的 AWS 資源 - 選用**，選擇**新增 AWS 資源**。在對話方塊中，選擇您要關聯的資源，然後選擇**新增**。 AWS WAF 會返回**描述 Web ACL 和關聯的 AWS 資源**頁面。

  1. 選擇**下一步**。

**注意**  
AWS 對於您在本教學課程中建立的資源， 通常會向您收取每天不到 0.25 USD 的費用。當您完成此教學課程，我們建議您刪除資源以免產生不必要的費用。

## 步驟 1：設定 AWS WAF


如果您尚未遵循 中的一般設定步驟[設定您的帳戶以使用 服務](setting-up-waf.md)，請立即執行此操作。

## 步驟 2：建立 Web ACL


 AWS WAF 主控台會引導您完成設定程序 AWS WAF ，以根據您指定的條件封鎖或允許 Web 請求，例如請求源自的 IP 地址或請求中的值。在此步驟中，建立Web ACL。如需 AWS WAF Web ACLs的詳細資訊，請參閱 [在 中設定保護 AWS WAF](web-acl.md)。

**建立 Web ACL**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在 AWS WAF 首頁中，選擇**建立 Web ACL**。

1. 對於 **Name (名稱)**，輸入您要用來識別此 Web ACL 的名稱。
**注意**  
建立 Web ACL 後無法修改名稱。

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

1. 對於 **CloudWatch 指標名稱**，如果適用，請變更預設名稱。遵循主控台上的指引，以瞭解有效的字元。名稱不能包含特殊字元、空格或保留給 AWS WAF使用的指標名稱，包括「All」和「Default\$1Action」。
**注意**  
您無法在建立 Web ACL 之後變更 CloudWatch 指標名稱。

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

1. （選用） 對於**關聯的 AWS 資源 - 選用**，選擇**新增 AWS 資源**。在對話方塊中，選擇您要關聯的資源，然後選擇**新增**。 AWS WAF 會返回**描述 Web ACL 和關聯的 AWS 資源**頁面。

1. 選擇**下一步**。

## 步驟 3：新增字串比對規則


在此步驟中，您會建立使用字串比對陳述式的規則，並指出如何處理比對請求。字串比對規則陳述式可識別您要 AWS WAF 在請求中搜尋的字串。通常，字串包含可列印 ASCII 字元，但您可以指定十六字元範圍 0x00 到 0xFF 的任何字元 (小數點 0 到 255)。除了指定要搜尋的字串之外，您還可以指定要搜尋的 Web 請求元件，例如標頭、查詢字串或請求內文。

此陳述式類型在 Web 請求元件上運作，且需要下列請求元件設定：
+ **請求元件** – 要檢查的 Web 請求部分，例如查詢字串或內文。
**警告**  
如果您檢查請求元件**內**文、**JSON 內文**、**標頭**或 **Cookie**，請閱讀有關 AWS WAF 可檢查多少內容的限制[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。

  如需 Web 請求元件的詳細資訊，請參閱 [在 中調整規則陳述式設定 AWS WAF](waf-rule-statement-fields.md)。
+ **選用文字轉換** – AWS WAF 您想要在檢查請求元件之前對請求元件執行的轉換。例如，您可以將 轉換為小寫或標準化空格。如果您指定多個轉換， 會依列出的順序 AWS WAF 處理它們。如需相關資訊，請參閱[在 中使用文字轉換 AWS WAF](waf-rule-statement-transformation.md)。

如需 AWS WAF 規則的其他資訊，請參閱 [AWS WAF 規則](waf-rules.md)。

**建立字串比對規則陳述式**

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 (規則視覺化編輯器)**。

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

1. 對於 **Type (類型)**，選擇 **Regular rule (一般規則)**。

1. 對於 **If a request (如果請求)**，選擇 **matches the statement (比對陳述式)**。

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

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

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

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

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

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

   在此範例中，輸入 **MyAgent**。 AWS WAF 將在 Web 請求中檢查 `User-Agent`標頭的值 `MyAgent`。

1. 將 **Text transformation (文字轉換)** 保持設定為 **None (無)**。

1. 針對**動作**，選取您希望規則在符合 Web 請求時採取的動作。在此範例中，選擇**計數**並保留其他選項。計數動作會為符合規則的 Web 請求建立指標，但不會影響是否允許或封鎖請求。如需動作選擇的詳細資訊，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)和 [設定規則優先順序](web-acl-processing-order.md)。

1. 選擇**新增規則**。

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


AWS 受管規則提供一組受管規則群組供您使用，其中大多數都是免費提供給 AWS WAF 客戶。如需規則群組的詳細資訊，請參閱[AWS WAF 規則群組](waf-rule-groups.md)。我們會將 AWS 受管規則規則群組新增至此 Web ACL。

**新增 AWS 受管規則規則群組**

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

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

1. 對於您要新增的規則群組，請執行下列動作：

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

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

   1. 選擇**儲存規則**。

1. 在**新增受管規則群組**頁面中，選擇**新增規則**。這會讓您返回**新增規則和規則群組**頁面。

## 步驟 5：完成 Web ACL 組態


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

**完成您的 Web ACL 組態**

1. 在 **Add rules and rule groups (新增規則和規則群組)** 頁面上，選擇 **Next (下一步)**。

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

1. 選擇**下一步**。

1. 在**設定指標**頁面上，對於 **Amazon CloudWatch 指標**，您可以查看規則和規則群組的計劃指標，也可以查看 Web 請求取樣選項。如需檢視取樣請求的詳細資訊，請參閱 [檢視 Web 請求的範例](web-acl-testing-view-sample.md)。如需 Amazon CloudWatch 指標的相關資訊，請參閱 [使用 Amazon CloudWatch 監控](monitoring-cloudwatch.md)。

   您可以在 AWS WAF 主控台的 Web ACL 頁面上，流量概觀索引標籤下存取 Web **流量**指標的摘要。主控台儀表板提供 Web ACL Amazon CloudWatch 指標的近乎即時摘要。如需詳細資訊，請參閱[保護套件的流量概觀儀表板 (Web ACLs)](web-acl-dashboards.md)。

1. 選擇**下一步**。

1. 在 **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 USD 的費用。當您完成時，我們建議您刪除資源以免產生不必要的費用。

**刪除 AWS WAF 收費的物件**

1. 在 **Web ACL** 頁面中，從清單中選擇您的 Web ACL，然後選擇**編輯**。

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

1. 在下列每個畫面中，選擇**下一步**，直到您返回 **Web ACL** 頁面。

   在 **Web ACL** 頁面中，從清單中選擇您的 Web ACL，然後選擇**刪除**。

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

# AWS WAF 運作方式
AWS WAF 新增主控台使用者體驗

 AWS WAF 主控台現在具有簡化的加入工作流程，以及透過保護套件 (Web ACLs) 管理 Web ACLs改善方式。

您可以使用 AWS WAF 來控制受保護的資源如何回應 HTTP(S) Web 請求。您可以透過定義 Web 存取控制清單 (Web ACL)，然後將其與您要保護的一或多個 Web 應用程式資源建立關聯來執行此操作。相關聯的 資源會將傳入的請求轉送至 AWS WAF ，以供 Web ACL 檢查。

**新的主控台**可簡化 Web ACL 組態程序。它引入了保護套件來簡化設定，同時保持對安全規則的完全控制。

保護套件是 Web ACLs 的新位置，可簡化主控台中的 Web ACL 管理，但不會變更基礎 Web ACL 功能。使用標準主控台或 API 時，您仍然會直接使用 Web ACLs。

在保護套件 (Web ACL) 中，您可以建立規則來定義要在請求中尋找的流量模式，並指定要對相符請求採取的動作。動作選擇包括下列項目：
+ 允許請求前往受保護的資源進行處理和回應。
+ 封鎖請求。
+ 計數請求。
+ 針對請求執行 CAPTCHA 或挑戰檢查，以驗證人類使用者和標準瀏覽器的使用。

**AWS WAF 元件**  
以下是 的中央元件 AWS WAF：
+ **Web ACLs** – 您可以使用 Web 存取控制清單 (Web ACL) 來保護一組 AWS 資源。您可以建立一個 Web ACL，並透過新增規則來定義其保護策略。規則會定義檢查 Web 請求的條件，並指定針對符合其條件的請求所要採取的動作。您也可以為 Web ACL 設定預設動作，指出是否透過規則尚未封鎖或允許的任何請求來封鎖或允許 。如需 Web ACL 的詳細資訊，請參閱[在 中設定保護 AWS WAF](web-acl.md)。

  Web ACL 是 AWS WAF 資源。
+ **保護套件 (Web ACL)** – 在新的主控台中，保護套件是 Web ACLs的新位置。在設定期間，您會提供應用程式和資源的相關資訊。 AWS WAF 會針對您的案例提供量身打造的保護套件，然後建立 Web ACL，其中包含您所選保護套件 (Web ACL) 定義的規則、規則群組和動作。如需保護套件 (Web ACLs) 的詳細資訊，請參閱 [在 中設定保護 AWS WAF](web-acl.md)。

  保護套件 (Web ACL) 是 AWS WAF 資源。
+ **規則** – 每個規則都包含定義檢查條件的陳述式，以及在 Web 請求符合條件時要採取的動作。當 Web 請求符合準則時，這是一個相符。您可以設定規則來封鎖相符的請求、允許它們通過、計數它們，或對使用 CAPTCHA 拼圖或靜音用戶端瀏覽器挑戰的請求執行機器人控制。如需規則的詳細資訊，請參閱[AWS WAF 規則](waf-rules.md)。

  規則不是 AWS WAF 資源。它只存在於保護套件 (Web ACL) 或規則群組的內容中。
+ **規則群組** – 您可以直接在保護套件 (Web ACL) 內或在可重複使用的規則群組中定義規則。 AWS 受管規則和 AWS Marketplace 賣方會提供受管規則群組供您使用。您也可以定義自己的規則群組。如需規則群組的詳細資訊，請參閱[AWS WAF 規則群組](waf-rule-groups.md)。

  規則群組是 AWS WAF 資源。
+ **Web ACL 容量單位 (WCUs)** – AWS WAF 使用 WCUs 計算和控制執行規則、規則群組、保護套件 (Web ACLs) 或 Web ACLs 所需的操作資源。

  WCU 不是 AWS WAF 資源。它只存在於保護套件 (Web ACL)、規則或規則群組的內容中。

# 您可以使用 保護的資源 AWS WAF


您可以使用 AWS WAF 保護套件 (Web ACL) 來保護全域或區域資源類型。您可以透過將保護套件 (Web ACL) 與您要保護的資源建立關聯來執行此操作。保護套件 (Web ACL) 及其使用的任何 AWS WAF 資源都必須位於關聯資源所在的 區域中。對於 Amazon CloudFront 分佈，這會設定為美國東部 （維吉尼亞北部）。

**Amazon CloudFront 分佈**  
您可以使用 AWS WAF 主控台或 APIs，將 AWS WAF 保護套件 (Web ACL) 與 CloudFront 分佈建立關聯。您也可以在建立或更新分佈本身時，將保護套件 (Web ACL) 與 CloudFront 分佈建立關聯。若要在 中設定關聯 AWS CloudFormation，您必須使用 CloudFront 分佈組態。如需 Amazon CloudFront 的相關資訊，請參閱《*Amazon CloudFront 開發人員指南*》中的[使用 AWS WAF 控制對內容的存取](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-awswaf.html)。

AWS WAF 可供 CloudFront 分發全域使用，但您必須使用美國東部區域 （維吉尼亞北部） 來建立保護套件 (Web ACL) 和保護套件 (Web ACL) 中使用的任何資源，例如規則群組、IP 集和 regex 模式集。有些界面提供「全域 (CloudFront)」的區域選擇。選擇此項目與選擇美國東部 （維吉尼亞北部） 或「us-east-1」區域相同。

**區域資源**  
您可以在 AWS WAF 可使用 的所有區域中保護區域資源。您可以在 的[AWS WAF 端點和配額](https://docs.aws.amazon.com/general/latest/gr/waf.html)中查看清單*Amazon Web Services 一般參考*。

您可以使用 AWS WAF 來保護下列區域資源類型：
+ Amazon API Gateway REST API
+ Application Load Balancer
+ AWS AppSync GraphQL API
+ Amazon Cognito 使用者集區
+ AWS App Runner 服務
+ AWS 已驗證的存取執行個體
+ AWS Amplify

您只能將保護套件 (Web ACL) 與其中的 Application Load Balancer 建立關聯 AWS 區域。例如，您無法將保護套件 (Web ACL) 與開啟的 Application Load Balancer 建立關聯 AWS Outposts。

您必須建立想要與 Global CloudFront 區域中的 Amplify 應用程式建立關聯的任何保護套件 (Web ACL)。您的 中可能已有區域保護套件 (Web ACL) AWS 帳戶，但它們與 Amplify 不相容。

保護套件 (Web ACL) 及其使用的任何其他 AWS WAF 資源必須位於與受保護資源相同的區域中。監控和管理受保護區域資源的 Web 請求時， 會將所有資料 AWS WAF 保留在與受保護資源相同的區域中。

**多個資源關聯的限制**  
您可以使用下列限制，將單一保護套件 (Web ACL) 與一或多個 AWS 資源建立關聯：
+ 每個 AWS 資源只能與一個保護套件 (Web ACL) 建立關聯。保護套件 (Web ACL) 與 AWS 資源之間的關係是one-to-many。
+ 您可以將保護套件 (Web ACL) 與一或多個 CloudFront 分佈建立關聯。您無法將與 CloudFront 分佈相關聯的保護套件 (Web ACL) 與任何其他 AWS 資源類型建立關聯。

# 使用更新的主控台體驗


 AWS WAF 提供兩種使用 主控台的選項：

 **新的主控台**旨在簡化標準主控台工作流程所需的 Web ACL 組態程序。您可以使用引導式工作流程，透過保護套件 (Web ACL) 簡化 Web ACL 建立和管理程序。保護套件 (Web ACL) 可讓您更輕鬆地在主控台中使用和管理 Web ACLs，但功能與 Web ACL 沒有差異。除了改善的保護組態程序之外，新的主控台還透過安全儀表板提供增強的防護可見性，讓您更輕鬆地在 AWS WAF 主控台中監控您的安全狀態。

 **標準 AWS WAF 主控台**提供使用 Web ACLs 設定 Web 應用程式防火牆保護的傳統方法。它提供對個別規則和規則群組的精細控制，並熟悉現有 AWS WAF 使用者。使用此主控台，您可以詳細控制保護組態，以便精確自訂您的安全設定。

**提示**  
 選擇最符合您需求的主控台體驗。如果您剛接觸 AWS WAF 或想要根據 AWS 建議開始設定保護，我們建議您從新的主控台體驗開始。不過，標準體驗一律可從 主控台的導覽窗格開啟。

## 新主控台和標準主控台體驗之間的功能同位


新的主控台體驗會維持與現有主控台的完整功能同位，同時引進新功能：
+ 所有現有 AWS WAF 功能仍然可用
+ 透過統一儀表板增強可見性
+ 簡化的組態工作流程
+ 新的保護套件 (Web ACL) 範本

**重要**  
新的主控台體驗使用與現有主控台相同的 WAFv2 APIs。這表示在新主控台中建立的保護套件會在 API 層級實作為標準 WAFv2 Web ACLs。

## 主要差異



**主控台體驗的比較**  

| 功能 | 先前的 AWS WAF 主控台體驗 | 更新的主控台體驗 | 
| --- | --- | --- | 
| 組態程序 | 多頁工作流程 | 單頁界面 | 
| 規則組態 | 建立個別規則 | 預先設定保護套件的選項 | 
| 監控 | 個別儀表板 | 統一可見性，包括 AI 流量分析 | 

## 了解新的儀表板


可透過新 取得的儀表板可透過這些視覺化效果，統一了解您的安全狀態：

**流量洞察建議** – AWS 威脅情報會監控您過去 2 週的允許流量、分析漏洞，並提供下列項目：  
+ 流量型規則建議
+ 應用程式特定的安全建議
+ 保護最佳化指引

**摘要** – 顯示指定時間範圍內所有流量的請求計數。您可以使用下列條件來篩選流量資料：  
+ **規則** – 依保護套件中的個別規則篩選。
+ **動作** – 顯示對 Allow、Block、Captcha 和 Challenge 等流量所採取特定動作的計數。
+ **流量類型** – 僅顯示特定流量類型的計數，例如 anti-DDoS 或機器人。
+ **時間範圍 ** – 從預先定義的時間範圍中選擇，或設定自訂範圍。
+ **本機或 UTC 時間** – 您可以設定偏好的時間格式。

**AI 流量分析** – 提供 AI 機器人和代理程式活動的全面可見性：  
+ **機器人識別** – 機器人名稱、組織和驗證狀態。
+ **意圖分析** – AI 代理器的目的和行為模式。
+ **存取模式** – 最常存取URLs 和端點。
+ **時間趨勢** – 一天中的時間和歷史趨勢的活動模式 (0-14 天）。
+ **流量特性** – AI 流量的磁碟區、分佈和異常偵測。

**保護活動** – 視覺化您的保護規則及其順序如何有助於終止動作。  
+ **流量流經您的規則** – 顯示流量流經您的規則。從**連續規則檢視**切換到**非連續規則檢視**，以查看規則順序如何影響結果。
+ **規則動作及其結果** – 顯示規則在指定期間內對流量採取的終止動作。

**動作總計 ** – 視覺化在指定時間範圍內對請求所採取動作總數的圖表。使用**過去 3 小時浮水印**選項，將目前時間範圍與前 3 小時時間範圍進行比較。您可以依下列條件篩選資料：  
+ **允許動作**
+ **動作總數**
+ **Captcha 動作**
+ **挑戰動作**
+ **封鎖動作**

**所有規則** – 視覺化保護套件中所有規則指標的圖表。  
+  使用 **Overlay 過去 3 小時**選項，比較目前時間範圍與前 3 小時時間範圍。

**概觀儀表板** – 提供安全狀態的完整圖形檢視，包括下列項目：  
+ **流量特性** – 請參閱依原始伺服器、攻擊類型或依傳送請求之用戶端裝置類型的流量概觀。
+ **規則特性** – 10 個最常見規則和終止動作的攻擊明細。
+ **機器人** – 視覺化機器人活動、偵測、類別和機器人相關訊號標籤。
+ **反 DDoS** – 偵測到和緩解的 layer 7 DDoS 活動的概觀。

# 在 中設定保護 AWS WAF
設定保護

此頁面說明什麼是保護套件 (Web ACLs) 及其運作方式。

 保護套件 (Web ACL) 可讓您精細控制受保護資源回應的所有 HTTP(S) Web 請求。您可以保護 Amazon CloudFront、Amazon API Gateway、Application Load Balancer AWS AppSync、Amazon Cognito、 AWS App Runner AWS Amplify、Amazon CloudWatch 和 AWS Verified Access 資源。

您可以使用如下的準則來允許或封鎖請求：
+ 請求的 IP 地址來源
+ 請求的來源國家/地區
+ 字串比對或規則運算式 (regex) 在請求的一部分比對
+ 請求的特定部分的大小
+ 偵測惡意 SQL 程式碼或指令碼 

您也可以測試這些條件的任何組合。您可以封鎖或計數不僅符合指定條件的 Web 請求，也可以在一分鐘內超過指定的請求數量。您可以使用邏輯運算子結合條件。您也可以針對請求執行 CAPTCHA 拼圖和靜音用戶端工作階段挑戰。

您在 AWS WAF 規則陳述式中提供相符條件和要對相符項目採取的動作。您可以直接在保護套件 (Web ACL) 內以及保護套件 (Web ACL) 中使用的可重複使用規則群組中定義規則陳述式。如需選項的完整清單，請參閱 [在 中使用規則陳述式 AWS WAF](waf-rule-statements.md)和 [在 中使用規則動作 AWS WAF](waf-rule-action.md)。

當您建立保護套件 (Web ACL) 時，您可以指定要使用的 資源類型。如需相關資訊，請參閱[在 中建立保護套件 (Web ACL) AWS WAF](web-acl-creating.md)。定義保護套件 (Web ACL) 之後，您可以將其與您的資源建立關聯，以開始為它們提供保護。如需詳細資訊，請參閱[將保護與 AWS 資源建立關聯或取消關聯](web-acl-associating-aws-resource.md)。

**注意**  
在某些情況下， AWS WAF 可能會遇到內部錯誤，延遲回應有關是否允許或封鎖請求的相關 AWS 資源。在這些情況下，CloudFront 通常會允許請求或提供內容，而區域服務通常會拒絕請求且不提供內容。

**生產流量風險**  
在生產流量的保護套件 (Web ACL) 中部署變更之前，請先在預備或測試環境中進行測試和調校，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調整更新的規則，然後再啟用它們。如需準則，請參閱[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

**注意**  
在保護套件 (Web ACL) 中使用超過 1，500 WCUs 會產生超出基本保護套件 (Web ACL) 價格的成本。如需詳細資訊，請參閱 [中的 Web ACL 容量單位 WCUs) AWS WAF](aws-waf-capacity-units.md) 和 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

**更新期間的暫時性不一致**  
當您建立或變更保護套件 (Web ACL) 或其他 AWS WAF 資源時，變更會花費少量的時間傳播到存放資源的所有區域。傳播時間可以是幾秒鐘到幾分鐘。

以下是您在變更傳播期間可能注意到的暫時不一致的範例：
+ 建立保護套件 (Web ACL) 之後，如果您嘗試將其與資源建立關聯，您可能會收到例外狀況，指出保護套件 (Web ACL) 無法使用。
+ 將規則群組新增至保護套件 (Web ACL) 之後，新的規則群組規則可能會在使用保護套件 (Web ACL) 的一個區域中生效，而不會在另一個區域中生效。
+ 變更規則動作設定後，您可能會在某些地方看到舊動作，在其他地方看到新動作。
+ 將 IP 地址新增至封鎖規則中使用的 IP 集之後，新的地址可能會在某個區域中遭到封鎖，同時仍允許在另一個區域中封鎖。

**Topics**
+ [

# 在 中建立保護套件 (Web ACL) AWS WAF
](web-acl-creating.md)
+ [

# 在 中編輯保護套件 (Web ACL) AWS WAF
](web-acl-editing.md)
+ [

# 管理規則群組行為
](web-acl-rule-group-settings.md)
+ [

# 將保護與 AWS 資源建立關聯或取消關聯
](web-acl-associating-aws-resource.md)
+ [

# 在 中使用保護套件 (Web ACLs) 搭配規則和規則群組 AWS WAF
](web-acl-processing.md)
+ [

# 在 中設定保護套件 (Web ACL) 預設動作 AWS WAF
](web-acl-default-action.md)
+ [

# 在 中管理主體檢查的考量事項 AWS WAF
](web-acl-setting-body-inspection-limit.md)
+ [

# 在 中設定 CAPTCHA、挑戰和字符 AWS WAF
](web-acl-captcha-challenge-token-domains.md)
+ [

# 在 中檢視 Web 流量指標 AWS WAF
](web-acl-working-with.md)
+ [

# 刪除保護套件 (Web ACL)
](web-acl-deleting.md)

# 在 中建立保護套件 (Web ACL) AWS WAF
建立保護套件 (Web ACL)

------
#### [ Using the new console ]

本節提供透過新 AWS 主控台建立保護套件 (Web ACLs) 的程序。

若要建立新的保護套件 (Web ACL)，請依照此頁面的程序使用保護套件 (Web ACL) 建立精靈。

**生產流量風險**  
在生產流量的保護套件 (Web ACL) 中部署變更之前，請先在預備或測試環境中進行測試和調校，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調整更新的規則，然後再啟用它們。如需準則，請參閱[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

**注意**  
在保護套件 (Web ACL) 中使用超過 1，500 WCUs 會產生超出基本保護套件 (Web ACL) 價格的成本。如需詳細資訊，請參閱 [中的 Web ACL 容量單位 WCUs) AWS WAF](aws-waf-capacity-units.md) 和 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

1. 登入新的 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/wafv2-pro](https://console.aws.amazon.com/wafv2-pro) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇**資源與保護套件 (Web ACLs)**。

1. 在**資源與保護套件 (Web ACLs**頁面上，選擇**新增保護套件 (Web ACL)**。

1. 在**告訴我們您的應用程式**，針對**應用程式類別**，選取一或多個應用程式類別。

1. 針對**流量來源**，選擇應用程式與 **API**、**Web** 或 **API 和 Web 兩者**互動的流量類型。

1. 在**要保護的資源下，**選擇**新增資源**。

1. 選擇您要與此保護套件 (Web ACL) 建立關聯的資源類別 AWS ，可以是 Amazon CloudFront 分佈或區域資源。如需詳細資訊，請參閱[將保護與 AWS 資源建立關聯或取消關聯](web-acl-associating-aws-resource.md)。

1. 在**選擇初始保護下，**選取您偏好的保護層級：**建議**、**必要**或您**建置保護**層級。

1. （選用） 如果您選擇**您建置它**，請建置您的規則。

   1. （選用） 如果您想要新增自己的規則，請在**新增規則**頁面上，選擇**自訂規則**，然後選擇**下一步**。

      1. 選擇規則類型。

      1. 對於 **Action (動作)**，選取規則在比對到 Web 請求時要採取的動作。如需有關您的選擇的相關資訊，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)和 [在 中使用保護套件 (Web ACLs) 搭配規則和規則群組 AWS WAF](web-acl-processing.md)。

         如果您使用的是 **CAPTCHA**或 **Challenge**動作，請視需要調整規則的**抗擾性時間**組態。如果您未指定 設定，則規則會從保護套件 (Web ACL) 繼承它。若要修改保護套件 (Web ACL) 豁免時間設定，請在建立保護套件 (Web ACL) 之後對其進行編輯。如需豁免時間的詳細資訊，請參閱 [在 中設定時間戳記過期和字符豁免時間 AWS WAF](waf-tokens-immunity-times.md)。
**注意**  
當您在其中一個規則中使用 CAPTCHA或 Challenge規則動作，或做為規則群組中的規則動作覆寫時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

         如果您想要自訂請求或回應，請選擇該請求的選項，並填寫自訂的詳細資訊。如需詳細資訊，請參閱[中的自訂 Web 請求和回應 AWS WAF](waf-custom-request-response.md)。

         如果您想要讓規則將標籤新增至相符的 Web 請求，請選擇該請求的選項，然後填入標籤詳細資訊。如需詳細資訊，請參閱[中的 Web 請求標籤 AWS WAF](waf-labels.md)。

      1. 對於 **Name (名稱)**，輸入您要用來識別此規則的名稱。請勿使用以 `AWS`、`PreFM`、 `Shield`或 開頭的名稱`PostFM`。這些字串是預留的，或可能導致與其他 服務為您管理的規則群組混淆。

      1. 根據您的需求輸入規則定義。您可以在邏輯`AND`和規則陳述式中結合`OR`規則。精靈會根據內容，引導您完成每個規則的選項。如需規則選項的相關資訊，請參閱 [AWS WAF 規則](waf-rules.md)。

      1. 選擇**建立規則**。
**注意**  
如果您將多個規則新增至保護套件 (Web ACL)， 會依為保護套件列出的順序 AWS WAF (Web ACL) 評估規則。如需詳細資訊，請參閱[在 中使用保護套件 (Web ACLs) 搭配規則和規則群組 AWS WAF](web-acl-processing.md)。

   1. （選用） 如果您要新增受管規則群組，請在**新增規則**頁面上，選擇 **AWS受管規則群組**或 **AWS Marketplace 規則群組**，然後選擇**下一步**。對於您要新增的每個受管規則群組執行下列動作：

      1. 在**新增規則**頁面上，展開受管 AWS 規則群組或 AWS Marketplace 賣方的清單。

      1. 選擇規則群組的版本。

      1. 若要自訂保護套件 (Web ACL) 使用規則群組的方式，請選擇**編輯**。以下是常見的自訂設定：
         + 在檢查區段中新增縮小範圍陳述式，以減少規則群組**檢查**的 Web 請求範圍。如需此選項的詳細資訊，請參閱[在 中使用縮小範圍陳述式 AWS WAF](waf-rule-scope-down-statements.md)。
         + 覆寫規則覆寫中部分或全部規則**的規則**動作。如果您未定義規則的覆寫動作，評估會使用規則群組內定義的規則動作。如需此選項的詳細資訊，請參閱[在 中覆寫規則群組動作 AWS WAF](web-acl-rule-group-override-options.md)。
         + 有些受管規則群組會要求您提供額外的組態。請參閱受管規則群組提供者的文件。如需 AWS 受管規則規則群組的特定資訊，請參閱 [AWS 的受管規則 AWS WAF](aws-managed-rule-groups.md)。

      1. 選擇**下一步**。

   1. （選用） 如果您想要新增自己的規則群組，請在**新增規則**頁面上，選擇**自訂規則群組**，然後選擇**下一步**。對於您要新增的每個規則群組執行下列動作：

      1. 針對**名稱**，在此保護套件 (Web ACL) 中輸入您要用於規則群組規則的名稱。請勿使用以 `AWS`、`PreFM`、 `Shield`或 開頭的名稱`PostFM`。這些字串是預留的，或可能導致與其他 服務為您管理的規則群組混淆。請參閱 [辨識其他服務提供的規則群組](waf-service-owned-rule-groups.md)。

      1. 從清單中選擇您的規則群組。

      1. （選用） 在**規則組態**下，選擇**規則覆寫**。您可以將規則動作覆寫為任何有效的動作設定，就像對受管規則群組所做的一樣。

      1. （選用） 在**新增標籤**下，選擇**新增標籤**，然後輸入要新增至符合規則之請求的任何標籤。稍後在相同保護套件 (Web ACL) 中評估的規則可以參考此規則新增的標籤。

      1. 選擇**建立規則**。

1. 在**名稱和描述**下，輸入保護套件的名稱 (Web ACL)。或者，輸入描述。
**注意**  
您無法在建立保護套件 (Web ACL) 之後變更名稱。

1. （選用） 在**自訂保護套件 (Web ACL)** 下，設定預設規則動作、組態和記錄目的地：

   1. （選用） 在**預設規則動作**下，選擇保護套件 (Web ACL) 的預設動作。這是當保護套件 (Web ACL) 中的規則未明確 AWS WAF 採取動作時，對請求採取的動作。如需詳細資訊，請參閱[中的自訂 Web 請求和回應 AWS WAF](waf-custom-request-response.md)。

   1. （選用） 在規則組態下，自訂保護套件 (Web ACL) 中規則的設定：
      + **預設速率限制** - 設定速率限制以封鎖可能影響可用性、危及安全性或消耗過多資源的阻斷服務 (DoS) 特性。此規則速率會封鎖每個 IP 地址超出應用程式允許速率的請求。如需詳細資訊，請參閱[在 中使用以速率為基礎的規則陳述式 AWS WAF](waf-rule-statement-type-rate-based.md)
      + **IP 地址** - 輸入要封鎖或允許的 IP 地址。此設定會覆寫其他規則。
      + 國家/**地區特定原始**伺服器 - 封鎖來自指定國家/地區的請求或計算所有流量。

   1. 對於**記錄目的地**，設定記錄目的地類型和存放日誌的位置。如需詳細資訊，請參閱[AWS WAF 記錄目的地](logging-destinations.md)。

1. 檢閱您的設定，然後選擇**新增保護套件 (Web ACL)**。

------
#### [ Using the standard console ]

本節提供透過 AWS 主控台建立 Web ACLs 的程序。

若要建立新的 Web ACL，請依照此頁面的程序使用 Web ACL 建立精靈。

**生產流量風險**  
在 Web ACL 中部署生產流量的變更之前，請在預備或測試環境中測試和調校變更，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調整更新的規則，然後再啟用它們。如需準則，請參閱[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

**注意**  
在保護套件 (Web ACL) 中使用超過 1，500 WCUs 會產生超出基本保護套件 (Web ACL) 價格的成本。如需詳細資訊，請參閱 [中的 Web ACL 容量單位 WCUs) AWS WAF](aws-waf-capacity-units.md) 和 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

**建立 Web ACL**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中選擇 **Web ACLs**，然後選擇**建立 Web ACL**。

1. 對於 **Name (名稱)**，輸入您要用來識別此 Web ACL 的名稱。
**注意**  
建立 Web ACL 後無法修改名稱。

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

1. 對於 **CloudWatch 指標名稱**，如適用，請變更預設名稱。遵循主控台上的指引，以瞭解有效的字元。名稱不能包含特殊字元、空格或保留給 的指標名稱 AWS WAF，包括 "All" 和 "Default\$1Action"。
**注意**  
您無法在建立 Web ACL 之後變更 CloudWatch 指標名稱。

1. 在**資源類型**下，選擇您要與此 Web ACL 建立關聯的資源類別 AWS ，Amazon CloudFront 分佈或區域資源。如需詳細資訊，請參閱[將保護與 AWS 資源建立關聯或取消關聯](web-acl-associating-aws-resource.md)。

1. 對於**區域**，如果您已選擇區域資源類型，請選擇 AWS WAF 您要存放 Web ACL 的區域。

   您只需為區域資源類型選擇此選項。對於 CloudFront 分佈，區域會硬式編碼至美國東部 （維吉尼亞北部） 區域 `us-east-1`，適用於全域 (CloudFront) 應用程式。

1. (CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access) 對於 **Web 請求檢查大小限制 - 選用**，如果您想要指定不同的內文檢查大小限制，請選取限制。在預設值為 16 KB 的情況下檢查內文大小可能會產生額外費用。如需此選項的詳細資訊，請參閱[在 中管理主體檢查的考量事項 AWS WAF](web-acl-setting-body-inspection-limit.md)。

1. （選用） 對於**關聯的 AWS 資源 - 選用**，如果您現在要指定資源，請選擇**新增 AWS 資源**。在對話方塊中，選擇您要關聯的資源，然後選擇 **Add**. AWS WAF returns you to the **Describe Web ACL and associated AWS resources** page。
**注意**  
當您選擇將 Application Load Balancer 與 Web ACL 建立關聯時，就會啟用**資源層級 DDoS 保護**。如需詳細資訊，請參閱[AWS WAF 分散式阻斷服務 (DDoS) 預防](waf-anti-ddos.md)。

1. 選擇**下一步**。

1. (選用) 如果您要新增受管規則群組，在 **Add rules and rule groups (新增規則和規則群組)** 頁面上，選擇 **Add rules (新增規則)**，然後選擇 **Add managed rule groups (新增受管規則群組)**。對於您要新增的每個受管規則群組執行下列動作：

   1. 在**新增受管規則群組**頁面上，展開受管 AWS 規則群組或您選擇的 AWS Marketplace 賣方的清單。

   1. 對於您要新增的規則群組，請在**動作**欄中開啟**新增至 Web ACL** 切換。

      若要自訂 Web ACL 使用規則群組的方式，請選擇**編輯**。以下是常見的自訂設定：
      + 覆寫部分或全部規則的規則動作。如果您未定義規則的覆寫動作，評估會使用規則群組內定義的規則動作。如需此選項的詳細資訊，請參閱[在 中覆寫規則群組動作 AWS WAF](web-acl-rule-group-override-options.md)。
      + 新增縮小範圍陳述式，以減少規則群組檢查的 Web 請求範圍。如需此選項的詳細資訊，請參閱[在 中使用縮小範圍陳述式 AWS WAF](waf-rule-scope-down-statements.md)。
      + 有些受管規則群組會要求您提供額外的組態。請參閱受管規則群組提供者的文件。如需 AWS 受管規則規則群組的特定資訊，請參閱 [AWS 的受管規則 AWS WAF](aws-managed-rule-groups.md)。

      完成設定後，請選擇**儲存規則**。

   選擇 **Add rules (新增規則)** 以完成新增受管規則，並回到 **Add rules and rule group (新增規則和規則群組)** 頁面。
**注意**  
如果您將多個規則新增至 Web ACL， 會依針對 Web ACL 列出的順序 AWS WAF 評估規則。如需詳細資訊，請參閱[在 中使用保護套件 (Web ACLs) 搭配規則和規則群組 AWS WAF](web-acl-processing.md)。

1. (選用) 如果您要新增自己的規則群組，在 **Add rules and rule groups (新增規則和規則群組)** 頁面上，選擇 **Add rules (新增規則)**，然後選擇 **Add my own rules and rule groups (新增我自己的規則和規則群組)**。對於您要新增的每個規則群組執行下列動作：

   1. 在 **Add my own rules and rule groups (新增我自己的規則和規則群組)** 頁面上，選擇 **Rule group (規則群組)**。

   1. 針對**名稱**，輸入您要在此 Web ACL 中用於規則群組規則的名稱。請勿使用以 `AWS`、`PreFM`、 `Shield`或 開頭的名稱`PostFM`。這些字串是預留的，或可能導致與其他 服務為您管理的規則群組混淆。請參閱 [辨識其他服務提供的規則群組](waf-service-owned-rule-groups.md)。

   1. 從清單中選擇您的規則群組。
**注意**  
如果您想要覆寫自己的規則群組的規則動作，請先將其儲存至 Web ACL，然後在 Web ACL 的規則清單中編輯 Web ACL 和規則群組參考陳述式。您可以將規則動作覆寫為任何有效的動作設定，就像對受管規則群組所做的一樣。

   1. 選擇**新增規則**。

1. (選用) 如果您要新增自己的規則，在 **Add rules and rule groups (新增規則和規則群組)** 頁面上，選擇 **Add rules (新增規則)**、**Add my own rules and rule groups (新增我自己的規則和規則群組)**、**Rule builder (規則建置器)** 及 **Rule visual editor (規則視覺化編輯器)**。
**注意**  
主控台 **Rule visual editor (規則視覺化編輯器)** 支援一個層級的巢狀化。例如，您可以使用單一邏輯`AND`或`OR`陳述式，並在其中巢狀一個層級的其他陳述式，但您無法在邏輯陳述式中巢狀化邏輯陳述式。若要管理更複雜的規則陳述式，請使用 **Rule JSON editor(規則 JSON 編輯器)**。如需有關規則的所有選項的資訊，請參閱 [AWS WAF 規則](waf-rules.md)。  
此程序涵蓋 **Rule visual editor (規則視覺化編輯器)**。

   1. 對於 **Name (名稱)**，輸入您要用來識別此規則的名稱。請勿使用以 `AWS`、`PreFM`、 `Shield`或 開頭的名稱`PostFM`。這些字串是預留的，或可能導致與其他 服務為您管理的規則群組混淆。

   1. 根據您的需求輸入規則定義。您可以在邏輯`AND`和規則陳述式中結合`OR`規則。精靈會根據內容，引導您完成每個規則的選項。如需規則選項的相關資訊，請參閱 [AWS WAF 規則](waf-rules.md)。

   1. 對於 **Action (動作)**，選取規則在比對到 Web 請求時要採取的動作。如需有關您的選擇的相關資訊，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)和 [在 中使用保護套件 (Web ACLs) 搭配規則和規則群組 AWS WAF](web-acl-processing.md)。

      如果您使用的是 **CAPTCHA**或 **Challenge**動作，請視需要調整規則的**抗擾性時間**組態。如果您未指定 設定，則規則會從 Web ACL 繼承它。若要修改 Web ACL 豁免時間設定，請在建立 Web ACL 之後對其進行編輯。如需豁免時間的詳細資訊，請參閱 [在 中設定時間戳記過期和字符豁免時間 AWS WAF](waf-tokens-immunity-times.md)。
**注意**  
當您在其中一個規則中使用 CAPTCHA或 Challenge規則動作，或做為規則群組中的規則動作覆寫時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

      如果您想要自訂請求或回應，請選擇該請求的選項，並填寫自訂的詳細資訊。如需詳細資訊，請參閱[中的自訂 Web 請求和回應 AWS WAF](waf-custom-request-response.md)。

      如果您想要讓規則將標籤新增至相符的 Web 請求，請選擇該請求的選項，然後填入標籤詳細資訊。如需詳細資訊，請參閱[中的 Web 請求標籤 AWS WAF](waf-labels.md)。

   1. 選擇**新增規則**。

1. 選擇 Web ACL 的預設動作，Block或 Allow。這是當 Web ACL 中的規則未明確允許或封鎖請求時，對請求 AWS WAF 採取的動作。如需詳細資訊，請參閱[在 中設定保護套件 (Web ACL) 預設動作 AWS WAF](web-acl-default-action.md)。

   如果您想要自訂預設動作，請選擇該動作的選項，然後填入自訂的詳細資訊。如需詳細資訊，請參閱[中的自訂 Web 請求和回應 AWS WAF](waf-custom-request-response.md)。

1. 您可以定義**權杖網域清單**，以在受保護的應用程式之間啟用權杖共用。當您使用 AWS 受管規則規則群組進行 AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP)、 AWS WAF 詐騙控制帳戶接管預防 (ATP) 和 AWS WAF 機器人控制時， CAPTCHA和 Challenge動作以及您實作的應用程式整合 SDKs 會使用字符。

   不允許公有尾碼。例如，您無法使用 `gov.au`或 `co.uk`做為權杖網域。

   根據預設， 僅 AWS WAF 接受受保護資源網域的權杖。如果您在此清單中新增權杖網域， 會 AWS WAF 接受清單中所有網域的權杖，以及相關資源的網域的權杖。如需詳細資訊，請參閱[AWS WAF 保護套件 (Web ACL) 權杖網域清單組態](waf-tokens-domains.md#waf-tokens-domain-lists)。

1. 選擇**下一步**。

1. 在**設定規則優先順序**頁面中，選取規則和規則群組並將其移至您要 AWS WAF 處理的順序。 從清單頂端 AWS WAF 開始處理規則。當您儲存 Web ACL 時， 會依照您列出的順序，將數值優先順序設定 AWS WAF 指派給規則。如需詳細資訊，請參閱[設定規則優先順序](web-acl-processing-order.md)。

1. 選擇**下一步**。

1. 在**設定指標**頁面中，檢閱選項並套用您需要的任何更新。您可以為多個來源提供相同的 **CloudWatch 指標名稱，以結合多個來源的指標**。

1. 選擇**下一步**。

1. 在 **Review and create web ACL (檢閱並建立 Web ACL)** 頁面中，檢查您的定義。如果您要變更任何區域，請針對區域選擇 **Edit (編輯)**。這會帶您回到 Web ACL 精靈中的頁面。進行任何變更，然後在頁面中選擇 **Next (下一步)**，直到您返回 **Review and create web ACL (檢閱並建立 Web ACL)** 頁面為止。

1. 選擇 **建立 Web ACL**。您的新 Web ACL 會列在 **Web ACLs**頁面中。

------

# 在 中編輯保護套件 (Web ACL) AWS WAF
編輯保護套件 (Web ACL)

------
#### [ Using the new console ]

本節提供透過 AWS 主控台編輯保護套件 (Web ACLs) 的程序。

若要從保護套件 (Web ACL) 新增或移除規則或變更組態設定，請使用此頁面上的程序存取保護套件 (Web ACL)。更新保護套件 (Web ACL) 時， 會為您與保護套件 (Web ACL) 相關聯的資源 AWS WAF 提供持續涵蓋。

**生產流量風險**  
在生產流量的保護套件 (Web ACL) 中部署變更之前，請先在預備或測試環境中進行測試和調校，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調整更新的規則，然後再啟用它們。如需準則，請參閱[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

**注意**  
在保護套件 (Web ACL) 中使用超過 1，500 WCUs 會產生超出基本保護套件 (Web ACL) 價格的成本。如需詳細資訊，請參閱 [中的 Web ACL 容量單位 WCUs) AWS WAF](aws-waf-capacity-units.md) 和 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

**編輯保護套件 (Web ACL)**

1. 登入新的 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/wafv2-pro](https://console.aws.amazon.com/wafv2-pro) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇**資源與保護套件 (Web ACLs)**。

1. 選擇您要編輯的保護套件 (Web ACL)。主控台可讓主要保護套件 (Web ACL) 卡可編輯，也會開啟附帶您可以編輯之詳細資訊的側邊窗格。

1. 視需要編輯保護套件 (Web ACL)。

   以下列出可編輯的保護套件 (Web ACL) 組態元件。

   本節提供透過 AWS 主控台編輯 Web ACLs 的程序。

   若要從 Web ACL 新增或移除規則或變更組態設定，請使用此頁面上的程序存取 Web ACL。更新 Web ACL 時， 會為您與 Web ACL 相關聯的資源 AWS WAF 提供持續涵蓋。

**生產流量風險**  
在 Web ACL 中部署生產流量的變更之前，請在預備或測試環境中測試和調校變更，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調整更新的規則，然後再啟用它們。如需準則，請參閱[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

**注意**  
在保護套件 (Web ACL) 中使用超過 1，500 WCUs 會產生超出基本保護套件 (Web ACL) 價格的成本。如需詳細資訊，請參閱 [中的 Web ACL 容量單位 WCUs) AWS WAF](aws-waf-capacity-units.md) 和 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

**更新期間的暫時性不一致**  
當您建立或變更保護套件 (Web ACL) 或其他 AWS WAF 資源時，變更會花費少量的時間傳播到存放資源的所有區域。傳播時間可以是幾秒鐘到幾分鐘。

以下是您在變更傳播期間可能注意到的暫時不一致的範例：
+ 建立保護套件 (Web ACL) 之後，如果您嘗試將其與資源建立關聯，您可能會收到例外狀況，指出保護套件 (Web ACL) 無法使用。
+ 將規則群組新增至保護套件 (Web ACL) 之後，新的規則群組規則可能會在使用保護套件 (Web ACL) 的一個區域中生效，而不會在另一個區域中生效。
+ 變更規則動作設定後，您可能會在某些地方看到舊動作，在其他地方看到新動作。
+ 將 IP 地址新增至封鎖規則中使用的 IP 集之後，新的地址可能會在某個區域中遭到封鎖，同時仍允許在另一個區域中封鎖。

------
#### [ Using the standard console ]

本節提供透過 AWS 主控台編輯 Web ACLs 的程序。

若要從 Web ACL 新增或移除規則或變更組態設定，請使用此頁面上的程序存取 Web ACL。更新 Web ACL 時， 會為您與 Web ACL 相關聯的資源 AWS WAF 提供持續涵蓋。

**生產流量風險**  
在 Web ACL 中部署生產流量的變更之前，請在預備或測試環境中測試和調校變更，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調整更新的規則，然後再啟用它們。如需準則，請參閱[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

**注意**  
在保護套件 (Web ACL) 中使用超過 1，500 WCUs 會產生超出基本保護套件 (Web ACL) 價格的成本。如需詳細資訊，請參閱 [中的 Web ACL 容量單位 WCUs) AWS WAF](aws-waf-capacity-units.md) 和 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

**編輯 Web ACL**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇 **Web ACLs**。

1. 選擇您要編輯的 Web ACL 名稱。主控台會帶您前往 Web ACL 的描述。

1. 視需要編輯 Web ACL。選取您感興趣的組態區域的標籤，然後編輯可變設定。對於您編輯的每個設定，當您選擇**儲存**並返回 Web ACL 的描述頁面時，主控台會將您的變更儲存到 Web ACL。

   以下列出包含 Web ACL 組態元件的標籤。
   + **規則**索引標籤
     + **Web ACL 中定義的規則** – 您可以編輯和管理您在 Web ACL 中定義的規則，類似於您在 Web ACL 建立期間所做的操作。
**注意**  
請勿變更您未手動新增至 Web ACL 的任何規則名稱。如果您使用其他 服務來管理規則，變更其名稱可能會移除或降低其提供預期保護的能力。 AWS Shield Advanced 和 AWS Firewall Manager 都可以在您的 Web ACL 中建立規則。如需相關資訊，請參閱[辨識其他服務提供的規則群組](waf-service-owned-rule-groups.md)。
**注意**  
如果您變更規則的名稱，並且希望規則的指標名稱反映變更，則也必須更新指標名稱。 AWS WAF 當您變更規則名稱時， 不會自動更新規則的指標名稱。您可以使用規則 JSON 編輯器，在主控台中編輯規則時變更指標名稱。您也可以透過 APIs 和用於定義保護套件 (Web ACL) 或規則群組的任何 JSON 清單中變更這兩個名稱。

       如需規則和規則群組設定的相關資訊，請參閱 [AWS WAF 規則](waf-rules.md)和 [AWS WAF 規則群組](waf-rule-groups.md)。
     + **使用的 Web ACL 規則容量單位** – Web ACL 目前的容量使用量。這只是檢視。
     + **不符合任何規則之請求的預設 Web ACL 動作** – 如需此設定的相關資訊，請參閱 [在 中設定保護套件 (Web ACL) 預設動作 AWS WAF](web-acl-default-action.md)。
     + **Web ACL CAPTCHA 和挑戰組態** – 這些抗擾性時間會決定 CAPTCHA 或挑戰字符在取得後保持有效的時間。建立 Web ACL 後，您只能在此處修改此設定。如需這些設定的資訊，請參閱 [在 中設定時間戳記過期和字符豁免時間 AWS WAF](waf-tokens-immunity-times.md)。
     + **字符網域清單** – AWS WAF 接受清單中所有網域的字符，以及相關聯資源的網域的字符。如需詳細資訊，請參閱[AWS WAF 保護套件 (Web ACL) 權杖網域清單組態](waf-tokens-domains.md#waf-tokens-domain-lists)。
   + **關聯的 AWS 資源**索引標籤
     + **Web 請求檢查大小限制** – 僅包含保護 CloudFront 分佈ACLs。內文檢查大小限制會決定要轉送多少內文元件 AWS WAF 以進行檢查。如需有關此設定的詳細資訊，請參閱 [在 中管理主體檢查的考量事項 AWS WAF](web-acl-setting-body-inspection-limit.md)。
     + **關聯的 AWS 資源** – Web ACL 目前與 建立關聯和保護的資源清單。您可以找到與 Web ACL 位於相同區域內的資源，並將其與 Web ACL 建立關聯。如需詳細資訊，請參閱[將保護與 AWS 資源建立關聯或取消關聯](web-acl-associating-aws-resource.md)。
   + **自訂回應內文**索引標籤
     + 自訂回應主體，可供動作設為 的 Web ACL 規則使用Block。如需詳細資訊，請參閱[傳送Block動作的自訂回應](customizing-the-response-for-blocked-requests.md)。
   + **記錄和指標**索引標籤
     + **記錄** – 記錄 Web ACL 評估的流量。如需相關資訊，請參閱[記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。
     + **Security Lake 整合** – 您在 Amazon Security Lake 中為 Web ACL 設定的任何資料收集的狀態。如需詳細資訊，請參閱《*Amazon Security Lake 使用者指南*》中的[從 AWS 服務收集資料](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)。
     + **範例請求** – 符合 Web 請求之規則的相關資訊。如需檢視取樣請求的詳細資訊，請參閱 [檢視 Web 請求的範例](web-acl-testing-view-sample.md)。
     + **資料保護設定** – 您可以設定 Web 流量資料修訂和篩選可用於 Web ACL 的所有資料，以及僅針對 AWS WAF 傳送至已設定 Web ACL 記錄目的地的資料。如需資料保護的資訊，請參閱 [保護 AWS WAF 套件 (Web ACL) 流量的資料保護和記錄](waf-data-protection-and-logging.md)。
     + **CloudWatch 指標** – Web ACL 中規則的指標。如需 Amazon CloudWatch 指標的相關資訊，請參閱 [使用 Amazon CloudWatch 監控](monitoring-cloudwatch.md)。

**更新期間的暫時性不一致**  
當您建立或變更保護套件 (Web ACL) 或其他 AWS WAF 資源時，變更會花費少量的時間傳播到存放資源的所有區域。傳播時間可以是幾秒鐘到幾分鐘。

以下是您在變更傳播期間可能注意到的暫時不一致的範例：
+ 建立保護套件 (Web ACL) 之後，如果您嘗試將其與資源建立關聯，您可能會收到例外狀況，指出保護套件 (Web ACL) 無法使用。
+ 將規則群組新增至保護套件 (Web ACL) 之後，新的規則群組規則可能會在使用保護套件 (Web ACL) 的一個區域中生效，而不會在另一個區域中生效。
+ 變更規則動作設定後，您可能會在某些地方看到舊動作，在其他地方看到新動作。
+ 將 IP 地址新增至封鎖規則中使用的 IP 集之後，新的地址可能會在某個區域中遭到封鎖，同時仍允許在另一個區域中封鎖。

------

# 管理規則群組行為


本節說明您在保護套件 (Web ACL) 中修改規則群組使用方式的選項。此資訊適用於所有規則群組類型。將規則群組新增至保護套件 (Web ACL) 之後，您可以將規則群組中個別規則的動作覆寫為 ，Count或覆寫為任何其他有效的規則動作設定。您也可以將規則群組產生的動作覆寫為 Count，這不會影響規則群組內評估規則的方式。

如需這些選項的資訊，請參閱 [在 中覆寫規則群組動作 AWS WAF](web-acl-rule-group-override-options.md)。

## 覆寫規則群組中的規則動作


對於保護套件 (Web ACL) 中的每個規則群組，您可以覆寫部分或所有規則中包含規則的動作。

最常見的使用案例是將規則動作覆寫為 ，Count以測試新的或更新的規則。如果您已啟用指標，則會收到您覆寫之每個規則的指標。如需測試的詳細資訊，請參閱 [測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

您可以在將受管規則群組新增至保護套件 (Web ACL) 時進行這些變更，也可以在編輯保護套件 (Web ACL) 時將其新增至任何類型的規則群組。這些指示適用於已新增至保護套件 (Web ACL) 的規則群組。如需此選項的詳細資訊，請參閱 [規則群組規則動作覆寫](web-acl-rule-group-override-options.md#web-acl-rule-group-override-options-rules)。

------
#### [ Using the new console ]

**覆寫規則群組中的規則動作**

1. 選擇您要編輯的保護套件 (Web ACL)。主控台可讓主要保護套件 (Web ACL) 卡可編輯，也會開啟側邊面板，其中包含您可以編輯的詳細資訊。

1. 在保護套件 (Web ACL) 卡中，選擇**規則**旁的**編輯**連結，以開啟**管理規則**面板。

1. 在規則群組的**管理規則**區段中，選擇受管規則以開啟其動作設定。
   + **覆寫規則群組** – 將規則群組動作變更為計數模式，但所有個別規則動作保持不變。
   + **覆寫所有規則動作** – 將規則動作套用至所有規則，覆寫其目前狀態。
   + **單一規則覆寫** – 將規則動作套用至個別規則。

1. 完成變更後，請選擇**儲存規則**。

------
#### [ Using the standard console ]

**覆寫規則群組中的規則動作**

1. 編輯 Web ACL。

1. 在 Web ACL 頁面**規則**索引標籤中，選取規則群組，然後選擇**編輯**。

1. 在**規則**群組的規則區段中，視需要管理動作設定。
   + **所有規則** – 若要為規則群組中的所有規則設定覆寫動作，請開啟**覆寫所有規則動作**下拉式清單，然後選取覆寫動作。若要移除所有規則的覆寫，請選取**移除所有覆寫**。
   + **單一規則** – 若要設定單一規則的覆寫動作，請開啟規則的下拉式清單，然後選取覆寫動作。若要移除規則的覆寫，請開啟規則的下拉式清單，然後選取**移除覆寫**。

1. 完成變更後，請選擇**儲存規則**。規則動作和覆寫動作設定會列在規則群組頁面中。

------

下列範例 JSON 清單顯示保護套件 (Web ACL) 內的規則群組宣告，覆寫規則 `CategoryVerifiedSearchEngine`和 Count的規則動作`CategoryVerifiedSocialMedia`。在 JSON 中，您可以透過為每個個別規則提供`RuleActionOverrides`項目來覆寫所有規則動作。

```
{
    "Name": "AWS-AWSBotControl-Example",
   "Priority": 5, 
   "Statement": {
    "ManagedRuleGroupStatement": {
        "VendorName": "AWS",
        "Name": "AWSManagedRulesBotControlRuleSet",
        "RuleActionOverrides": [
          {
            "ActionToUse": {
              "Count": {}
            },
            "Name": "CategoryVerifiedSearchEngine"
          },
          {
            "ActionToUse": {
              "Count": {}
            },
            "Name": "CategoryVerifiedSocialMedia"
          }
        ],
        "ExcludedRules": []
    },
   "VisibilityConfig": {
       "SampledRequestsEnabled": true,
       "CloudWatchMetricsEnabled": true,
       "MetricName": "AWS-AWSBotControl-Example"
   }
}
```

## 將規則群組的評估結果覆寫為 Count


您可以覆寫規則群組評估所產生的動作，而不會變更規則群組中的規則設定或評估方式。此選項不常用。如果規則群組中的任何規則產生相符項目，此覆寫會將規則群組的結果動作設為 Count。

**注意**  
這是不常見的使用案例。大多數動作覆寫是在規則群組內的規則層級完成，如中所述[覆寫規則群組中的規則動作](#web-acl-rule-group-rule-action-override)。

您可以在新增或編輯規則群組時，覆寫保護套件 (Web ACL) 中規則群組產生的動作。在主控台中，開啟規則群組的**覆寫規則群組動作 - 選用**窗格，並啟用覆寫。在規則群組陳述`OverrideAction`式中的 JSON 集中，如下列範例清單所示：

```
{
   "Name": "AWS-AWSBotControl-Example",
   "Priority": 5,  
   "Statement": {
    "ManagedRuleGroupStatement": {
     "VendorName": "AWS",
     "Name": "AWSManagedRulesBotControlRuleSet"
     }
   },
    "OverrideAction": {
       "Count": {}
    },
   "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSBotControl-Example"
   }
}
```

# 將保護與 AWS 資源建立關聯或取消關聯


您可以使用 在保護套件 (Web ACLs) 與 資源之間 AWS WAF 建立下列關聯：
+ 將區域保護套件 (Web ACL) 與下列任何區域資源建立關聯。對於此選項，保護套件 (Web ACL) 必須與資源位於相同的區域。
  + Amazon API Gateway REST API
  + Application Load Balancer
  + AWS AppSync GraphQL API
  + Amazon Cognito 使用者集區
  + AWS App Runner 服務
  + AWS 已驗證的存取執行個體
  + AWS Amplify
+ 將全域保護套件 (Web ACL) 與 Amazon CloudFront 分佈建立關聯。全域保護套件 (Web ACL) 會有硬式編碼的美國東部 （維吉尼亞北部） 區域。

您也可以在建立或更新分佈本身時，將保護套件 (Web ACL) 與 CloudFront 分佈建立關聯。如需詳細資訊，請參閱《*Amazon CloudFront 開發人員指南*》中的[使用 AWS WAF 控制對您的內容的存取](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-awswaf.html)。

**有關多個關聯的限制**  
您可以根據下列限制，將單一保護套件 (Web ACL) 與一或多個 AWS 資源建立關聯：
+ 每個 AWS 資源只能與一個保護套件 (Web ACL) 建立關聯。保護套件 (Web ACL) 與 AWS 資源之間的關係是one-to-many。
+ 您可以將保護套件 (Web ACL) 與一或多個 CloudFront 分佈建立關聯。您無法將與 CloudFront 分佈相關聯的保護套件 (Web ACL) 與任何其他 AWS 資源類型建立關聯。

**其他限制**  
下列其他限制適用於保護套件 (Web ACL) 關聯：
+ 您只能將保護套件 (Web ACL) 與其中的 Application Load Balancer 建立關聯 AWS 區域。例如，您無法將保護套件 (Web ACL) 與開啟的 Application Load Balancer 建立關聯 AWS Outposts。
+ 您無法將 Amazon Cognito 使用者集區與使用 AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 受管規則群組 `AWSManagedRulesACFPRuleSet` 或 AWS WAF 詐騙控制帳戶接管預防 (ATP) 受管規則群組 的保護套件 (Web ACL) 建立關聯`AWSManagedRulesATPRuleSet`。如需防止帳戶建立詐騙的相關資訊，請參閱[AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP)](waf-acfp.md)。如需防止帳戶接管的資訊，請參閱 [AWS WAF 詐騙控制帳戶接管預防 (ATP)](waf-atp.md)。

**生產流量風險**  
在部署生產流量的保護套件 (Web ACL) 之前，請在預備或測試環境中進行測試和調校，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調整規則，然後再啟用它們。如需準則，請參閱[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

# 將保護與 AWS 資源建立關聯


------
#### [ Using the new console ]

1. 選擇您要編輯的保護套件 (Web ACL)。主控台可讓主要保護套件 (Web ACL) 卡可編輯，也會開啟側邊面板，其中包含您可以編輯的詳細資訊。

1. 在保護套件 (Web ACL) 卡片中，選擇**資源**旁的**編輯**連結以開啟**管理資源**面板。

1. 在規則群組的**管理資源**區段中，選擇**新增區域資源**或**新增全域資源**。

1. 選擇資源，然後選擇**新增**。

------
#### [ Using the standard console ]

若要將 Web ACL 與 AWS 資源建立關聯，請執行下列程序。

**將 Web ACL 與 AWS 資源建立關聯**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇 **Web ACLs**。

1. 選擇您要與資源建立關聯的 Web ACL 名稱。主控台會將您帶到 Web ACL 的描述，您可以在其中編輯它。

1. 在**關聯的 AWS 資源**索引標籤上，選擇**新增 AWS 資源**。

1. 出現提示時，選擇資源類型，選取您要關聯的資源旁的選項按鈕，然後選擇**新增**。

------

# 取消保護與 AWS 資源的關聯


------
#### [ Using the new console ]

1. 選擇您要編輯的保護套件 (Web ACL)。主控台可讓主要保護套件 (Web ACL) 卡可編輯，也會開啟側邊面板，其中包含您可以編輯的詳細資訊。

1. 在保護套件 (Web ACL) 卡片中，選擇**資源**旁的**編輯**連結，以開啟**管理資源**面板。

1. 在規則群組的**管理資源**區段中，選擇您要取消關聯的資源，然後選擇**取消關聯**。
**注意**  
您必須一次取消一個資源的關聯。請勿選擇多個資源。

1. 在確認頁面中，輸入「取消關聯」，然後選擇**取消關聯**。

------
#### [ Using the standard console ]

若要取消 Web ACL 與 AWS 資源的關聯，請執行下列程序。

**取消 Web ACL 與 AWS 資源的關聯**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇 **Web ACLs**。

1. 選擇您要與資源取消關聯的 Web ACL 名稱。主控台會將您帶到 Web ACL 的描述，您可以在其中編輯它。

1. 在**關聯的 AWS 資源**索引標籤上，選取要取消與此 Web ACL 關聯的資源。
**注意**  
您必須一次取消一個資源的關聯。請勿選擇多個資源。
**注意**  
當您選擇將 Application Load Balancer 與 webACL 建立關聯時，就會啟用**資源層級 DDoS 保護**。如需詳細資訊，請參閱[AWS WAF 分散式阻斷服務 (DDoS) 預防](waf-anti-ddos.md)。

1. 選擇**取消關聯**。主控台會開啟確認對話。確認您的選擇，以取消 Web ACL 與 AWS 資源的關聯。

------

# 在 中使用保護套件 (Web ACLs) 搭配規則和規則群組 AWS WAF
將保護套件 (Web ACLs) 與規則和規則群組搭配使用

本節介紹保護套件 (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)

# 設定規則優先順序


本節說明如何 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 如何處理規則和規則群組動作
規則和規則群組動作

本節說明如何 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
覆寫規則群組動作規則群組中的動作覆寫

您現在可以將規則群組中規則的動作覆寫為任何規則動作設定。如同先前的Count動作覆寫，您可以將覆寫套用至規則群組中的所有規則和個別規則。在規則群組Count中將個別規則動作設定為

您現在可以將規則群組中的個別規則動作設定為 Count。已更正規則群組層級的現有覆寫資訊。

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

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

## 規則群組規則動作覆寫


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

**注意**  
規則動作可以是終止或非終止。終止動作會停止請求的保護套件 (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


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

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

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

### JSON 清單：`RuleActionOverrides`取代 `ExcludedRules`


如果您在 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


您可以覆寫規則群組傳回的動作，將其設定為 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)。

# 在 中設定保護套件 (Web ACL) 預設動作 AWS WAF
設定保護套件 (Web ACL) 預設動作

本節說明保護套件 (Web ACL) 預設動作的運作方式。

當您建立和設定保護套件 (Web ACL) 時，您必須設定保護套件 (Web ACL) 預設動作。 AWS WAF 會將此動作套用至任何 Web 請求，使其通過所有保護套件 (Web ACL) 的規則評估，而不會套用終止動作。終止動作會停止請求的保護套件 (Web ACL) 評估，並讓它繼續到您的受保護應用程式或封鎖它。如需規則動作的詳細資訊，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)。

保護套件 (Web ACL) 預設動作必須決定 Web 請求的最終處置，因此它是終止動作：
+ **Allow** – 如果您想要允許大多數使用者存取您的網站，但想要封鎖對攻擊者的存取，其請求來自指定的 IP 地址，或其請求似乎包含惡意 SQL 程式碼或指定的值，請選擇Allow預設動作。然後，當您將規則新增至保護套件 (Web ACL) 時，請新增規則來識別和封鎖您要封鎖的特定請求。透過此動作，您可以將自訂標頭插入請求，然後再將其轉送至受保護的資源。
+ **Block** – 如果您想要防止大多數使用者存取您的網站，但您想要允許存取其請求來自指定 IP 地址的使用者，或是其請求包含指定值的使用者，請選擇Block預設動作。然後，當您將規則新增至保護套件 (Web ACL) 時，請新增規則，以識別並允許您想要允許的特定請求。根據預設，對於 Block動作， AWS 資源會以 HTTP `403 (Forbidden)` 狀態碼回應，但您可以自訂回應。

如需自訂請求和回應的詳細資訊，請參閱 [中的自訂 Web 請求和回應 AWS WAF](waf-custom-request-response.md)。

您自己的規則和規則群組的組態部分取決於您要允許還是封鎖多數的 Web 請求。例如，如果您想要*允許*大多數請求，您可以將保護套件 (Web ACL) 預設動作設定為 Allow，然後新增規則來識別您要*封鎖*的 Web 請求，如下所示：
+ 來自發出異常數量 IP 地址的請求
+ 來自您不常交涉、或時常受到攻擊國家/地區的請求
+ `User-agent` 標題中包含虛假值的請求
+ 似乎含有惡意 SQL 程式碼的請求

受管規則群組規則通常使用 Block動作，但並非全部都使用。例如，某些用於 Bot Control 的規則會使用 CAPTCHA和 Challenge動作設定。如需受管規則群組的相關資訊，請參閱 [在 中使用受管規則群組 AWS WAF](waf-managed-rule-groups.md)。

# 在 中管理主體檢查的考量事項 AWS WAF
內文檢查考量事項內文檢查大小限制的變更

AWS WAF 現在支援某些區域資源更大的內文檢查大小限制。CloudFront 保護套件 (Web ACLs的內文檢查大小限制

對於保護 Amazon CloudFront 分佈的保護套件 (Web ACLs)，您可以在保護套件 (Web ACL) 組態中將主體檢查大小限制提高到 64 KB。

內文檢查大小限制是 AWS WAF 可檢查的請求內文大小上限。當 Web 請求內文大於限制時，基礎主機服務只會將限制內的內容轉送至 AWS WAF 以供檢查。
+ 對於 Application Load Balancer 和 AWS AppSync，限制固定為 8 KB (8，192 位元組）。
+ 對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access，預設限制為 16 KB (16，384 位元組），而且您可以將任何資源類型的限制以 16 KB 遞增，最多 64 KB。設定選項為 16 KB、32 KB、48 KB 和 64 KB。

**重要**  
AWS WAF 不支援 gRPC 流量的請求內文檢查規則。如果您在 CloudFront 分佈或 Application Load Balancer 的保護套件 (Web ACL) 上啟用這些規則，則任何使用 gRPC 的請求都會忽略請求內文檢查規則。所有其他 AWS WAF 規則仍然適用。如需詳細資訊，請參閱《*Amazon CloudFront 開發人員指南*》中的[AWS WAF 針對分佈啟用](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/WAF-one-click.html) 。

**過大主體處理**  
如果您的 Web 流量包含大於限制的內文，則會套用您設定的過大處理。如需處理過大選項的詳細資訊，請參閱 [在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。

**提高限制設定的定價考量**  
AWS WAF 會針對檢查資源類型預設限制內的流量，收取基本費率。

對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access 資源，如果您增加限制設定， AWS WAF 可以檢查的流量包含不超過新限制的內文大小。只有在檢查內文大小大於預設 16 KB 的請求時，才會向您收取額外的費用。如需定價的詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

**修改內文檢查大小限制的選項**  
您可以設定 CloudFront、API Gateway、Amazon Cognito、App Runner 或 Verified Access 資源的內文檢查大小限制。

當您建立或編輯保護套件 (Web ACL) 時，您可以在資源關聯組態中修改內文檢查大小限制。如需 API，請參閱 [AssociationConfig](https://docs.aws.amazon.com/waf/latest/APIReference/API_AssociationConfig.html) 中的保護套件 (Web ACL) 的關聯組態。對於 主控台，請參閱您指定保護套件 (Web ACL) 相關資源之頁面上的組態。如需主控台組態的指引，請參閱 [在 中檢視 Web 流量指標 AWS WAF](web-acl-working-with.md)。

# 在 中設定 CAPTCHA、挑戰和字符 AWS WAF
設定 CAPTCHA、挑戰和字符

您可以在保護套件 (Web ACL) 中為使用 CAPTCHA或 Challenge規則動作的規則設定選項，並為管理 AWS WAF 受管保護的無提示用戶端挑戰的應用程式整合SDKs設定選項。

這些功能透過使用 CAPTCHA 拼圖挑戰最終使用者，以及使用無提示的挑戰呈現用戶端工作階段，來緩解機器人活動。當用戶端成功回應時， AWS WAF 會提供權杖，供他們在 Web 請求中使用，並加上最後一個成功拼圖和挑戰回應的時間戳記。如需詳細資訊，請參閱[中的智慧型威脅防禦 AWS WAF](waf-managed-protections.md)。

在保護套件 (Web ACL) 組態中，您可以設定 如何 AWS WAF 管理這些字符：
+ **CAPTCHA 和挑戰豁免時間** – 這些會指定 CAPTCHA 或挑戰時間戳記的有效時間。保護套件 (Web ACL) 設定會繼承於所有未設定其自身抗擾性時間設定的規則，以及應用程式整合 SDKs。如需詳細資訊，請參閱[在 中設定時間戳記過期和字符豁免時間 AWS WAF](waf-tokens-immunity-times.md)。
+ **權杖網域** – 根據預設， 僅 AWS WAF 接受與保護套件 (Web ACL) 相關聯的資源網域權杖。如果您設定權杖網域清單， 會 AWS WAF 接受清單中所有網域以及相關聯資源網域的權杖。如需詳細資訊，請參閱[AWS WAF 保護套件 (Web ACL) 權杖網域清單組態](waf-tokens-domains.md#waf-tokens-domain-lists)。

# 在 中檢視 Web 流量指標 AWS WAF
檢視 Web 流量指標

本節說明如何存取 Web 流量指標的摘要。

對於您使用的任何保護套件 (Web ACL)，您可以在 AWS WAF 主控台的保護套件 (Web ACL) 頁面的**流量概觀**索引標籤下存取 Web 流量指標的摘要。主控台儀表板提供近乎即時的 Amazon CloudWatch 指標摘要，這些指標會在評估應用程式 Web 流量時 AWS WAF 收集。如需儀表板的詳細資訊，請參閱 [保護套件的流量概觀儀表板 (Web ACLs)](web-acl-dashboards.md)。如需有關監控保護套件 (Web ACL) 流量的其他資訊，請參閱 [監控和調校您的 AWS WAF 保護](web-acl-testing-activities.md)。

# 刪除保護套件 (Web ACL)


本節提供透過 AWS 主控台刪除保護套件 (Web ACLs) 的程序。

**重要**  
刪除保護套件 (Web ACL) 是永久性的，無法復原。

若要刪除保護套件 (Web ACL)，您必須先取消所有 AWS 資源與保護套件 (Web ACL) 的關聯。請執行以下程序。

------
#### [ Using the new console ]

1. 登入新的 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/wafv2-pro](https://console.aws.amazon.com/wafv2-pro) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇**資源與保護套件 (Web ACLs)**。

1. 在保護套件 (Web ACL) 卡片中，選擇**資源**旁的**編輯**連結，以開啟**管理資源**面板。

1. 在規則群組的**管理資源**區段中，選擇您要取消關聯的資源，然後選擇**取消關聯**。
**注意**  
您必須一次取消一個資源的關聯。請勿選擇多個資源。

1. 在確認頁面中，輸入「取消關聯」，然後選擇**取消關聯**。重複 以取消保護套件 (Web ACL) 中每個資源的關聯。

1. 選擇您要刪除的保護套件 (Web ACL)。主控台可讓主要保護套件 (Web ACL) 卡可編輯，也會開啟側邊面板，其中包含您可以編輯的詳細資訊。

1. 在詳細資訊面板中，選擇垃圾桶圖示。

1. 在確認頁面中，輸入「刪除」，然後選擇**刪除**。

------
#### [ Using the standard console ]

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇 **Web ACLs**。

1. 選取您要刪除的 Web ACL 名稱。主控台會將您帶到 Web ACL 的描述，您可以在其中編輯它。
**注意**  
如果您沒有看到要刪除的 Web ACL，請確定 Web ACLs區段內的區域選擇正確無誤。保護 Amazon CloudFront 分佈的任何 Web ACLs 都位於**全域 (CloudFront)** 中。

1. 在**關聯的 AWS 資源**索引標籤上，針對每個相關聯的資源，選取資源名稱旁的選項按鈕，然後選擇**取消關聯**。這會取消保護套件 (Web ACL) 與 AWS 資源的關聯。

1. 在導覽窗格中，選擇 **Web ACLs**。

1. 選取您要刪除的 Web ACL 旁邊的選項按鈕，然後選擇 **Delete (刪除)**。

------

# AWS WAF 規則
AWS WAF 規則已更新 AWS WAF 規則區段的組織

規則陳述式清單現在會依陳述式類型分組。

本節說明什麼是 AWS WAF 規則及其運作方式。

 AWS WAF 規則定義如何檢查 HTTP(S) Web 請求，以及在符合檢查條件時對請求採取的動作。您只能在規則群組或保護套件 (Web ACL) 的內容中定義規則。

規則本身不存在於 中 AWS WAF 。它們不是 AWS 資源，也沒有 Amazon Resource Name (ARNs)。您可以在定義規則群組或保護套件 (Web ACL) 中依名稱存取規則。您可以使用規則群組的 JSON 檢視或包含規則的保護套件 (Web ACLs)，來管理規則並將其複製到其他保護套件 (Web ACL)。您也可以透過 AWS WAF 主控台規則建置器進行管理，該建置器可用於保護套件 (Web ACLs) 和規則群組。

**規則名稱**  
每個規則都需要一個名稱。避免開頭為 的名稱，`AWS`以及用於其他 服務為您管理的規則群組或規則的名稱。請參閱 [辨識其他服務提供的規則群組](waf-service-owned-rule-groups.md)。

**注意**  
如果您變更規則的名稱，並且希望規則的指標名稱反映變更，則也必須更新指標名稱。 AWS WAF 當您變更規則名稱時， 不會自動更新規則的指標名稱。您可以使用規則 JSON 編輯器，在主控台中編輯規則時變更指標名稱。您也可以透過 APIs 和用於定義保護套件 (Web ACL) 或規則群組的任何 JSON 清單中變更這兩個名稱。

**規則陳述式**  
每個規則還需要規則陳述式，以定義規則如何檢查 Web 請求。根據規則和陳述式類型，規則陳述式可能包含任何深度的其他巢狀陳述式。有些規則陳述式採用一組條件。例如，您可以為 IP 集比對規則指定最多 10，000 個 IP 地址或 IP 地址範圍。

您可以定義規則來檢查條件，如下所示：
+ 指令碼可能為惡意。攻擊者可以利用 web 應用程式的漏洞內嵌指令碼。這稱為跨網站指令碼 (XSS)。
+ 發出請求的 IP 地址或地址範圍。
+ 發出請求的國家/地區或地理位置。
+ 請求指定部分的長度，例如查詢字串。
+ SQL 程式碼可能為惡意。攻擊者會藉由內嵌惡意 SQL 程式碼於 web 請求中，嘗試從您的資料庫碼擷取資料。此稱為 SQL Injection。
+ 字串會出現在請求，例如出現在 `User-Agent` 標頭的值或出現在查詢字串的文字字串。您也可以使用規則運算式 (regex) 指定這些字串。
+ 保護套件 (Web ACL) 中先前規則已新增至請求的標籤。

除了具有 Web 請求檢查條件的陳述式之外，與上述清單中的陳述式一樣， AWS WAF 還支援 `AND`、 `OR`和 的邏輯陳述式`NOT`，您可以將陳述式結合在規則中。

例如，根據您最近從攻擊者看到的請求，您可以使用結合下列巢狀陳述式的邏輯`AND`陳述式來建立規則：
+ 來自 192.0.2.44 的請求。
+ 在 `User-Agent` 標頭中包含 `BadBot` 值。
+ 它們好像有包含類似 SQL 程式碼的查詢字串。

在此情況下，Web 請求需要符合所有陳述式，才能符合最上層 `AND`。

**Topics**
+ [

# 在 中使用規則動作 AWS WAF
](waf-rule-action.md)
+ [

# 在 中使用規則陳述式 AWS WAF
](waf-rule-statements.md)
+ [

# 在 中使用相符規則陳述式 AWS WAF
](waf-rule-statements-match.md)
+ [

# 在 中使用邏輯規則陳述式 AWS WAF
](waf-rule-statements-logical.md)
+ [

# 在 中使用以速率為基礎的規則陳述式 AWS WAF
](waf-rule-statement-type-rate-based.md)
+ [

# 在 中使用規則群組規則陳述式 AWS WAF
](waf-rule-statements-rule-group.md)

# 在 中使用規則動作 AWS WAF
使用規則動作

本節說明規則動作的運作方式。

當 Web 請求符合規則中定義的條件時，規則動作會告知 AWS WAF 該如何處理。您可以選擇性地將自訂行為新增至每個規則動作。

**注意**  
規則動作可以是終止或非終止。終止動作會停止請求的保護套件 (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 請求和回應 AWS WAF](waf-custom-request-response.md)。

如需將標籤新增至相符請求的詳細資訊，請參閱 [中的 Web 請求標籤 AWS WAF](waf-labels.md)。

如需有關保護套件 (Web ACL) 和規則設定如何互動的資訊，請參閱 [在 中使用保護套件 (Web ACLs) 搭配規則和規則群組 AWS WAF](web-acl-processing.md)。

# 在 中使用規則陳述式 AWS WAF
使用規則陳述式

本節說明規則陳述式的運作方式。

規則陳述式是規則的一部分， AWS WAF 說明如何檢查 Web 請求。當 AWS WAF 在 Web 請求中找到檢查條件時，我們說 Web 請求符合 陳述式。視陳述式類型而定，每個規則陳述式會指定要尋找什麼以及如何尋找。

中的每個規則 AWS WAF 都有單一最上層規則陳述式，可包含其他陳述式。規則陳述式可以非常簡單。例如，您可以有一個陳述式，提供一組原始國家/地區來檢查 的 Web 請求，或者您可以在僅參考規則群組的保護套件 (Web ACL) 中擁有規則陳述式。規則陳述式也可以非常複雜。例如，您可以有一個結合許多其他陳述式與邏輯 AND、 OR和 NOT陳述式的陳述式。

對於大多數規則，您可以將自訂 AWS WAF 標籤新增至相符的請求。 AWS 受管規則規則群組中的規則會將標籤新增至相符的請求。規則新增的標籤會將請求的相關資訊提供給稍後在保護套件 (Web ACL) 和 AWS WAF 日誌和指標中評估的規則。如需標籤的相關資訊，請參閱 [中的 Web 請求標籤 AWS WAF](waf-labels.md)和 [標籤比對規則陳述式](waf-rule-statement-type-label-match.md)。

**巢狀規則陳述式**  
AWS WAF 支援許多規則陳述式的巢狀化，但不支援所有規則陳述式。例如，您無法在另一個陳述式內巢狀化規則群組陳述式。您需要在某些案例中使用巢狀，例如縮小範圍陳述式和邏輯陳述式。以下規則陳述式列出和規則詳細資訊，說明每個類別和規則的巢狀功能和需求。

主控台中規則的視覺化編輯器僅支援規則陳述式的一個巢狀層級。例如，您可以在邏輯AND或OR規則內巢狀化許多類型的陳述式，但您無法巢狀化另一個 AND或 OR規則，因為這需要第二層級的巢狀化。若要實作多個巢狀層級，請透過主控台中的 JSON 規則編輯器或透過 APIs 提供 JSON 中的規則定義。

**Topics**
+ [

# 在 中調整規則陳述式設定 AWS WAF
](waf-rule-statement-fields.md)
+ [

# 在 中使用縮小範圍陳述式 AWS WAF
](waf-rule-scope-down-statements.md)
+ [

# 在 中參考可重複使用的實體 AWS WAF
](waf-rule-statement-reusable-entities.md)

# 在 中調整規則陳述式設定 AWS WAF
調整規則陳述式設定

本節說明您可以在檢查 Web 請求元件的規則陳述式中指定的設定。如需用量的相關資訊，請參閱 中的個別規則陳述式[在 中使用相符規則陳述式 AWS WAF](waf-rule-statements-match.md)。

這些 Web 請求元件的子集也可以用在以速率為基礎的規則中，做為自訂請求彙總金鑰。如需相關資訊，請參閱[在 中彙總以速率為基礎的規則 AWS WAF](waf-rule-statement-type-rate-based-aggregation-options.md)。

對於請求元件設定，您可以指定元件類型本身，以及任何其他選項，具體取決於元件類型。例如，當您檢查包含文字的元件類型時，您可以在檢查之前對其套用文字轉換。

**注意**  
除非另有說明，否則如果 Web 請求沒有規則陳述式中指定的請求元件， 會將請求 AWS WAF 評估為不符合規則條件。

**Contents**
+ [

# 在 中請求元件 AWS WAF
](waf-rule-statement-fields-list.md)
  + [

## HTTP 方法
](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-http-method)
  + [

## 單一標頭
](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-header)
  + [

## 所有標頭
](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-headers)
  + [

## 標頭順序
](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-header-order)
  + [

## Cookie
](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-cookies)
  + [

## URI 片段
](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-fragment)
  + [

## URI 路徑
](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-path)
  + [

## JA3 指紋
](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja3-fingerprint)
  + [

## JA4 指紋
](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja4-fingerprint)
  + [

## 查詢字串
](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-query-string)
  + [

## 單一查詢參數
](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-query-param)
  + [

## 所有查詢參數
](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-all-query-params)
  + [

## Body
](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-body)
  + [

## JSON 內文
](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-json-body)
+ [

# 在 中使用轉送的 IP 地址 AWS WAF
](waf-rule-statement-forwarded-ip-address.md)
+ [

# 在 中檢查 HTTP/2 虛擬標頭 AWS WAF
](waf-rule-statement-request-components-for-http2-pseudo-headers.md)
+ [

# 在 中使用文字轉換 AWS WAF
](waf-rule-statement-transformation.md)

# 在 中請求元件 AWS WAF
請求元件選項新的 AWS WAF 請求元件

您現在可以檢查 URI fragment。新的 AWS WAF 請求元件： Headers和 Cookies

您現在可以檢查 Cookie，除了單一標頭之外，還可以檢查所有標頭。新的 AWS WAF 請求元件： Headers和 Cookies

您現在可以檢查 Web 請求中的 Cookie，除了單一標頭之外，還可以檢查 Web 請求中的所有標頭。

本節說明您可以指定用於檢查的 Web 請求元件。您可以為尋找 Web 請求內模式的比對規則陳述式指定請求元件。這些類型的陳述式包括字串比對、regex 比對、大小限制和 SQL Injection 攻擊陳述式。如需如何使用這些請求元件設定的詳細資訊，請參閱 中的個別規則陳述式 [在 中使用相符規則陳述式 AWS WAF](waf-rule-statements-match.md)

除非另有說明，否則如果 Web 請求沒有規則陳述式中指定的請求元件， 會將請求 AWS WAF 評估為不符合規則條件。

**注意**  
您可以為每個需要它的規則陳述式指定單一請求元件。若要檢查請求的多個元件，請為每個元件建立規則陳述式。

 AWS WAF 主控台和 API 文件為下列位置的請求元件設定提供指引：
+ 主控台上的**規則建置器** – 在一般規則類型的**陳述式**設定中，選擇您要在請求元件下的**檢查**對話中檢查的元件。 ****
+ **API 陳述式內容** – `FieldToMatch`

本節的其餘部分說明 Web 請求要檢查的部分選項。

**Topics**
+ [

## HTTP 方法
](#waf-rule-statement-request-component-http-method)
+ [

## 單一標頭
](#waf-rule-statement-request-component-single-header)
+ [

## 所有標頭
](#waf-rule-statement-request-component-headers)
+ [

## 標頭順序
](#waf-rule-statement-request-component-header-order)
+ [

## Cookie
](#waf-rule-statement-request-component-cookies)
+ [

## URI 片段
](#waf-rule-statement-request-component-uri-fragment)
+ [

## URI 路徑
](#waf-rule-statement-request-component-uri-path)
+ [

## JA3 指紋
](#waf-rule-statement-request-component-ja3-fingerprint)
+ [

## JA4 指紋
](#waf-rule-statement-request-component-ja4-fingerprint)
+ [

## 查詢字串
](#waf-rule-statement-request-component-query-string)
+ [

## 單一查詢參數
](#waf-rule-statement-request-component-single-query-param)
+ [

## 所有查詢參數
](#waf-rule-statement-request-component-all-query-params)
+ [

## Body
](#waf-rule-statement-request-component-body)
+ [

## JSON 內文
](#waf-rule-statement-request-component-json-body)

## HTTP 方法
HTTP 方法

檢查 HTTP 方法是否有請求。HTTP 方法表示 Web 請求請求要求您受保護資源執行的操作類型，例如 `POST`或 `GET`。

## 單一標頭
單一標頭

檢查請求中的單一具名標頭。

對於此選項，您可以指定標頭名稱，例如 `User-Agent`或 `Referer`。名稱的字串比對不區分大小寫，會在從請求標頭和規則修剪前後空格後執行。

## 所有標頭
所有標頭所有標頭規格不區分大小寫

將所有標頭規格變更為不區分大小寫。這符合單一標頭行為。

檢查所有請求標頭，包括 Cookie。您可以套用篩選條件來檢查所有標頭的子集。

針對此選項，您提供下列規格：
+ **比對模式** – 用來在標頭索引鍵中取得這些模式之 inspection. AWS WAF looks 標頭子集的篩選條件。

  比對模式設定可以是下列其中一項：
  + **全部** – 符合所有金鑰。評估所有標頭的規則檢查條件。
  + **排除標頭** – 僅檢查其索引鍵不符合您在此處指定之任何字串的標頭。金鑰的字串比對不區分大小寫。比對會在從請求標頭和比對規則修剪開頭和結尾空格後執行。
  + **包含的標頭** – 僅檢查金鑰與您在此處指定的其中一個字串相符的標頭。金鑰的字串比對不區分大小寫。比對會在從請求標頭和比對規則修剪開頭和結尾空格後執行。
+ **比對範圍** – AWS WAF 應該使用規則檢查條件進行檢查的標頭部分。您可以指定**金鑰**、**值**或**全部**，以檢查金鑰和值是否相符。

  **全部**不需要在索引鍵中找到相符項目，以及在值中找到相符項目。它需要在索引鍵或值或兩者中找到相符項目。若要在金鑰和值中要求比對，請使用邏輯`AND`陳述式來結合兩個比對規則，其中一個規則會檢查金鑰，另一個規則則會檢查值。
+ **過大處理** – AWS WAF 應如何處理標頭資料大於 AWS WAF 的請求。 最多 AWS WAF 可以檢查請求標頭的前 8 KB (8，192 位元組） 和前 200 個標頭。內容最多可 AWS WAF 達第一個限制可供檢查。您可以選擇繼續檢查，或略過檢查並將請求標記為符合或不符合規則。如需處理過大內容的詳細資訊，請參閱 [在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。

## 標頭順序
標頭順序新的 AWS WAF 請求元件： Header order

您現在可以比對請求中標頭名稱的排序清單。

檢查包含請求標頭名稱清單的字串，其順序如 AWS WAF 接收以供檢查的 Web 請求中所示。 AWS WAF 會產生字串，然後使用該字串做為欄位來比對其檢查中的元件。 會將字串中的標頭名稱與冒號 AWS WAF 分隔，且沒有新增空格，例如 `host:user-agent:accept:authorization:referer`。

針對此選項，您提供下列規格：
+ **過大處理** – AWS WAF 應如何處理標頭資料超過 AWS WAF 可檢查數量或更大的請求。 最多 AWS WAF 可以檢查請求標頭的前 8 KB (8，192 個位元組） 和前 200 個標頭。內容最多可 AWS WAF 達第一個限制可供檢查。您可以選擇繼續檢查可用的標頭，或略過檢查並將請求標記為符合或不符合規則。如需處理過大內容的詳細資訊，請參閱 [在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。

## Cookie
Cookie

檢查所有請求 Cookie。您可以套用篩選條件來檢查所有 Cookie 的子集。

針對此選項，您提供下列規格：
+ **比對模式** – 用來取得一部分 Cookie 進行檢查的篩選條件。 會在 Cookie 金鑰中 AWS WAF 尋找這些模式。

  比對模式設定可以是下列其中一項：
  + **全部** – 比對所有金鑰。評估所有 Cookie 的規則檢查條件。
  + **排除的 Cookie** – 僅檢查金鑰與您在此處指定的任何字串不相符的 Cookie。金鑰的字串比對區分大小寫，而且必須完全正確。
  + **包含的 Cookie** – 僅檢查金鑰與您在此處指定的其中一個字串相符的 Cookie。金鑰的字串比對區分大小寫，而且必須完全正確。
+ **比對範圍** – AWS WAF 應使用規則檢查條件檢查的 Cookie 部分。您可以同時為**金鑰**和**值**指定金鑰、值或**全部**。

  **全部**不需要在索引鍵中找到相符項目，以及在值中找到相符項目。它需要在索引鍵或值或兩者中找到相符項目。若要在金鑰和值中要求比對，請使用邏輯`AND`陳述式來結合兩個比對規則，其中一個規則會檢查金鑰，另一個規則則會檢查值。
+ **過大處理** – AWS WAF 應如何處理 Cookie 資料大於 AWS WAF 可檢查的請求。 最多 AWS WAF 可以檢查請求 Cookie 的前 8 KB (8，192 位元組） 和前 200 個 Cookie。內容最多可 AWS WAF 達第一個限制可供檢查。您可以選擇繼續檢查，或略過檢查並將請求標記為符合或不符合規則。如需處理過大內容的詳細資訊，請參閱 [在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。

## URI 片段
URI 片段

**注意**  
Uri Fragment 檢查僅適用於 CloudFront 分佈和 Application Load Balancer。

檢查遵循 "\$1" 符號的 URL 部分，提供資源的其他資訊，例如 \$1section2。如需詳細資訊，請參閱[統一資源識別符 (URI)：一般語法](https://tools.ietf.org/html/rfc3986#section-3)。

如果您不搭配此選項使用文字轉換， AWS WAF 不會正規化 URI 片段，並完全依照在請求中從用戶端接收到的 URI 片段進行檢查。如需文字轉換的資訊，請參閱 [在 中使用文字轉換 AWS WAF](waf-rule-statement-transformation.md)。

**規則陳述式要求**  
您必須為此規則陳述式提供備用行為。如果 URI 缺少片段或相關聯的服務不是 Application Load Balancer 或 CloudFront，則備用行為是您想要 AWS WAF 指派給 Web 請求的比對狀態。如果您選擇比對， 會將請求 AWS WAF 視為比對規則陳述式，並將規則動作套用至請求。如果您選擇不相符， 會將請求 AWS WAF 視為不符合規則陳述式。

## URI 路徑
URI 路徑

檢查識別資源的 URL 部分，例如 `/images/daily-ad.jpg`。如需詳細資訊，請參閱[統一資源識別符 (URI)：一般語法](https://tools.ietf.org/html/rfc3986#section-3)。

如果您不搭配此選項使用文字轉換， AWS WAF 不會正規化 URI，並完全依照在請求中從用戶端接收 URI 的方式進行檢查。如需文字轉換的資訊，請參閱 [在 中使用文字轉換 AWS WAF](waf-rule-statement-transformation.md)。

## JA3 指紋
JA3 指紋AWS WAF 新增 JA3 指紋的檢查

您現在可以針對 Amazon CloudFront 分佈和 Application Load Balancer，對 Web 請求的 JA3 指紋執行完全相符。

檢查請求的 JA3 指紋。

**注意**  
JA3 指紋檢查僅適用於 Amazon CloudFront 分佈和 Application Load Balancer。

JA3 指紋是從傳入請求的 TLS Client Hello 衍生的 32 個字元雜湊。此指紋可做為用戶端 TLS 組態的唯一識別符。 會針對具有足夠 TLS Client Hello 資訊以進行計算的每個請求 AWS WAF ，計算並記錄此指紋。幾乎所有 Web 請求都包含此資訊。

**如何取得用戶端的 JA3 指紋**  
您可以從保護套件 (Web ACL) 日誌取得用戶端請求的 JA3 指紋。如果 AWS WAF 能夠計算指紋，它會將其包含在日誌中。如需記錄欄位的資訊，請參閱 [保護套件 (Web ACL) 流量的日誌欄位](logging-fields.md)。

**規則陳述式要求**  
您只能在設定為完全符合您提供的字串的字串比對陳述式內檢查 JA3 指紋。在字串比對陳述式規格中提供來自日誌的 JA3 指紋字串，以符合具有相同 TLS 組態的任何未來請求。如需字串比對陳述式的詳細資訊，請參閱 [字串比對規則陳述式](waf-rule-statement-type-string-match.md)。

您必須為此規則陳述式提供備用行為。如果 無法計算 JA3 指紋，則備用行為是您想要 AWS WAF 指派給 Web 請求 AWS WAF 的比對狀態。如果您選擇比對， AWS WAF 會將請求視為比對規則陳述式，並將規則動作套用至請求。如果您選擇不相符， 會將請求 AWS WAF 視為不符合規則陳述式。

若要使用此比對選項，您必須記錄保護套件 (Web ACL) 流量。如需相關資訊，請參閱[記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。

## JA4 指紋
JA4 指紋AWS WAF 新增 JA4 指紋的檢查

您現在可以針對 Amazon CloudFront 分佈和 Application Load Balancer，對 Web 請求的 JA4 指紋執行完全相符。AWS WAF 支援新的 JA4 欄位比對

您可以根據進階 JavaScript 指紋 (JA4) 特性偵測和封鎖流量，並使用 JA4 指紋做為 WAF 速率型規則中支援的請求金鑰之一。

檢查請求的 JA4 指紋。

**注意**  
JA4 指紋檢查僅適用於 Amazon CloudFront 分佈和 Application Load Balancer。

JA4 指紋是從傳入請求的 TLS Client Hello 衍生的 36 個字元雜湊。此指紋可做為用戶端 TLS 組態的唯一識別符。JA4 指紋是 JA3 指紋的延伸，可能會導致某些瀏覽器產生較少的唯一指紋。 會為每個具有足夠 TLS Client Hello 資訊的請求 AWS WAF 計算並記錄此指紋。幾乎所有 Web 請求都包含此資訊。

**如何取得用戶端的 JA4 指紋**  
您可以從保護套件 (Web ACL) 日誌取得用戶端請求的 JA4 指紋。如果 AWS WAF 能夠計算指紋，它會將其包含在日誌中。如需記錄欄位的資訊，請參閱 [保護套件 (Web ACL) 流量的日誌欄位](logging-fields.md)。

**規則陳述式要求**  
您只能在設定為完全符合您提供的字串的字串比對陳述式內檢查 JA4 指紋。在字串比對陳述式規格中提供來自日誌的 JA4 指紋字串，以符合任何未來具有相同 TLS 組態的請求。如需字串比對陳述式的詳細資訊，請參閱 [字串比對規則陳述式](waf-rule-statement-type-string-match.md)。

您必須為此規則陳述式提供備用行為。如果 無法計算 JA4 指紋，則備用行為是您想要 AWS WAF 指派給 Web 請求 AWS WAF 的比對狀態。如果您選擇比對， AWS WAF 會將請求視為比對規則陳述式，並將規則動作套用至請求。如果您選擇不相符， 會將請求 AWS WAF 視為不符合規則陳述式。

若要使用此比對選項，您必須記錄保護套件 (Web ACL) 流量。如需相關資訊，請參閱[記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。

## 查詢字串
查詢字串

檢查`?`字元後面出現的 URL 部分，如果有的話。

**注意**  
對於跨網站指令碼比對陳述式，我們建議您選擇**所有查詢參數**，而不是**查詢字串**。選擇**所有查詢參數**會將 10 WCUs 新增至基本成本。

## 單一查詢參數
單一查詢參數

檢查您已定義為查詢字串一部分的單一查詢參數。 AWS WAF 會檢查您指定的參數值。

針對此選項，您也可以指定**查詢引數**。例如，如果 URL 為 `www.xyz.com?UserName=abc&SalesRegion=seattle`，您可以`SalesRegion`為查詢引數指定 `UserName`或 。引數名稱的長度上限為 30 個字元。名稱不區分大小寫，因此如果您指定 `UserName`， 會 AWS WAF 比對 的所有變化`UserName`，包括 `username`和 `UsERName`。

如果查詢字串包含您所指定查詢引數的多個執行個體， 會使用OR邏輯 AWS WAF 檢查相符項目的所有值。例如，在 URL `www.xyz.com?SalesRegion=boston&SalesRegion=seattle` 中， AWS WAF 會評估您針對 `boston` 和 `seattle` 指定的名稱。如果其中一個相符，則檢查會是相符。

## 所有查詢參數
所有查詢參數

檢查請求中的所有查詢參數。這類似於單一查詢參數元件選擇，但會 AWS WAF 檢查查詢字串中所有引數的值。例如，如果 URL 為 `www.xyz.com?UserName=abc&SalesRegion=seattle`，則 AWS WAF 會在 `UserName` 或 `SalesRegion` 的值符合比對檢查準則時觸發比對。

選擇此選項會將 10 WCUs 新增至基本成本。

## Body
Body

檢查請求內文，評估為純文字。您也可以使用JSON內容類型將內文評估為 JSON。

請求內文是緊接請求標頭的請求部分。它包含 Web 請求所需的任何其他資料，例如來自表單的資料。
+ 在 主控台中，您可以透過選取**內容類型**選擇**純文字**，在**請求選項**選擇**內文**下選取此選項。
+ 在 API 中，在規則的`FieldToMatch`規格中，您可以指定 `Body`以純文字形式檢查請求內文。

對於 Application Load Balancer 和 AWS AppSync， AWS WAF 可以檢查請求內文的前 8 KB。對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access，預設 AWS WAF 可以檢查前 16 KB，而且您可以將保護套件 (Web ACL) 組態中的限制提高到 64 KB。如需詳細資訊，請參閱[在 中管理主體檢查的考量事項 AWS WAF](web-acl-setting-body-inspection-limit.md)。

您必須為此元件類型指定過大處理。過大處理定義 AWS WAF 如何處理內文資料大於 AWS WAF 可檢查的請求。您可以選擇繼續檢查，或略過檢查並將請求標記為符合或不符合規則。如需處理過大內容的詳細資訊，請參閱 [在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。

您也可以將內文評估為剖析的 JSON。如需詳細資訊，請參閱以下章節。

## JSON 內文
JSON 內文釐清 JSON 內文剖析的運作方式

更新 JSON 內文檢查的涵蓋範圍，以釐清 AWS WAF 如何處理剖析和內文剖析後援行為。檢查 Web 請求內文做為剖析的 JSON

新增將 Web 請求內文檢查為已剖析和篩選 JSON 的選項。這是現有選項以外的選項，可將 Web 請求內文檢查為純文字。

檢查請求內文，評估為 JSON。您也可以將內文評估為純文字。

請求內文是緊接請求標頭的請求部分。它包含 Web 請求所需的任何其他資料，例如來自表單的資料。
+ 在主控台中，您可以透過選取**內容類型**選擇 **JSON**，在**請求選項**選擇**內文**下選取此選項。
+ 在 API 的規則`FieldToMatch`規格中，您可以指定 `JsonBody`。

對於 Application Load Balancer 和 AWS AppSync， AWS WAF 可以檢查請求內文的前 8 KB。根據預設，對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access， AWS WAF 可以檢查前 16 KB，而且您可以將保護套件 (Web ACL) 組態中的限制提高到 64 KB。如需詳細資訊，請參閱[在 中管理主體檢查的考量事項 AWS WAF](web-acl-setting-body-inspection-limit.md)。

您必須為此元件類型指定過大處理。過大處理定義 AWS WAF 如何處理內文資料大於 AWS WAF 可檢查的請求。您可以選擇繼續檢查，或略過檢查並將請求標記為符合或不符合規則。如需處理過大內容的詳細資訊，請參閱 [在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。

選擇此選項會將比對陳述式的基本成本 WCUs加倍。例如，如果比對陳述式基本成本為 5 WCUs而沒有 JSON 剖析，則使用 JSON 剖析會將成本加倍為 10 WCUs。

對於此選項，您可以提供其他規格，如下節所述。

**AWS WAF 如何處理 JSON 內文檢查**  
當 將 Web 請求內文 AWS WAF 檢查為 JSON 時，它會執行步驟來剖析內文，並擷取 JSON 元素以進行檢查。 會根據您的組態選擇 AWS WAF 執行這些步驟。

下列列出 AWS WAF 執行的步驟。

1. **剖析內文內容** – AWS WAF 剖析 Web 請求內文的內容，以擷取 JSON 元素進行檢查。 AWS WAF 會盡力剖析內文的整個內容，但剖析可能會因內容中的各種錯誤狀態而失敗。範例包括無效的字元、重複的金鑰、截斷，以及根節點不是物件或陣列的內容。

   選項內**文剖析後援行為**會決定如果無法完整剖析 JSON 內文， AWS WAF 該怎麼辦：
   + **None （預設行為）** - 評估 AWS WAF 內容直到遇到剖析錯誤為止。
   + **評估為字串** - 檢查內文為純文字。 會將您為 JSON 檢查定義的文字轉換和檢查條件 AWS WAF 套用至內文文字字串。
   + **相符** - 將 Web 請求視為符合規則陳述式。 會將規則動作 AWS WAF 套用至請求。
   + **不相符** - 將 Web 請求視為不符合規則陳述式。
**注意**  
此備用行為只會在剖析 JSON 字串 AWS WAF 時發生錯誤時觸發。

**剖析無法完全驗證 JSON**  
AWS WAF 剖析不會完全驗證輸入 JSON 字串，因此即使 JSON 無效，剖析也會成功。

   例如， 會 AWS WAF 剖析下列無錯誤的無效 JSON：
   + 缺失逗號：`{"key1":"value1""key2":"value2"}`
   + 缺失冒號：`{"key1":"value1","key2""value2"}`
   + 額外冒號：`{"key1"::"value1","key2""value2"}`

   對於剖析成功但結果不是完全有效 JSON 的這類案例，評估中後續步驟的結果可能會有所不同。擷取可能會遺漏一些元素，或者規則評估可能會有非預期的結果。我們建議您驗證應用程式中收到的 JSON，並視需要處理無效的 JSON。

1. **擷取 JSON 元素** – 根據您的設定 AWS WAF 識別要檢查的 JSON 元素子集：
   + 選項 **JSON 比對範圍**指定 JSON 中 AWS WAF 應檢查的元素類型。

     您可以同時為**金鑰**和**值**指定金鑰、值或**全部**。

     **全部**不需要在索引鍵中找到相符項目，以及在值中找到相符項目。它需要在索引鍵或值或兩者中找到相符項目。若要在金鑰和值中要求相符項目，請使用邏輯`AND`陳述式來結合兩個相符規則，一個規則會檢查金鑰，另一個規則則會檢查值。
   + **要檢查的選項 內容**指定如何篩選設定為您要 AWS WAF 檢查之子集的元素。

     您必須指定下列其中一項：
     + **完整 JSON 內容** - 評估所有元素。
     + **僅包含的元素** - 僅評估路徑符合您提供的 JSON 指標條件的元素。請勿使用此選項來指示 JSON 中的所有**路徑。請改用**完整 JSON 內容**。

       如需 JSON 指標語法的相關資訊，請參閱網際網路工程任務小組 (IETF) 文件 [JavaScript 物件標記法 (JSON) 指標](https://tools.ietf.org/html/rfc6901)。

       例如，在 主控台中，您可以提供下列項目：

       ```
       /dogs/0/name
       /dogs/1/name
       ```

       在 API 或 CLI 中，您可以提供下列項目：

       ```
       "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]
       ```

   例如，假設**要檢查設定的內容**是**僅包含的元素**，而包含的元素設定是 `/a/b`。

   對於下列範例 JSON 內文：

   ```
   { 
     "a":{
       "c":"d",
       "b":{
         "e":{
           "f":"g"
         }
       }
     }
   }
   ```

    AWS WAF 會檢查每個 **JSON 比對範圍**設定的元素集如下所示。請注意`b`，金鑰 是包含元素路徑的一部分，因此不會進行評估。
   + **全部**：`e`、 `f,`和 `g`。
   + **金鑰**： `e`和 `f`。
   + **值**：`g`。

1. **檢查 JSON 元素集** – 將您指定的任何文字轉換 AWS WAF 套用至擷取的 JSON 元素，然後將產生的元素集與規則陳述式的比對條件相符。這與其他 Web 請求元件的轉換和評估行為相同。如果任何擷取的 JSON 元素相符，表示 Web 請求符合規則。

# 在 中使用轉送的 IP 地址 AWS WAF
使用轉送的 IP 地址在 Web 請求中指定 IP 地址位置

新增使用您指定 HTTP 標頭之 IP 地址的選項，而不是使用 Web 請求原始伺服器。替代標頭通常是 `X-Forwarded-For`(XFF)，但您可以指定任何標頭名稱。您可以使用此選項進行 IP 集比對、地理比對和以速率為基礎的規則計數彙總。

本節適用於使用 Web 請求 IP 地址的規則陳述式。根據預設， AWS WAF 會使用來自 Web 請求原始伺服器的 IP 地址。不過，如果 Web 請求通過一或多個代理或負載平衡器，Web 請求原始伺服器將包含最後一個代理的地址，而不是用戶端的原始地址。在這種情況下，來源用戶端地址通常會在另一個 HTTP 標頭中轉送。此標頭通常是 `X-Forwarded-For`(XFF)，但可以是不同的標頭。

**使用 IP 地址的規則陳述式**  
使用 IP 地址的規則陳述式如下：
+ [IP 集合比對](waf-rule-statement-type-ipset-match.md) - 檢查 IP 地址是否與 IP 集中定義的地址相符。
+ [地理比對](waf-rule-statement-type-geo-match.md) - 使用 IP 地址來判斷原始國家/地區和區域，並將原始國家/地區與國家/地區清單比對。
+ [ASN 比對](waf-rule-statement-type-asn-match.md) - 使用 IP 地址來判斷自治系統編號 (ASN)，並將 ASN 與 ASNs清單比對。
+ [使用以速率為基礎的規則陳述式](waf-rule-statement-type-rate-based.md) - 可以依其 IP 地址彙總請求，以確保個別 IP 地址不會以過高的速率傳送請求。您可以單獨使用 IP 地址彙總，或與其他彙總金鑰結合使用。

您可以指示 從 `X-Forwarded-For`標頭或另一個 HTTP 標頭使用任何這些規則陳述式的 AWS WAF 轉送 IP 地址，而不是使用 Web 請求的原始伺服器。如需如何提供規格的詳細資訊，請參閱個別規則陳述式類型的指引。

**注意**  
如果缺少標頭， 會 AWS WAF 評估使用該標頭的任何陳述式為「不相符」。如果您使用 NOT 陳述式搭配 "No match" 結果， 會將評估 AWS WAF 轉換為 "Match"。缺少標頭不會觸發備用行為 - 只有無效的標頭值才會觸發。

**備用行為**  
當您使用轉送的 IP 地址時，如果請求在指定位置沒有有效的 IP 地址，您會指出 AWS WAF 要指派給 Web 請求的比對狀態：
+ **MATCH** - 將 Web 請求視為符合規則陳述式。 會將規則動作 AWS WAF 套用至請求。
+ **NO MATCH** - 將 Web 請求視為不符合規則陳述式。

**機器人 AWS WAF 控制中使用的 IP 地址**  
Bot Control 受管規則群組會使用來自 的 IP 地址來驗證機器人 AWS WAF。如果您使用 Bot Control，而且已驗證透過代理或負載平衡器路由的機器人，則需要使用自訂規則明確允許它們。例如，您可以設定自訂 IP 集比對規則，使用轉送的 IP 地址來偵測和允許已驗證的機器人。您可以使用 規則，以多種方式自訂機器人管理。如需詳細資訊和範例，請參閱 [AWS WAF 機器人控制](waf-bot-control.md)。

**使用轉送 IP 地址的一般考量**  
在使用轉送的 IP 地址之前，請注意下列一般注意事項：
+ 代理可以沿途修改標頭，代理可能會以不同的方式處理標頭。
+ 攻擊者可能會更改 標頭的內容，以嘗試繞過 AWS WAF 檢查。
+ 標頭內的 IP 地址可能格式錯誤或無效。
+ 您指定的標頭可能完全不存在於請求中。

**搭配 使用轉送 IP 地址的考量 AWS WAF**  
下列清單說明在 中使用轉送 IP 地址的要求和注意事項 AWS WAF：
+ 對於任何單一規則，您可以為轉送的 IP 地址指定一個標頭。標頭規格不區分大小寫。
+ 對於以速率為基礎的規則陳述式，任何巢狀範圍陳述式都不會繼承轉送的 IP 組態。為使用轉送 IP 地址的每個陳述式指定組態。
+ 對於地理比對、ASN 比對和以速率為基礎的規則， AWS WAF 會使用 標頭中的第一個地址。例如，如果標頭包含 `10.1.1.1, 127.0.0.0, 10.10.10.10` AWS WAF 使用 `10.1.1.1`
+ 對於 IP 集比對，您可以指出要比對標頭中的第一個、最後一個或任何地址。如果您指定任何 ， 會 AWS WAF 檢查標頭中的所有地址是否相符，最多 10 個地址。如果標頭包含超過 10 個地址， 會 AWS WAF 檢查最後 10 個地址。
+ 包含多個地址的標頭必須在地址之間使用逗號分隔符號。如果請求使用逗號以外的分隔符號， AWS WAF 會將標頭中的 IP 地址視為格式錯誤。
+ 如果標頭內的 IP 地址格式錯誤或無效， AWS WAF 會根據您在轉送 IP 組態中指定的備用行為，將 Web 請求指定為符合規則或不相符。
+ 如果您指定的標頭不存在於請求中， AWS WAF 則 不會將規則套用至請求。這表示 AWS WAF 不會套用規則動作，也不會套用備用行為。
+ 針對 IP 地址使用轉送 IP 標頭的規則陳述式不會使用 Web 請求原始伺服器報告的 IP 地址。

**搭配 使用轉送 IP 地址的最佳實務 AWS WAF**  
當您使用轉送的 IP 地址時，請使用下列最佳實務：
+ 在啟用轉送 IP 組態之前，請仔細考慮請求標頭的所有可能狀態。您可能需要使用多個規則來取得您想要的行為。
+ 若要檢查多個轉送 IP 標頭或檢查 Web 請求原始伺服器和轉送 IP 標頭，請為每個 IP 地址來源使用一個規則。
+ 若要封鎖具有無效標頭的 Web 請求，請設定規則動作來封鎖和設定要符合之轉送 IP 組態的備用行為。

**轉送 IP 地址的範例 JSON**  
下列地理比對陳述式只有在 `X-Forwarded-For` 標頭包含的 IP 原始國家/地區為 時才會相符`US`：

```
{
  "Name": "XFFTestGeo",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "XFFTestGeo"
  },
  "Statement": {
    "GeoMatchStatement": {
      "CountryCodes": [
        "US"
      ],
      "ForwardedIPConfig": {
        "HeaderName": "x-forwarded-for",
        "FallbackBehavior": "MATCH"
      }
    }
  }
}
```

下列以速率為基礎的規則會根據 `X-Forwarded-For`標頭中的第一個 IP 彙總請求。規則只會計算符合巢狀地理比對陳述式的請求，而且只會封鎖符合地理比對陳述式的請求。巢狀地理比對陳述式也會使用 `X-Forwarded-For`標頭來判斷 IP 地址是否指出 的原始國家/地區`US`。如果存在，或者如果標頭存在但格式不正確，則地理比對陳述式會傳回相符項目。

```
{
  "Name": "XFFTestRateGeo",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "XFFTestRateGeo"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": "100",
      "AggregateKeyType": "FORWARDED_IP",
      "ScopeDownStatement": {
        "GeoMatchStatement": {
          "CountryCodes": [
            "US"
          ],
          "ForwardedIPConfig": {
            "HeaderName": "x-forwarded-for",
            "FallbackBehavior": "MATCH"
          }
        }
      },
      "ForwardedIPConfig": {
        "HeaderName": "x-forwarded-for",
        "FallbackBehavior": "MATCH"
      }
    }
  }
}
```

# 在 中檢查 HTTP/2 虛擬標頭 AWS WAF
檢查 HTTP/2 虛擬標頭如何檢查 HTTP/2 虛擬標頭

新增將 HTTP/2 虛擬標頭映射至其對應 Web 請求元件的區段。

本節說明如何使用 AWS WAF 檢查 HTTP/2 虛擬標頭。

支援 HTTP/2 流量的受保護 AWS 資源不會將 HTTP/2 虛擬標頭轉送至 AWS WAF 進行檢查，但會在 AWS WAF 檢查的 Web 請求元件中提供虛擬標頭的內容。

您可以使用 僅 AWS WAF 檢查下表中列出的虛擬標頭。


**HTTP/2 虛擬標頭內容映射至 Web 請求元件**  

| HTTP/2 虛擬標頭 | 要檢查的 Web 請求元件 | 文件 | 
| --- | --- | --- | 
|  `:method`  |  HTTP 方法   |  [HTTP 方法](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-http-method)  | 
|  `:authority`  |  `Host` 標頭   |  [單一標頭](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-header)  [所有標頭](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-headers)  | 
|  `:path` URI 路徑  | URI 路徑  | [URI 路徑](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-path) | 
|  `:path` 查詢  |  查詢字串  |  [查詢字串](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-query-string) [單一查詢參數](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-query-param) [所有查詢參數](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-all-query-params)  | 

# 在 中使用文字轉換 AWS WAF
使用文字轉換AWS WAF HTML 實體解碼文字轉換

擴充 HTML 實體解碼文字轉換的功能。AWS WAF 其他文字轉換選項

文字轉換的擴展選項，您可以在檢查之前套用到 Web 請求元件。

本節說明如何在檢查請求之前提供 AWS WAF 要套用的轉換。

在尋找模式或設定限制條件的陳述式中，您可以在檢查請求之前提供 AWS WAF 要套用的轉換。轉換會將 Web 請求重新格式化，以避免攻擊者用來試圖略過 AWS WAF的某些異常格式。

當您搭配 JSON 內文請求元件選擇使用時， AWS WAF 會在剖析和擷取元素以從 JSON 檢查之後套用轉換。如需詳細資訊，請參閱[JSON 內文](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-json-body)。

如果您提供多個轉換，您也可以設定讓 AWS WAF 套用它們的順序。

**WCUs** – 每個文字轉換都是 10 WCUs。

 AWS WAF 主控台和 API 文件也提供下列位置中這些設定的指引：
+ 主控台上的**規則建置器** – **文字轉換**。當您使用請求元件時，此選項可供使用。
+ **API 陳述式內容** – `TextTransformations`文字轉換的選項

每個轉換清單會顯示主控台和 API 規格，後面接著描述。

Base64 decode – `BASE64_DECODE`  
AWS WAF 解碼 Base64-encoded字串。

Base64 decode extension – `BASE64_DECODE_EXT`  
AWS WAF 解碼 Base64-encoded字串，但使用忽略無效字元的寬容實作。

Command line – `CMD_LINE`  
此選項可緩解攻擊者可能注入作業系統命令列命令，並使用異常格式來掩飾部分或全部命令的情況。  
使用此選項可執行下列轉換：  
+ 刪除以下字元：`\ " ' ^`
+ 刪除以下字元前的空格：`/ (`
+ 將以下字元取代為空格：`, ;`
+ 將數個空格取代為一個空格
+ 將大寫字母 `A-Z` 轉換成小寫字母 `a-z`

Compress whitespace – `COMPRESS_WHITE_SPACE`  
AWS WAF 壓縮空格的方式是將多個空格取代為一個空格，並將下列字元取代為空格字元 (ASCII 32)：  
+ Formfeed (ASCII 12)
+ Tab (ASCII 9)
+ Newline (ASCII 10)
+ 歸位運送 (ASCII 13)
+ 垂直標籤 (ASCII 11)
+ 非中斷空間 (ASCII 160)

CSS decode – `CSS_DECODE`  
AWS WAF 解碼使用 CSS 2.x 逸出規則 編碼的字元。 `syndata.html#characters`此函數在解碼過程中最多使用兩個位元組，因此它可以幫助您發現使用 CSS 編碼進行編碼的 ASCII 字元 (這些字元通常不會被編碼)。它在反擊逃脫方面也很有用，後者是反斜線和非十六進位字元的組合。例如，`javascript` 的 `ja\vascript`。

Escape sequences decode – `ESCAPE_SEQ_DECODE`  
AWS WAF 解碼下列 ANSI C 逸出序列：`\a`、`\b`、`\f`、`\n`、`\r``\t`、、`\v`、`\\``\?`、`\'`、`\"`、、 `\xHH` （十六進位）、`\0OOO`（八進位）。無效的編碼會保留在輸出中。

Hex decode – `HEX_DECODE`  
AWS WAF 會將十六進位字元字串解碼為二進位。

HTML entity decode – `HTML_ENTITY_DECODE`  
AWS WAF 會將以十六進位格式`&#xhhhh;`或十進位格式表示的字元`&#nnnn;`取代為對應的字元。  
AWS WAF 會以未編碼的字元取代下列 HTML 編碼的字元。此清單使用小寫 HTML 編碼，但處理方式不區分大小寫，例如`&quot;`，`&QuOt;`且視為相同。      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/waf-rule-statement-transformation.html)

JS decode – `JS_DECODE`  
AWS WAF 解碼 JavaScript 逸出序列。如果`\uHHHH`程式碼在 的完整寬度 ASCII 程式碼範圍內`FF01-FF5E`，則會使用較高的位元組來偵測和調整較低的位元組。如果不是，則只會使用較低的位元組，並將較高的位元組歸零，而這可能導致資訊遺失。

Lowercase – `LOWERCASE`  
AWS WAF 將大寫字母 (A-Z) 轉換為小寫 (a-z)。

MD5 – `MD5`  
AWS WAF 從輸入中的資料計算 MD5 雜湊。計算出的雜湊是原始二進位形式。

None – `NONE`  
AWS WAF 會檢查 Web 請求是否收到，而不會進行任何文字轉換。

Normalize path – `NORMALIZE_PATH`  
AWS WAF 透過移除不在輸入開頭的多個斜線、目錄自我參考和目錄回溯參考來標準化輸入字串。

Normalize path Windows – `NORMALIZE_PATH_WIN`  
AWS WAF 轉換反斜線字元以轉送斜線，然後使用`NORMALIZE_PATH`轉換處理產生的字串。

Remove nulls – `REMOVE_NULLS`  
AWS WAF 會從輸入中移除所有`NULL`位元組。

Replace comments – `REPLACE_COMMENTS`  
AWS WAF 會以單一空格取代每次出現的 C 樣式註解 (/\$1 ... \$1/)。它不會壓縮多個連續的出現次數。它以空格 (ASCII 0x20) 取代未終止的註解。它不會變更註解的獨立終止 (\$1/)。

Replace nulls – `REPLACE_NULLS`  
AWS WAF 會以空格字元 (ASCII 0x20) `NULL` 取代輸入中的每個位元組。

SQL hex decode – `SQL_HEX_DECODE`  
AWS WAF 解碼 SQL 十六進位資料。例如，將 (`0x414243`) AWS WAF 解碼為 (`ABC`)。

URL decode – `URL_DECODE`  
AWS WAF 解碼 URL 編碼的值。

URL decode Unicode – `URL_DECODE_UNI`  
與 類似`URL_DECODE`，但支援 Microsoft 特定`%u`編碼。如果代碼是在 `FF01-FF5E` 的全形 ASCII 碼範圍內，則使用較高的位元組來偵測和調整較低的位元組。否則，只會使用較低的位元組，而較高的位元組會歸零。

UTF8 to Unicode – `UTF8_TO_UNICODE`  
AWS WAF 將所有 UTF-8 字元序列轉換為 Unicode。這有助於標準化輸入，並將非英文語言的偽陽性和偽陰性降至最低。

# 在 中使用縮小範圍陳述式 AWS WAF
使用縮小範圍陳述式受管規則群組的範圍縮減陳述式

您現在可以使用縮小範圍陳述式搭配受管規則群組，就像使用速率型陳述式一樣。

本節說明縮小範圍陳述式及其運作方式。

縮小範圍陳述式是一種可巢狀規則陳述式，您可以在受管規則群組陳述式或速率型陳述式中新增，以縮小包含規則評估的一組請求。包含規則只會評估最先符合範圍縮小陳述式的請求。
+ **受管規則群組陳述式** – 如果您將縮小範圍陳述式新增至受管規則群組陳述式， 會將不符合縮小範圍陳述式的任何請求 AWS WAF 評估為不符合規則群組。只有符合縮小範圍陳述式的請求才會針對規則群組進行評估。對於定價基於評估請求數量的受管規則群組，縮小範圍陳述式有助於包含成本。

  如需受管規則群組陳述式的詳細資訊，請參閱 [在 中使用受管規則群組陳述式 AWS WAF](waf-rule-statement-type-managed-rule-group.md)。
+ **速率型規則陳述**式 – 沒有範圍縮小陳述式速率的速率型規則陳述式會限制規則評估的所有請求。如果您只想要控制特定類別請求的速率，請將縮小範圍陳述式新增至速率型規則。例如，若要僅追蹤和控制來自特定地理區域的請求率，您可以在地理比對陳述式中指定該地理區域，並將其新增至以速率為基礎的規則作為縮小範圍陳述式。

  如需速率型規則陳述式的詳細資訊，請參閱 [在 中使用以速率為基礎的規則陳述式 AWS WAF](waf-rule-statement-type-rate-based.md)。

您可以在縮小範圍陳述式中使用任何可巢狀規則。如需可用的陳述式，請參閱 [在 中使用相符規則陳述式 AWS WAF](waf-rule-statements-match.md)和 [在 中使用邏輯規則陳述式 AWS WAF](waf-rule-statements-logical.md)。縮小範圍陳述式WCUs 是您在其中定義之規則陳述式所需的 WCUs。使用縮小範圍陳述式無需額外費用。

您可以在一般規則中使用陳述式時，以相同的方式設定縮小範圍陳述式。例如，您可以將文字轉換套用至您正在檢查的 Web 請求元件，也可以指定轉送的 IP 地址做為 IP 地址。這些組態僅適用於縮小範圍陳述式，且不會繼承為包含受管規則群組或速率型規則陳述式的 。

例如，如果您將文字轉換套用至範圍縮小陳述式中的查詢字串，範圍縮小陳述式會在套用轉換之後檢查查詢字串。如果請求符合縮小範圍陳述式條件， AWS WAF 則 會將 Web 請求傳遞至包含其原始狀態的規則，而不包含縮小範圍陳述式的轉換。包含縮小範圍陳述式的規則可能會套用自己的文字轉換，但不會繼承縮小範圍陳述式中的任何內容。

您不能使用縮小範圍陳述式來指定包含規則陳述式的任何請求檢查組態。您不能使用縮小範圍陳述式做為包含規則陳述式的 Web 請求前置處理器。縮小範圍陳述式的唯一角色是判斷哪些請求會傳遞至包含規則陳述式以進行檢查。

# 在 中參考可重複使用的實體 AWS WAF
參考可重複使用的實體

本節說明可重複使用實體的運作方式 AWS WAF。

有些規則使用可重複使用且由您 AWS或 AWS Marketplace 賣方在 Web ACLs 外部管理的實體。更新可重複使用的實體時， AWS WAF 會將更新傳播至您的規則。例如，如果您在保護套件 (Web ACL) 中使用 AWS 受管規則規則群組，當 AWS 更新規則群組時， 會將變更 AWS 傳播到您的 Web ACL，以更新其行為。如果您在規則中使用 IP 集合陳述式，當您更新集合時， 會將變更 AWS WAF 傳播到所有參考它的規則，因此使用這些規則的任何保護套件 (Web ACLs) 都會隨著您的變更保持up-to-date狀態。

以下是您可以在規則陳述式中使用的可重複使用的實體。
+ **IP 集** – 您可以建立和管理自己的 IP 集。在主控台上，您可以從導覽窗格存取這些項目。如需管理 IP 集合的相關資訊，請參閱 [中的 IP 集和 regex 模式集 AWS WAF](waf-referenced-set-managing.md)。
+ **Regex 比對集** – 您可以建立和管理自己的 regex 比對集。在主控台上，您可以從導覽窗格存取這些項目。如需管理規則運算式模式集的相關資訊，請參閱 [中的 IP 集和 regex 模式集 AWS WAF](waf-referenced-set-managing.md)。
+ **AWS 受管規則規則群組** – AWS 管理這些規則群組。在 主控台上，當您將受管規則群組新增至保護套件 (Web ACL) 時，即可使用這些規則群組。如需這些項目的詳細資訊，請參閱[AWS 受管規則規則群組清單](aws-managed-rule-groups-list.md)。
+ **AWS Marketplace 受管規則群組** – AWS Marketplace 賣方管理這些規則群組，您可以訂閱這些規則群組以使用這些規則群組。若要管理您的訂閱，請在主控台的導覽窗格中選擇 **AWS Marketplace**。當您將 AWS Marketplace 受管規則群組新增至保護套件 (Web ACL) 時，會列出受管規則群組。對於您尚未訂閱的規則群組，您也可以 AWS Marketplace 在該頁面上找到 的連結。如需 AWS Marketplace 賣方受管規則群組的詳細資訊，請參閱 [AWS Marketplace 規則群組](marketplace-rule-groups.md)。
+ **您自己的規則群組** – 您可以管理自己的規則群組，通常當您需要一些無法透過受管規則群組使用的行為時。在主控台上，您可以從導覽窗格存取這些項目。如需詳細資訊，請參閱[管理您自己的規則群組](waf-user-created-rule-groups.md)。

**刪除參考集或規則群組**  
當您刪除參考的實體時， 會 AWS WAF 檢查它目前是否在保護套件 (Web ACL) 中使用。如果 AWS WAF 發現實體正在使用中，它會警告您。 AWS WAF 幾乎總是能夠判斷保護套件 (Web ACL) 是否正在參考實體。但是在極少數的情況下，它也可能無法判斷。如果您需要確定要刪除的實體未在使用中，請在 Web ACL 中檢查它，然後再刪除它。

# 在 中使用相符規則陳述式 AWS WAF
使用相符規則陳述式

本節說明什麼是配對陳述式及其運作方式。

比對陳述式會將 Web 請求或其原始伺服器與您提供的條件進行比較。對於此類型的許多陳述式， AWS WAF 會比較符合內容請求的特定元件。

相符陳述式是可巢狀的。您可以在邏輯規則陳述式中巢狀化任何這些陳述式，而且您可以在縮小範圍陳述式中使用它們。如需邏輯規則陳述式的詳細資訊，請參閱 [在 中使用邏輯規則陳述式 AWS WAF](waf-rule-statements-logical.md)。如需縮小範圍陳述式的資訊，請參閱 [在 中使用縮小範圍陳述式 AWS WAF](waf-rule-scope-down-statements.md)。

此表格說明您可以新增至規則的一般比對陳述式，並提供一些準則來計算每個規則的保護套件 (Web ACL) 容量單位 (WCU) 用量。如需 WCU 的相關資訊，請參閱 [中的 Web ACL 容量單位 WCUs) AWS WAF](aws-waf-capacity-units.md)。


| 比對陳述式 | Description | WCU | 
| --- | --- | --- | 
| [地理比對](waf-rule-statement-type-geo-match.md) | 檢查請求的來源國家/地區，並套用來源國家/地區和區域的標籤。 | 1 | 
|  [ASN 比對](waf-rule-statement-type-asn-match.md)  |  針對與 IP 地址和地址範圍相關聯的 ASN 檢查請求。  |  1  | 
|  [IP 集合比對](waf-rule-statement-type-ipset-match.md)  |  針對一組 IP 地址和地址範圍檢查請求。  |  1 表示大多數情況。如果您將陳述式設定為使用具有轉送 IP 地址的標頭，並在 的標頭中指定位置Any，則將 WCUs 增加 4。  | 
|  [標籤比對規則陳述式](waf-rule-statement-type-label-match.md)  |  檢查請求是否有由相同保護套件 (Web ACL) 中其他規則新增的標籤。  |  1   | 
| [Regex 比對規則陳述式](waf-rule-statement-type-regex-match.md) | 將 regex 模式與指定的請求元件進行比較。 | 3，作為基本成本。 如果您使用請求元件 **所有查詢參數**，請新增 10 WCUs。如果您使用請求元件 **JSON 內文**，請將基本成本 WCUs加倍。針對您套用的每個**文字轉換**，新增 10 WCUs。  | 
|  [規則運算式模式集](waf-rule-statement-type-regex-pattern-set-match.md)  |  將規則運算式模式與指定的請求元件比較。  |  每個模式集 25 個，以基本成本表示。 如果您使用請求元件 **所有查詢參數**，請新增 10 WCUs。如果您使用請求元件 **JSON 內文**，請將基本成本 WCUs加倍。針對您套用的每個**文字轉換**，新增 10 WCUs。  | 
| [大小約束](waf-rule-statement-type-size-constraint-match.md) | 針對指定的請求元件檢查大小約束。 | 1，作為基本成本。 如果您使用請求元件 **所有查詢參數**，請新增 10 WCUs。如果您使用請求元件 **JSON 內文**，請將基本成本 WCUs加倍。針對您套用的每個**文字轉換**，新增 10 WCUs。  | 
| [SQLi 攻擊](waf-rule-statement-type-sqli-match.md) | 檢查指定請求元件中的惡意 SQL 程式碼。 | 20，作為基本成本。如果您使用請求元件 **所有查詢參數**，請新增 10 WCUs。如果您使用請求元件 **JSON 內文**，請將基本成本 WCUs加倍。針對您套用的每個**文字轉換**，新增 10 WCUs。 | 
| [字串比對](waf-rule-statement-type-string-match.md) | 比較字串與指定的請求元件。 |  基本成本取決於字串比對的類型，且介於 1 到 10 之間。如果您使用請求元件 **所有查詢參數**，請新增 10 WCUs。如果您使用請求元件 **JSON 內文**，請將基本成本 WCUs加倍。針對您套用的每個**文字轉換**，新增 10 WCUs。  | 
| [XSS 指令碼攻擊](waf-rule-statement-type-xss-match.md) | 檢查指定請求元件中的跨網站指令碼攻擊。 | 40，作為基本成本。如果您使用請求元件 **所有查詢參數**，請新增 10 WCUs。如果您使用請求元件 **JSON 內文**，請將基本成本 WCUs加倍。針對您套用的每個**文字轉換**，新增 10 WCUs。 | 

# 地理比對規則陳述式
地理比對地理比對陳述式現在會將標籤新增至國家和區域的請求

您現在可以將地理比對與標籤比對結合，在區域層級管理地理請求原始伺服器。

本節說明什麼是地理比對陳述式及其運作方式。

使用地理或地理比對陳述式，根據原始國家/地區和區域來管理 Web 請求。地理比對陳述式會將標籤新增至 Web 請求，指出來源國家/地區和來源區域。無論陳述式條件是否符合請求，它都會新增這些標籤。地理比對陳述式也會針對請求的原始國家/地區執行比對。

## 如何使用地理比對陳述式


您可以使用地理比對陳述式進行國家或地區比對，如下所示：
+ **國家**/地區 — 您可以使用地理比對規則本身，僅根據請求的來源國家/地區來管理請求。規則陳述式符合國家/地區代碼。您也可以遵循地理比對規則，並在原始國家/地區標籤上使用符合的標籤比對規則。
**注意**  
若要篩選來自香港的流量，請使用地理比對陳述式`HK`中的 ISO 3166-1 alpha-2 國家/地區代碼。
+ **區域** — 使用地理比對規則，後面接著標籤比對規則，根據其來源區域來管理請求。您無法單獨使用地理比對規則來比對區域代碼。

如需使用標籤比對規則的詳細資訊，請參閱 [標籤比對規則陳述式](waf-rule-statement-type-label-match.md)和 [中的 Web 請求標籤 AWS WAF](waf-labels.md)。

## 地理比對陳述式的運作方式


使用地理比對陳述式， AWS WAF 管理每個 Web 請求，如下所示：

1. **確定請求的國家和區域代碼** — 根據請求的 IP 地址 AWS WAF 確定請求的國家和區域。根據預設， AWS WAF 會使用 Web 請求原始伺服器的 IP 地址。您可以在規則陳述式設定中啟用轉送的 IP 組態`X-Forwarded-For`， AWS WAF 指示 使用來自替代請求標頭的 IP 地址，例如 。

   AWS WAF 決定使用 MaxMind GeoIP 資料庫的請求位置。MaxMind 在國家/地區層級報告非常高的資料準確性，但準確性會根據國家/地區和 IP 類型等因素而有所不同。如需 MaxMind 的詳細資訊，請參閱 [MaxMind IP 地理位置](https://support.maxmind.com/hc/en-us/sections/4407519834267-IP-Geolocation)。如果您認為任何 GeoIP 資料不正確，您可以在 [MaxMind Correct GeoIP2 Data](https://support.maxmind.com/hc/en-us/articles/4408252036123-GeoIP-Correction) 向 Maxmind 提交更正請求。

   AWS WAF 使用國際標準化組織 (ISO) 3166 標準中的 alpha-2 國家和區域代碼。您可以在下列位置找到代碼：
   + 在 ISO 網站上，您可以在 [ISO Online Browsing Platform (OBP)](https://www.iso.org/obp/ui#home) 搜尋國家/地區代碼。
   + 在維基百科，國家/地區代碼列於 [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)。

     國家/地區的區域代碼列於 URL `https://en.wikipedia.org/wiki/ISO_3166-2:<ISO country code>`。例如，美國區域位於 [ISO 3166-2：US](https://en.wikipedia.org/wiki/ISO_3166-2:US)，烏克蘭區域位於 [ISO 3166-2：UA](https://en.wikipedia.org/wiki/ISO_3166-2:UA)。

1. **決定要新增至請求的國家/地區標籤和區域標籤** — 這些標籤指出地理比對陳述式是使用原始 IP 還是轉送 IP 組態。
   + **原始 IP** 

     國家/地區標籤為 `awswaf:clientip:geo:country:<ISO country code>`。美國的範例：`awswaf:clientip:geo:country:US`。

     區域標籤為 `awswaf:clientip:geo:region:<ISO country code>-<ISO region code>`。美國奧勒岡州的範例：`awswaf:clientip:geo:region:US-OR`。
   + **轉送的 IP** 

     國家/地區標籤為 `awswaf:forwardedip:geo:country:<ISO country code>`。美國的範例：`awswaf:forwardedip:geo:country:US`。

     區域標籤為 `awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code>`。美國奧勒岡州的範例：`awswaf:forwardedip:geo:region:US-OR`。

   如果請求指定的 IP 地址無法使用國家/地區或區域代碼，則 AWS WAF 會在 `XX`標籤中使用 來取代 值。例如，下列標籤適用於無法使用國家/地區碼的用戶端 IP：`awswaf:clientip:geo:country:XX`而下列標籤適用於轉送 IP，其國家/地區為美國，但其區域碼無法使用：`awswaf:forwardedip:geo:region:US-XX`。

1. **根據規則條件評估請求的國家/地區代碼** 

地理比對陳述式會將國家和區域標籤新增至其檢查的所有請求，無論它是否找到相符項目。

**注意**  
AWS WAF 在規則的 Web 請求評估結束時新增任何標籤。因此，您針對地理比對陳述式中的標籤使用的任何標籤比對，都必須在包含地理比對陳述式的規則以外的個別規則中定義。

如果您只想要檢查區域值，則可以使用 Count動作和單一國家/地區代碼比對來撰寫地理比對規則，然後撰寫區域標籤的標籤比對規則。您必須提供地理比對規則的國家/地區代碼來評估，即使是此方法也是如此。您可以指定不太可能成為網站流量來源的國家/地區，以減少記錄和計數指標。

## CloudFront 分佈和 CloudFront 地理限制功能


對於 CloudFront 分佈，如果您使用 CloudFront 地理限制功能，請注意該功能不會轉送封鎖的請求 AWS WAF。它會將允許的請求轉送至 AWS WAF。如果您想要根據地理位置加上您可以在其中指定的其他條件來封鎖請求 AWS WAF，請使用 AWS WAF 地理比對陳述式，請勿使用 CloudFront 地理限制功能。

## 規則陳述式特性


**可巢狀** – 您可以巢狀此陳述式類型。

**WCUs ** – 1 個 WCU。

**設定** – 此陳述式使用以下設定：
+ **國家/地區代碼** – 要比較地理比對的國家/地區代碼陣列。這些必須是來自 ISO 3166 國際標準 alpha-2 國家 ISO 代碼的兩個字元國家/地區代碼，例如 `["US","CN"]`。
+ **（選用） 轉送 IP 組態** – 根據預設， AWS WAF 會使用 Web 請求原始伺服器中的 IP 地址來判斷原始國家/地區。或者，您可以將規則設定為在 HTTP 標頭中使用轉送的 IP，例如 `X-Forwarded-For` 。 AWS WAF 會使用標頭中的第一個 IP 地址。使用此組態，您也可以指定後援行為，以套用至標頭中 IP 地址格式不正確的 Web 請求。備用行為會將請求的相符結果設定為相符或不相符。如需詳細資訊，請參閱[使用轉送的 IP 地址](waf-rule-statement-forwarded-ip-address.md)。

## 尋找此規則陳述式的位置

+ 主控台上的**規則建置器** – 針對**請求選項**，選擇**來自所在國家/地區的原始伺服器**。
+ **API** – [GeoMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html)

## 範例


您可以使用地理比對陳述式來管理來自特定國家或地區的請求。例如，如果您想要封鎖來自某些國家/地區的請求，但仍允許來自這些國家/地區的一組特定 IP 地址的請求，您可以建立將 動作設為 的規則，Block並建立下列巢狀陳述式，如虛擬程式碼所示：
+ AND 陳述式
  + 列出您要封鎖的國家/地區的地理比對陳述式
  + NOT 陳述式 
    + IP 集合陳述式，指定您要允許通過的 IP 地址

或者，如果您想要封鎖某些國家/地區的某些區域，但仍允許來自這些國家/地區的其他區域的請求，您可以先定義地理比對規則，並將 動作設為 Count。然後，定義符合新增地理比對標籤的標籤比對規則，並視需要處理請求。

下列虛擬程式碼說明此方法的範例：

1. Geo 比對陳述式列出具有您要封鎖之區域的國家/地區，但動作設為 Count。無論相符狀態為何，這都會標記每個 Web 請求，也可讓您計算感興趣的國家/地區的指標。

1. `AND` 具有封鎖動作的 陳述式
   + 標籤比對陳述式，指定您要封鎖之國家/地區的標籤
   + `NOT` 陳述式 
     + 標籤比對陳述式，指定您要允許透過哪些國家/地區的區域標籤

下列 JSON 清單顯示先前虛擬程式碼中所述的兩個規則的實作。這些規則會封鎖來自美國的所有流量，但來自奧勒岡州和華盛頓州的流量除外。地理比對陳述式會將國家和區域標籤新增至其檢查的所有請求。標籤比對規則會在地理比對規則之後執行，因此可以比對地理比對規則剛新增的國家和區域標籤。地理比對陳述式使用轉送 IP 地址，因此標籤比對也會指定轉送 IP 標籤。

```
{
   "Name": "geoMatchForLabels",
   "Priority": 10,
   "Statement": {
     "GeoMatchStatement": {
       "CountryCodes": [
         "US"
       ],
       "ForwardedIPConfig": {
           "HeaderName": "X-Forwarded-For",
           "FallbackBehavior": "MATCH"
       }
     }
   },
   "Action": {
     "Count": {}
   },
   "VisibilityConfig": {
     "SampledRequestsEnabled": true,
     "CloudWatchMetricsEnabled": true,
     "MetricName": "geoMatchForLabels"
   }
},
{
   "Name": "blockUSButNotOROrWA",
   "Priority": 11,
   "Statement": {
     "AndStatement": {
       "Statements": [
         {
           "LabelMatchStatement": {
             "Scope": "LABEL",
             "Key": "awswaf:forwardedip:geo:country:US"
           }
         },
         {
           "NotStatement": {
             "Statement": {
                "OrStatement": {
                  "Statements": [
                    {
                       "LabelMatchStatement": {
                         "Scope": "LABEL",
                         "Key": "awswaf:forwardedip:geo:region:US-OR"
                       }
                    },
                    {
                       "LabelMatchStatement": {
                         "Scope": "LABEL",
                         "Key": "awswaf:forwardedip:geo:region:US-WA"
                       }
                    }
                 ]
               }
             }
           }
         }
       ]
     }
   },
   "Action": {
     "Block": {}
   },
   "VisibilityConfig": {
     "SampledRequestsEnabled": true,
     "CloudWatchMetricsEnabled": true,
     "MetricName": "blockUSButNotOROrWA"
   }
}
```

另一個範例是，您可以將地理比對與以速率為基礎的規則結合，為特定國家或地區的使用者排定資源的優先順序。您可以為用於區分使用者的每個地理比對或標籤比對陳述式建立不同的速率型陳述式。為偏好的國家或地區的使用者設定較高的速率限制，並為其他使用者設定較低的速率限制。

下列 JSON 清單顯示地理比對規則，後面接著速率型規則，以限制來自美國的流量速率。這些規則允許來自奧勒岡州的流量以比來自國家/地區其他任何地方的流量更高的速率傳入。

```
{
  "Name": "geoMatchForLabels",
  "Priority": 190,
  "Statement": {
    "GeoMatchStatement": {
      "CountryCodes": [
        "US"
      ]
    }
  },
  "Action": {
    "Count": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "geoMatchForLabels"
  }
},
{
  "Name": "rateLimitOregon",
  "Priority": 195,
  "Statement": {
    "RateBasedStatement": {
      "Limit": 3000,
      "AggregateKeyType": "IP",
      "ScopeDownStatement": {
        "LabelMatchStatement": {
          "Scope": "LABEL",
          "Key": "awswaf:clientip:geo:region:US-OR"
        }
      }
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "rateLimitOregon"
  }
},
{
  "Name": "rateLimitUSNotOR",
  "Priority": 200,
  "Statement": {
    "RateBasedStatement": {
      "Limit": 100,
      "AggregateKeyType": "IP",
      "ScopeDownStatement": {
        "AndStatement": {
          "Statements": [
            {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:clientip:geo:country:US"
              }
            },
            {
              "NotStatement": {
                "Statement": {
                  "LabelMatchStatement": {
                    "Scope": "LABEL",
                    "Key": "awswaf:clientip:geo:region:US-OR"
                  }
                }
              }
            }
          ]
        }
      }
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "rateLimitUSNotOR"
  }
}
```

# IP 集合比對規則陳述式
IP 集合比對

本節說明什麼是 IP 集比對陳述式及其運作方式。

IP 集合比對陳述式會根據一組 IP 地址和地址範圍來檢查 Web 請求的 IP 地址。使用此選項以根據請求源自的 IP 地址來允許或封鎖 Web 請求。根據預設， AWS WAF 會使用來自 Web 請求原始伺服器的 IP 地址，但您可以`X-Forwarded-For`改為將規則設定為使用 HTTP 標頭。



AWS WAF 支援除 以外的所有 IPv4 和 IPv6 CIDR 範圍`/0`。如需 CIDR 符號表示法的詳細資訊，請參閱 Wikipedia 項目[無類別域間路由](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)。一個 IP 集合最多可容納 10,000 個 IP 地址或 IP 地址範圍進行檢查。

**注意**  
每個 IP 集合比對規則都會參考一個 IP 集合，您可以獨立於規則而建立和維護。您可以在多個規則中使用單一 IP 集，當您更新參考集時， AWS WAF 會自動更新所有參考規則。  
如需建立和管理 IP 集的資訊，請參閱 [在 中建立和管理 IP 集 AWS WAF](waf-ip-set-managing.md)。

當您在規則群組或保護套件 (Web ACL) 中新增或更新規則時，請選擇選項 **IP 集**，然後選取您要使用的 IP 集名稱。

## 規則陳述式特性


**可巢**狀 – 您可以巢狀此陳述式類型。

**WCUs** – 大多數 1 個 WCU。如果您將陳述式設定為使用轉送 IP 地址並指定 的位置ANY，請將 WCU 用量增加 4。

此陳述式使用以下設定：
+ **IP 集規格** – 從清單中選擇您要使用的 IP 集，或建立新的 IP 集。
+ **（選用） 轉送 IP 組態** – 替代轉送 IP 標頭名稱，用於取代請求原始伺服器。您可以指定要比對標頭中的第一個、最後一個或任何地址。您也可以指定後援行為，以套用至指定標頭中 IP 地址格式不正確的 Web 請求。備用行為會將請求的相符結果設定為相符或不相符。如需詳細資訊，請參閱[使用轉送的 IP 地址](waf-rule-statement-forwarded-ip-address.md)。

## 尋找此規則陳述式的位置


**尋找此規則陳述式的位置**
+ 主控台上的**規則建置器** – 針對**請求選項**，選擇**來自 IP 地址的來源**。
+ 在主控台上**新增我自己的規則和規則群組**頁面 – 選擇 **IP 集**選項。
+ **API** – [IPSetReferenceStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_IPSetReferenceStatement.html)

# 自治系統編號 (ASN) 比對規則陳述式
ASN 比對AWS WAF 新增 ASN 比對陳述式

您現在可以根據原始 IP 地址的自治系統編號 (ASN) 來比對 Web 請求。

中的 ASN 比對規則陳述式 AWS WAF 可讓您根據與請求 IP 地址相關聯的自治系統編號 (ASN) 來檢查 Web 流量。ASNs是指派給大型網際網路網路的唯一識別符，由網際網路服務供應商、企業、大學或政府機構等組織管理。透過使用 ASN 比對陳述式，您可以允許或封鎖來自特定網路組織的流量，而無需管理個別 IP 地址。相較於以 IP 為基礎的規則，此方法提供更穩定且更有效率的方法來控制存取，因為 ASNs變更的頻率低於 IP 範圍。

ASN 比對特別適用於封鎖來自已知有問題網路的流量，或僅允許來自信任合作夥伴網路的存取等案例。ASN 比對陳述式提供透過選用的轉送 IP 組態來判斷用戶端 IP 地址的彈性，使其與各種網路設定相容，包括使用內容交付網路 (CDNs) 或反向代理的網路設定。

**注意**  
ASN 比對補充，但不取代標準身分驗證和授權控制。我們建議您實作身分驗證和授權機制，例如 IAM，以驗證應用程式中所有請求的身分。

## ASN 比對陳述式的運作方式


AWS WAF 根據請求的 IP 地址決定請求的 ASN。根據預設， AWS WAF 會使用 Web 請求原始伺服器的 IP 地址。您可以透過在規則陳述式設定中啟用轉送的 IP 組態`X-Forwarded-For`， AWS WAF 將 設定為使用來自替代請求標頭的 IP 地址，例如 。

ASN 比對陳述式會將請求的 ASN 與規則中指定的 ASNs 清單進行比較。如果 ASN 符合清單中的 ASN，則陳述式會評估為 true，並套用相關聯的規則動作。

### 處理未映射ASNs


如果 AWS WAF 無法判斷有效 IP 地址的 ASN，則會指派 ASN 0。您可以在規則中包含 ASN 0，以明確地處理這些案例。

### 無效的 IP 地址的備用行為


當您將 ASN 比對陳述式設定為使用轉送的 IP 地址時，您可以為指定標頭中 IP 地址無效或遺失的請求指定*相符*或*不相符*的備用行為。

## 規則陳述式特性


**可巢**狀 – 您可以巢狀化此陳述式類型。

**WCUs** – 1 個 WCU

此陳述式使用以下設定：
+ **ASN 清單** – 要比較 ASN 比對的 ASN 編號陣列。有效值的範圍從 0 到 4294967295。您可以為每個規則指定最多 100 ASNs。
+ **（選用） 轉送 IP 組態** – 預設 AWS WAF 會使用 Web 請求原始伺服器中的 IP 地址來判斷 ASN。或者，您可以改為將規則設定為在 HTTP 標頭中使用轉送的 IP`X-Forwarded-For`。您可以指定是否使用 標頭中的第一個、最後一個或任何地址。使用此組態，您也可以指定後援行為，以套用至標頭中 IP 地址格式不正確的 Web 請求。備用行為會將請求的相符結果設定為相符或不相符。如需詳細資訊，請參閱[使用轉送的 IP 地址](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-forwarded-ip-address.html)。

## 尋找此規則陳述式的位置

+ 主控台上的**規則建置器** – 針對**請求選項**，選擇**來自 ASN 的原始伺服器**。
+ **API** – [AsnMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_AsnMatchStatement.html)

## 範例


此範例會封鎖源自 `X-Forwarded-For`標頭之兩個特定 ASNs 的請求。如果標頭中的 IP 地址格式不正確，則設定的備用行為為 `NO_MATCH`。

```
{
  "Action": {
    "Block": {}
  },
  "Name": "AsnMatchStatementRule",
  "Priority": 1,
  "Statement": {
    "AsnMatchStatement": {
      "AsnList": [64496, 64500]
    },
    "ForwardedIPConfig": {
      "FallbackBehavior": "NO_MATCH",
      "HeaderName": "X-Forwarded-For"
    }
  },
  "VisibilityConfig": {
    "CloudWatchMetricsEnabled": true,
    "MetricName": "AsnMatchRuleMetrics",
    "SampledRequestsEnabled": true
  }
},
"VisibilityConfig": {
  "CloudWatchMetricsEnabled": true,
  "MetricName": "WebAclMetrics",
  "SampledRequestsEnabled": true
}
}
```

# 標籤比對規則陳述式
標籤比對

本節說明什麼是標籤比對陳述式及其運作方式。

標籤比對陳述式會根據字串規格檢查 Web 請求上的標籤。可供規則檢查使用的標籤是已由相同保護套件 (Web ACL) 評估中的其他規則新增至 Web 請求的標籤。

標籤不會保留在保護套件 (Web ACL) 評估之外，但您可以在 CloudWatch 中存取標籤指標，而且您可以在主控台中 AWS WAF 查看任何保護套件 (Web ACL) 的標籤資訊摘要。如需詳細資訊，請參閱[標籤指標和維度](waf-metrics.md#waf-metrics-label)及[監控和調校您的 AWS WAF 保護](web-acl-testing-activities.md)。您也可以在日誌中看到標籤。如需相關資訊，請參閱[保護套件 (Web ACL) 流量的日誌欄位](logging-fields.md)。

**注意**  
標籤比對陳述式只能查看先前在保護套件 (Web ACL) 中評估之規則的標籤。如需有關 如何 AWS WAF 評估保護套件 (Web ACL) 中的規則和規則群組的資訊，請參閱 [設定規則優先順序](web-acl-processing-order.md)。

如需新增和比對標籤的詳細資訊，請參閱 [中的 Web 請求標籤 AWS WAF](waf-labels.md)。

## 規則陳述式特性


**可巢狀** – 您可以巢狀化此陳述式類型。

**WCUs** – 1 個 WCU

此陳述式使用以下設定：
+ **比對範圍** – 將此設定為**標籤**以比對標籤名稱，並選擇性地比對先前的命名空間和字首。將此設定為**命名空間**，以符合部分或全部的命名空間規格，以及選擇性的前綴。
+ **金鑰** – 您要比對的字串。如果您指定命名空間比對範圍，這應該只指定命名空間和選用的字首，加上結尾冒號。如果您指定標籤比對範圍，這必須包含標籤名稱，也可以選擇性地包含前面的命名空間和字首。

如需這些設定的詳細資訊，請參閱 [AWS WAF 符合標籤的規則](waf-rule-label-match.md) 和 [AWS WAF 標籤比對範例](waf-rule-label-match-examples.md)。

## 尋找此規則陳述式的位置

+ 主控台上的**規則建置器** – 針對**請求選項**，選擇**有標籤**。
+ **API** – [LabelMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_LabelMatchStatement.html)

# Regex 比對規則陳述式
Regex 比對新增 regex 比對陳述式

您現在可以將 Web 請求與單一規則表達式進行比對。

本節說明什麼是 regex 比對陳述式及其運作方式。

regex 比對陳述式會指示 AWS WAF 將請求元件與單一規則表達式 (regex) 比對。如果請求元件與您指定的 regex 相符，Web 請求就會符合 陳述式。

對於您想要使用數學邏輯結合相符條件的情況[規則運算式模式集比對規則陳述式](waf-rule-statement-type-regex-pattern-set-match.md)，此陳述式類型是 的理想替代方案。例如，如果您希望請求元件與某些規則運算式模式相符，並且不與其他規則運算式相符，您可以使用 [AND 規則陳述式](waf-rule-statement-type-and.md)和 結合規則運算式相符陳述式[NOT 規則陳述式](waf-rule-statement-type-not.md)。

AWS WAF 支援 PCRE 程式庫使用的模式語法`libpcre`，但有一些例外。程式庫記錄在 [PCRE - Perl 相容規則表達式](http://www.pcre.org/)中。如需 AWS WAF 支援的相關資訊，請參閱 [中支援的規則表達式語法 AWS WAF](waf-regex-pattern-support.md)。

## 規則陳述式特性


**可巢狀** – 您可以巢狀化此陳述式類型。

**WCUs** – 3 WCUs，作為基本成本。如果您使用請求元件 **所有查詢參數**，請新增 10 WCUs。如果您使用請求元件 **JSON 內文**，請將基本成本 WCUs加倍。針對您套用的每個**文字轉換**，新增 10 WCUs。

此陳述式類型在 Web 請求元件上運作，且需要下列請求元件設定：
+ **請求元件** – 要檢查的 Web 請求部分，例如查詢字串或內文。
**警告**  
如果您檢查請求元件**內**文、**JSON 內文**、**標頭**或 **Cookie**，請閱讀有關 AWS WAF 可檢查多少內容的限制[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。

  如需 Web 請求元件的詳細資訊，請參閱 [在 中調整規則陳述式設定 AWS WAF](waf-rule-statement-fields.md)。
+ **選用文字轉換** – AWS WAF 您想要在檢查請求元件之前對請求元件執行的轉換。例如，您可以將 轉換為小寫或標準化空格。如果您指定多個轉換， 會依列出的順序 AWS WAF 處理它們。如需相關資訊，請參閱[在 中使用文字轉換 AWS WAF](waf-rule-statement-transformation.md)。

## 尋找此規則陳述式的位置

+ 主控台上的**規則建置器** – 針對**相符類型**，選擇**相符規則表達**式。
+ **API** – [RegexMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_RegexMatchStatement.html)

# 規則運算式模式集比對規則陳述式
規則運算式模式集

本節說明什麼是 regex 模式集比對陳述式及其運作方式。

規則表達式模式集比對會檢查您在規則表達式模式集內為規則表達式模式指定的 Web 請求部分。

AWS WAF 支援 PCRE 程式庫使用的模式語法`libpcre`，但有一些例外。程式庫記錄在 [PCRE - Perl 相容規則表達式](http://www.pcre.org/)中。如需 AWS WAF 支援的相關資訊，請參閱 [中支援的規則表達式語法 AWS WAF](waf-regex-pattern-support.md)。

**注意**  
每個規則運算式模式集比對規則都會參考一個規則運算式模式集，您可以獨立於規則而建立和維護。您可以在多個規則中使用單一規則運算式模式集，當您更新參考集時， AWS WAF 會自動更新所有參考規則集。  
如需建立和管理規則運算式模式集的相關資訊，請參閱 [在 中建立和管理 regex 模式集 AWS WAF](waf-regex-pattern-set-managing.md)。

regex 模式集比對陳述式 AWS WAF 會指示 搜尋您選擇的請求元件內集合中的任何模式。如果請求元件符合集合中的任何模式，則 Web 請求將比對模式集規則陳述式。

如果您想要使用邏輯合併 regex 模式比對，例如，要比對某些規則表達式，而不是比對其他表達式，請考慮使用 [Regex 比對規則陳述式](waf-rule-statement-type-regex-match.md)。

## 規則陳述式特性


**可巢狀** – 您可以巢狀化此陳述式類型。

**WCUs** – 25 WCUs，作為基本成本。如果您使用請求元件 **所有查詢參數**，請新增 10 WCUs。如果您使用請求元件 **JSON 內文**，請將基本成本 WCUs加倍。針對您套用的每個**文字轉換**，新增 10 WCUs。

此陳述式類型在 Web 請求元件上運作，且需要下列請求元件設定：
+ **請求元件** – 要檢查的 Web 請求部分，例如查詢字串或內文。
**警告**  
如果您檢查請求元件**內**文、**JSON 內文**、**標頭**或 **Cookie**，請閱讀有關 AWS WAF 可檢查多少內容的限制[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。

  如需 Web 請求元件的詳細資訊，請參閱 [在 中調整規則陳述式設定 AWS WAF](waf-rule-statement-fields.md)。
+ **選用文字轉換** – AWS WAF 您想要在檢查請求元件之前對請求元件執行的轉換。例如，您可以將 轉換為小寫或標準化空格。如果您指定多個轉換， 會依列出的順序 AWS WAF 處理它們。如需相關資訊，請參閱[在 中使用文字轉換 AWS WAF](waf-rule-statement-transformation.md)。

此陳述式需要下列設定：
+ Regex 模式集規格 – 從清單中選擇您要使用的 regex 模式集，或建立新的模式集。

## 尋找此規則陳述式的位置

+ 主控台上的**規則建置器** – 針對**相符類型**，從規則表達式集中選擇**字串相符條件** > 相符模式。 ****
+ **API** – [RegexPatternSetReferenceStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_RegexPatternSetReferenceStatement.html)

# 大小約束規則陳述式
大小約束

本節說明什麼是大小限制陳述式及其運作方式。

大小限制陳述式會將 Web 請求元件 AWS WAF 接收的位元組數目與您提供的數目進行比較，並根據您的比較條件進行比對。

比較條件是大於 (＞) 或小於 (＜) 的運算子。例如，您可以比對大小大於 100 個位元組的查詢字串請求。

如果您檢查 URI 路徑，路徑`/`中的任何 都會計為一個字元。例如，URI 路徑長度`/logo.jpg`為九個字元。

**注意**  
此陳述式只會檢查 Web 請求元件的大小。它不會檢查元件的內容。

## 規則陳述式特性


**可巢狀** – 您可以巢狀化此陳述式類型。

**WCUs** – 1 個 WCU，作為基本成本。如果您使用請求元件 **所有查詢參數**，請新增 10 WCUs。如果您使用請求元件 **JSON 內文**，請將基本成本 WCUs加倍。針對您套用的每個**文字轉換**，新增 10 WCUs。

此陳述式類型在 Web 請求元件上運作，且需要下列請求元件設定：
+ **請求元件** – 要檢查的 Web 請求部分，例如查詢字串或內文。如需 Web 請求元件的詳細資訊，請參閱 [在 中調整規則陳述式設定 AWS WAF](waf-rule-statement-fields.md)。

  套用任何轉換後，大小限制陳述式只會檢查元件的大小。它不會檢查元件的內容。
+ **選用文字轉換** – 在檢查其大小之前 AWS WAF ，您想要在請求元件上執行的轉換。例如，您可以壓縮空格或解碼 HTML 實體。如果您指定多個轉換， 會依列出的順序 AWS WAF 處理它們。如需相關資訊，請參閱[在 中使用文字轉換 AWS WAF](waf-rule-statement-transformation.md)。

此外，此陳述式需要下列設定：
+ **大小比對條件** – 這表示用來比較您提供的大小與您所選請求元件的數值比較運算子。從清單中選擇運算子。
+ **大小** – 要在比較中使用的大小設定，以位元組為單位。

## 尋找此規則陳述式的位置

+ 主控台上的**規則建置器** – 針對**相符類型**，在**大小相符條件**下，選擇您要使用的條件。
+ **API** – [SizeConstraintStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_SizeConstraintStatement.html)

# SQL Injection 攻擊規則陳述式
SQLi 攻擊SQLi 規則陳述式的敏感度層級選項

您現在可以提高 SQL Injection 規則陳述式的敏感度。這不會變更現有陳述式的行為，其敏感度層級預設為 LOW。

本節說明什麼是 SQL Injection 規則陳述式及其運作方式。

SQL Injection 規則陳述式會檢查是否有惡意 SQL 程式碼。攻擊者會將惡意 SQL 程式碼插入 Web 請求，以執行修改資料庫或從中擷取資料等動作。

## 規則陳述式特性


**可巢狀** – 您可以巢狀化此陳述式類型。

**WCUs** – 基本成本取決於規則陳述式的敏感度等級設定：Low成本 20，High成本 30。

如果您使用請求元件 **所有查詢參數**，請新增 10 WCUs。如果您使用請求元件 **JSON 內文**，請將基本成本 WCUs加倍。針對您套用的每個**文字轉換**，新增 10 WCUs。

此陳述式類型在 Web 請求元件上運作，且需要下列請求元件設定：
+ **請求元件** – 要檢查的 Web 請求部分，例如查詢字串或內文。
**警告**  
如果您檢查請求元件**內**文、**JSON 內文**、**標頭**或 **Cookie**，請閱讀有關 AWS WAF 可檢查多少內容的限制[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。

  如需 Web 請求元件的詳細資訊，請參閱 [在 中調整規則陳述式設定 AWS WAF](waf-rule-statement-fields.md)。
+ **選用文字轉換** – AWS WAF 您想要在檢查請求元件之前對請求元件執行的轉換。例如，您可以將 轉換為小寫或標準化空格。如果您指定多個轉換， 會依列出的順序 AWS WAF 處理它們。如需相關資訊，請參閱[在 中使用文字轉換 AWS WAF](waf-rule-statement-transformation.md)。

此外，此陳述式需要下列設定：
+ **敏感度層級** – 此設定會調整 SQL Injection 比對條件的敏感度。選項包括 LOW 和 HIGH. 預設設定為 LOW。

  HIGH 設定會偵測更多 SQL Injection 攻擊，而 是建議設定。由於敏感度較高，此設定會產生更多誤報，特別是當您的 Web 請求通常包含不尋常的字串時。在保護套件 (Web ACL) 測試和調校期間，您可能需要執行更多工作來緩解誤報。如需相關資訊，請參閱[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

  較低的設定提供較不嚴格的 SQL 注入偵測，這也會導致較少的誤報。 對於具有其他 SQL 注入攻擊保護或容錯能力較低的資源， LOW 可能是更好的選擇。

## 尋找此規則陳述式的位置

+ 主控台上的**規則建置器** – 針對**相符類型**，選擇**攻擊比對條件** > **包含 SQL 注入攻擊**。
+ **API** – [SqliMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_SqliMatchStatement.html)

# 字串比對規則陳述式
字串比對

本節說明什麼是字串比對陳述式及其運作方式。

字串比對陳述式指出您想要在請求中 AWS WAF 搜尋的字串、在請求中要搜尋的位置，以及如何搜尋。例如，您可以在請求中任何查詢字串的開頭尋找特定字串，或是在請求的 `User-agent` 標頭中尋找完全相符項目。通常，字串包含可列印 ASCII 字元，但您可以使用十六進位 0x00 到 0xFF 的任何字元 (小數 0 到 255)。

## 規則陳述式特性


**可巢狀** – 您可以巢狀化此陳述式類型。

**WCUs** – 基本成本取決於您使用的配對類型。
+ **完全符合字串** – 2 
+ **開頭為字串** – 2 
+ **結尾為字串** – 2 
+ **包含字串** – 10 
+ **包含單字** – 10 

如果您使用請求元件 **所有查詢參數**，請新增 10 WCUs。如果您使用請求元件 **JSON 內文**，請將基本成本 WCUs加倍。針對您套用的每個**文字轉換**，新增 10 WCUs。

此陳述式類型在 Web 請求元件上運作，且需要下列請求元件設定：
+ **請求元件** – 要檢查的 Web 請求部分，例如查詢字串或內文。
**警告**  
如果您檢查請求元件**內**文、**JSON 內文**、**標頭**或 **Cookie**，請閱讀有關 AWS WAF 可檢查多少內容的限制[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。

  如需 Web 請求元件的詳細資訊，請參閱 [在 中調整規則陳述式設定 AWS WAF](waf-rule-statement-fields.md)。
+ **選用文字轉換** – AWS WAF 您想要在檢查請求元件之前對請求元件執行的轉換。例如，您可以將 轉換為小寫或標準化空格。如果您指定多個轉換， 會依列出的順序 AWS WAF 處理它們。如需相關資訊，請參閱[在 中使用文字轉換 AWS WAF](waf-rule-statement-transformation.md)。

此外，此陳述式需要下列設定：
+ **要比對的字串** – 這是您要與指定請求元件 AWS WAF 比較的字串。通常，字串包含可列印 ASCII 字元，但您可以使用十六進位 0x00 到 0xFF 的任何字元 (小數 0 到 255)。
+ **字串比對條件** – 這表示您要 AWS WAF 執行的搜尋類型。
  + **完全符合字串** – 字串和請求元件的值相同。
  + **以字串開頭** – 字串會出現在請求元件的開頭。
  + **以字串結尾** – 字串會出現在請求元件的結尾。
  + **包含字串** – 字串會出現在請求元件的任何位置。
  + **包含單字** – 您指定的字串必須出現在請求元件中。

    對於此選項，您指定的字串必須只包含英數字元或底線 (A-Z、a-z、0-9 或 \$1)。

    下列其中一項必須為 true，才能比對請求：
    + 該字串與請求元件的數值 (如標頭值) 完全相符。
    + 該字串位於請求元件的開頭，後面加上非英數字元或底線 (\$1) 的字元，例如 `BadBot;`。
    + 該字串位於請求元件的尾端，前面加上非英數字元或底線 (\$1) 的字元，例如 `;BadBot`。
    + 該字串位於請求元件的中間，前後加上非英數字元或底線 (\$1) 的字元，例如 `-BadBot;`。

## 尋找此規則陳述式的位置

+ 主控台上的**規則建置器** – 針對**比對類型**，選擇**字串比對條件**，然後填入您要比對的字串。
+ **API** – [ByteMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html)

# 跨網站指令碼攻擊規則陳述式
XSS 指令碼攻擊

本節說明什麼是 XSS （跨網站指令碼） 攻擊陳述式及其運作方式。

XSS 攻擊陳述式會檢查 Web 請求元件中是否有惡意指令碼。在 XSS 攻擊中，攻擊者會使用良性網站中的漏洞做為工具，將惡意用戶端網站指令碼注入其他合法的 Web 瀏覽器。

## 規則陳述式特性


**可巢狀** – 您可以巢狀此陳述式類型。

**WCUs** – 40 WCUs，作為基本成本。如果您使用請求元件 **所有查詢參數**，請新增 10 WCUs。如果您使用請求元件 **JSON 內文**，請將基本成本 WCUs加倍。針對您套用的每個**文字轉換**，新增 10 WCUs。

此陳述式類型在 Web 請求元件上運作，且需要下列請求元件設定：
+ **請求元件** – 要檢查的 Web 請求部分，例如查詢字串或內文。
**警告**  
如果您檢查請求元件**內**文、**JSON 內文**、**標頭**或 **Cookie**，請閱讀有關 AWS WAF 可檢查多少內容的限制[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。

  如需 Web 請求元件的詳細資訊，請參閱 [在 中調整規則陳述式設定 AWS WAF](waf-rule-statement-fields.md)。
+ **選用文字轉換** – AWS WAF 您想要在檢查請求元件之前對請求元件執行的轉換。例如，您可以將 轉換為小寫或標準化空格。如果您指定多個轉換， 會依列出的順序 AWS WAF 處理它們。如需相關資訊，請參閱[在 中使用文字轉換 AWS WAF](waf-rule-statement-transformation.md)。

## 尋找此規則陳述式的位置

+ 主控台上的**規則建置器** – 針對**相符類型**，選擇**攻擊比對條件** > **包含 XSS 注入攻擊**。
+ **API** – [XssMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_XssMatchStatement.html)

# 在 中使用邏輯規則陳述式 AWS WAF
使用邏輯規則陳述式

本節說明什麼是邏輯規則陳述式及其運作方式。

使用邏輯規則陳述式來合併其他陳述式或否定其結果。每個邏輯規則陳述式至少需要一個巢狀化的陳述式。

若要邏輯合併或否定規則陳述式結果，您可以在邏輯規則陳述式下巢狀化陳述式。

邏輯規則陳述式是可巢狀的。您可以將它們巢狀到其他邏輯規則陳述式中，並在縮小範圍陳述式中使用它們。如需縮小範圍陳述式的資訊，請參閱 [在 中使用縮小範圍陳述式 AWS WAF](waf-rule-scope-down-statements.md)。

**注意**  
主控台上的視覺化編輯器支援一個層級的規則陳述式巢狀，這適用於許多需求。若要巢狀更多關卡，請在主控台上編輯規則的 JSON 表示法，或使用 APIs。

此表格說明邏輯規則陳述式，並提供計算每個 的保護套件 (Web ACL) 容量單位 (WCU) 用量的準則。如需 WCU 的相關資訊，請參閱 [中的 Web ACL 容量單位 WCUs) AWS WAF](aws-waf-capacity-units.md)。


| 邏輯陳述式  | Description | WCU | 
| --- | --- | --- | 
| [AND 邏輯](waf-rule-statement-type-and.md) | 結合巢狀陳述式與AND邏輯。 | 以巢狀化陳述式為基礎 | 
|  [NOT 邏輯](waf-rule-statement-type-not.md)  |  否定巢狀化陳述式的結果。  |  以巢狀化陳述式為基礎  | 
| [OR 邏輯](waf-rule-statement-type-or.md) | 結合巢狀陳述式與OR邏輯。 | 以巢狀化陳述式為基礎 | 

# AND 規則陳述式
AND 邏輯

AND 規則陳述式結合了巢狀陳述式與邏輯AND操作，因此所有巢狀陳述式都必須相符，AND陳述式才能相符。這至少需要兩個巢狀陳述式。

## 規則陳述式特性


**可巢狀** – 您可以巢狀此陳述式類型。

**WCUs** – 取決於巢狀陳述式。

## 尋找此規則陳述式的位置

+ 主控台上的**規則建置器** – **如果請求**，請選擇**符合所有陳述式 (AND)**，然後填入巢狀陳述式。
+ **API** – [AndStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_AndStatement.html)

## 範例


以下清單顯示使用 AND和 NOT 邏輯規則陳述式來消除 SQL Injection 攻擊陳述式相符項目的誤報。在此範例中，假設我們可以撰寫單一位元組比對陳述式，以符合導致誤報的請求。

AND 陳述式會比對不符合位元組比對陳述式且符合 SQL Injection 攻擊陳述式的請求。

```
{
      "Name": "SQLiExcludeFalsePositives",
      "Priority": 0,
      "Statement": {
        "AndStatement": {
          "Statements": [
            {
              "NotStatement": {
                "Statement": {
                  "ByteMatchStatement": {
                    "SearchString": "string identifying a false positive",
                    "FieldToMatch": {
                      "Body": {
                        "OversizeHandling": "MATCH"
                      }
                    },
                    "TextTransformations": [
                      {
                        "Priority": 0,
                        "Type": "NONE"
                      }
                    ],
                    "PositionalConstraint": "CONTAINS"
                  }
                }
              }
            },
            {
              "SqliMatchStatement": {
                "FieldToMatch": {
                  "Body": {
                    "OversizeHandling": "MATCH"
                  }
                },
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                  }
                ]
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "SQLiExcludeFalsePositives"
      }
    }
```

使用主控台規則視覺化編輯器，您可以在 或 陳述NOT式下巢狀化非邏輯陳述式OR或AND陳述式。NOT 陳述式的巢狀化會顯示在先前的範例中。

使用主控台規則視覺化編輯器，您可以在邏輯規則陳述式下巢狀化最可巢狀的陳述式，例如先前範例中顯示的陳述式。您無法使用視覺化編輯器來巢狀化 OR或 AND陳述式。若要設定此類型的巢狀，您需要以 JSON 提供規則陳述式。例如，下列 JSON 規則清單包含 OR陳述式的巢狀AND陳述式。

```
{
  "Name": "match_rule",
  "Priority": 0,
  "Statement": {
    "AndStatement": {
      "Statements": [
        {
          "LabelMatchStatement": {
            "Scope": "LABEL",
            "Key": "awswaf:managed:aws:bot-control:bot:category:monitoring"
          }
        },
        {
          "NotStatement": {
            "Statement": {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:managed:aws:bot-control:bot:name:pingdom"
              }
            }
          }
        },
        {
          "OrStatement": {
            "Statements": [
              {
                "GeoMatchStatement": {
                  "CountryCodes": [
                    "JM",
                    "JP"
                  ]
                }
              },
              {
                "ByteMatchStatement": {
                  "SearchString": "JCountryString",
                  "FieldToMatch": {
                    "Body": {}
                  },
                  "TextTransformations": [
                    {
                      "Priority": 0,
                      "Type": "NONE"
                    }
                  ],
                  "PositionalConstraint": "CONTAINS"
                }
              }
            ]
          }
        }
      ]
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "match_rule"
  }
}
```

# NOT 規則陳述式
NOT 邏輯

NOT 規則陳述式在邏輯上否定單一巢狀陳述式的結果，因此巢狀陳述式必須與NOT陳述式不相符，反之亦然。這需要一個巢狀化陳述式。

例如，如果您想要封鎖不是來自特定國家/地區的請求，請建立動作設定為封鎖的NOT陳述式，並巢狀指定國家/地區的地理比對陳述式。

## 規則陳述式特性


**可巢狀** – 您可以巢狀化此陳述式類型。

**WCUs** – 取決於巢狀陳述式。

## 尋找此規則陳述式的位置

+ 主控台上的**規則建置器** – 對於**如果請求**，請選擇**不符合陳述式 (NOT)**，然後填入巢狀陳述式。
+ **API** – [NotStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_NotStatement.html)

# OR 規則陳述式
OR 邏輯

OR 規則陳述式結合了巢狀陳述式與OR邏輯，因此其中一個巢狀陳述式必須符合，OR陳述式才能相符。這至少需要兩個巢狀陳述式。

例如，如果您想要封鎖來自特定國家/地區的請求或包含特定查詢字串的請求，您可以建立 OR陳述式，並在其中巢狀化一個國家/地區的地理比對陳述式，以及查詢字串的字串比對陳述式。

如果您想要封鎖*不是*來自特定國家/地區或包含特定查詢字串的請求，您可以修改先前的OR陳述式，將地理比對陳述式巢狀在NOT陳述式內的一個層級。此巢狀層級需要您使用 JSON 格式，因為主控台僅支援一個巢狀層級。

## 規則陳述式特性


**可巢狀** – 您可以巢狀化此陳述式類型。

**WCUs** – 取決於巢狀陳述式。

## 尋找此規則陳述式的位置

+ 主控台上的**規則建置器** – **如果請求**，請選擇**至少符合其中一個陳述式 (OR)**，然後填入巢狀陳述式。
+ **API** – [OrStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_OrStatement.html)

**範例**  
下列清單顯示使用 OR來結合其他兩個陳述式。如果其中一個巢狀OR陳述式相符，則陳述式為相符。

```
{
  "Name": "neitherOfTwo",
  "Priority": 1,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "neitherOfTwo"
  },
  "Statement": {
    "OrStatement": {
      "Statements": [
        {
          "GeoMatchStatement": {
            "CountryCodes": [
              "CA"
            ]
          }
        },
        {
          "IPSetReferenceStatement": {
            "ARN": "arn:aws:wafv2:us-east-1:111111111111:regional/ipset/test-ip-set-22222222/33333333-4444-5555-6666-777777777777"
          }
        }
      ]
    }
  }
}
```

使用主控台規則視覺化編輯器，您可以在邏輯規則陳述式下巢狀化最可巢狀的陳述式，但無法使用視覺化編輯器來巢狀化 OR或 AND陳述式。若要設定此類型的巢狀，您需要以 JSON 提供規則陳述式。例如，下列 JSON 規則清單包含 OR陳述式的巢狀AND陳述式。

```
{
  "Name": "match_rule",
  "Priority": 0,
  "Statement": {
    "AndStatement": {
      "Statements": [
        {
          "LabelMatchStatement": {
            "Scope": "LABEL",
            "Key": "awswaf:managed:aws:bot-control:bot:category:monitoring"
          }
        },
        {
          "NotStatement": {
            "Statement": {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:managed:aws:bot-control:bot:name:pingdom"
              }
            }
          }
        },
        {
          "OrStatement": {
            "Statements": [
              {
                "GeoMatchStatement": {
                  "CountryCodes": [
                    "JM",
                    "JP"
                  ]
                }
              },
              {
                "ByteMatchStatement": {
                  "SearchString": "JCountryString",
                  "FieldToMatch": {
                    "Body": {}
                  },
                  "TextTransformations": [
                    {
                      "Priority": 0,
                      "Type": "NONE"
                    }
                  ],
                  "PositionalConstraint": "CONTAINS"
                }
              }
            ]
          }
        }
      ]
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "match_rule"
  }
}
```

# 在 中使用以速率為基礎的規則陳述式 AWS WAF
使用以速率為基礎的規則陳述式AWS WAF 新增 ASN 做為自訂金鑰彙總選項

您現在可以使用自訂金鑰彙總來限制來自特定自治系統編號 (ASNs) 的請求。AWS WAF 速率型規則的可設定評估時段

您現在可以將速率型規則用來計算請求數的時間範圍設定為 1、2、5 或 10 分鐘。預設值為 5，這是此版本之前的唯一選項。擴展以速率為基礎的規則選項

您現在可以根據 IP 地址以外的彙總金鑰對限制 Web 請求進行評分，也可以使用金鑰組合進行彙總。您也可以對符合縮小範圍陳述式的所有請求進行評分，而無需進一步彙總。更正以速率為基礎的規則如何執行速率限制的資訊

針對具有縮小範圍陳述式的規則，僅針對符合規則縮小範圍陳述式的速率限制請求進行評分。我們說明 限制套用至任何速率有限 IP 地址的所有請求。規則群組內的速率型 AWS WAF 規則

您現在可以在規則群組中定義以速率為基礎的 AWS WAF 規則。在 中 AWS Firewall Manager，此功能完全支援 AWS WAF 政策。

本節說明什麼是以速率為基礎的規則陳述式及其運作方式。

以速率為基礎的規則會計算傳入請求，並在速率太快時限制請求。此規則會根據您的條件彙總請求，並根據規則的評估時段、請求限制和動作設定，計數和速率會限制彙總分組。

**注意**  
您也可以使用 Bot Control AWS 受管規則規則群組的目標保護層級來評分限制 Web 請求。使用此受管規則群組會產生額外費用。如需詳細資訊，請參閱[速率型規則和目標機器人控制規則中速率限制的選項](waf-rate-limiting-options.md)。

AWS WAF 會針對您使用的速率型規則的每個執行個體分別追蹤和管理 Web 請求。例如，如果您在兩個 Web ACLs 中提供相同的以速率為基礎的規則設定，則兩個規則陳述式中的每一個都代表以速率為基礎的規則的個別執行個體，並且每個 都會取得自己的追蹤和管理 AWS WAF。如果您在規則群組內定義以速率為基礎的規則，然後在多個位置使用該規則群組，則每次使用都會建立以速率為基礎的規則的個別執行個體，以取得自己的追蹤和管理 AWS WAF。

**不可巢狀化** – 您無法將此陳述式類型巢狀在其他陳述式中。您可以直接將其包含在保護套件 (Web ACL) 或規則群組中。

**縮小範圍陳述式** – 此規則類型可以採用縮小範圍陳述式，以縮小規則追蹤的請求範圍和速率限制。縮小範圍陳述式可以是選用或必要，視您的其他規則組態設定而定。本節涵蓋詳細資訊。如需縮小範圍陳述式的一般資訊，請參閱 [在 中使用縮小範圍陳述式 AWS WAF](waf-rule-scope-down-statements.md)。

**WCUs** – 2，作為基本成本。針對您指定的每個自訂彙總金鑰，新增 30 WCUs。如果您在規則中使用縮小範圍陳述式，請計算並新增該陳述WCUs。

**尋找此規則陳述式的位置**
+ 保護套件中的**規則建置器** (Web ACL)，在主控台上 – 在**規則**下，針對**類型**，選擇以**速率為基礎的規則**。
+ **API** – [RateBasedStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_RateBasedStatement.html)

**Topics**
+ [

# 中的以速率為基礎的規則高階設定 AWS WAF
](waf-rule-statement-type-rate-based-high-level-settings.md)
+ [

# 中的以速率為基礎的規則警告 AWS WAF
](waf-rule-statement-type-rate-based-caveats.md)
+ [

# 在 中彙總以速率為基礎的規則 AWS WAF
](waf-rule-statement-type-rate-based-aggregation-options.md)
+ [

# 以速率為基礎的規則彙總執行個體和計數
](waf-rule-statement-type-rate-based-aggregation-instances.md)
+ [

# 將速率限制套用至 中的請求 AWS WAF
](waf-rule-statement-type-rate-based-request-limiting.md)
+ [

# 中的以速率為基礎的規則範例 AWS WAF
](waf-rule-statement-type-rate-based-examples.md)
+ [

# 列出速率受到以速率為基礎的規則限制的 IP 地址
](listing-managed-ips.md)

# 中的以速率為基礎的規則高階設定 AWS WAF
以速率為基礎的規則高階設定

以速率為基礎的規則陳述式使用以下高階設定：
+ **評估時段** – 應包含在其請求計數中的時間 AWS WAF 量，以秒為單位，從目前時間回顧。例如，對於 120 的設定，當 AWS WAF 檢查速率時，它會計算目前時間前 2 分鐘的請求。有效設定為 60 (1 分鐘）、120 (2 分鐘）、300 (5 分鐘） 和 600 (10 分鐘），預設為 300 (5 分鐘）。

  此設定不會決定檢查 AWS WAF 速率的頻率，但會在每次檢查時回溯多久。 會經常 AWS WAF 檢查速率，時間與評估時段設定無關。
+ **速率限制** – 符合條件的請求數目上限， AWS WAF 應只追蹤指定的評估時段。允許的最低限制設定為 10。違反此限制時， 會將規則動作設定 AWS WAF 套用至符合您條件的其他請求。

  AWS WAF 會在您設定的限制附近套用速率限制，但不保證完全符合限制。如需詳細資訊，請參閱[以速率為基礎的規則警告](waf-rule-statement-type-rate-based-caveats.md)。
+ **請求彙總** – 在以速率為基礎的規則計數和速率限制的 Web 請求上使用的彙總條件。您設定的速率限制會套用至每個彙總執行個體。如需詳細資訊，請參閱 [彙總以速率為基礎的規則](waf-rule-statement-type-rate-based-aggregation-options.md) 和 [彙總執行個體和計數](waf-rule-statement-type-rate-based-aggregation-instances.md)。
+ **動作** – 對規則速率限制的請求採取的動作。您可以使用 以外的任何規則動作Allow。這是照常在規則層級設定，但有一些限制和行為是針對以速率為基礎的規則。如需規則動作的一般資訊，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)。如需速率限制的特定資訊，請參閱本節[將速率限制套用至 中的請求 AWS WAF](waf-rule-statement-type-rate-based-request-limiting.md)中的 。
+ **檢查範圍和速率限制** – 您可以新增縮小範圍陳述式，縮小以速率為基礎的陳述式追蹤的請求範圍和速率限制。如果您指定縮小範圍陳述式，則規則只會彙總、計數和速率限制符合縮小範圍陳述式的請求。如果您選擇請求彙總選項**全部計數**，則需要縮小範圍陳述式。如需縮小範圍陳述式的詳細資訊，請參閱 [使用縮小範圍陳述式](waf-rule-scope-down-statements.md)。
+ **（選用） 轉送 IP 組態** – 只有當您在請求彙總**的 標頭中指定 IP 地址**時，才會使用此組態，無論是單獨使用或做為自訂金鑰設定的一部分。 AWS WAF 會擷取指定標頭中的第一個 IP 地址，並使用該地址做為彙總值。此用途的常見標頭為 `X-Forwarded-For`，但您可以指定任何標頭。如需詳細資訊，請參閱[使用轉送的 IP 地址](waf-rule-statement-forwarded-ip-address.md)。

# 中的以速率為基礎的規則警告 AWS WAF
以速率為基礎的規則警告

本節列出使用速率型規則的注意事項。

AWS WAF 速率限制旨在控制高請求率，並以最有效率且最有效的方式保護應用程式的可用性。它不適用於精確的請求速率限制。
+ AWS WAF 使用演算法估計目前的請求率，該演算法更重視最近的請求。因此， AWS WAF 會在您設定的限制附近套用速率限制，但不保證完全符合限制。
+ 每次 AWS WAF 預估請求速率時， 都會回 AWS WAF 頭查看在設定的評估時段內傳入的請求數量。由於這一點和傳播延遲等其他因素，在 AWS WAF 偵測和速率限制請求之前，請求可能以太高的速率傳入最多幾分鐘。同樣地，在 偵測到降低並停止速率限制動作之前 AWS WAF ，請求速率可以低於限制一段時間。通常，此延遲低於 30 秒。
+ 如果您在使用中的規則中變更任何速率限制設定，變更會重設規則的速率限制計數。這最多可暫停規則的速率限制活動一分鐘。速率限制設定是評估時段、速率限制、請求彙總設定、轉送 IP 組態和檢查範圍。

# 在 中彙總以速率為基礎的規則 AWS WAF
彙總以速率為基礎的規則JA3 和 JA4 指紋的速率型規則彙總

您現在可以在自訂彙總金鑰中指定速率型規則的 JA3 指紋和 JA4 指紋。URI 路徑上的以速率為基礎的規則彙總

您現在可以在自訂彙總金鑰中指定速率型規則的 URI 路徑。

本節說明彙總請求的選項。

根據預設，速率型規則會根據請求 IP 地址彙總和速率限制請求。您可以設定規則以使用各種其他彙總金鑰和金鑰組合。例如，您可以根據轉送的 IP 地址、HTTP 方法或查詢引數進行彙總。您也可以指定彙總金鑰組合，例如 IP 地址和 HTTP 方法，或兩個不同 Cookie 的值。

**注意**  
您在彙總金鑰中指定的所有請求元件都必須存在於 Web 請求中，才能評估請求或受到規則限制的速率。

您可以使用下列彙總選項來設定速率型規則。
+ **來源 IP 地址** – 僅使用來自 Web 請求來源的 IP 地址彙總。

  來源 IP 地址可能不包含原始用戶端的地址。如果 Web 請求通過一或多個代理或負載平衡器，這將包含最後一個代理的地址。
+ **標頭中的 IP 地址** – 僅使用 HTTP 標頭中的用戶端地址彙總。這也稱為轉送 IP 地址。

  使用此組態，您也可以指定後援行為，以套用至標頭中 IP 地址格式不正確的 Web 請求。備用行為會將請求的相符結果設定為相符或不相符。對於不匹配，以速率為基礎的規則不計算請求或限制請求的速率。為了進行比對，以速率為基礎的規則會將請求與指定標頭中 IP 地址格式不正確的其他請求分組。

  使用此選項時請小心，因為代理可能會以不一致的方式處理標頭，也可以修改標頭來繞過檢查。如需其他資訊和最佳實務，請參閱 [在 中使用轉送的 IP 地址 AWS WAF](waf-rule-statement-forwarded-ip-address.md)。
+ **ASN** – 使用與來源 IP 地址相關聯的自治系統編號 (ASN) 彙總 做為彙總金鑰。這可能不是原始用戶端的地址。如果 Web 請求經過一或多個代理或負載平衡器，這會包含最後一個代理的地址。

  如果 AWS WAF 無法從 IP 地址衍生 ASN，它會將 ASN 計為 ASN 0。如果您不想將速率限制套用至未映射ASNs，您可以建立排除 ASN 0 請求的縮小範圍規則。
+ **標頭中的 ASN** – 使用與 HTTP 標頭中的用戶端 IP 地址相關聯的 ASN 彙總。這也稱為轉送 IP 地址。使用此組態，您也可以指定後援行為，以套用至 IP 地址無效或格式不正確的 Web 請求。備用行為會將請求的相符結果設定為相符或不相符。如果您在轉送的 IP 組態中將備用行為設定為相符， AWS WAF 會將無效的 IP 地址視為相符值。這可讓 AWS WAF 繼續評估以速率為基礎的規則複合索引鍵的任何剩餘部分。對於不匹配，以速率為基礎的規則不計算請求或限制請求的速率。

  使用此選項時請小心，因為代理可能會以不一致的方式處理標頭，並且可以修改標頭來繞過檢查。如需其他資訊和最佳實務，請參閱 [在 中使用轉送的 IP 地址 AWS WAF](waf-rule-statement-forwarded-ip-address.md)。
+ **全部計數** – 計數和速率會限制符合規則縮小範圍陳述式的所有請求。此選項需要縮小範圍陳述式。這通常用於限制一組特定請求，例如具有特定標籤的所有請求或來自特定地理區域的所有請求。
+ **自訂金鑰** – 使用一或多個自訂彙總金鑰進行彙總。若要將任一 IP 地址選項與其他彙總金鑰合併，請在自訂金鑰下在此處定義它們。

  自訂彙總金鑰是 中所述 Web 請求元件選項的子集[在 中請求元件 AWS WAF](waf-rule-statement-fields-list.md)。

  金鑰選項如下。除非另有說明，否則您可以使用 選項多次，例如兩個標頭或三個標籤命名空間。
  + **標籤命名空間** – 使用標籤命名空間做為彙總索引鍵。每個具有指定標籤命名空間的不同完整標籤名稱都有助於彙總執行個體。如果您只使用一個標籤命名空間做為自訂金鑰，則每個標籤名稱都會完整定義彙總執行個體。

    速率型規則只會使用由保護套件 (Web ACL) 中事先評估的規則新增至請求的標籤。

    如需標籤命名空間和名稱的資訊，請參閱 [中的標籤語法和命名需求 AWS WAF](waf-rule-label-requirements.md)。
  + **標頭** – 使用具名標頭做為彙總金鑰。標頭中的每個不同值都有助於彙總執行個體。

    標頭會進行選用的文字轉換。請參閱 [在 中使用文字轉換 AWS WAF](waf-rule-statement-transformation.md)。
  + **Cookie** – 使用具名 Cookie 做為彙總金鑰。Cookie 中的每個不同值都有助於彙總執行個體。

    Cookie 會進行選用的文字轉換。請參閱 [在 中使用文字轉換 AWS WAF](waf-rule-statement-transformation.md)。
  + **查詢引數** – 在請求中使用單一查詢引數做為彙總索引鍵。具名查詢引數的每個不同值都有助於彙總執行個體。

    查詢引數會進行選用的文字轉換。請參閱 [在 中使用文字轉換 AWS WAF](waf-rule-statement-transformation.md)。
  + **查詢字串** – 使用請求中的整個查詢字串做為彙總索引鍵。每個不同的查詢字串都有助於彙總執行個體。您可以使用此金鑰類型一次。

    查詢字串會進行選用的文字轉換。請參閱 [在 中使用文字轉換 AWS WAF](waf-rule-statement-transformation.md)。
  + **URI 路徑** – 使用請求中的 URI 路徑做為彙總索引鍵。每個不同的 URI 路徑都有助於彙總執行個體。您可以使用此金鑰類型一次。

    URI 路徑會進行選用的文字轉換。請參閱 [在 中使用文字轉換 AWS WAF](waf-rule-statement-transformation.md)。
  + **JA3 指紋** – 使用請求中的 JA3 指紋做為彙總金鑰。每個不同的 JA3 指紋都有助於彙總執行個體。您可以使用此金鑰類型一次。
  + **JA4 指紋** – 使用請求中的 JA4 指紋做為彙總金鑰。每個不同的 JA4 指紋都有助於彙總執行個體。您可以使用此金鑰類型一次。
  + **HTTP 方法** – 使用請求的 HTTP 方法做為彙總金鑰。每個不同的 HTTP 方法都有助於彙總執行個體。您可以使用此金鑰類型一次。
  + **IP 地址** – 使用來自 Web 請求原始伺服器的 IP 地址結合其他金鑰進行彙總。

    這可能不會包含原始用戶端的地址。如果 Web 請求通過一或多個代理或負載平衡器，這將包含最後一個代理的地址。
  + **標頭中的 IP 地址** – 使用 HTTP 標頭中的用戶端地址搭配其他金鑰進行彙總。這也稱為轉送 IP 地址。

    使用此選項時請小心，因為代理可能會以不一致的方式處理標頭，並且可以修改標頭來繞過檢查。如需其他資訊和最佳實務，請參閱 [在 中使用轉送的 IP 地址 AWS WAF](waf-rule-statement-forwarded-ip-address.md)。

# 以速率為基礎的規則彙總執行個體和計數
彙總執行個體和計數

本節說明以速率為基礎的規則如何評估 Web 請求。

當以速率為基礎的規則使用您的彙總條件評估 Web 請求時，規則為指定彙總金鑰尋找的每個唯一值集會定義唯一的*彙總執行個體*。
+ **多個索引鍵** – 如果您已定義多個自訂索引鍵，則每個索引鍵的值都有助於彙總執行個體定義。值的每個唯一組合都會定義彙總執行個體。
+ **單一金鑰** – 如果您已在自訂金鑰或選取其中一個單一 IP 地址選項中選擇單一金鑰，則金鑰的每個唯一值都會定義彙總執行個體。
+ **全部計數 - 無索引鍵** – 如果您已選取彙總選項**全部計數**，則規則評估的所有請求都屬於規則的單一彙總執行個體。此選項需要縮小範圍陳述式。

 

速率型規則會針對其識別的每個彙總執行個體分別計算 Web 請求。

例如，假設以速率為基礎的規則評估具有下列 IP 地址和 HTTP 方法值的 Web 請求：
+ IP 地址 10.1.1.1、HTTP 方法 POST
+ IP 地址 10.1.1.1，HTTP 方法 GET
+ IP 地址 127.0.0.0，HTTP 方法 POST
+ IP 地址 10.1.1.1，HTTP 方法 GET

規則會根據您的彙總條件建立不同的彙總執行個體。
+ 如果彙總條件只是 IP 地址，則每個個別 IP 地址都是彙總執行個體，並分別 AWS WAF 計算每個 IP 地址的請求。我們範例的彙總執行個體和請求計數如下：
  + IP 地址 10.1.1.1：計數 3
  + IP 地址 127.0.0.0：計數 1
+ 如果彙總條件是 HTTP 方法，則每個個別 HTTP 方法都是彙總執行個體。我們範例的彙總執行個體和請求計數如下：
  + HTTP 方法 POST：計數 2
  + HTTP 方法 GET：計數 2
+ 如果彙總條件是 IP 地址和 HTTP 方法，則每個 IP 地址和每個 HTTP 方法都有助於合併彙總執行個體。我們範例的彙總執行個體和請求計數如下：
  + IP 地址 10.1.1.1，HTTP 方法 POST：計數 1
  + IP 地址 10.1.1.1，HTTP 方法 GET：計數 2
  + IP 地址 127.0.0.0，HTTP 方法 POST：計數 1

# 將速率限制套用至 中的請求 AWS WAF
套用速率限制

本節說明速率限制行為如何適用於以速率為基礎的規則。

 AWS WAF 用於對以速率為基礎的規則限制請求進行評分的條件與 AWS WAF 用於彙總規則請求的條件相同。如果您為規則定義縮小範圍陳述式，則 AWS WAF 只有符合縮小範圍陳述式的彙總、計數和速率限制請求。

導致以速率為基礎的規則將其規則動作設定套用至特定 Web 請求的比對條件如下：
+ 如果已定義，則 Web 請求符合規則的範圍縮小陳述式。
+ Web 請求屬於請求計數目前超過規則限制的彙總執行個體。

**如何 AWS WAF 套用規則動作**  
當以速率為基礎的規則將速率限制套用至請求時，它會套用規則動作，如果您已在動作規格中定義任何自訂處理或標籤，則規則會套用這些動作。此請求處理與比對規則將其動作設定套用至比對 Web 請求的方式相同。速率型規則只會對其主動速率限制的請求套用標籤或執行其他動作。

您可以使用 以外的任何規則動作Allow。如需規則動作的一般資訊，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)。

下列清單說明速率限制如何針對每個動作運作。
+ **Block** – AWS WAF 封鎖請求並套用您定義的任何自訂封鎖行為。
+ **Count** – AWS WAF 計算請求、套用您定義的任何自訂標頭或標籤，並繼續評估請求的保護套件 (Web ACL)。

  此動作不會限制請求的速率。它只會計算超過限制的請求。
+ **CAPTCHA 或 Challenge** – AWS WAF 根據請求字符的狀態Count，以 Block或 的形式處理請求。

  此動作不會限制具有有效字符的請求速率。它會限制超出限制且也缺少有效字符的請求速率。
  + 如果請求沒有有效、未過期的字符，動作會封鎖請求，並將 CAPTCHA 拼圖或瀏覽器挑戰傳回給用戶端。

    如果最終使用者或用戶端瀏覽器成功回應，用戶端會收到有效的字符，並自動重新傳送原始請求。如果彙總執行個體的速率限制仍然有效，則具有有效、未過期字符的新請求將套用該動作，如下一個項目符號所述。
  + 如果請求具有有效、未過期的字符， CAPTCHA或 Challenge動作會驗證字符，並且不會對請求採取任何動作，類似於 Count動作。以速率為基礎的規則會將請求評估傳回至保護套件 (Web ACL)，而不採取任何終止動作，且保護套件 (Web ACL) 會繼續評估請求。

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

**如果您只對 IP 地址或轉送 IP 地址進行評分**  
當您將規則設定為僅對轉送 IP 地址的 IP 地址進行速率限制時，您可以擷取規則目前速率限制的 IP 地址清單。如果您使用的是縮小範圍陳述式，速率限制的請求只是 IP 清單中符合縮小範圍陳述式的請求。如需擷取 IP 地址清單的資訊，請參閱 [列出速率受到以速率為基礎的規則限制的 IP 地址](listing-managed-ips.md)。

# 中的以速率為基礎的規則範例 AWS WAF
以速率為基礎的規則範例

本節說明各種常見速率型規則使用案例的範例組態。

每個範例都會提供使用案例的說明，然後在自訂設定規則的 JSON 清單中顯示解決方案。

**注意**  
這些範例中顯示的 JSON 清單是在主控台中建立，方法是設定規則，然後使用**規則 JSON 編輯器**進行編輯。

**Topics**
+ [

# 速率限制對登入頁面的請求
](waf-rate-based-example-limit-login-page.md)
+ [

# 速率限制來自任何 IP 地址、使用者代理程式對的登入頁面請求
](waf-rate-based-example-limit-login-page-keys.md)
+ [

# 速率限制缺少特定標頭的請求
](waf-rate-based-example-limit-missing-header.md)
+ [

# 速率限制具有特定標籤的請求
](waf-rate-based-example-limit-labels.md)
+ [

# 速率限制具有指定標籤命名空間之標籤的請求
](waf-rate-based-example-limit-label-aggregation.md)
+ [

# 速率限制具有特定 ASNs請求
](waf-rate-based-example-limit-asn.md)

# 速率限制對登入頁面的請求
速率限制對登入頁面的請求

若要限制您網站上登入頁面的請求數量，而不影響您網站其餘部分的流量，您可以建立速率型規則，其範圍縮小陳述式會將請求比對至您的登入頁面，並將請求彙總設為**全部計數**。

速率型規則會計算單一彙總執行個體中登入頁面的所有請求，並在請求超過限制時，將規則動作套用至符合縮小範圍陳述式的所有請求。

下列 JSON 清單顯示此規則組態的範例。計數所有彙總選項會在 JSON 中列為設定 `CONSTANT`。此範例符合以 開頭的登入頁面`/login`。

```
{
  "Name": "test-rbr",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-rbr"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": 1000,
      "EvaluationWindowSec": 300,
      "AggregateKeyType": "CONSTANT",
      "ScopeDownStatement": {
        "ByteMatchStatement": {
          "FieldToMatch": {
            "UriPath": {}
          },
          "PositionalConstraint": "STARTS_WITH",
          "SearchString": "/login",
          "TextTransformations": [
            {
              "Type": "NONE",
              "Priority": 0
            }
          ]
        }
      }
    }
  }
}
```

# 速率限制來自任何 IP 地址、使用者代理程式對的登入頁面請求
速率限制來自任何 IP 地址、使用者代理程式對的登入頁面請求

若要限制 IP 地址登入頁面的請求數量，超出限制的使用者代理程式對，請將請求彙總設定為**自訂金鑰**，並提供彙總條件。

下列 JSON 清單顯示此規則組態的範例。在此範例中，我們已將每個 IP 地址、使用者代理程式對的 5 分鐘內限制為 100 個請求。

```
{
  "Name": "test-rbr",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-rbr"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": 100,
      "EvaluationWindowSec": 300,
      "AggregateKeyType": "CUSTOM_KEYS",
      "CustomKeys": [
        {
          "Header": {
            "Name": "User-Agent",
            "TextTransformations": [
              {
                "Priority": 0,
                "Type": "NONE"
              }
            ]
          }
        },
        {
          "IP": {}
        }
      ],
      "ScopeDownStatement": {
        "ByteMatchStatement": {
          "FieldToMatch": {
            "UriPath": {}
          },
          "PositionalConstraint": "STARTS_WITH",
          "SearchString": "/login",
          "TextTransformations": [
            {
              "Type": "NONE",
              "Priority": 0
            }
          ]
        }
      }
    }
  }
}
```

# 速率限制缺少特定標頭的請求
速率限制缺少特定標頭的請求

若要限制缺少特定標頭的請求數量，您可以使用**計數所有**彙總選項搭配縮小範圍陳述式。使用邏輯`NOT`陳述式設定縮小範圍陳述式，其中包含僅在標頭存在且具有值時傳回 true 的陳述式。

下列 JSON 清單顯示此規則組態的範例。

```
{
  "Name": "test-rbr",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-rbr"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": 1000,
      "AggregateKeyType": "CONSTANT",
      "EvaluationWindowSec": 300,
      "ScopeDownStatement": {
        "NotStatement": {
          "Statement": {
            "SizeConstraintStatement": {
              "FieldToMatch": {
                "SingleHeader": {
                  "Name": "user-agent"
                }
              },
              "ComparisonOperator": "GT",
              "Size": 0,
              "TextTransformations": [
                {
                  "Type": "NONE",
                  "Priority": 0
                }
              ]
            }
          }
        }
      }
    }
  }
}
```

# 速率限制具有特定標籤的請求
速率限制具有特定標籤的請求

若要限制各種類別的請求數量，您可以將速率限制與將標籤新增至請求的任何規則或規則群組結合。若要這樣做，您可以設定保護套件 (Web ACL)，如下所示：
+ 新增新增標籤的規則或規則群組，並加以設定，使其不會封鎖或允許您想要對限制進行評分的請求。如果您使用受管規則群組，您可能需要覆寫 的一些規則群組規則動作Count，才能達成此行為。
+ 將速率型規則新增至您的保護套件 (Web ACL)，其優先順序數字設定高於標籤規則和規則群組。 會以數字順序 AWS WAF 評估規則，從最低開始，因此您的速率型規則將在標籤規則之後執行。使用規則縮小範圍陳述式和標籤彙總中的標籤比對組合，在標籤上設定速率限制。

下列範例使用 Amazon IP 評價清單 AWS 受管規則規則群組。規則群組規則`AWSManagedIPDDoSList`會偵測並標記已知 IPs正主動參與 DDoS 活動的請求。規則的 動作在規則群組定義Count中設定為 。如需規則群組的詳細資訊，請參閱 [Amazon IP 評價清單受管規則群組](aws-managed-rule-groups-ip-rep.md#aws-managed-rule-groups-ip-rep-amazon)。

下列保護套件 (Web ACL) JSON 清單使用 IP 評價規則群組，後面接著標籤比對速率型規則。速率型規則使用縮小範圍陳述式來篩選由規則群組規則標記的請求。以速率為基礎的規則陳述式會彙總 ，並依其 IP 地址限制篩選的請求。

```
{
  "Name": "test-web-acl",
  "Id": ... 
  "ARN": ...
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "",
  "Rules": [
    {
      "Name": "AWS-AWSManagedRulesAmazonIpReputationList",
      "Priority": 0,
      "Statement": {
        "ManagedRuleGroupStatement": {
          "VendorName": "AWS",
          "Name": "AWSManagedRulesAmazonIpReputationList"
        }
      },
      "OverrideAction": {
        "None": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSManagedRulesAmazonIpReputationList"
      }
    },
    {
      "Name": "test-rbr",
      "Priority": 1,
      "Statement": {
        "RateBasedStatement": {
          "Limit": 100,
          "EvaluationWindowSec": 300,
          "AggregateKeyType": "IP",
          "ScopeDownStatement": {
            "LabelMatchStatement": {
              "Scope": "LABEL",
              "Key": "awswaf:managed:aws:amazon-ip-list:AWSManagedIPDDoSList"
            }
          }
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "test-rbr"
      }
    }
  ],
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-web-acl"
  },
  "Capacity": 28,
  "ManagedByFirewallManager": false,
  "RetrofittedByFirewallManager": false,
  "LabelNamespace": "awswaf:0000000000:webacl:test-web-acl:"
}
```

# 速率限制具有指定標籤命名空間之標籤的請求
速率限制具有指定標籤命名空間之標籤的請求

**注意**  
Bot Control 受管規則群組中的常見層級規則會為各種類別的機器人新增標籤，但只會封鎖來自未驗證機器人的請求。如需這些規則的詳細資訊，請參閱 [機器人控制規則清單](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-rules)。

如果您使用 Bot Control 受管規則群組，則可以為來自個別已驗證機器人的請求新增速率限制。若要這樣做，您可以新增在 Bot Control 規則群組之後執行的速率型規則，並依其機器人名稱標籤彙總請求。您可以指定**標籤命名空間**彙總金鑰，並將命名空間金鑰設定為 `awswaf:managed:aws:bot-control:bot:name:`。具有指定命名空間的每個唯一標籤都會定義彙總執行個體。例如，標籤`awswaf:managed:aws:bot-control:bot:name:axios`和`awswaf:managed:aws:bot-control:bot:name:curl`每個標籤都會定義彙總執行個體。

下列保護套件 (Web ACL) JSON 清單顯示此組態。此範例中的規則會將任何單一機器人彙總執行個體的請求限制在兩分鐘內 1，000 個。

```
{
  "Name": "test-web-acl",
  "Id": ... 
  "ARN": ...
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "",
  "Rules": [
    {
      "Name": "AWS-AWSManagedRulesBotControlRuleSet",
      "Priority": 0,
      "Statement": {
        "ManagedRuleGroupStatement": {
          "VendorName": "AWS",
          "Name": "AWSManagedRulesBotControlRuleSet",
          "ManagedRuleGroupConfigs": [
            {
              "AWSManagedRulesBotControlRuleSet": {
                "InspectionLevel": "COMMON"
              }
            }
          ]
        }
      },
      "OverrideAction": {
        "None": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSManagedRulesBotControlRuleSet"
      }
    },
    {
      "Name": "test-rbr",
      "Priority": 1,
      "Statement": {
        "RateBasedStatement": {
          "Limit": 1000,
          "EvaluationWindowSec": 120,
          "AggregateKeyType": "CUSTOM_KEYS",
          "CustomKeys": [
            {
              "LabelNamespace": {
                "Namespace": "awswaf:managed:aws:bot-control:bot:name:"
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "test-rbr"
      }
    }
  ],
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-web-acl"
  },
  "Capacity": 82,
  "ManagedByFirewallManager": false,
  "RetrofittedByFirewallManager": false,
  "LabelNamespace": "awswaf:0000000000:webacl:test-web-acl:"
}
```

# 速率限制具有特定 ASNs請求


若要根據請求的 IP 地址限制來自特定自治系統編號 (ASNs) 的請求數量，請將請求彙總設定為*自訂金鑰*並提供彙總條件。

下列 JSON 顯示彙總衍生自 `X-Forwarded-For`標頭中轉送 IP 地址之 ASNs 的規則範例。如果 AWS WAF 因為 IP 地址格式錯誤而無法衍生 ASN，則備用行為會設為 `MATCH`。

```
{
    "Name": "test-rbr",
    "Priority": 0,
    "Statement": {
        "RateBasedStatement": {
            "AggregateKeyType": "CUSTOM_KEYS",
            "CustomKeys": [
                {
                    "ASN": {}
                },
                {
                    "ForwardedIP": {}
                }
            ],
            "EvaluationWindowSec": 300,
            "ForwardedIPConfig": {
                "FallbackBehavior": "MATCH",
                "HeaderName": "X-Forwarded-For"
            },
            "Limit": 2000
        }
    },
    "VisibilityConfig": {
        "CloudWatchMetricsEnabled": true,
        "MetricName": "test-rbr",
        "SampledRequestsEnabled": true
    }
}
```

# 列出速率受到以速率為基礎的規則限制的 IP 地址
列出速率限制的 IP 地址移動主題：列出速率受限的 IP 地址

列出受以速率為基礎的規則限制之 IP 地址的主題現在位於以速率為基礎的規則主題下。

本節說明如何使用 CLI、 API 或任何SDKs，存取速率型規則目前限制速率的 IP 地址清單。

如果您的速率型規則僅彙總 IP 地址或轉送 IP 地址，您可以擷取規則目前速率限制的 IP 地址清單。 會將這些 IP 地址 AWS WAF 存放在規則的受管金鑰清單中。

**注意**  
只有在您僅彙總 IP 地址或標頭中的 IP 地址時，才能使用此選項。如果您使用自訂金鑰請求彙總，則無法擷取速率受限 IP 地址的清單，即使您在自訂金鑰中使用其中一個 IP 地址規格。

速率型規則會將其規則動作套用至規則受管金鑰清單中符合規則縮小範圍陳述式的請求。當規則沒有縮小範圍陳述式時，它會將 動作套用至清單中 IP 地址的所有請求。規則動作Block預設為 ，但除了 之外，它可以是任何有效的規則動作Allow。使用單一速率型規則執行個體 AWS WAF 可對限制進行評分的 IP 地址數目上限為 10，000。如果超過 10，000 個地址超過速率限制， 會 AWS WAF 限制速率最高的地址。

您可以使用 CLI、API 或任何 SDKs 來存取速率型規則的受管金鑰清單。本主題涵蓋使用 CLI 和 API 進行存取。主控台目前不提供對清單的存取權。

對於 AWS WAF API，命令為 [GetRateBasedStatementManagedKeys](https://docs.aws.amazon.com/waf/latest/APIReference/API_GetRateBasedStatementManagedKeys.html)。

對於 AWS WAF CLI，命令為 [get-rate-based-statement-managed-keys](https://docs.aws.amazon.com/cli/latest/reference/wafv2/get-rate-based-statement-managed-keys.html)。

以下顯示擷取 Amazon CloudFront 分佈上保護套件 (Web ACL) 中使用的以速率為基礎的規則之速率限制 IP 地址清單的語法。

```
aws wafv2 get-rate-based-statement-managed-keys --scope=CLOUDFRONT --region=us-east-1 --web-acl-name=WebACLName --web-acl-id=WebACLId --rule-name=RuleName
```

以下顯示區域應用程式、Amazon API Gateway REST API、Application Load Balancer、a AWS AppSync GraphQL API、Amazon Cognito 使用者集區 AWS Amplify、 AWS App Runner 服務或 AWS Verified Access 執行個體的語法。

```
aws wafv2 get-rate-based-statement-managed-keys --scope=REGIONAL --region=region --web-acl-name=WebACLName --web-acl-id=WebACLId --rule-name=RuleName
```

AWS WAF 會監控 Web 請求，並針對保護套件 (Web ACL)、選用規則群組和速率型規則的每個唯一組合獨立管理金鑰。例如，如果您在規則群組內定義速率型規則，然後在保護套件 (Web ACL) 中使用規則群組， AWS WAF 則監控 Web 請求並管理該保護套件 (Web ACL)、規則群組參考陳述式和速率型規則執行個體的金鑰。如果您在第二個保護套件 (Web ACL) 中使用相同的規則群組， AWS WAF 會監控 Web 請求並管理此第二個用途的金鑰，完全獨立於您的第一個。

對於您在規則群組中定義的以速率為基礎的規則，除了保護套件 (Web ACL) 名稱和規則群組內以速率為基礎的規則名稱之外，您還需要在請求中提供規則群組參考陳述式的名稱。以下顯示區域應用程式的語法，其中以速率為基礎的規則是在規則群組內定義，而規則群組用於保護套件 (Web ACL)。

```
aws wafv2 get-rate-based-statement-managed-keys --scope=REGIONAL --region=region --web-acl-name=WebACLName --web-acl-id=WebACLId --rule-group-rule-name=RuleGroupRuleName --rule-name=RuleName
```

# 在 中使用規則群組規則陳述式 AWS WAF
使用規則群組規則陳述式

**注意**  
規則群組規則陳述式不可巢狀化。

本節說明您可以在保護套件 (Web ACL) 中使用的規則群組規則陳述式。規則群組保護套件 (Web ACL) 容量單位 (WCUs) 由規則群組擁有者在建立時設定。如需 WCU 的相關資訊，請參閱 [中的 Web ACL 容量單位 WCUs) AWS WAF](aws-waf-capacity-units.md)。


| 規則群組陳述式 | Description | WCU | 
| --- | --- | --- | 
|  [使用受管規則群組陳述式](waf-rule-statement-type-managed-rule-group.md)  |  執行指定的受管規則群組中定義的規則。 您可以新增縮小範圍陳述式，縮小規則群組評估的請求範圍。 您無法在任何其他陳述式類型中巢狀化受管規則群組陳述式。  |  由規則群組定義，加上範圍縮小陳述式的任何其他 WCUs。  | 
| [使用規則群組陳述式](waf-rule-statement-type-rule-group.md) | 執行在您管理的規則群組中定義的規則。 您無法將縮小範圍陳述式新增至您自己的規則群組的規則群組參考陳述式。 您無法在任何其他陳述式類型內巢狀化規則群組陳述式  | 您可以在建立規則群組時定義規則群組的 WCU 限制。 | 

# 在 中使用受管規則群組陳述式 AWS WAF
使用受管規則群組陳述式

本節說明 受管規則群組規則陳述式的運作方式。

受管規則群組規則陳述式會將保護套件 (Web ACL) 規則清單中的參考新增至受管規則群組。您在主控台的規則陳述式下看不到此選項，但當您使用 Web ACL 的 JSON 格式時，您已新增的任何受管規則群組都會在保護套件 (Web ACL) 規則下顯示為此類型。

受管規則群組是 AWS 受管規則規則群組，其中大部分是免費提供給 AWS WAF 客戶，或是 AWS Marketplace 受管規則群組。當您將付費 AWS 的受管規則規則群組新增至保護套件 (Web ACL) 時，您會自動訂閱這些規則群組。您可以透過 訂閱 AWS Marketplace 受管規則群組 AWS Marketplace。如需詳細資訊，請參閱[在 中使用受管規則群組 AWS WAF](waf-managed-rule-groups.md)。

當您將規則群組新增至保護套件 (Web ACL) 時，您可以將群組中規則的動作覆寫為 Count或另一個規則動作。如需詳細資訊，請參閱[在 中覆寫規則群組動作 AWS WAF](web-acl-rule-group-override-options.md)。

您可以縮小使用規則群組 AWS WAF 評估的請求範圍。若要這樣做，您可以在規則群組陳述式中新增縮小範圍陳述式。如需縮小範圍陳述式的詳細資訊，請參閱 [在 中使用縮小範圍陳述式 AWS WAF](waf-rule-scope-down-statements.md)。這可協助您管理規則群組如何影響流量，並協助您在使用規則群組時控制與流量相關聯的成本。如需搭配 AWS WAF Bot Control 受管規則群組使用縮小範圍陳述式的資訊和範例，請參閱 [AWS WAF 機器人控制](waf-bot-control.md)。

## 規則陳述式特性


**不可巢**狀化 – 您無法將此陳述式類型巢狀在其他陳述式中，也無法將其包含在規則群組中。您可以直接將其包含在保護套件 (Web ACL) 中。

**（選用） 縮小範圍陳述式** – 此規則類型需要選用縮小範圍陳述式，以縮小規則群組評估的請求範圍。如需詳細資訊，請參閱[在 中使用縮小範圍陳述式 AWS WAF](waf-rule-scope-down-statements.md)。

**WCUs** – 在建立時為規則群組設定 。

## 尋找此規則陳述式的位置

+ **主控台** – 在建立保護套件 (Web ACL) 的過程中，在**新增規則和規則群組**頁面上，選擇**新增受管規則群組**，然後尋找並選取您要使用的規則群組。
+ **API** – [ManagedRuleGroupStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_ManagedRuleGroupStatement.html)

# 在 中使用規則群組陳述式 AWS WAF
使用規則群組陳述式

本節說明規則群組規則陳述式的運作方式。

規則群組規則陳述式會將保護套件 (Web ACL) 規則清單的參考新增至您管理的規則群組。您在主控台的規則陳述式下看不到此選項，但當您使用保護套件 (Web ACL) 的 JSON 格式時，您已新增的任何規則群組都會顯示在此類型的保護套件 (Web ACL) 規則下。如需有關使用您自己的規則群組的資訊，請參閱 [管理您自己的規則群組](waf-user-created-rule-groups.md)。

當您將規則群組新增至保護套件 (Web ACL) 時，您可以將群組中規則的動作覆寫為 Count或另一個規則動作。如需詳細資訊，請參閱[在 中覆寫規則群組動作 AWS WAF](web-acl-rule-group-override-options.md)。

## 規則陳述式特性


**不可巢**狀化 – 您無法將此陳述式類型巢狀在其他陳述式中，也無法將其包含在規則群組中。您可以直接將其包含在保護套件 (Web ACL) 中。

**WCUs** – 在建立時為規則群組設定 。

## 尋找此規則陳述式的位置

+ **主控台** – 在建立保護套件 (Web ACL) 的過程中，在**新增規則和規則群組**頁面上，選擇**新增我自己的規則和規則群組**、**規則群組**，然後新增您要使用的規則群組。
+ **API** – [RuleGroupReferenceStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_RuleGroupReferenceStatement.html)

# AWS WAF 規則群組
AWS WAF 規則群組

本節說明什麼是規則群組及其運作方式。

規則群組是一組可重複使用的規則，您可以新增至保護套件 (Web ACL)。如需保護套件 (Web ACLs) 的詳細資訊，請參閱 [在 中設定保護 AWS WAF](web-acl.md)。

規則群組分為下列主要類別：
+ 您自己的規則群組，由您建立和維護。
+ 受管規則團隊為您建立和維護的 AWS 受管規則群組。
+  AWS Marketplace 賣方為您建立和維護的受管規則群組。
+ 由 和 Shield Advanced 等其他服務擁有 AWS Firewall Manager 和管理的規則群組。

**規則群組和保護套件之間的差異 (Web ACLs)**  
規則群組和保護套件 (Web ACLs) 都包含規則，這些規則在這兩個位置都以相同的方式定義。規則群組與保護套件 (Web ACLs) 的不同之處如下：
+ 規則群組不能包含規則群組參考陳述式。
+ 您可以在多個保護套件 (Web ACLs) 中重複使用單一規則群組，方法是將規則群組參考陳述式新增至每個保護套件 (Web ACL)。您無法重複使用保護套件 (Web ACL)。
+ 規則群組沒有預設動作。在保護套件 (Web ACL) 中，您可以為包含的每個規則或規則群組設定預設動作。規則群組或保護套件 (Web ACL) 中的每個個別規則都已定義動作。
+ 您不會直接將規則群組與 AWS 資源建立關聯。若要使用規則群組保護資源，請在保護套件 (Web ACL) 中使用規則群組。
+ 系統會為每個保護套件 (Web ACL) 定義最大容量 5，000 個保護套件 (Web ACL) 容量單位 (WCUs)。每個規則群組都有一個 WCU 設定，必須在建立時設定。您可以使用此設定來計算使用規則群組將新增至保護套件 (Web ACL) 的額外容量需求。如需 WCUs的詳細資訊，請參閱 [中的 Web ACL 容量單位 WCUs) AWS WAF](aws-waf-capacity-units.md)。

如需規則的詳細資訊，請參閱 [AWS WAF 規則](waf-rules.md)。

本節提供建立和管理自有規則群組的指引、說明可供您使用的受管規則群組，以及提供使用受管規則群組的指引。

**Topics**
+ [

# 在 中使用受管規則群組 AWS WAF
](waf-managed-rule-groups.md)
+ [

# 管理您自己的規則群組
](waf-user-created-rule-groups.md)
+ [

# AWS Marketplace 規則群組
](marketplace-rule-groups.md)
+ [

# 辨識其他服務提供的規則群組
](waf-service-owned-rule-groups.md)

# 在 中使用受管規則群組 AWS WAF
使用受管規則群組已將版本控制新增至受管規則群組

受管規則群組提供者現在可以為其規則群組進行版本控制。新增受管規則群組目前預設版本設定的指標

受管規則群組版本清單現在指出哪個版本是目前的預設值。

本節說明什麼是受管規則群組及其運作方式。

受管規則群組是預先定義、ready-to-use規則的集合， AWS 和 AWS Marketplace 賣方會為您撰寫和維護這些規則。基本 AWS WAF 定價適用於您對任何受管規則群組的使用。如需 AWS WAF 定價資訊，請參閱 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。
+ *除了基本費用之外，適用於 AWS WAF Bot Control、 AWS WAF Fraud Control 帳戶接管預防 (ATP) 和 AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 的 AWS 受管規則規則群組*需額外付費。 AWS WAF 如需定價詳細資訊，請參閱 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。
+ *所有其他 AWS 受管規則規則群組*可供 AWS WAF 客戶免費使用。
+ *AWS Marketplace 規則群組*可透過 訂閱 AWS Marketplace。每個規則群組都由 AWS Marketplace 賣方擁有和管理。如需使用 AWS Marketplace 規則群組的定價資訊，請聯絡 AWS Marketplace 賣方。

有些受管規則群組主要用於協助保護特定類型的 Web 應用程式，像是 WordPress、Joomla 或 PHP。其他則針對已知威脅或常見的 Web 應用程式漏洞提供廣泛的保護，包括 [OWASP 前 10 名](https://owasp.org/www-project-top-ten/)所列的部分漏洞。如果您受限於法規合規，例如 PCI 或 HIPAA，您可以使用受管規則群組以達到 Web 應用程式防火牆的需求。

**自動更新**  
為了保持在最新狀態以了解不斷變化的威脅趨勢，不僅費時而且耗錢。當您實作和使用 時，受管規則群組可以節省您的時間 AWS WAF。許多 AWS 和 AWS Marketplace 賣方會自動更新受管規則群組，並在出現新的漏洞和威脅時提供新版本的規則群組。

在某些情況下，由於 參與多個私有揭露社群， AWS 會在公開揭露之前收到新漏洞的通知。在這些情況下， AWS 可以更新 AWS 受管規則規則群組，並在新的威脅廣為人知之前為您部署這些規則群組。

**受管規則群組中規則的限制存取**  
每個受管規則群組都會提供攻擊類型的完整描述，以及其旨在防範的漏洞。為了保護規則群組提供者的智慧財產權，您無法檢視規則群組中個別規則的所有詳細資訊。此限制也有助於防止惡意使用者利用規避發佈的規則設計攻擊威脅。

**Topics**
+ [

# 在 中使用版本控制的受管規則群組 AWS WAF
](waf-managed-rule-groups-versioning.md)
+ [

# 使用受管規則群組
](waf-using-managed-rule-groups.md)
+ [

# AWS 的受管規則 AWS WAF
](aws-managed-rule-groups.md)

# 在 中使用版本控制的受管規則群組 AWS WAF
使用版本控制的受管規則群組

本節說明如何處理受管規則群組的版本控制。

許多受管規則群組提供者會使用版本控制來更新規則群組的選項和功能。通常，受管規則群組的特定版本是靜態的。有時候，供應商可能需要更新部分或全部受管規則群組的靜態版本，例如，以回應新興的安全威脅。

當您在保護套件 (Web ACL) 中使用版本控制的受管規則群組時，您可以選取預設版本，並讓提供者管理您使用的靜態版本，也可以選取特定的靜態版本。

**找不到您想要的版本？**  
如果您在規則群組的版本清單中沒有看到版本，則版本可能已排程為過期或已過期。版本排定過期後， AWS WAF 就無法再讓您為規則群組選擇該版本。

**AWS 受管規則規則群組的 SNS 通知**  
 AWS 受管規則規則群組都提供版本控制和 SNS 更新通知，但 IP 評價規則群組除外。提供通知的 AWS 受管規則規則群組都使用相同的 SNS 主題 Amazon Resource Name (ARN)。若要註冊 SNS 通知，請參閱 [收到新版本和更新的通知](waf-using-managed-rule-groups-sns-topic.md)。

**Topics**
+ [

# 受管規則群組的版本生命週期
](waf-managed-rule-groups-versioning-lifecycle.md)
+ [

# 受管規則群組的版本過期
](waf-managed-rule-groups-versioning-expiration.md)
+ [

# 處理受管規則群組版本的最佳實務
](waf-managed-rule-groups-best-practice.md)

# 受管規則群組的版本生命週期
版本生命週期

供應商會處理受管規則群組靜態版本的下列生命週期階段：
+ **發行和更新** – 受管規則群組提供者會透過 Amazon Simple Notification Service (Amazon SNS) 主題的通知，宣布其受管規則群組即將推出和新的靜態版本。供應商也可能使用 主題來傳達有關其規則群組的其他重要資訊，例如緊急必要更新。

  您可以訂閱規則群組的主題，並設定接收通知的方式。如需更多資訊，請參閱[收到新版本和更新的通知](waf-using-managed-rule-groups-sns-topic.md)。
+ **過期排程** – 受管規則群組提供者會為過期排程規則群組的較舊版本。排程過期的版本無法新增至您的保護套件 (Web ACL) 規則。排定版本過期後， 會使用 Amazon CloudWatch 中的倒數指標 AWS WAF 追蹤過期。
+ **版本過期** – 如果您將保護套件 (Web ACL) 設定為使用受管規則群組的過期版本，則在保護套件 (Web ACL) 評估期間， AWS WAF 會使用規則群組的預設版本。此外， 會 AWS WAF 封鎖未移除規則群組或將其版本變更為未過期的保護套件 (Web ACL) 的任何更新。

如果您使用 AWS Marketplace 受管規則群組，請向提供者詢問有關版本生命週期的任何其他資訊。

# 受管規則群組的版本過期
版本過期

 本節說明版本過期如何適用於版本控制的受管規則群組。

如果您使用特定版本的規則群組，請確定您不會繼續使用超過過期日期的版本。您可以透過規則群組的 SNS 通知和 Amazon CloudWatch 指標來監控版本過期。

如果您在保護套件 (Web ACL) 中使用的版本已過期， 會 AWS WAF 封鎖保護套件 (Web ACL) 的任何更新，其中不包含將規則群組移至未過期的版本。您可以將規則群組更新為可用的版本，或從保護套件 (Web ACL) 中移除。

受管規則群組的過期處理取決於規則群組提供者。對於 AWS 受管規則規則群組，過期版本會自動變更為規則群組的預設版本。對於 AWS Marketplace 規則群組，詢問提供者如何處理過期。

當提供者建立新版本的規則群組時，它會設定版本的預測生命週期。雖然版本未排定過期，但 Amazon CloudWatch 指標值會設定為預測的生命週期設定，而在 CloudWatch 中，您會看到指標的固定值。在提供者排定指標過期後，指標值每天都會減少，直到過期當天達到零為止。如需監控過期的資訊，請參閱 [追蹤版本過期](waf-using-managed-rule-groups-expiration.md)。

# 處理受管規則群組版本的最佳實務
受管規則群組版本的最佳實務

當您使用版本控制的受管規則群組時，請遵循此最佳實務指南來處理版本控制。

當您在保護套件 (Web ACL) 中使用受管規則群組時，您可以選擇使用規則群組的特定靜態版本，也可以選擇使用預設版本：
+ **預設版本** – AWS WAF 一律將預設版本設定為供應商目前建議的靜態版本。當提供者更新其建議的靜態版本時， AWS WAF 會自動更新保護套件中規則群組的預設版本設定 (Web ACL)。

  當您使用受管規則群組的預設版本時，請執行下列最佳實務：
  + **訂閱通知** – 訂閱通知以取得規則群組的變更，並留意這些變更。大多數供應商會傳送新靜態版本和預設版本變更的進階通知。這些可讓您先檢查新靜態版本的效果，再 AWS 切換預設版本。如需更多資訊，請參閱[收到新版本和更新的通知](waf-using-managed-rule-groups-sns-topic.md)。
  + **檢閱靜態版本設定的效果，並在將預設值設為靜態版本之前視需要進行調整** – 在將預設值設為新的靜態版本之前，請檢閱靜態版本對 Web 請求監控和管理的效果。新的靜態版本可能會有要檢閱的新規則。尋找誤報或其他非預期行為，以防您需要修改規則群組的使用方式。您可以設定規則來計算，例如，在您了解要如何處理新行為時，阻止它們封鎖流量。如需詳細資訊，請參閱[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。
+ **靜態版本** – 如果您選擇使用靜態版本，則當您準備好採用新版本的規則群組時，必須手動更新版本設定。

  當您使用受管規則群組的靜態版本時，請執行下列最佳實務：
  + **將您的版本保持在最新**狀態 – 讓您的受管規則群組盡可能靠近最新版本。發行新版本時，請進行測試、視需要調整設定，並及時實作。如需測試的相關資訊，請參閱 [測試和調校您的 AWS WAF 保護](web-acl-testing.md)。
  + **訂閱通知** – 訂閱規則群組變更的通知，讓您知道提供者何時發佈新的靜態版本。大多數供應商會提供版本變更的進階通知。此外，您的提供者可能需要更新您用來關閉安全漏洞或其他緊急原因的靜態版本。如果您訂閱供應商的通知，您會知道發生了什麼事。如需詳細資訊，請參閱[收到新版本和更新的通知](waf-using-managed-rule-groups-sns-topic.md)。
  + **避免版本過期** – 不允許靜態版本在您使用時過期。處理過期版本的供應商可能會有所不同，可能包括強制升級至可用的版本，或可能造成非預期後果的其他變更。追蹤 AWS WAF 過期指標並設定警示，讓您有足夠的天數成功升級至支援的版本。如需詳細資訊，請參閱[追蹤版本過期](waf-using-managed-rule-groups-expiration.md)。



# 使用受管規則群組


本節提供存取和管理受管規則群組的指引。

當您將受管規則群組新增至保護套件 (Web ACL) 時，您可以選擇與您自己的規則群組相同的組態選項，以及其他設定。

透過 主控台，您可以在在保護套件 (Web ACLs) 中新增和編輯規則的過程中存取受管規則群組資訊。透過 APIs和命令列界面 (CLI)，您可以直接請求受管規則群組資訊。

當您在保護套件 (Web ACL) 中使用受管規則群組時，您可以編輯下列設定：
+ **版本** – 只有在規則群組進行版本控制時，才能使用此功能。如需詳細資訊，請參閱[在 中使用版本控制的受管規則群組 AWS WAF](waf-managed-rule-groups-versioning.md)。
+ **覆寫規則動作** – 您可以將規則群組中規則的動作覆寫為任何動作。將它們設定為 Count有助於在使用規則群組來管理您的 Web 請求之前測試規則群組。如需詳細資訊，請參閱[規則群組規則動作覆寫](web-acl-rule-group-override-options.md#web-acl-rule-group-override-options-rules)。
+ **縮小範圍陳述式** – 您可以新增縮小範圍陳述式，以篩選出您不想使用規則群組評估的 Web 請求。如需詳細資訊，請參閱[在 中使用縮小範圍陳述式 AWS WAF](waf-rule-scope-down-statements.md)。
+ **覆寫規則群組動作** – 您可以覆寫規則群組評估所產生的動作，並Count僅將其設定為 。此選項不常用。它不會改變 如何 AWS WAF 評估規則群組中的規則。如需詳細資訊，請參閱[規則群組傳回動作覆寫至 Count](web-acl-rule-group-override-options.md#web-acl-rule-group-override-options-rule-group)。

**編輯保護套件中的受管規則群組設定 (Web ACL)**
+ **主控台** 
  + （選項） 當您將受管規則群組新增至保護套件 (Web ACL) 時，您可以選擇**編輯**以檢視和編輯設定。
  + （選項） 將受管規則群組新增至保護套件 (Web ACL) 之後，請從**保護套件 (Web ACLs**頁面選擇您剛建立的保護套件 (Web ACL)。這會帶您前往保護套件 (Web ACL) 編輯頁面。
    + 選擇 **Rules (規則)**。
    + 選取規則群組，然後選擇**編輯**以檢視和編輯設定。
+ **APIs和 CLI** – 在主控台之外，您可以在建立和更新保護套件 (Web ACL) 時管理受管規則群組設定。

# 擷取受管規則群組的清單
擷取受管規則群組的清單

您可以擷取可在保護套件 (Web ACLs) 中使用的受管規則群組清單。此清單包含下列項目：
+ 所有 AWS 受管規則規則群組。
+ 您已訂閱的 AWS Marketplace 規則群組。
**注意**  
如需訂閱 AWS Marketplace 規則群組的資訊，請參閱 [AWS Marketplace 規則群組](marketplace-rule-groups.md)。

當您擷取受管規則群組的清單時，您取得的清單取決於您使用的界面：
+ **主控台** – 透過主控台，您可以查看所有受管規則群組，包括您尚未訂閱的 AWS Marketplace 規則群組。對於您尚未訂閱的介面，介面會提供您可以遵循的連結來訂閱。
+ **APIs和 CLI** – 在主控台之外，您的請求只會傳回可供您使用的規則群組。

**擷取受管規則群組的清單**
+ **主控台** – 在建立 Web ACL 的過程中，在**新增規則和規則群組**頁面上，選擇**新增受管規則群組**。在最上層，會列出提供者名稱。展開每個提供者清單，以查看受管規則群組的清單。對於版本控制規則群組，此層級顯示的資訊適用於預設版本。當您將受管規則群組新增至保護套件 (Web ACL) 時，主控台會根據命名方案 列出規則群組`<Vendor Name>-<Managed Rule Group Name>`。
+ **API** –
  +  `ListAvailableManagedRuleGroups`
+ **CLI** –
  + `aws wafv2 list-available-managed-rule-groups --scope=<CLOUDFRONT|REGIONAL>`

# 擷取受管規則群組中的規則
擷取受管規則群組的規則

您可以擷取受管規則群組中的規則清單。API 和 CLI 呼叫會傳回您可以在 JSON 模型中或透過其參考的規則規格 AWS CloudFormation。

**擷取受管規則群組中的規則清單**
+ **主控台** 
  + （選項） 當您將受管規則群組新增至保護套件 (Web ACL) 時，您可以選擇**編輯**以檢視規則。
  + （選項） 將受管規則群組新增至保護套件 (Web ACL) 之後，請從**保護套件 (Web ACLs**頁面選擇您剛建立的保護套件 (Web ACL)。這會帶您前往保護套件 (Web ACL) 編輯頁面。
    + 選擇 **Rules (規則)**。
    + 選取您要查看規則清單的規則群組，然後選擇**編輯**。 AWS WAF 顯示規則群組中的規則清單。
+ **API** – `DescribeManagedRuleGroup`
+ **CLI** – `aws wafv2 describe-managed-rule-group --scope=<CLOUDFRONT|REGIONAL> --vendor-name <vendor> --name <managedrule_name>`

# 擷取受管規則群組的可用版本
擷取受管規則群組的版本

受管規則群組的可用版本是尚未排定過期的版本。清單指出哪個版本是規則群組的目前預設版本。

**擷取受管規則群組可用版本的清單**
+ **主控台** 
  + （選項） 當您將受管規則群組新增至保護套件 (Web ACL) 時，請選擇**編輯**以查看規則群組的資訊。展開**版本**下拉式清單以查看可用版本的清單。
  + （選項） 將受管規則群組新增至保護套件 (Web ACL) 之後，請在保護套件 (Web ACL) 上選擇**編輯**，然後選取並編輯規則群組規則。展開**版本**下拉式清單以查看可用版本的清單。
+ **API** –
  +  `ListAvailableManagedRuleGroupVersions`
+ **CLI** –
  +  `aws wafv2 list-available-managed-rule-group-versions --scope=<CLOUDFRONT|REGIONAL> --vendor-name <vendor> --name <managedrule_name>`

# 透過主控台將受管規則群組新增至保護套件 (Web ACL)


本節說明如何透過主控台將受管規則群組新增至保護套件 (Web ACL)。本指南適用於所有 AWS 受管規則規則群組，以及您訂閱的 AWS Marketplace 規則群組。

**生產流量風險**  
在生產流量的保護套件 (Web ACL) 中部署變更之前，請先在預備或測試環境中進行測試和調校，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調整更新的規則，然後再啟用它們。如需準則，請參閱[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

**注意**  
在保護套件 (Web ACL) 中使用超過 1，500 WCUs 會產生超出基本保護套件 (Web ACL) 價格的成本。如需詳細資訊，請參閱 [中的 Web ACL 容量單位 WCUs) AWS WAF](aws-waf-capacity-units.md) 和 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

**透過主控台將受管規則群組新增至保護套件 (Web ACL)**

**透過主控台將受管規則群組新增至 Web ACL**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中選擇**保護套件 (Web ACLs)**。

1. 在**保護套件 (Web ACLs**頁面的保護套件 (Web ACLs) 清單中，選取您要新增規則群組的目標。這會帶您前往單一保護套件 (Web ACL) 的 頁面。

1. 在保護套件 (Web ACL) 的頁面中，選擇**規則**索引標籤。

1. 在**規則**窗格中，選擇**新增規則**，然後選擇**新增受管規則群組**。

1. 在**新增受管規則群組**頁面中，展開規則群組廠商的選擇，以查看可用的規則群組清單。

1. 針對您要新增的每個規則群組，選擇**新增至保護套件 (Web ACL)**。如果您想要變更規則群組的保護套件 (Web ACL) 組態，請選擇**編輯**、進行變更，然後選擇**儲存規則**。如需 選項的相關資訊，請參閱 的版本控制指引，[在 中使用版本控制的受管規則群組 AWS WAF](waf-managed-rule-groups-versioning.md)以及 的保護套件 (Web ACL) 中使用受管規則群組的指引[在 中使用受管規則群組陳述式 AWS WAF](waf-rule-statement-type-managed-rule-group.md)。

1. 在**新增受管規則群組**頁面底部，選擇**新增規則**。

1. 在**設定規則優先順序**頁面中，視需要調整規則執行的順序，然後選擇**儲存**。如需詳細資訊，請參閱[設定規則優先順序](web-acl-processing-order.md)。

在您的保護套件 (Web ACL) 頁面中，您已新增的受管規則群組會列在**規則**索引標籤下。

在將 AWS WAF 保護用於生產流量之前，測試和調校保護的任何變更。如需相關資訊，請參閱[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

**更新期間的暫時性不一致**  
當您建立或變更保護套件 (Web ACL) 或其他 AWS WAF 資源時，變更會花費少量的時間傳播到存放資源的所有區域。傳播時間可以是幾秒鐘到幾分鐘。

以下是您在變更傳播期間可能注意到的暫時不一致的範例：
+ 建立保護套件 (Web ACL) 之後，如果您嘗試將其與資源建立關聯，您可能會收到例外狀況，指出保護套件 (Web ACL) 無法使用。
+ 將規則群組新增至保護套件 (Web ACL) 之後，新的規則群組規則可能會在使用保護套件 (Web ACL) 的一個區域中生效，而不會在另一個區域中生效。
+ 變更規則動作設定後，您可能會在某些地方看到舊動作，在其他地方看到新動作。
+ 將 IP 地址新增至封鎖規則中使用的 IP 集之後，新的地址可能會在某個區域中遭到封鎖，同時仍允許在另一個區域中封鎖。

# 收到受管規則群組新版本和更新的通知
收到新版本和更新的通知

本節說明如何接收新版本和更新的 Amazon SNS 通知。

受管規則群組提供者會使用 SNS 通知來宣告規則群組變更，例如即將推出的新版本和緊急安全性更新。

**如何訂閱 SNS 通知**  
若要訂閱規則群組的通知，請在美國東部 （維吉尼亞北部） us-east-1 區域中為規則群組的 Amazon SNS 主題 ARN 建立 Amazon SNS Amazon SNS 訂閱。

如需有關如何訂閱的資訊，請參閱 [Amazon Simple Notification Service 開發人員指南](https://docs.aws.amazon.com/sns/latest/dg/)。

**注意**  
僅在 us-east-1 區域中建立 SNS 主題的訂閱。

版本控制的 AWS 受管規則規則群組都使用相同的 SNS 主題 Amazon Resource Name (ARN)。如需 AWS 受管規則規則群組通知的詳細資訊，請參閱 [部署通知](waf-managed-rule-groups-deployments-notifications.md)。

**在何處尋找受管規則群組的 Amazon SNS 主題 ARN**  
AWS 受管規則規則群組使用單一 SNS 主題 ARN，因此您可以從其中一個規則群組擷取主題 ARN，並訂閱該 ARN，以取得所有提供 SNS 通知之 AWS 受管規則規則群組的通知。
+ **主控台** 
  + （選項） 當您將受管規則群組新增至保護套件 (Web ACL) 時，請選擇**編輯**以查看規則群組的資訊，其中包含規則群組的 Amazon SNS 主題 ARN。
  + （選項） 將受管規則群組新增至保護套件 (Web ACL) 之後，請選擇保護套件上的**編輯** (Web ACL)，然後選取並編輯規則群組規則，以查看規則群組的 Amazon SNS 主題 ARN。
+ **API** – `DescribeManagedRuleGroup`
+ **CLI** – `aws wafv2 describe-managed-rule-group --scope=<CLOUDFRONT|REGIONAL> --vendor-name <vendor> --name <managedrule_name>`

如需 Amazon SNS 通知格式和如何篩選所收到通知的一般資訊，請參閱《Amazon Simple Notification Service 開發人員指南》中的[剖析訊息格式](https://docs.aws.amazon.com/sns/latest/dg/sns-message-and-json-formats.html)和 [Amazon SNS 訂閱篩選條件政策 Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-subscription-filter-policies.html)。

# 追蹤規則群組的版本過期
追蹤版本過期

本節說明如何透過 Amazon CloudWatch 監控受管規則群組的過期排程。

如果您使用特定版本的規則群組，請確定您不會繼續使用超過過期日期的版本。

**提示**  
註冊受管規則群組的 Amazon SNS 通知，並保持受管規則群組版本的最新狀態。您將受益於來自規則群組up-to-date保護，並保持在過期前。如需相關資訊，請參閱[收到新版本和更新的通知](waf-using-managed-rule-groups-sns-topic.md)。

**透過 Amazon CloudWatch 監控受管規則群組的過期排程**

1. 在 CloudWatch 中，尋找受管規則群組 AWS WAF 的過期指標。這些指標具有下列指標名稱和維度：
   + 指標名稱：DaysToExpiry
   + 指標維度：Region、Vendor、 ManagedRuleGroup和 Version

   如果您的保護套件 (Web ACL) 中有評估流量的受管規則群組，則您會取得其指標。指標不適用於您未使用的規則群組。

1. 針對您感興趣的指標設定警示，以便及時通知您切換到規則群組的較新版本。

如需有關使用 Amazon CloudWatch 指標和設定警示的資訊，請參閱 [Amazon CloudWatch 使用者指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)。

# JSON 和 YAML 中的範例受管規則群組組態
JSON 和 YAML 中的範例組態

本節提供範例受管規則群組組態。

API 和 CLI 呼叫會傳回受管規則群組中所有規則的清單，您可以在 JSON 模型中或透過這些規則群組參考 AWS CloudFormation。

**JSON**  
您可以使用 JSON 在規則陳述式中參考和修改受管規則群組。下列清單顯示 JSON 格式的 AWS 受管規則規則群組 `AWSManagedRulesCommonRuleSet`。RuleActionOverrides 規格會列出動作已覆寫至 的規則Count。

```
{
    "Name": "AWS-AWSManagedRulesCommonRuleSet",
    "Priority": 0,
    "Statement": {
      "ManagedRuleGroupStatement": {
        "VendorName": "AWS",
        "Name": "AWSManagedRulesCommonRuleSet",
        "RuleActionOverrides": [                                                                                                                                            
          {                                                                                                                                                                
            "ActionToUse": {                                                                                                                                              
              "Count": {}                                                                                                                                                
            },                                                                                                                                                            
            "Name": "NoUserAgent_HEADER"                                                                                                                                 
          }                                                                                                                                                                
        ],
        "ExcludedRules": []
      }
    },
    "OverrideAction": {
      "None": {}
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "AWS-AWSManagedRulesCommonRuleSet"
    }
}
```

**YAML**  
您可以使用 YAML 範本，在規則陳述 CloudFormation 式中參考和修改受管規則群組。下列清單顯示 CloudFormation 範本中的 AWS 受管規則規則群組 `AWSManagedRulesCommonRuleSet`。RuleActionOverrides 規格會列出動作已覆寫至 的規則Count。

```
Name: AWS-AWSManagedRulesCommonRuleSet
Priority: 0
Statement:
  ManagedRuleGroupStatement:
    VendorName: AWS
    Name: AWSManagedRulesCommonRuleSet
    RuleActionOverrides:
    - ActionToUse:
        Count: {}
      Name: NoUserAgent_HEADER
    ExcludedRules: []
OverrideAction:
  None: {}
VisibilityConfig:
  SampledRequestsEnabled: true
  CloudWatchMetricsEnabled: true
  MetricName: AWS-AWSManagedRulesCommonRuleSet
```

# AWS 的受管規則 AWS WAF
AWS 的受管規則 AWS WAF

本節說明什麼 AWS WAF 是 的 AWS 受管規則。

AWS 的受管規則 AWS WAF 是一項受管服務，可針對應用程式漏洞或其他不需要的流量提供保護。您可以選擇從每個 Web ACL 的 AWS 受管規則中選取一或多個規則群組，直到最大保護套件 (Web ACL) 容量單位 (WCU) 限制為止。

**緩解誤報和測試規則群組變更**  
在生產環境中使用任何受管規則群組之前，請先根據 中的指引，在非生產環境中進行測試[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。當您將規則群組新增至保護套件 (Web ACL)、測試規則群組的新版本，以及每當規則群組未視需要處理您的 Web 流量時，請遵循測試和調校指引。

**共同的安全責任**  
AWS 受管規則旨在保護您免受常見的 Web 威脅。根據文件使用時， AWS 受管規則規則群組會為您的應用程式新增另一層安全性。不過， AWS 受管規則規則群組並非旨在取代您的安全責任，這取決於您選擇的 AWS 資源。請參閱 [共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)，以確保您在 中的資源 AWS 受到適當保護。

**重要**  
AWS 受管規則旨在保護您免受常見的 Web 威脅。根據文件使用時， AWS 受管規則規則群組會為您的應用程式新增另一層安全性。不過， AWS 受管規則規則群組並非旨在取代您的安全責任，這取決於您選擇的 AWS 資源。請參閱 [共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)，以確保您在 中的資源 AWS 受到適當保護。

# AWS 受管規則規則群組清單
更新 AWS WAF 機器人控制的閾值

已更新 `TGT_TokenReuseIpLow`和 的閾值`TGT_TokenReuseIpMedium`。已更新 的 AWS 受管規則 AWS WAF

新增 AWS 受管規則中每個規則的文件 AWS WAF。已更新 的 AWS 受管規則 AWS WAF

所有 AWS 受管規則規則群組現在都支援標記。規則描述包含標籤規格。

本節提供可用的 AWS 受管規則規則群組清單。

本節說明 AWS 受管規則規則群組的最新版本。當您將受管規則群組新增至保護套件 (Web ACL) 時，您會在主控台上看到這些內容。透過 API，您可以呼叫 來擷取此清單以及您訂閱的 AWS Marketplace 規則群組`ListAvailableManagedRuleGroups`。

**注意**  
如需擷取 AWS 受管規則規則群組版本的資訊，請參閱 [擷取受管規則群組的可用版本](waf-using-managed-rule-groups-versions.md)。

所有 AWS 受管規則規則群組都支援標記，本節中的規則清單包含標籤規格。您可以透過 API 呼叫 來擷取受管規則群組的標籤`DescribeManagedRuleGroup`。這些標籤會列在回應的 AvailableLabels 屬性中。如需標籤的相關資訊，請參閱 [中的 Web 請求標籤 AWS WAF](waf-labels.md)。

在將 AWS WAF 保護用於生產流量之前，測試和調校保護的任何變更。如需相關資訊，請參閱[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

**Contents**
+ [

# 基準規則群組
](aws-managed-rule-groups-baseline.md)
  + [

## 核心規則集 (CRS) 受管規則群組
](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs)
  + [

## 管理員保護受管規則群組
](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-admin)
  + [

## 已知錯誤輸入受管規則群組
](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs)
+ [

# 使用案例特定的規則群組
](aws-managed-rule-groups-use-case.md)
  + [

## SQL 資料庫受管規則群組
](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-sql-db)
  + [

## Linux 作業系統受管規則群組
](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-linux-os)
  + [

## POSIX 作業系統受管規則群組
](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-posix-os)
  + [

## Windows 作業系統受管規則群組
](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-windows-os)
  + [

## PHP 應用程式受管規則群組
](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-php-app)
  + [

## WordPress 應用程式受管規則群組
](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-wordpress-app)
+ [

# IP 評價規則群組
](aws-managed-rule-groups-ip-rep.md)
  + [

## Amazon IP 評價清單受管規則群組
](aws-managed-rule-groups-ip-rep.md#aws-managed-rule-groups-ip-rep-amazon)
  + [

## 匿名 IP 清單受管規則群組
](aws-managed-rule-groups-ip-rep.md#aws-managed-rule-groups-ip-rep-anonymous)
+ [

# AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組
](aws-managed-rule-groups-acfp.md)
  + [

## 使用此規則群組的考量事項
](aws-managed-rule-groups-acfp.md#aws-managed-rule-groups-acfp-using)
  + [

## 此規則群組新增的標籤
](aws-managed-rule-groups-acfp.md#aws-managed-rule-groups-acfp-labels)
    + [

### 字符標籤
](aws-managed-rule-groups-acfp.md#aws-managed-rule-groups-acfp-labels-token)
    + [

### ACFP 標籤
](aws-managed-rule-groups-acfp.md#aws-managed-rule-groups-acfp-labels-rg)
  + [

## 帳戶建立詐騙預防規則清單
](aws-managed-rule-groups-acfp.md#aws-managed-rule-groups-acfp-rules)
+ [

# AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組
](aws-managed-rule-groups-atp.md)
  + [

## 使用此規則群組的考量事項
](aws-managed-rule-groups-atp.md#aws-managed-rule-groups-atp-using)
  + [

## 此規則群組新增的標籤
](aws-managed-rule-groups-atp.md#aws-managed-rule-groups-atp-labels)
    + [

### 字符標籤
](aws-managed-rule-groups-atp.md#aws-managed-rule-groups-atp-labels-token)
    + [

### ATP 標籤
](aws-managed-rule-groups-atp.md#aws-managed-rule-groups-atp-labels-rg)
  + [

## 帳戶接管預防規則清單
](aws-managed-rule-groups-atp.md#aws-managed-rule-groups-atp-rules)
+ [

# AWS WAF 機器人控制規則群組
](aws-managed-rule-groups-bot.md)
  + [

## 保護層級
](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-prot-levels)
  + [

## 使用此規則群組的考量事項
](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-using)
  + [

## 此規則群組新增的標籤
](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-labels)
    + [

### 字符標籤
](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-labels-token)
    + [

### 機器人控制標籤
](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-labels-rg)
  + [

## 機器人控制規則清單
](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-rules)
+ [

# AWS WAF 分散式阻斷服務 (DDoS) 預防規則群組
](aws-managed-rule-groups-anti-ddos.md)
  + [

## 使用此規則群組的考量事項
](aws-managed-rule-groups-anti-ddos.md#aws-managed-rule-groups-anti-ddos-using)
  + [

## 此規則群組新增的標籤
](aws-managed-rule-groups-anti-ddos.md#aws-managed-rule-groups-anti-ddos-labels)
    + [

### 字符標籤
](aws-managed-rule-groups-anti-ddos.md#aws-managed-rule-groups-anti-ddos-labels-token)
    + [

### 反 DDoS 標籤
](aws-managed-rule-groups-anti-ddos.md#aws-managed-rule-groups-anti-ddos-labels-rg)
  + [

## 反 DDoS 規則清單
](aws-managed-rule-groups-anti-ddos.md#aws-managed-rule-groups-anti-ddos-rules)

# 基準規則群組


基準管理的規則群組可針對各種常見威脅提供一般防護。選擇這些規則群組中的一或多個，以建立資源的基準保護。

## 核心規則集 (CRS) 受管規則群組
核心規則集 (CRS)

VendorName：`AWS`、Name：`AWSManagedRulesCommonRuleSet`、WCU：700

**注意**  
本文件涵蓋此受管規則群組的最新版本。我們會在 的 changelog 日誌中報告版本變更[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)。如需其他版本的資訊，請使用 API 命令 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)。  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要比此處更多的資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

核心規則集 (CRS) 規則群組包含通常適用於 Web 應用程式的規則。這可以防止各種漏洞遭到利用，包括 OWASP 出版品中所述的一些高風險和常見漏洞，例如 [OWASP 前 10 名](https://owasp.org/www-project-top-ten/)。考慮將此規則群組用於任何 AWS WAF 使用案例。

此受管規則群組會將標籤新增至其評估的 Web 請求，這些請求可供保護套件 (Web ACL) AWS WAF 中在此規則群組之後執行的規則使用。 也會將標籤記錄到 Amazon CloudWatch 指標。如需標籤和標籤指標的一般資訊，請參閱 [Web 請求標籤](waf-labels.md)和 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。


| 規則名稱 | 描述和標籤 | 
| --- | --- | 
| NoUserAgent\$1HEADER |  檢查是否有缺少 HTTP `User-Agent`標頭的請求。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:NoUserAgent_Header`  | 
| UserAgent\$1BadBots\$1HEADER |  檢查指出請求是錯誤機器人的常見`User-Agent`標頭值。範例模式包括 `nessus` 和 `nmap`。如需機器人管理，另請參閱 [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md)。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:BadBots_Header`  | 
| SizeRestrictions\$1QUERYSTRING |  檢查是否有超過 2，048 個位元組的 URI 查詢字串。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:SizeRestrictions_QueryString`  | 
| SizeRestrictions\$1Cookie\$1HEADER |  檢查是否有超過 10，240 個位元組的 Cookie 標頭。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:SizeRestrictions_Cookie_Header`  | 
| SizeRestrictions\$1BODY |  檢查請求內文是否超過 8 KB (8，192 位元組）。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:SizeRestrictions_Body`  | 
| SizeRestrictions\$1URIPATH |  檢查是否有超過 1，024 個位元組的 URI 路徑。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:SizeRestrictions_URIPath`  | 
| EC2MetaDataSSRF\$1BODY |  檢查 是否嘗試從請求內文滲透 Amazon EC2 中繼資料。 此規則只會檢查請求內文，直到保護套件 (Web ACL) 和資源類型的內文大小限制為止。對於 Application Load Balancer 和 AWS AppSync，限制固定為 8 KB。對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access，預設限制為 16 KB，而且您可以在保護套件 (Web ACL) 組態中將限制提高到 64 KB。此規則使用 `Continue`選項來處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:EC2MetaDataSSRF_Body`  | 
| EC2MetaDataSSRF\$1COOKIE |  檢查 是否嘗試從請求 Cookie 滲透 Amazon EC2 中繼資料。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:EC2MetaDataSSRF_Cookie`  | 
| EC2MetaDataSSRF\$1URIPATH |  檢查是否有嘗試從請求 URI 路徑滲透 Amazon EC2 中繼資料。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:EC2MetaDataSSRF_URIPath`  | 
| EC2MetaDataSSRF\$1QUERYARGUMENTS |  檢查 是否嘗試從請求查詢引數滲透 Amazon EC2 中繼資料。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:EC2MetaDataSSRF_QueryArguments`  | 
| GenericLFI\$1QUERYARGUMENTS |  檢查查詢引數中是否存在本機檔案包含 (LFI) 漏洞。範例包括使用 `../../` 之類技術的路徑遍訪嘗試。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:GenericLFI_QueryArguments`  | 
| GenericLFI\$1URIPATH |  檢查 URI 路徑中是否存在本機檔案包含 (LFI) 漏洞。範例包括使用 `../../` 之類技術的路徑遍訪嘗試。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:GenericLFI_URIPath`  | 
| GenericLFI\$1BODY |  檢查要求主體中是否存在本機檔案包含 (LFI) 漏洞。範例包括使用 `../../` 之類技術的路徑遍訪嘗試。 此規則只會檢查請求內文，直到保護套件 (Web ACL) 和資源類型的內文大小限制為止。對於 Application Load Balancer 和 AWS AppSync，限制固定為 8 KB。對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access，預設限制為 16 KB，而且您可以在保護套件 (Web ACL) 組態中將限制提高到 64 KB。此規則使用 `Continue`選項來處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:GenericLFI_Body`  | 
| RestrictedExtensions\$1URIPATH |  檢查 URI 路徑是否包含不安全讀取或執行之系統副檔名的請求。範例模式包括 `.log` 和 `.ini` 之類的副檔名。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:RestrictedExtensions_URIPath`  | 
| RestrictedExtensions\$1QUERYARGUMENTS |  檢查查詢引數是否包含不安全讀取或執行之系統副檔名的請求。範例模式包括 `.log` 和 `.ini` 之類的副檔名。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:RestrictedExtensions_QueryArguments`  | 
| GenericRFI\$1QUERYARGUMENTS |  透過嵌入包含 IPv4 地址的 URLs （遠端檔案包含）。範例包括模式，例如 `http://`、`ftps://`、、 `https://` `ftp://`和 `file://`，在入侵嘗試中具有 IPv4 主機標頭。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:GenericRFI_QueryArguments`  | 
| GenericRFI\$1BODY |  透過嵌入包含 IPv4 地址URLs，檢查請求內文是否嘗試在 Web 應用程式中利用 RFI （遠端檔案包含）。範例包括模式，例如 `http://`、`ftps://`、、 `https://` `ftp://`和 `file://`，在入侵嘗試中具有 IPv4 主機標頭。 此規則只會檢查請求內文，直到保護套件 (Web ACL) 和資源類型的內文大小限制為止。對於 Application Load Balancer 和 AWS AppSync，限制固定為 8 KB。對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access，預設限制為 16 KB，而且您可以在保護套件 (Web ACL) 組態中將限制提高到 64 KB。此規則使用 `Continue`選項來處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:GenericRFI_Body`  | 
| GenericRFI\$1URIPATH |  透過嵌入包含 IPv4 地址URLs，檢查 URI 路徑是否嘗試在 Web 應用程式中利用 RFI （遠端檔案包含）。範例包括模式，例如 `http://`、`ftps://`、、 `https://` `ftp://`和 `file://`，在入侵嘗試中具有 IPv4 主機標頭。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:GenericRFI_URIPath`  | 
| CrossSiteScripting\$1COOKIE |  使用內建 檢查 Cookie 標頭的值是否有常見的跨網站指令碼 (XSS) 模式 AWS WAF [跨網站指令碼攻擊規則陳述式](waf-rule-statement-type-xss-match.md)。範例模式包括 `<script>alert("hello")</script>` 之類的指令碼。   AWS WAF 日誌中的規則比對詳細資訊不會填入此規則群組的 2.0 版。  規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:CrossSiteScripting_Cookie`  | 
| CrossSiteScripting\$1QUERYARGUMENTS |  使用內建 檢查查詢引數的值是否有常見的跨網站指令碼 (XSS) 模式 AWS WAF [跨網站指令碼攻擊規則陳述式](waf-rule-statement-type-xss-match.md)。範例模式包括 `<script>alert("hello")</script>` 之類的指令碼。   AWS WAF 日誌中的規則比對詳細資訊不會填入此規則群組的 2.0 版。  規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:CrossSiteScripting_QueryArguments`  | 
| CrossSiteScripting\$1BODY |  使用內建 檢查請求內文是否有常見的跨網站指令碼 (XSS) 模式 AWS WAF [跨網站指令碼攻擊規則陳述式](waf-rule-statement-type-xss-match.md)。範例模式包括 `<script>alert("hello")</script>` 之類的指令碼。   AWS WAF 日誌中的規則比對詳細資訊不會填入此規則群組的 2.0 版。  此規則只會檢查請求內文，直到保護套件 (Web ACL) 和資源類型的內文大小限制為止。對於 Application Load Balancer 和 AWS AppSync，限制固定為 8 KB。對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access，預設限制為 16 KB，而且您可以在保護套件 (Web ACL) 組態中將限制提高到 64 KB。此規則使用 `Continue`選項來處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。 規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:CrossSiteScripting_Body`  | 
| CrossSiteScripting\$1URIPATH |  使用內建 檢查 URI 路徑的值是否有常見的跨網站指令碼 (XSS) 模式 AWS WAF [跨網站指令碼攻擊規則陳述式](waf-rule-statement-type-xss-match.md)。範例模式包括 `<script>alert("hello")</script>` 之類的指令碼。   AWS WAF 日誌中的規則比對詳細資訊不會填入此規則群組的 2.0 版。  規則動作：Block 標籤： `awswaf:managed:aws:core-rule-set:CrossSiteScripting_URIPath`  | 

## 管理員保護受管規則群組
管理員保護

VendorName：`AWS`、Name：`AWSManagedRulesAdminProtectionRuleSet`、WCU：100

**注意**  
本文件涵蓋此受管規則群組的最新版本。我們會在 的 changelog 日誌中報告版本變更[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)。如需其他版本的資訊，請使用 API 命令 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)。  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要比此處更多的資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

管理員保護規則群組包含的規則可讓您封鎖對公開的管理頁面的外部存取。如果您執行第三方軟體，或想要降低惡意行為者取得應用程式系統管理存取權的風險，這可能會很有用。

此受管規則群組會將標籤新增至其評估的 Web 請求，這些請求可供保護套件 (Web ACL) AWS WAF 中在此規則群組之後執行的規則使用。 也會將標籤記錄到 Amazon CloudWatch 指標。如需標籤和標籤指標的一般資訊，請參閱 [Web 請求標籤](waf-labels.md)和 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。


| 規則名稱 | 描述和標籤 | 
| --- | --- | 
| AdminProtection\$1URIPATH |  檢查通常保留用於管理 Web 伺服器或應用程式的 URI 路徑。範例模式包括 `sqlmanager`。 規則動作：Block 標籤： `awswaf:managed:aws:admin-protection:AdminProtection_URIPath`  | 

## 已知錯誤輸入受管規則群組
已知錯誤輸入

VendorName：`AWS`、Name：`AWSManagedRulesKnownBadInputsRuleSet`、WCU：200

**注意**  
本文件涵蓋此受管規則群組的最新版本。我們會在 的 changelog 日誌中報告版本變更[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)。如需其他版本的相關資訊，請使用 API 命令 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)。  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要比此處更多的資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

已知錯誤輸入規則群組包含的規則可封鎖已知無效且與利用或發現的漏洞相關的請求模式。這有助於降低惡意行為者發現易受攻擊應用程式的風險。

此受管規則群組會將標籤新增至其評估的 Web 請求，這些請求可供保護套件 (Web ACL) AWS WAF 中此規則群組之後執行的規則使用。 也會將標籤記錄到 Amazon CloudWatch 指標。如需標籤和標籤指標的一般資訊，請參閱 [Web 請求標籤](waf-labels.md)和 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。


| 規則名稱 | 描述和標籤 | 
| --- | --- | 
| JavaDeserializationRCE\$1HEADER |  檢查 HTTP 請求標頭的金鑰和值是否有表示 Java 還原序列化遠端命令執行 (RCE) 嘗試的模式，例如 Spring Core 和 Cloud Function RCE 漏洞 (CVE-2022-22963、CVE-2022-22965)。範例模式包括 `(java.lang.Runtime).getRuntime().exec("whoami")`。 此規則只會檢查請求標頭的前 8 KB 或前 200 個標頭，以先達到限制為準，並使用 `Continue`選項處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。 規則動作：Block 標籤： `awswaf:managed:aws:known-bad-inputs:JavaDeserializationRCE_Header`  | 
| JavaDeserializationRCE\$1BODY |  檢查請求內文是否有表示 Java 還原序列化遠端命令執行 (RCE) 嘗試的模式，例如 Spring Core 和 Cloud Function RCE 漏洞 (CVE-2022-22963、CVE-2022-22965)。範例模式包括 `(java.lang.Runtime).getRuntime().exec("whoami")`。 此規則只會檢查請求內文，直到保護套件 (Web ACL) 和資源類型的內文大小限制為止。對於 Application Load Balancer 和 AWS AppSync，限制固定為 8 KB。對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access，預設限制為 16 KB，而且您可以在保護套件 (Web ACL) 組態中將限制提高到 64 KB。此規則使用 `Continue`選項來處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。 規則動作：Block 標籤： `awswaf:managed:aws:known-bad-inputs:JavaDeserializationRCE_Body`  | 
| JavaDeserializationRCE\$1URIPATH |  檢查請求 URI 是否有表示 Java 還原序列化遠端命令執行 (RCE) 嘗試的模式，例如 Spring Core 和 Cloud Function RCE 漏洞 (CVE-2022-22963、CVE-2022-22965)。範例模式包括 `(java.lang.Runtime).getRuntime().exec("whoami")`。 規則動作：Block 標籤： `awswaf:managed:aws:known-bad-inputs:JavaDeserializationRCE_URIPath`  | 
| JavaDeserializationRCE\$1QUERYSTRING |  檢查請求查詢字串是否有表示 Java 還原序列化遠端命令執行 (RCE) 嘗試的模式，例如 Spring Core 和 Cloud Function RCE 漏洞 (CVE-2022-22963、CVE-2022-22965)。範例模式包括 `(java.lang.Runtime).getRuntime().exec("whoami")`。 規則動作：Block 標籤： `awswaf:managed:aws:known-bad-inputs:JavaDeserializationRCE_QueryString`  | 
| Host\$1localhost\$1HEADER |  檢查要求中的主機標頭是否有模式指出 localhost。範例模式包括 `localhost`。 規則動作：Block 標籤： `awswaf:managed:aws:known-bad-inputs:Host_Localhost_Header`  | 
| PROPFIND\$1METHOD |  檢查要求中的 HTTP 方法是否有 `PROPFIND`，這是類似 `HEAD` 的方法，但有滲透 XML 物件的額外意圖。 規則動作：Block 標籤： `awswaf:managed:aws:known-bad-inputs:Propfind_Method`  | 
| ExploitablePaths\$1URIPATH |  檢查 URI 路徑是否有存取可利用 Web 應用程式路徑的嘗試。範例模式包括 `web-inf` 之類的路徑。 規則動作：Block 標籤： `awswaf:managed:aws:known-bad-inputs:ExploitablePaths_URIPath`  | 
| Log4JRCE\$1HEADER |  檢查請求標頭的金鑰和值是否存在 Log4j 漏洞 ([CVE-2021-44228](https://www.cve.org/CVERecord?id=CVE-2021-44228)、[CVE-2021-45046](https://www.cve.org/CVERecord?id=CVE-2021-45046)、[CVE-2021-45105](https://www.cve.org/CVERecord?id=CVE-2021-45105))，並防止遠端程式碼執行 (RCE) 嘗試。範例模式包括 `${jndi:ldap://example.com/}`。 此規則只會檢查請求標頭的前 8 KB 或前 200 個標頭，以先達到限制為準，並使用 `Continue`選項處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。 規則動作：Block 標籤： `awswaf:managed:aws:known-bad-inputs:Log4JRCE_Header`  | 
| Log4JRCE\$1QUERYSTRING |  檢查查詢字串是否有 Log4j 漏洞 ([CVE-2021-44228](https://www.cve.org/CVERecord?id=CVE-2021-44228)、[CVE-2021-45046](https://www.cve.org/CVERecord?id=CVE-2021-45046)、[CVE-2021-45105](https://www.cve.org/CVERecord?id=CVE-2021-45105))，並防止遠端程式碼執行 (RCE) 嘗試。範例模式包括 `${jndi:ldap://example.com/}`。 規則動作：Block 標籤： `awswaf:managed:aws:known-bad-inputs:Log4JRCE_QueryString`  | 
| Log4JRCE\$1BODY |  檢查內文是否有 Log4j 漏洞 ([CVE-2021-44228](https://www.cve.org/CVERecord?id=CVE-2021-44228)、[CVE-2021-45046](https://www.cve.org/CVERecord?id=CVE-2021-45046)、[CVE-2021-45105](https://www.cve.org/CVERecord?id=CVE-2021-45105))，並防止遠端程式碼執行 (RCE) 嘗試。範例模式包括 `${jndi:ldap://example.com/}`。 此規則只會檢查請求內文，直到保護套件 (Web ACL) 和資源類型的內文大小限制為止。對於 Application Load Balancer 和 AWS AppSync，限制固定為 8 KB。對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access，預設限制為 16 KB，而且您可以在保護套件 (Web ACL) 組態中將限制提高到 64 KB。此規則使用 `Continue`選項來處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。 規則動作：Block 標籤： `awswaf:managed:aws:known-bad-inputs:Log4JRCE_Body`  | 
| Log4JRCE\$1URIPATH |  檢查 URI 路徑是否存在 Log4j 漏洞 ([CVE-2021-44228](https://www.cve.org/CVERecord?id=CVE-2021-44228)、[CVE-2021-45046](https://www.cve.org/CVERecord?id=CVE-2021-45046)、[CVE-2021-45105](https://www.cve.org/CVERecord?id=CVE-2021-45105))，並防止遠端程式碼執行 (RCE) 嘗試。範例模式包括 `${jndi:ldap://example.com/}`。 規則動作：Block 標籤： `awswaf:managed:aws:known-bad-inputs:Log4JRCE_URIPath`  | 
| ReactJSRCE\$1BODY |  檢查請求內文是否有表示存在 CVE-2025-55182 的模式。  此規則只會檢查請求內文，直到保護套件 (Web ACL) 和資源類型的內文大小限制為止。對於 Application Load Balancer 和 AWS AppSync，限制固定為 8 KB。對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 AWS Verified Access，預設限制為 16 KB，您可以在保護套件 (Web ACL) 組態中將限制提高到 64 KB。此規則使用 `CONTINUE`選項來處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。  規則動作：Block 標籤： `awswaf:managed:aws:known-bad-inputs:ReactJSRCE_Body`  | 

# 使用案例特定的規則群組


使用案例特定的規則群組可為許多不同的 AWS WAF 使用案例提供增量保護。選擇套用至應用程式的規則群組。

## SQL 資料庫受管規則群組
SQL 資料庫

VendorName：`AWS`、Name：`AWSManagedRulesSQLiRuleSet`、WCU：200

**注意**  
本文件涵蓋此受管規則群組的最新版本。我們會在 的 changelog 日誌中報告版本變更[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)。如需其他版本的資訊，請使用 API 命令 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)。  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要比此處更多的資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

SQL 資料庫規則群組包含的規則，可封鎖與 SQL 資料庫利用相關的請求模式，例如 SQL Injection 攻擊。這有助於防止未經授權查詢的遠端注入。如果您的應用程式會與 SQL 資料庫互動，請評估此規則群組以供使用。

此受管規則群組會將標籤新增至其評估的 Web 請求，這些請求可供保護套件 (Web ACL) AWS WAF 中在此規則群組之後執行的規則使用。 也會將標籤記錄到 Amazon CloudWatch 指標。如需標籤和標籤指標的一般資訊，請參閱 [Web 請求標籤](waf-labels.md)和 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。


| 規則名稱 | 描述和標籤 | 
| --- | --- | 
| SQLi\$1QUERYARGUMENTS |  使用內建的 AWS WAF [SQL Injection 攻擊規則陳述式](waf-rule-statement-type-sqli-match.md)，並將敏感度等級設為 Low，以檢查所有查詢參數的值是否有符合惡意 SQL 程式碼的模式。 規則動作：Block 標籤： `awswaf:managed:aws:sql-database:SQLi_QueryArguments`  | 
| SQLiExtendedPatterns\$1QUERYARGUMENTS |  檢查所有查詢參數的值是否有符合惡意 SQL 程式碼的模式。此規則檢查的模式未涵蓋在規則 內`SQLi_QUERYARGUMENTS`。 規則動作：Block 標籤： `awswaf:managed:aws:sql-database:SQLiExtendedPatterns_QueryArguments`  | 
| SQLi\$1BODY |  使用內建的 AWS WAF [SQL Injection 攻擊規則陳述式](waf-rule-statement-type-sqli-match.md)，並將敏感度等級設為 Low，以檢查請求內文是否有符合惡意 SQL 程式碼的模式。 此規則只會檢查請求內文，直到保護套件 (Web ACL) 和資源類型的內文大小限制為止。對於 Application Load Balancer 和 AWS AppSync，限制固定為 8 KB。對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access，預設限制為 16 KB，而且您可以在保護套件 (Web ACL) 組態中將限制提高到 64 KB。此規則使用 `Continue`選項來處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。 規則動作：Block 標籤： `awswaf:managed:aws:sql-database:SQLi_Body`  | 
| SQLiExtendedPatterns\$1BODY |  檢查請求內文是否有符合惡意 SQL 程式碼的模式。此規則檢查的模式未涵蓋在規則 內`SQLi_BODY`。 此規則只會檢查請求內文，直到保護套件 (Web ACL) 和資源類型的內文大小限制為止。對於 Application Load Balancer 和 AWS AppSync，限制固定為 8 KB。對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access，預設限制為 16 KB，而且您可以在保護套件 (Web ACL) 組態中將限制提高到 64 KB。此規則使用 `Continue`選項來處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。 規則動作：Block 標籤： `awswaf:managed:aws:sql-database:SQLiExtendedPatterns_Body`  | 
| SQLi\$1COOKIE |  使用內建的 AWS WAF [SQL Injection 攻擊規則陳述式](waf-rule-statement-type-sqli-match.md)，並將敏感度等級設為 Low，以檢查請求 Cookie 標頭是否有符合惡意 SQL 程式碼的模式。 規則動作：Block 標籤： `awswaf:managed:aws:sql-database:SQLi_Cookie`  | 
| SQLi\$1URIPATH |  使用內建的 AWS WAF [SQL Injection 攻擊規則陳述式](waf-rule-statement-type-sqli-match.md)，並將敏感度等級設為 Low，以檢查請求 Cookie 標頭是否有符合惡意 SQL 程式碼的模式。 規則動作：Block 標籤： `awswaf:managed:aws:sql-database:SQLi_URIPath`  | 

## Linux 作業系統受管規則群組
Linux 作業系統

VendorName：`AWS`、Name：`AWSManagedRulesLinuxRuleSet`、WCU：200

**注意**  
本文件涵蓋此受管規則群組的最新版本。我們會在 的 changelog 日誌中報告版本變更[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)。如需其他版本的資訊，請使用 API 命令 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)。  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要比此處更多的資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

Linux 作業系統規則群組包含的規則會封鎖與利用 Linux 特定漏洞攻擊相關的請求模式，包括 Linux 特定本機檔案包含 (LFI) 攻擊。這有助於防止公開檔案內容的攻擊，或執行攻擊者不應存取的程式碼。如果應用程式的任何部分在 Linux 上執行，則應該評估此規則群組。您應該使用此規則群組結合 [POSIX 作業系統](#aws-managed-rule-groups-use-case-posix-os) 規則群組。

此受管規則群組會將標籤新增至其評估的 Web 請求，這些請求可供保護套件 (Web ACL) AWS WAF 中在此規則群組之後執行的規則使用。 也會將標籤記錄到 Amazon CloudWatch 指標。如需標籤和標籤指標的一般資訊，請參閱 [Web 請求標籤](waf-labels.md)和 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。


| 規則名稱 | 描述和標籤 | 
| --- | --- | 
| LFI\$1URIPATH |  檢查要求路徑是否有入侵 Web 應用程式中的本機檔案包含 (LFI) 弱點的嘗試。範例模式包括 `/proc/version` 之類的檔案，其可以對攻擊者提供作業系統訊息。 規則動作：Block 標籤： `awswaf:managed:aws:linux-os:LFI_URIPath`  | 
| LFI\$1QUERYSTRING |  檢查 querystring 的值是否有嘗試利用 Web 應用程式中的本機檔案包含 (LFI) 漏洞。範例模式包括 `/proc/version` 之類的檔案，其可以對攻擊者提供作業系統訊息。 規則動作：Block 標籤： `awswaf:managed:aws:linux-os:LFI_QueryString`  | 
| LFI\$1HEADER |  檢查請求標頭是否有嘗試利用 Web 應用程式中的本機檔案包含 (LFI) 漏洞。範例模式包括 `/proc/version` 之類的檔案，其可以對攻擊者提供作業系統訊息。 此規則只會檢查請求標頭的前 8 KB 或前 200 個標頭，以先達到限制為準，並使用 `Continue`選項來處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。 規則動作：Block 標籤： `awswaf:managed:aws:linux-os:LFI_Header`  | 

## POSIX 作業系統受管規則群組
POSIX 作業系統

VendorName：`AWS`、Name：`AWSManagedRulesUnixRuleSet`、WCU：100

**注意**  
本文件涵蓋此受管規則群組的最新版本。我們會在 的 changelog 日誌中報告版本變更[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)。如需其他版本的資訊，請使用 API 命令 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)。  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要比此處更多的資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

POSIX 作業系統規則群組包含的規則會封鎖與利用 POSIX 和類似 POSIX 作業系統特定漏洞相關的請求模式，包括本機檔案包含 (LFI) 攻擊。這有助於防止公開檔案內容的攻擊，或執行攻擊者不應存取的程式碼。如果應用程式的任何部分在類似 POSIX 或類似 POSIX 的作業系統，包括 Linux、AIX、HP-UX、macOS、Solaris、FreeBSD 和 OpenBSD 上執行，則應該評估此規則群組。

此受管規則群組會將標籤新增至其評估的 Web 請求，這些請求可供保護套件 (Web ACL) AWS WAF 中在此規則群組之後執行的規則使用。 也會將標籤記錄到 Amazon CloudWatch 指標。如需標籤和標籤指標的一般資訊，請參閱 [Web 請求標籤](waf-labels.md)和 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。


| 規則名稱 | 描述和標籤 | 
| --- | --- | 
| UNIXShellCommandsVariables\$1QUERYSTRING |  檢查查詢字串的值是否有嘗試利用在 Unix 系統上執行的 Web 應用程式中的命令注入、LFI 和路徑周遊漏洞。範例包括 `echo $HOME` 和 `echo $PATH` 之類的模式。 規則動作：Block 標籤： `awswaf:managed:aws:posix-os:UNIXShellCommandsVariables_QueryString`  | 
| UNIXShellCommandsVariables\$1BODY |  檢查要求主體是否有入侵在 Unix 系統上執行之 Web 應用程式中的命令注入、LFI 和路徑遍訪弱點的嘗試。範例包括 `echo $HOME` 和 `echo $PATH` 之類的模式。 此規則只會檢查請求內文，直到保護套件 (Web ACL) 和資源類型的內文大小限制為止。對於 Application Load Balancer 和 AWS AppSync，限制固定為 8 KB。對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access，預設限制為 16 KB，而且您可以在保護套件 (Web ACL) 組態中將限制提高到 64 KB。此規則使用 `Continue`選項來處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。 規則動作：Block 標籤： `awswaf:managed:aws:posix-os:UNIXShellCommandsVariables_Body`  | 
| UNIXShellCommandsVariables\$1HEADER |  檢查所有請求標頭是否嘗試利用在 Unix 系統上執行的 Web 應用程式中的命令注入、LFI 和路徑周遊漏洞。範例包括 `echo $HOME` 和 `echo $PATH` 之類的模式。 此規則只會檢查請求標頭的前 8 KB 或前 200 個標頭，以先達到限制為準，並使用 `Continue`選項來處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。 規則動作：Block 標籤： `awswaf:managed:aws:posix-os:UNIXShellCommandsVariables_Header`  | 

## Windows 作業系統受管規則群組
Windows 作業系統

VendorName：`AWS`、Name：`AWSManagedRulesWindowsRuleSet`、WCU：200

**注意**  
本文件涵蓋此受管規則群組的最新版本。我們會在 的 changelog 日誌中報告版本變更[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)。如需其他版本的資訊，請使用 API 命令 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)。  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要比此處更多的資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

Windows 作業系統規則群組包含的規則會封鎖與利用 Windows 特定漏洞相關的請求模式，例如 PowerShell 命令的遠端執行。這有助於防止利用允許攻擊者執行未經授權的命令或執行惡意程式碼的漏洞。如果應用程式的任何部分在 Windows 作業系統上執行，請評估此規則群組。

此受管規則群組會將標籤新增至其評估的 Web 請求，這些請求可供保護套件 (Web ACL) AWS WAF 中在此規則群組之後執行的規則使用。 也會將標籤記錄到 Amazon CloudWatch 指標。如需標籤和標籤指標的一般資訊，請參閱 [Web 請求標籤](waf-labels.md)和 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。


| 規則名稱 | 描述和標籤 | 
| --- | --- | 
| WindowsShellCommands\$1COOKIE |  在 Web 應用程式中檢查 WindowsShell 命令注入嘗試的請求 Cookie 標頭。比對模式代表 WindowsShell 命令。範例模式包括 `\|\|nslookup`和 `;cmd`。 規則動作：Block 標籤： `awswaf:managed:aws:windows-os:WindowsShellCommands_Cookie`  | 
| WindowsShellCommands\$1QUERYARGUMENTS |  檢查 Web 應用程式中 WindowsShell 命令注入嘗試的所有查詢參數的值。比對模式代表 WindowsShell 命令。範例模式包括 `\|\|nslookup`和 `;cmd`。 規則動作：Block 標籤： `awswaf:managed:aws:windows-os:WindowsShellCommands_QueryArguments`  | 
| WindowsShellCommands\$1BODY |  在 Web 應用程式中檢查 WindowsShell 命令注入嘗試的請求內文。比對模式代表 WindowsShell 命令。範例模式包括 `\|\|nslookup`和 `;cmd`。 此規則只會檢查請求內文，直到保護套件 (Web ACL) 和資源類型的內文大小限制為止。對於 Application Load Balancer 和 AWS AppSync，限制固定為 8 KB。對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access，預設限制為 16 KB，而且您可以在保護套件 (Web ACL) 組態中將限制提高到 64 KB。此規則使用 `Continue`選項來處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。 規則動作：Block 標籤： `awswaf:managed:aws:windows-os:WindowsShellCommands_Body`  | 
| PowerShellCommands\$1COOKIE |  在 Web 應用程式中檢查請求 Cookie 標頭是否有 PowerShell 命令注入嘗試。比對模式代表 PowerShell 命令。例如 `Invoke-Expression`。 規則動作：Block 標籤： `awswaf:managed:aws:windows-os:PowerShellCommands_Cookie`  | 
| PowerShellCommands\$1QUERYARGUMENTS |  檢查 Web 應用程式中 PowerShell 命令注入嘗試的所有查詢參數的值。比對模式代表 PowerShell 命令。例如 `Invoke-Expression`。 規則動作：Block 標籤： `awswaf:managed:aws:windows-os:PowerShellCommands_QueryArguments`  | 
| PowerShellCommands\$1BODY |  在 Web 應用程式中檢查 PowerShell 命令注入嘗試的請求內文。比對模式代表 PowerShell 命令。例如 `Invoke-Expression`。 此規則只會檢查請求內文，直到保護套件 (Web ACL) 和資源類型的內文大小限制為止。對於 Application Load Balancer 和 AWS AppSync，限制固定為 8 KB。對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access，預設限制為 16 KB，而且您可以在保護套件 (Web ACL) 組態中將限制提高到 64 KB。此規則使用 `Continue`選項來處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。 規則動作：Block 標籤： `awswaf:managed:aws:windows-os:PowerShellCommands_Body`  | 

## PHP 應用程式受管規則群組
PHP 應用程式

VendorName：`AWS`、Name：`AWSManagedRulesPHPRuleSet`、WCU：100

**注意**  
本文件涵蓋此受管規則群組的最新版本。我們會在 的 changelog 日誌中報告版本變更[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)。如需其他版本的資訊，請使用 API 命令 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)。  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要比此處更多的資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

PHP 應用程式規則群組包含的規則會封鎖與利用 PHP 程式設計語言特定漏洞相關的請求模式，包括注入不安全的 PHP 函數。這有助於防止利用允許攻擊者從遠端執行程式碼或未經授權的命令的漏洞。如果您的應用程式與其互動的任何伺服器上安裝 PHP，請評估此規則群組。

此受管規則群組會將標籤新增至其評估的 Web 請求，這些請求可供保護套件 (Web ACL) AWS WAF 中在此規則群組之後執行的規則使用。 也會將標籤記錄到 Amazon CloudWatch 指標。如需標籤和標籤指標的一般資訊，請參閱 [Web 請求標籤](waf-labels.md)和 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。


| 規則名稱 | 描述和標籤 | 
| --- | --- | 
| PHPHighRiskMethodsVariables\$1HEADER |  檢查所有標頭是否有 PHP 指令碼程式碼注入嘗試。範例模式包括 `fsockopen` 之類的函數和 `$_GET` 超全域變數。 此規則只會檢查請求標頭的前 8 KB 或前 200 個標頭，以先達到限制為準，並使用 `Continue`選項來處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。 規則動作：Block 標籤： `awswaf:managed:aws:php-app:PHPHighRiskMethodsVariables_Header`  | 
| PHPHighRiskMethodsVariables\$1QUERYSTRING |  檢查請求 URL `?`中第一個 之後的所有項目，尋找 PHP 指令碼程式碼注入嘗試。範例模式包括 `fsockopen` 之類的函數和 `$_GET` 超全域變數。 規則動作：Block 標籤： `awswaf:managed:aws:php-app:PHPHighRiskMethodsVariables_QueryString`  | 
| PHPHighRiskMethodsVariables\$1BODY |  檢查要求主體是否有 PHP 指令碼程式碼注入嘗試。範例模式包括 `fsockopen` 之類的函數和 `$_GET` 超全域變數。 此規則只會檢查請求內文，直到保護套件 (Web ACL) 和資源類型的內文大小限制為止。對於 Application Load Balancer 和 AWS AppSync，限制固定為 8 KB。對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access，預設限制為 16 KB，而且您可以在保護套件 (Web ACL) 組態中將限制提高到 64 KB。此規則使用 `Continue`選項來處理過大的內容。如需詳細資訊，請參閱[在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。 規則動作：Block 標籤： `awswaf:managed:aws:php-app:PHPHighRiskMethodsVariables_Body`  | 
| PHPHighRiskMethodsVariables\$1URIPATH |  檢查 PHP 指令碼程式碼注入嘗試的請求路徑。範例模式包括 `fsockopen` 之類的函數和 `$_GET` 超全域變數。 規則動作：Block 標籤： `awswaf:managed:aws:php-app:PHPHighRiskMethodsVariables_URIPath`  | 

## WordPress 應用程式受管規則群組
WordPress 應用程式

VendorName：`AWS`、Name：`AWSManagedRulesWordPressRuleSet`、WCU：100

**注意**  
本文件涵蓋此受管規則群組的最新版本。我們會在 的 changelog 日誌中報告版本變更[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)。如需其他版本的資訊，請使用 API 命令 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)。  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要比此處更多的資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

WordPress 應用程式群組包含的規則會封鎖與利用 WordPress 網站特定漏洞相關的請求模式。如果您正在執行 WordPress，您應該評估此規則群組。此規則群組應結合 [SQL 資料庫](#aws-managed-rule-groups-use-case-sql-db) 和 [PHP 應用程式](#aws-managed-rule-groups-use-case-php-app) 規則群組使用。

此受管規則群組會將標籤新增至其評估的 Web 請求，這些請求可供保護套件 (Web ACL) AWS WAF 中在此規則群組之後執行的規則使用。 也會將標籤記錄到 Amazon CloudWatch 指標。如需標籤和標籤指標的一般資訊，請參閱 [Web 請求標籤](waf-labels.md)和 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。


| 規則名稱 | 描述和標籤 | 
| --- | --- | 
| WordPressExploitableCommands\$1QUERYSTRING |  檢查請求查詢字串是否有可能在有弱點的安裝或外掛程式中遭入侵的高風險 WordPress 命令。範例模式包括 `do-reset-wordpress` 之類的命令。 規則動作：Block 標籤： `awswaf:managed:aws:wordpress-app:WordPressExploitableCommands_QUERYSTRING`  | 
| WordPressExploitablePaths\$1URIPATH |  檢查要求 URI 路徑是否有 WordPress 檔案，如 `xmlrpc.php`，其已知具有易於入侵的漏洞。 規則動作：Block 標籤： `awswaf:managed:aws:wordpress-app:WordPressExploitablePaths_URIPATH`  | 

# IP 評價規則群組


IP 評價規則群組會根據其來源 IP 地址封鎖請求。

**注意**  
這些規則使用來自 Web 請求原始伺服器的來源 IP 地址。如果您有流經一或多個代理或負載平衡器的流量，Web 請求原始伺服器將包含最後一個代理的地址，而不是用戶端的原始地址。

如果您要減少暴露於機器人流量、利用嘗試，或是對內容強制執行地理限制，請選擇一或多個這些規則群組。如需機器人管理，另請參閱 [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md)。

此類別中的規則群組不提供版本控制或 SNS 更新通知。

## Amazon IP 評價清單受管規則群組
Amazon IP 評價清單

VendorName：`AWS`、Name：`AWSManagedRulesAmazonIpReputationList`、WCU：25

**注意**  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要比此處更多的資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

Amazon IP 評價清單規則群組包含以 Amazon 內部威脅情報為基礎的規則。如果您要封鎖通常與 Bot 或其他威脅相關聯的 IP 地址，這會很有用。封鎖這些 IP 地址有助於減輕 Bot，並降低惡意行為者發現易受攻擊應用程式的風險。

此受管規則群組會將標籤新增至其評估的 Web 請求，這些請求可供保護套件 (Web ACL) AWS WAF 中此規則群組之後執行的規則使用。 也會將標籤記錄到 Amazon CloudWatch 指標。如需標籤和標籤指標的一般資訊，請參閱 [Web 請求標籤](waf-labels.md)和 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。


| 規則名稱 | 描述和標籤 | 
| --- | --- | 
| AWSManagedIPReputationList |  檢查已識別為主動從事惡意活動的 IP 地址。 AWS WAF 會從各種來源收集 IP 地址清單，包括 MadPot，這是 Amazon 用來保護客戶免受網路攻擊的威脅情報工具。如需 MadPot 的詳細資訊，請參閱 [https://www.aboutamazon.com/news/aws/amazon-madpot-stops-cybersecurity-crime](https://www.aboutamazon.com/news/aws/amazon-madpot-stops-cybersecurity-crime)。 規則動作：Block 標籤： `awswaf:managed:aws:amazon-ip-list:AWSManagedIPReputationList`  | 
| AWSManagedReconnaissanceList |  檢查來自對資源執行偵察之 IP AWS 地址的連線。 規則動作：Block 標籤： `awswaf:managed:aws:amazon-ip-list:AWSManagedReconnaissanceList`  | 
| AWSManagedIPDDoSList |  檢查已識別為主動參與 DDoS 活動的 IP 地址。 規則動作：Count 標籤： `awswaf:managed:aws:amazon-ip-list:AWSManagedIPDDoSList`  | 

## 匿名 IP 清單受管規則群組
匿名 IP 清單

VendorName：`AWS`、Name：`AWSManagedRulesAnonymousIpList`、WCU：50

**注意**  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要比此處更多的資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

匿名 IP 清單規則群組包含規則，以封鎖來自允許混淆檢視器身分之服務的請求。這些包括來自 VPNs、代理、Tor 節點和 Web 託管供應商的請求。如果您要篩除可能會嘗試從您應用程式隱藏自身身分的檢視器，則此規則群組相當有用。封鎖這些服務的 IP 地址能協助降低機器人，以及迴避地理區域限制的問題。

此受管規則群組會將標籤新增至其評估的 Web 請求，這些請求可供保護套件 (Web ACL) AWS WAF 中此規則群組之後執行的規則使用。 也會將標籤記錄到 Amazon CloudWatch 指標。如需標籤和標籤指標的一般資訊，請參閱 [Web 請求標籤](waf-labels.md)和 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。


| 規則名稱 | 描述和標籤 | 
| --- | --- | 
| AnonymousIPList |  檢查 IP 位址清單是否有已知會使用戶端資訊匿名化的來源，例如 TOR 節點、暫時代理伺服器和其他遮罩服務。 規則動作：Block 標籤： `awswaf:managed:aws:anonymous-ip-list:AnonymousIPList`  | 
| HostingProviderIPList | 檢查來自 Web 託管和雲端提供者的 IP 地址清單，這些地址較不可能來源最終使用者流量。IP 清單不包含 AWS IP 地址。 規則動作：Block 標籤： `awswaf:managed:aws:anonymous-ip-list:HostingProviderIPList` | 

# AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組
帳戶建立詐騙預防規則群組已更新 ACFP 受管規則群組

更正規則 `VolumetricIPSuccessfulResponse`和 的標籤資訊`VolumetricSessionSuccessfulResponse`。新的 ACFP 受管規則群組

使用新的規則群組`AWSManagedRulesACFPRuleSet`來偵測和封鎖詐騙帳戶建立嘗試。

本節說明 AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 受管規則群組的功能。

VendorName：`AWS`、Name：`AWSManagedRulesACFPRuleSet`、WCU：50

**注意**  
本文件涵蓋此受管規則群組的最新版本。我們會在 的 changelog 日誌中報告版本變更[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)。如需其他版本的資訊，請使用 API 命令 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)。  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要比此處更多的資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

 AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 受管規則群組標籤和管理可能是詐騙帳戶建立嘗試一部分的請求。規則群組會透過檢查用戶端傳送到應用程式註冊和帳戶建立端點的帳戶建立請求來執行此操作。

ACFP 規則群組會以各種方式檢查帳戶建立嘗試，為您提供潛在惡意互動的可見性和控制。規則群組使用請求字符來收集有關用戶端瀏覽器和建立帳戶請求時人類互動程度的資訊。規則群組透過依 IP 地址和用戶端工作階段彙總請求，以及依提供的帳戶資訊彙總實體地址和電話號碼，來偵測和管理大量帳戶建立嘗試。此外，規則群組會使用已遭入侵的登入資料來偵測和封鎖新帳戶的建立，這有助於保護應用程式和新使用者的安全狀態。

## 使用此規則群組的考量事項
使用此規則群組

此規則群組需要自訂組態，其中包含應用程式帳戶註冊和帳戶建立路徑的規格。除非另有說明，否則此規則群組中的規則會檢查用戶端傳送至這兩個端點的所有請求。若要設定和實作此規則群組，請參閱 中的指引[AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP)](waf-acfp.md)。

**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

此規則群組是 中智慧型威脅緩解保護的一部分 AWS WAF。如需相關資訊，請參閱[中的智慧型威脅防禦 AWS WAF](waf-managed-protections.md)。

若要降低成本，並確保您視需要管理 Web 流量，請根據 中的指引使用此規則群組[中的智慧型威脅防禦最佳實務 AWS WAF](waf-managed-protections-best-practices.md)。

此規則群組不適用於 Amazon Cognito 使用者集區。您無法將使用此規則群組的保護套件 (Web ACL) 與使用者集區建立關聯，也無法將此規則群組新增至已與使用者集區建立關聯的保護套件 (Web ACL)。

## 此規則群組新增的標籤
此規則群組新增的標籤

此受管規則群組會將標籤新增至其評估的 Web 請求，這些請求可供保護套件 (Web ACL) AWS WAF 中在此規則群組之後執行的規則使用。 也會將標籤記錄到 Amazon CloudWatch 指標。如需標籤和標籤指標的一般資訊，請參閱 [Web 請求標籤](waf-labels.md)和 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。

### 字符標籤
字符標籤

此規則群組使用 AWS WAF 字符管理，根據其 AWS WAF 字符的狀態檢查和標記 Web 請求。 AWS WAF 使用字符進行用戶端工作階段追蹤和驗證。

如需字符和字符管理的資訊，請參閱 [用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。

如需此處所述的標籤元件資訊，請參閱 [中的標籤語法和命名需求 AWS WAF](waf-rule-label-requirements.md)。

**用戶端工作階段標籤**  
標籤`awswaf:managed:token:id:identifier`包含 AWS WAF 字符管理用來識別用戶端工作階段的唯一識別符。如果用戶端取得新的字符，例如在捨棄正在使用的字符之後，識別符可能會變更。

**注意**  
AWS WAF 不會報告此標籤的 Amazon CloudWatch 指標。

**瀏覽器指紋標籤**  
標籤`awswaf:managed:token:fingerprint:fingerprint-identifier`包含強大的瀏覽器指紋識別符，權 AWS WAF 杖管理會從各種用戶端瀏覽器訊號運算。此識別符在多個字符擷取嘗試中保持不變。指紋識別符對單一用戶端來說不是唯一的。

**注意**  
AWS WAF 不會報告此標籤的 Amazon CloudWatch 指標。

**字符狀態標籤：標籤命名空間字首**  
字符狀態標籤會報告字符的狀態，以及其中包含的挑戰和 CAPTCHA 資訊。

每個字符狀態標籤都以下列其中一個命名空間字首開頭：
+ `awswaf:managed:token:` – 用來報告字符的一般狀態，以及報告字符挑戰資訊的狀態。
+ `awswaf:managed:captcha:` – 用來報告字符 CAPTCHA 資訊的狀態。

**字符狀態標籤：標籤名稱**  
在字首後面，標籤的其餘部分提供詳細的字符狀態資訊：
+ `accepted` – 請求字符存在且包含下列項目：
  + 有效的挑戰或 CAPTCHA 解決方案。
  + 未過期的挑戰或 CAPTCHA 時間戳記。
  + 適用於保護套件的網域規格 (Web ACL)。

  範例：標籤`awswaf:managed:token:accepted`指出 Web 請求的權杖具有有效的挑戰解決方案、未過期的挑戰時間戳記，以及有效的網域。
+ `rejected` – 請求字符存在，但不符合接受條件。

  除了拒絕的標籤之外，字符管理還會新增自訂標籤命名空間和名稱，以指出原因。
  + `rejected:not_solved` – 字符缺少挑戰或 CAPTCHA 解決方案。
  + `rejected:expired` – 權杖的挑戰或 CAPTCHA 時間戳記已過期，取決於您的保護套件 (Web ACL) 設定的權杖豁免時間。
  + `rejected:domain_mismatch` – 字符的網域不符合您的保護套件 (Web ACL) 字符網域組態。
  + `rejected:invalid` – AWS WAF 無法讀取指定的字符。

  範例：標籤 `awswaf:managed:captcha:rejected`和 `awswaf:managed:captcha:rejected:expired`一起指出請求沒有有效的 CAPTCHA 解決方法，因為字符中的 CAPTCHA 時間戳記已超過保護套件 (Web ACL) 中設定的 CAPTCHA 字符豁免時間。
+ `absent` – 請求沒有字符或字符管理器無法讀取。

  範例：標籤`awswaf:managed:captcha:absent`表示請求沒有字符。

### ACFP 標籤
ACFP 標籤

此規則群組會產生具有命名空間字首的標籤，`awswaf:managed:aws:acfp:`後面接著自訂命名空間和標籤名稱。規則群組可能會將多個標籤新增至請求。

您可以透過 API 呼叫 來擷取規則群組的所有標籤`DescribeManagedRuleGroup`。這些標籤會列在回應的 `AvailableLabels` 屬性中。

## 帳戶建立詐騙預防規則清單
規則清單

本節列出 中的 ACFP 規則，`AWSManagedRulesACFPRuleSet`以及規則群組規則新增至 Web 請求的標籤。

此規則群組中的所有規則都需要 Web 請求字符，前兩個 `UnsupportedCognitoIDP`和 除外`AllRequests`。如需字符提供的資訊說明，請參閱 [AWS WAF 字符特性](waf-tokens-details.md)。

除非另有說明，否則此規則群組中的規則會檢查用戶端傳送至您在規則群組組態中提供的帳戶註冊和帳戶建立頁面路徑的所有請求。如需設定此規則群組的詳細資訊，請參閱 [AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP)](waf-acfp.md)。

**注意**  
本文件涵蓋此受管規則群組的最新版本。我們會在 的 changelog 日誌中報告版本變更[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)。如需其他版本的資訊，請使用 API 命令 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)。  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要比此處更多的資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。


| 規則名稱 | 描述和標籤 | 
| --- | --- | 
| UnsupportedCognitoIDP |  檢查傳送至 Amazon Cognito 使用者集區的 Web 流量。ACFP 不適用於 Amazon Cognito 使用者集區，此規則有助於確保不會使用其他 ACFP 規則群組規則來評估使用者集區流量。 規則動作：Block 標籤： `awswaf:managed:aws:acfp:unsupported:cognito_idp`和 `awswaf:managed:aws:acfp:UnsupportedCognitoIDP`   | 
| AllRequests |  將規則動作套用至存取註冊頁面路徑的請求。您在設定規則群組時設定註冊頁面路徑。 根據預設，此規則會將 Challenge 套用至 請求。透過套用此動作，規則可確保用戶端在規則群組中的其餘規則評估任何請求之前，先取得挑戰字符。 確保您的最終使用者在提交帳戶建立請求之前載入註冊頁面路徑。 權杖會由用戶端應用程式整合 SDKs 和規則動作 CAPTCHA和 新增至請求Challenge。為了取得最有效率的權杖，我們強烈建議您使用應用程式整合 SDKs。如需詳細資訊，請參閱[中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)。 規則動作：Challenge 標籤：無  | 
| RiskScoreHigh |  檢查具有 IP 地址或其他被視為高度可疑因素的帳戶建立請求。此評估通常基於多個促成因素，您可以在規則群組新增至請求的`risk_score`標籤中看到這些因素。 規則動作：Block 標籤： `awswaf:managed:aws:acfp:risk_score:high`和 `awswaf:managed:aws:acfp:RiskScoreHigh`  此規則也可能套用 `medium`或`low`風險分數標籤到請求。 如果 AWS WAF 無法成功評估 Web 請求的風險分數，則規則會新增標籤 `awswaf:managed:aws:acfp:risk_score:evaluation_failed ` 此外，規則會新增包含風險分數評估狀態`awswaf:managed:aws:acfp:risk_score:contributor:`的命名空間標籤，以及特定風險分數貢獻者的結果，例如 IP 評價和遭竊的登入資料評估。  | 
| SignalCredentialCompromised |  搜尋遭竊的登入資料資料庫，尋找在帳戶建立請求中提交的登入資料。 此規則可確保新用戶端以正面的安全狀態初始化其帳戶。  您可以新增自訂封鎖回應，向最終使用者描述問題，並告訴他們如何繼續。如需相關資訊，請參閱[ACFP 範例：針對遭到入侵的登入資料進行自訂回應](waf-acfp-control-example-compromised-credentials.md)。  規則動作：Block 標籤： `awswaf:managed:aws:acfp:signal:credential_compromised`和 `awswaf:managed:aws:acfp:SignalCredentialCompromised`  規則群組會套用下列相關標籤，但不對其採取任何動作，因為並非所有建立帳戶的請求都會有登入資料： `awswaf:managed:aws:acfp:signal:missing_credential`  | 
| SignalClientHumanInteractivityAbsentLow |  檢查帳戶建立請求的字符是否有資料指出與應用程式有異常的人類互動。人類互動是透過滑鼠移動和按鍵等互動來偵測。如果頁面具有 HTML 表單，則人工互動包括與表單的互動。  此規則只會檢查帳戶建立路徑的請求，而且只有在您已實作應用程式整合 SDKs 時才會進行評估。開發套件實作被動擷取人類互動，並將資訊存放在請求字符中。如需詳細資訊，請參閱[AWS WAF 字符特性](waf-tokens-details.md)及[中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)。  規則動作：CAPTCHA 標籤：無。規則會根據不同的因素來決定相符項目，因此沒有適用於每個可能相符案例的個別標籤。 規則群組可以將下列一或多個標籤套用至請求： `awswaf:managed:aws:acfp:signal:client:human_interactivity:low\|medium\|high` `awswaf:managed:aws:acfp:SignalClientHumanInteractivityAbsentLow\|Medium\|High`  `awswaf:managed:aws:acfp:signal:client:human_interactivity:insufficient_data`  `awswaf:managed:aws:acfp:signal:form_detected`.  | 
| AutomatedBrowser |  檢查用戶端瀏覽器是否可能自動化的指標。 規則動作：Block 標籤： `awswaf:managed:aws:acfp:signal:automated_browser`和 `awswaf:managed:aws:acfp:AutomatedBrowser`  | 
| BrowserInconsistency |  檢查請求的字符是否有不一致的瀏覽器查詢資料。如需詳細資訊，請參閱[AWS WAF 字符特性](waf-tokens-details.md)。 規則動作：CAPTCHA 標籤： `awswaf:managed:aws:acfp:signal:browser_inconsistency`和 `awswaf:managed:aws:acfp:BrowserInconsistency`  | 
| VolumetricIpHigh |  檢查從個別 IP 地址傳送的大量帳戶建立請求。在 10 分鐘的時段內，大量超過 20 個請求。 此規則套用的閾值可能因延遲而略有不同。對於高磁碟區，在套用規則動作之前，有些請求可能會使其超過限制。 規則動作：CAPTCHA 標籤： `awswaf:managed:aws:acfp:aggregate:volumetric:ip:creation:high`和 `awswaf:managed:aws:acfp:VolumetricIpHigh`  規則會將下列標籤套用至具有中等磁碟區 （每 10 分鐘超過 15 個請求） 和低磁碟區 （每 10 分鐘超過 10 個請求） 的請求，但不會對這些請求採取任何動作： `awswaf:managed:aws:acfp:aggregate:volumetric:ip:creation:medium`和 `awswaf:managed:aws:acfp:aggregate:volumetric:ip:creation:low`。  | 
| VolumetricSessionHigh |  檢查從個別用戶端工作階段傳送的大量帳戶建立請求。在 30 分鐘的時段內，大量超過 10 個請求。  此規則套用的閾值可能因延遲而略有不同。在套用規則動作之前，有些請求可能會使其超過限制。  規則動作：Block 標籤： `awswaf:managed:aws:acfp:aggregate:volumetric:session:creation:high`和 `awswaf:managed:aws:acfp:VolumetricSessionHigh`  規則群組會將下列標籤套用至具有中等磁碟區 （超過每 30 分鐘 5 個請求） 和低磁碟區 （超過每 30 分鐘 1 個請求） 的請求，但不對其採取任何動作： `awswaf:managed:aws:acfp:aggregate:volumetric:session:creation:medium`和 `awswaf:managed:aws:acfp:aggregate:volumetric:session:creation:low`。  | 
| AttributeUsernameTraversalHigh |  檢查使用不同使用者名稱的單一用戶端工作階段是否有高速率的帳戶建立請求。高評估的閾值是在 30 分鐘內超過 10 個請求。  此規則套用的閾值可能因延遲而略有不同。在套用規則動作之前，有些請求可能會使其超過限制。  規則動作：Block 標籤： `awswaf:managed:aws:acfp:aggregate:attribute:username_traversal:creation:high`和 `awswaf:managed:aws:acfp:AttributeUsernameTraversalHigh`  規則群組會將下列標籤套用至使用者名稱周遊請求的中等磁碟區 （超過每 30 分鐘 5 個請求） 和低磁碟區 （超過每 30 分鐘 1 個請求） 的請求，但不對其採取任何動作： `awswaf:managed:aws:acfp:aggregate:attribute:username_traversal:creation:medium`和 `awswaf:managed:aws:acfp:aggregate:attribute:username_traversal:creation:low`。  | 
| VolumetricPhoneNumberHigh |  檢查是否有大量使用相同電話號碼的帳戶建立請求。高評估的閾值是在 30 分鐘內超過 10 個請求。  此規則套用的閾值可能因延遲而略有不同。在套用規則動作之前，有些請求可能會使其超過限制。  規則動作：Block 標籤： `awswaf:managed:aws:acfp:aggregate:volumetric:phone_number:high`和 `awswaf:managed:aws:acfp:VolumetricPhoneNumberHigh` 規則群組會將下列標籤套用至具有中等磁碟區 （每 30 分鐘超過 5 個請求） 和低磁碟區 （每 30 分鐘超過 1 個請求） 的請求，但不對其採取任何動作： `awswaf:managed:aws:acfp:aggregate:volumetric:phone_number:medium`和 `awswaf:managed:aws:acfp:aggregate:volumetric:phone_number:low`。  | 
| VolumetricAddressHigh |  檢查是否有大量使用相同實體地址的帳戶建立請求。高評估的閾值為每個 30 分鐘時段超過 100 個請求。  此規則套用的閾值可能因延遲而略有不同。在套用規則動作之前，有些請求可能會使其超過限制。  規則動作：Block 標籤： `awswaf:managed:aws:acfp:aggregate:volumetric:address:high`和 `awswaf:managed:aws:acfp:VolumetricAddressHigh`   | 
| VolumetricAddressLow |  檢查使用相同實體地址的低和中量帳戶建立請求。中評估的閾值是每 30 分鐘時段超過 50 個請求，而低評估則是每 30 分鐘時段超過 10 個請求。 此規則會套用中或低磁碟區的動作。  此規則套用的閾值可能因延遲而略有不同。在套用規則動作之前，有些請求可能會使其超過限制。  規則動作：CAPTCHA 標籤： `awswaf:managed:aws:acfp:aggregate:volumetric:address:low\|medium`和 `awswaf:managed:aws:acfp:VolumetricAddressLow\|Medium`   | 
| VolumetricIPSuccessfulResponse |  檢查單一 IP 地址是否有大量的成功帳戶建立請求。此規則會將受保護資源的成功回應彙總到帳戶建立請求。高評估的閾值為每個 10 分鐘時段超過 10 個請求。 此規則有助於防止大量帳戶建立嘗試。其閾值低於規則 `VolumetricIpHigh`，僅計算請求。 如果您已設定規則群組來檢查回應內文或 JSON 元件， AWS WAF 可以檢查這些元件類型的前 65，536 個位元組 (64 KB) 是否有成功或失敗指標。 此規則會根據來自受保護資源的成功和失敗回應，以及來自相同 IP 地址的最近登入嘗試，將規則動作和標籤套用至來自 IP 地址的新 Web 請求。您可以在設定規則群組時，定義如何計算成功和失敗次數。  AWS WAF 只會在保護 Amazon CloudFront 分佈的保護套件 (Web ACLs) 中評估此規則。   此規則套用的閾值可能因延遲而略有不同。用戶端可能會傳送比規則在後續嘗試中開始比對之前允許的更成功的帳戶建立嘗試。  規則動作：Block 標籤： `awswaf:managed:aws:acfp:aggregate:volumetric:ip:successful_creation_response:high`和 `awswaf:managed:aws:acfp:VolumetricIPSuccessfulResponse`  規則群組也會將下列相關標籤套用至請求，而沒有任何相關聯的動作。所有計數都適用於 10 分鐘的時段。`awswaf:managed:aws:acfp:aggregate:volumetric:ip:successful_creation_response:medium`對於 5 個以上的成功請求，`awswaf:managed:aws:acfp:aggregate:volumetric:ip:successful_creation_response:low`對於 1 個以上的成功請求，`awswaf:managed:aws:acfp:aggregate:volumetric:ip:failed_creation_response:high`對於 10 個以上的失敗請求，`awswaf:managed:aws:acfp:aggregate:volumetric:ip:failed_creation_response:medium`對於 5 個以上的失敗請求，以及對於 1 個`awswaf:managed:aws:acfp:aggregate:volumetric:ip:failed_creation_response:low`以上的失敗請求。  | 
| VolumetricSessionSuccessfulResponse |  檢查從受保護資源到從單一用戶端工作階段傳送的帳戶建立請求的成功回應數量是否很低。這有助於防止大量帳戶建立嘗試。低評估的閾值是每 30 分鐘時段 1 個以上的請求。 這有助於防止大量帳戶建立嘗試。此規則使用的閾值低於只`VolumetricSessionHigh`追蹤請求的規則 。 如果您已設定規則群組來檢查回應內文或 JSON 元件， AWS WAF 可以檢查這些元件類型的前 65，536 個位元組 (64 KB) 是否有成功或失敗指標。 此規則會根據來自受保護資源的成功和失敗回應，以及來自相同用戶端工作階段的最近登入嘗試，將規則動作和標籤套用至來自用戶端工作階段的新 Web 請求。您可以在設定規則群組時，定義如何計算成功和失敗次數。  AWS WAF 只會在保護 Amazon CloudFront 分佈的保護套件 (Web ACLs) 中評估此規則。   此規則套用的閾值可能因延遲而略有不同。用戶端傳送失敗的帳戶建立嘗試次數可能超過規則在後續嘗試中開始比對之前允許的次數。  規則動作：Block 標籤： `awswaf:managed:aws:acfp:aggregate:volumetric:session:successful_creation_response:low`和 `awswaf:managed:aws:acfp:VolumetricSessionSuccessfulResponse`  規則群組也會將下列相關標籤套用至請求。所有計數都適用於 30 分鐘的時段。`awswaf:managed:aws:acfp:aggregate:volumetric:session:successful_creation_response:high`對於 10 個以上的成功請求，`awswaf:managed:aws:acfp:aggregate:volumetric:session:successful_creation_response:medium`對於 5 個以上的成功請求，`awswaf:managed:aws:acfp:aggregate:volumetric:session:failed_creation_response:high`對於 10 個以上的失敗請求，`awswaf:managed:aws:acfp:aggregate:volumetric:session:failed_creation_response:medium`對於 5 個以上的失敗請求，以及對於 1 個`awswaf:managed:aws:acfp:aggregate:volumetric:session:failed_creation_response:low`以上的失敗請求。  | 
| VolumetricSessionTokenReuseIp |  檢查帳戶建立請求是否在超過 5 個不同的 IP 地址中使用單一字符。  此規則套用的閾值可能因延遲而略有不同。在套用規則動作之前，有些請求可能會使其超過限制。  規則動作：Block 標籤： `awswaf:managed:aws:acfp:aggregate:volumetric:session:creation:token_reuse:ip`和 `awswaf:managed:aws:acfp:VolumetricSessionTokenReuseIp`  | 

# AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組
帳戶接管預防規則群組更新的 ATP 受管規則群組

更正規則 `VolumetricIpFailedLoginResponseHigh`和 的標籤資訊`VolumetricSessionFailedLoginResponseHigh`。

本節說明 AWS WAF 詐騙控制帳戶接管預防 (ATP) 受管規則群組的功能。

VendorName：`AWS`、Name：`AWSManagedRulesATPRuleSet`、WCU：50

**注意**  
本文件涵蓋此受管規則群組的最新版本。我們會在 的 changelog 日誌中報告版本變更[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)。如需其他版本的資訊，請使用 API 命令 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)。  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要比此處更多的資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

 AWS WAF 詐騙控制帳戶接管預防 (ATP) 受管規則群組標籤和管理可能屬於惡意帳戶接管嘗試一部分的請求。規則群組會透過檢查用戶端傳送至應用程式登入端點的登入嘗試來執行此操作。
+ **請求檢查** – ATP 可讓您查看和控制使用遭竊登入資料的異常登入嘗試和登入嘗試，以防止可能導致詐騙活動的帳戶接管。ATP 會針對其遭竊的登入資料資料庫檢查電子郵件和密碼組合，該資料庫會在深色 Web 上發現新的洩漏登入資料時定期更新。ATP 會依 IP 地址和用戶端工作階段彙總資料，以偵測和封鎖傳送過多可疑請求的用戶端。
+ **回應檢查** – 對於 CloudFront 分佈，除了檢查傳入的登入請求之外，ATP 規則群組還會檢查應用程式的登入嘗試回應，以追蹤成功和失敗率。使用此資訊，ATP 可以暫時封鎖登入失敗次數過多的用戶端工作階段或 IP 地址。 會以非同步方式 AWS WAF 執行回應檢查，因此這不會增加 Web 流量的延遲。

## 使用此規則群組的考量事項
使用此規則群組

此規則群組需要特定組態。若要設定和實作此規則群組，請參閱 中的指引[AWS WAF 詐騙控制帳戶接管預防 (ATP)](waf-atp.md)。

此規則群組是 中智慧型威脅緩解保護的一部分 AWS WAF。如需相關資訊，請參閱[中的智慧型威脅防禦 AWS WAF](waf-managed-protections.md)。

**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

若要降低成本，並確保您視需要管理 Web 流量，請根據 中的指引使用此規則群組[中的智慧型威脅防禦最佳實務 AWS WAF](waf-managed-protections-best-practices.md)。

此規則群組不適用於 Amazon Cognito 使用者集區。您無法將使用此規則群組的保護套件 (Web ACL) 與使用者集區建立關聯，也無法將此規則群組新增至已與使用者集區建立關聯的保護套件 (Web ACL)。

## 此規則群組新增的標籤
此規則群組新增的標籤

此受管規則群組會將標籤新增至其評估的 Web 請求，這些請求可供保護套件 (Web ACL) AWS WAF 中在此規則群組之後執行的規則使用。 也會將標籤記錄到 Amazon CloudWatch 指標。如需標籤和標籤指標的一般資訊，請參閱 [Web 請求標籤](waf-labels.md)和 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。

### 字符標籤
字符標籤

此規則群組使用 AWS WAF 字符管理，根據其 AWS WAF 字符的狀態檢查和標記 Web 請求。 AWS WAF 使用字符進行用戶端工作階段追蹤和驗證。

如需字符和字符管理的資訊，請參閱 [用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。

如需此處所述的標籤元件資訊，請參閱 [中的標籤語法和命名需求 AWS WAF](waf-rule-label-requirements.md)。

**用戶端工作階段標籤**  
標籤`awswaf:managed:token:id:identifier`包含 AWS WAF 字符管理用來識別用戶端工作階段的唯一識別符。如果用戶端取得新的字符，例如在捨棄正在使用的字符之後，識別符可能會變更。

**注意**  
AWS WAF 不會報告此標籤的 Amazon CloudWatch 指標。

**瀏覽器指紋標籤**  
標籤`awswaf:managed:token:fingerprint:fingerprint-identifier`包含強大的瀏覽器指紋識別符，權 AWS WAF 杖管理會從各種用戶端瀏覽器訊號運算。此識別符在多個字符擷取嘗試中保持不變。指紋識別符對單一用戶端來說不是唯一的。

**注意**  
AWS WAF 不會報告此標籤的 Amazon CloudWatch 指標。

**字符狀態標籤：標籤命名空間字首**  
字符狀態標籤會報告字符的狀態，以及其中包含的挑戰和 CAPTCHA 資訊。

每個字符狀態標籤都以下列其中一個命名空間字首開頭：
+ `awswaf:managed:token:` – 用來報告字符的一般狀態，以及報告字符挑戰資訊的狀態。
+ `awswaf:managed:captcha:` – 用來報告字符 CAPTCHA 資訊的狀態。

**字符狀態標籤：標籤名稱**  
在字首後面，標籤的其餘部分提供詳細的字符狀態資訊：
+ `accepted` – 請求字符存在且包含下列項目：
  + 有效的挑戰或 CAPTCHA 解決方案。
  + 未過期的挑戰或 CAPTCHA 時間戳記。
  + 適用於保護套件的網域規格 (Web ACL)。

  範例：標籤`awswaf:managed:token:accepted`指出 Web 請求的權杖具有有效的挑戰解決方案、未過期的挑戰時間戳記，以及有效的網域。
+ `rejected` – 請求字符存在，但不符合接受條件。

  除了拒絕的標籤之外，字符管理還會新增自訂標籤命名空間和名稱，以指出原因。
  + `rejected:not_solved` – 字符缺少挑戰或 CAPTCHA 解決方案。
  + `rejected:expired` – 權杖的挑戰或 CAPTCHA 時間戳記已過期，取決於您的保護套件 (Web ACL) 設定的權杖豁免時間。
  + `rejected:domain_mismatch` – 字符的網域不符合您的保護套件 (Web ACL) 字符網域組態。
  + `rejected:invalid` – AWS WAF 無法讀取指定的字符。

  範例：標籤 `awswaf:managed:captcha:rejected`和 `awswaf:managed:captcha:rejected:expired`一起指出請求沒有有效的 CAPTCHA 解決方法，因為字符中的 CAPTCHA 時間戳記已超過保護套件 (Web ACL) 中設定的 CAPTCHA 字符豁免時間。
+ `absent` – 請求沒有字符或字符管理器無法讀取。

  範例：標籤`awswaf:managed:captcha:absent`表示請求沒有字符。

### ATP 標籤
ATP 標籤

ATP 受管規則群組會產生具有命名空間字首的標籤，`awswaf:managed:aws:atp:`後面接著自訂命名空間和標籤名稱。

除了規則清單中記下的標籤之外，規則群組還可能會新增下列任何標籤：
+ `awswaf:managed:aws:atp:signal:credential_compromised` – 表示在請求中提交的登入資料位於遭竊的登入資料資料庫中。
+ `awswaf:managed:aws:atp:aggregate:attribute:suspicious_tls_fingerprint` – 僅適用於受保護的 Amazon CloudFront 分佈。表示用戶端工作階段已傳送多個使用可疑 TLS 指紋的請求。
+ `awswaf:managed:aws:atp:aggregate:volumetric:session:token_reuse:ip` – 表示在超過 5 個不同的 IP 地址中使用單一字符。此規則套用的閾值可能因延遲而略有不同。在套用標籤之前，有些請求可能會使其超過限制。

您可以透過 API 呼叫 來擷取規則群組的所有標籤`DescribeManagedRuleGroup`。這些標籤會列在回應的 `AvailableLabels` 屬性中。

## 帳戶接管預防規則清單
規則清單

本節列出 中的 ATP 規則，`AWSManagedRulesATPRuleSet`以及規則群組規則新增至 Web 請求的標籤。

**注意**  
本文件涵蓋此受管規則群組的最新版本。我們會在 的 changelog 日誌中報告版本變更[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)。如需其他版本的資訊，請使用 API 命令 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)。  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要比此處更多的資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。


| 規則名稱 | 描述和標籤 | 
| --- | --- | 
| UnsupportedCognitoIDP | 檢查傳送至 Amazon Cognito 使用者集區的 Web 流量。ATP 不適用於 Amazon Cognito 使用者集區，此規則有助於確保不會使用其他 ATP 規則群組規則來評估使用者集區流量。 規則動作：Block 標籤： `awswaf:managed:aws:atp:unsupported:cognito_idp`和 `awswaf:managed:aws:atp:UnsupportedCognitoIDP`   | 
| VolumetricIpHigh | 檢查從個別 IP 地址傳送的大量請求。在 10 分鐘的時段內，大量超過 20 個請求。  此規則套用的閾值可能因延遲而略有不同。對於高磁碟區，在套用規則動作之前，有些請求可能會使其超過限制。  規則動作：Block 標籤： `awswaf:managed:aws:atp:aggregate:volumetric:ip:high`和 `awswaf:managed:aws:atp:VolumetricIpHigh`  規則群組會將下列標籤套用至具有中等磁碟區 （每 10 分鐘超過 15 個請求） 和低磁碟區 （每 10 分鐘超過 10 個請求） 的請求，但不對其採取任何動作： `awswaf:managed:aws:atp:aggregate:volumetric:ip:medium`和 `awswaf:managed:aws:atp:aggregate:volumetric:ip:low`。 | 
| VolumetricSession |  檢查從個別用戶端工作階段傳送的大量請求。閾值為每個 30 分鐘時段超過 20 個請求。 此檢查僅適用於 Web 請求具有字符的情況。權杖會由應用程式整合 SDKs 和規則動作 CAPTCHA和 新增至請求Challenge。如需詳細資訊，請參閱[用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。  此規則套用的閾值可能因延遲而略有不同。在套用規則動作之前，有些請求可能會使其超過限制。  規則動作：Block 標籤： `awswaf:managed:aws:atp:aggregate:volumetric:session`和 `awswaf:managed:aws:atp:VolumetricSession`   | 
| AttributeCompromisedCredentials |  檢查來自使用遭竊憑證之相同用戶端工作階段的多個請求。 規則動作：Block 標籤： `awswaf:managed:aws:atp:aggregate:attribute:compromised_credentials`和 `awswaf:managed:aws:atp:AttributeCompromisedCredentials`   | 
| AttributeUsernameTraversal |  檢查來自使用使用者名稱周遊之相同用戶端工作階段的多個請求。 規則動作：Block 標籤： `awswaf:managed:aws:atp:aggregate:attribute:username_traversal`和 `awswaf:managed:aws:atp:AttributeUsernameTraversal`   | 
| AttributePasswordTraversal |  檢查是否有多個使用密碼周遊的相同使用者名稱的請求。 規則動作：Block 標籤： `awswaf:managed:aws:atp:aggregate:attribute:password_traversal`和 `awswaf:managed:aws:atp:AttributePasswordTraversal`   | 
| AttributeLongSession |  檢查來自使用長期工作階段之相同用戶端工作階段的多個請求。閾值是超過 6 小時的流量，每 30 分鐘至少有一個登入請求。 此檢查僅適用於 Web 請求具有字符的情況。權杖會由應用程式整合 SDKs 和規則動作 CAPTCHA和 新增至請求Challenge。如需詳細資訊，請參閱[用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。 規則動作：Block 標籤： `awswaf:managed:aws:atp:aggregate:attribute:long_session`和 `awswaf:managed:aws:atp:AttributeLongSession`   | 
| TokenRejected |  檢查是否有字符管理拒絕的 AWS WAF 字符請求。 此檢查僅適用於 Web 請求具有字符的情況。權杖會由應用程式整合 SDKs 和規則動作 CAPTCHA和 新增至請求Challenge。如需詳細資訊，請參閱[用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。 規則動作：Block 標籤：無。若要檢查權杖是否遭拒，請使用標籤比對規則來比對標籤：`awswaf:managed:token:rejected`。  | 
| SignalMissingCredential |  檢查是否有憑證缺少使用者名稱或密碼的請求。 規則動作：Block 標籤： `awswaf:managed:aws:atp:signal:missing_credential`和 `awswaf:managed:aws:atp:SignalMissingCredential`   | 
| VolumetricIpFailedLoginResponseHigh |  檢查最近登入嘗試失敗率太高的 IP 地址。在 10 分鐘內，來自 IP 地址的高磁碟區超過 10 個失敗的登入請求。 如果您已設定規則群組來檢查回應內文或 JSON 元件， AWS WAF 可以檢查這些元件類型的前 65，536 個位元組 (64 KB) 是否有成功或失敗指標。 此規則會根據來自受保護資源的成功和失敗回應，以及來自相同 IP 地址的最近登入嘗試，將規則動作和標籤套用至來自 IP 地址的新 Web 請求。您可以在設定規則群組時，定義如何計算成功和失敗次數。  AWS WAF 只會在保護 Amazon CloudFront 分佈的保護套件 (Web ACLs) 中評估此規則。   此規則套用的閾值可能因延遲而略有不同。用戶端傳送失敗的登入嘗試次數可能超過規則在後續嘗試時開始比對之前允許的次數。  規則動作：Block 標籤： `awswaf:managed:aws:atp:aggregate:volumetric:ip:failed_login_response:high`和 `awswaf:managed:aws:atp:VolumetricIpFailedLoginResponseHigh`  規則群組也會將下列相關標籤套用至請求，而沒有任何相關聯的動作。所有計數都適用於 10 分鐘的時段。`awswaf:managed:aws:atp:aggregate:volumetric:ip:failed_login_response:medium`對於超過 5 個失敗的請求，`awswaf:managed:aws:atp:aggregate:volumetric:ip:failed_login_response:low`對於超過 1 個失敗`awswaf:managed:aws:atp:aggregate:volumetric:ip:successful_login_response:low`的請求，`awswaf:managed:aws:atp:aggregate:volumetric:ip:successful_login_response:high`對於超過 10 個成功的請求，`awswaf:managed:aws:atp:aggregate:volumetric:ip:successful_login_response:medium`對於超過 5 個成功的請求，以及對於超過 1 個成功的請求。  | 
| VolumetricSessionFailedLoginResponseHigh |  檢查最近登入嘗試失敗率太高的用戶端工作階段。在 30 分鐘內，來自用戶端工作階段的高磁碟區超過 10 個失敗的登入請求。 如果您已設定規則群組來檢查回應內文或 JSON 元件， AWS WAF 可以檢查這些元件類型的前 65，536 個位元組 (64 KB) 是否有成功或失敗指標。 此規則會根據從受保護資源到來自相同用戶端工作階段最近登入嘗試的成功和失敗回應，將規則動作和標籤套用至來自用戶端工作階段的新 Web 請求。您可以在設定規則群組時，定義如何計算成功和失敗次數。  AWS WAF 只會在保護 Amazon CloudFront 分佈的保護套件 (Web ACLs) 中評估此規則。   此規則套用的閾值可能因延遲而略有不同。用戶端傳送失敗的登入嘗試次數可能超過規則在後續嘗試時開始比對之前允許的次數。  此檢查僅適用於 Web 請求具有字符的情況。權杖會由應用程式整合 SDKs 和規則動作 CAPTCHA和 新增至請求Challenge。如需詳細資訊，請參閱[用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。 規則動作：Block 標籤： `awswaf:managed:aws:atp:aggregate:volumetric:session:failed_login_response:high`和 `awswaf:managed:aws:atp:VolumetricSessionFailedLoginResponseHigh`  規則群組也會將下列相關標籤套用至請求，而沒有任何相關聯的動作。所有計數都適用於 30 分鐘的時段。`awswaf:managed:aws:atp:aggregate:volumetric:session:failed_login_response:medium`對於超過 5 個失敗的請求，`awswaf:managed:aws:atp:aggregate:volumetric:session:failed_login_response:low`對於超過 1 個失敗的請求，`awswaf:managed:aws:atp:aggregate:volumetric:session:successful_login_response:high`對於超過 10 個成功的請求，`awswaf:managed:aws:atp:aggregate:volumetric:session:successful_login_response:medium`對於超過 5 個成功的請求，以及`awswaf:managed:aws:atp:aggregate:volumetric:session:successful_login_response:low`對於超過 1 個成功的請求。  | 

# AWS WAF 機器人控制規則群組
機器人控制規則群組AI 代理器 Bot Control 受管規則群組的新 Web 身分驗證標籤。

Bot Control 受管規則群組現在支援 Web Bot Authentication (WBA) 作為存取 CloudFront 分佈的機器人和 AI 代理器的密碼編譯驗證方法。此功能可讓合法 AI 爬蟲程式和代理程式證明其身分，而不需要傳統的挑戰回應機制。Bot Control 受管規則群組已移除請求 CSP 的訊號標籤

Bot Control 受管規則群組已移除指示雲端服務提供者 (CSP) 的訊號標籤。請求 CSP 的機器人控制受管規則群組訊號標籤

Bot Control 受管規則群組訊號標籤包含指出雲端服務提供者 (CSP) 的標籤。Bot Control 受管規則群組中的新目標防護層級

Bot Control 受管規則群組現在提供額外的目標規則，用於偵測和緩解複雜的機器人。此保護層級需額外付費。

本節說明 Bot Control 受管規則群組的功能。

VendorName：`AWS`、Name：`AWSManagedRulesBotControlRuleSet`、WCU：50

**注意**  
本文件涵蓋此受管規則群組的最新靜態版本版本。我們會在 的 changelog 日誌中報告版本變更[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)。如需其他版本的資訊，請使用 API 命令 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)。  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要為機器人控制請求新的機器人分類，或需要此處未涵蓋的其他資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

Bot Control 受管規則群組提供規則來管理來自機器人的請求。機器人可能會消耗過多的資源、扭曲業務指標、造成停機時間，以及執行惡意活動。

## 保護層級
保護層級

Bot Control 受管規則群組提供兩種層級的保護，您可以從中選擇：
+ **常見** – 偵測各種自我識別機器人，例如 Web 抓取架構、搜尋引擎和自動化瀏覽器。此層級的機器人控制保護會使用傳統機器人偵測技術來識別常見的機器人，例如靜態請求資料分析。這些規則會標記來自這些機器人的流量，並封鎖他們無法驗證的流量。
+ **目標型** – 包含共同層級的保護，並為無法自我識別的複雜機器人新增目標型偵測。針對性保護會使用速率限制和 CAPTCHA 和背景瀏覽器挑戰的組合來緩解機器人活動。
  + **`TGT_`** – 提供目標保護的規則具有以 開頭的名稱`TGT_`。所有目標防護都使用瀏覽器查詢、指紋和行為啟發式等偵測技術來識別錯誤的機器人流量。
  + **`TGT_ML_`** – 使用機器學習的目標保護規則具有以 開頭的名稱`TGT_ML_`。這些規則使用網站流量統計資料的自動化機器學習分析來偵測指示分散式、協調機器人活動的異常行為。 AWS WAF 會分析網站流量的統計資料，例如時間戳記、瀏覽器特性和先前造訪的 URL，以改善 Bot Control 機器學習模型。預設會啟用機器學習功能，但您可以在規則群組組態中停用這些功能。停用機器學習時， AWS WAF 不會評估這些規則。

目標保護層級和速率 AWS WAF 型規則陳述式都提供速率限制。如需兩個選項的比較，請參閱 [速率型規則和目標機器人控制規則中速率限制的選項](waf-rate-limiting-options.md)。

## 使用此規則群組的考量事項
使用此規則群組

此規則群組是 中智慧型威脅防禦保護的一部分 AWS WAF。如需相關資訊，請參閱[中的智慧型威脅防禦 AWS WAF](waf-managed-protections.md)。

**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

若要降低您的成本，並確保您視需要管理 Web 流量，請根據 中的指引使用此規則群組[中的智慧型威脅防禦最佳實務 AWS WAF](waf-managed-protections-best-practices.md)。

我們會定期更新目標防護層級 ML 型規則的機器學習 (ML) 模型，以改善機器人預測。ML 型規則的名稱開頭為 `TGT_ML_`。如果您注意到這些規則所做的機器人預測突然發生重大變更，請透過您的客戶經理聯絡我們，或在 [AWS 支援 Center](https://console.aws.amazon.com/support/home#/) 開立案例。

## 此規則群組新增的標籤
此規則群組新增的標籤

此受管規則群組會將標籤新增至其評估的 Web 請求，這些請求可供保護套件 (Web ACL) AWS WAF 中此規則群組之後執行的規則使用。 也會將標籤記錄到 Amazon CloudWatch 指標。如需標籤和標籤指標的一般資訊，請參閱 [Web 請求標籤](waf-labels.md)和 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。

### 字符標籤
字符標籤

此規則群組使用 AWS WAF 字符管理，根據其 AWS WAF 字符的狀態來檢查和標記 Web 請求。 AWS WAF 使用字符進行用戶端工作階段追蹤和驗證。

如需字符和字符管理的資訊，請參閱 [用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。

如需此處所述的標籤元件資訊，請參閱 [中的標籤語法和命名需求 AWS WAF](waf-rule-label-requirements.md)。

**用戶端工作階段標籤**  
標籤`awswaf:managed:token:id:identifier`包含 AWS WAF 字符管理用來識別用戶端工作階段的唯一識別符。如果用戶端取得新的字符，例如在捨棄正在使用的字符之後，識別符可能會變更。

**注意**  
AWS WAF 不會報告此標籤的 Amazon CloudWatch 指標。

**瀏覽器指紋標籤**  
標籤`awswaf:managed:token:fingerprint:fingerprint-identifier`包含強大的瀏覽器指紋識別符，權 AWS WAF 杖管理會從各種用戶端瀏覽器訊號運算。此識別符在多次字符擷取嘗試中保持不變。指紋識別符對單一用戶端來說不是唯一的。

**注意**  
AWS WAF 不會報告此標籤的 Amazon CloudWatch 指標。

**字符狀態標籤：標籤命名空間字首**  
字符狀態標籤會報告字符的狀態，以及其中包含的挑戰和 CAPTCHA 資訊。

每個字符狀態標籤都以下列其中一個命名空間字首開頭：
+ `awswaf:managed:token:` – 用來報告字符的一般狀態，以及報告字符挑戰資訊的狀態。
+ `awswaf:managed:captcha:` – 用來報告字符 CAPTCHA 資訊的狀態。

**字符狀態標籤：標籤名稱**  
在字首後面，標籤的其餘部分提供詳細的字符狀態資訊：
+ `accepted` – 請求字符存在且包含下列項目：
  + 有效的挑戰或 CAPTCHA 解決方案。
  + 未過期的挑戰或 CAPTCHA 時間戳記。
  + 適用於保護套件的網域規格 (Web ACL)。

  範例：標籤`awswaf:managed:token:accepted`指出 Web 請求的權杖具有有效的挑戰解決方案、未過期的挑戰時間戳記，以及有效的網域。
+ `rejected` – 請求字符存在，但不符合接受條件。

  除了拒絕的標籤之外，字符管理還會新增自訂標籤命名空間和名稱，以指出原因。
  + `rejected:not_solved` – 字符缺少挑戰或 CAPTCHA 解決方案。
  + `rejected:expired` – 權杖的挑戰或 CAPTCHA 時間戳記已過期，根據您的保護套件 (Web ACL) 設定的權杖豁免時間而定。
  + `rejected:domain_mismatch` – 字符的網域不符合您的保護套件 (Web ACL) 字符網域組態。
  + `rejected:invalid` – AWS WAF 無法讀取指定的字符。

  範例：標籤 `awswaf:managed:captcha:rejected`和 `awswaf:managed:captcha:rejected:expired`一起表示請求沒有有效的 CAPTCHA 解決方法，因為字符中的 CAPTCHA 時間戳記已超過保護套件 (Web ACL) 中設定的 CAPTCHA 字符豁免時間。
+ `absent` – 請求沒有字符或字符管理器無法讀取。

  範例：標籤`awswaf:managed:captcha:absent`指出請求沒有字符。

### 機器人控制標籤
機器人控制標籤

Bot Control 受管規則群組會產生具有命名空間字首的標籤，`awswaf:managed:aws:bot-control:`後面接著自訂命名空間和標籤名稱。規則群組可能會將多個標籤新增至請求。

每個標籤都會反映 Bot Control 規則調查結果：
+ `awswaf:managed:aws:bot-control:bot:` – 與請求相關聯之機器人的相關資訊。
  + `awswaf:managed:aws:bot-control:bot:name:<name>` – 機器人名稱，如果有的話，例如，自訂命名空間 `bot:name:slurp`、 `bot:name:googlebot`和 `bot:name:pocket_parser`。
  + `awswaf:managed:aws:bot-control:bot:name:<rfc_name>` – 使用 WBA 簽章中的 RFC 產品字符識別特定機器人。這用於為特定機器人建立精細的自訂規則。例如，允許 `GoogleBot` 但速率限制其他爬蟲程式。
  + `awswaf:managed:aws:bot-control:bot:category:<category>` – 機器人的類別，如 和 AWS WAF`bot:category:search_engine` 所定義`bot:category:content_fetcher`。
  + `awswaf:managed:aws:bot-control:bot:account:<hash>` –僅適用於使用 Amazon Bedrock Agent Core 的機器人。此標籤包含不透明雜湊，可唯一識別擁有代理 AWS 的帳戶。使用此標籤來建立自訂規則，以允許、封鎖或限制特定 AWS 帳戶的機器人，而不會在日誌中公開帳戶 IDs。
  + `awswaf:managed:aws:bot-control:bot:web_bot_auth:<status>` – 在對請求執行 Web Bot Authentication (WBA) 驗證時套用。狀態尾碼表示驗證結果：
    + `web_bot_auth:verified` – 簽章已成功針對公有金鑰目錄進行驗證
    + `web_bot_auth:invalid` – 簽章存在，但密碼編譯驗證失敗
    + `web_bot_auth:expired` – Signature 使用過期的加密金鑰
    + `web_bot_auth:unknown_bot` – 在金鑰目錄中找不到金鑰 ID
**注意**  
當`web_bot_auth:verified`標籤存在時， `CategoryAI`和 `TGT_TokenAbsent`規則不相符，允許已驗證的 WBA 主機繼續。
  + `awswaf:managed:aws:bot-control:bot:organization:<organization>` – 機器人的發佈者，例如 `bot:organization:google`。
  + `awswaf:managed:aws:bot-control:bot:verified` – 用來指示識別自己且 Bot Control 能夠驗證的機器人。這用於常見的所需機器人，當與類別標籤如 `bot:category:search_engine`或名稱標籤如 結合使用時非常有用`bot:name:googlebot`。
**注意**  
Bot Control 會使用來自 Web 請求原始伺服器的 IP 地址，協助判斷機器人是否已驗證。您無法將其設定為使用 AWS WAF 轉送的 IP 組態，以檢查不同的 IP 地址來源。如果您已驗證透過代理或負載平衡器路由的機器人，您可以新增在 Bot Control 規則群組之前執行的規則，以協助處理此問題。設定您的新規則以使用轉送的 IP 地址，並明確允許來自已驗證機器人的請求。如需使用轉送 IP 地址的詳細資訊，請參閱 [在 中使用轉送的 IP 地址 AWS WAF](waf-rule-statement-forwarded-ip-address.md)。
  + `awswaf:managed:aws:bot-control:bot:vendor:<vendor_name>` – 識別已驗證機器人的廠商或運算子。目前僅適用於 Agentcore。使用 建立自訂規則，允許或封鎖特定機器人廠商，無論個別機器人名稱為何。
  + `awswaf:managed:aws:bot-control:bot:user_triggered:verified` – 用來表示類似於已驗證機器人的機器人，但最終使用者可能會直接叫用。機器人控制規則會將此類別的機器人視為未驗證的機器人。
  + `awswaf:managed:aws:bot-control:bot:developer_platform:verified` – 用來表示類似於已驗證機器人的機器人，但開發人員平台用於指令碼，例如 Google Apps Script。機器人控制規則會將此類別的機器人視為未驗證的機器人。
  + `awswaf:managed:aws:bot-control:bot:unverified` – 用來指示識別自己的機器人，以便將其命名和分類，但不會發佈可用於獨立驗證其身分的資訊。這些類型的機器人簽章可能是偽造的，因此會被視為未驗證。
+ `awswaf:managed:aws:bot-control:targeted:<additional-details> ` – 用於 Bot Control 目標保護特有的標籤。
+ `awswaf:managed:aws:bot-control:signal:<signal-details>` 和 `awswaf:managed:aws:bot-control:targeted:signal:<signal-details> `– 用於在某些情況下提供有關請求的其他資訊。

  以下是訊號標籤的範例。這不是詳盡的清單：
  + `awswaf:managed:aws:bot-control:signal:cloud_service_provider:<CSP>` – 指出請求的雲端服務提供者 (CSP)。CSPs 的範例包括 `aws` Amazon Web Services 基礎設施、`gcp`Google Cloud Platform (GCP) 基礎設施、`azure`Microsoft Azure 雲端服務和 Oracle Cloud `oracle` 服務。
  + `awswaf:managed:aws:bot-control:targeted:signal:browser_automation_extension` – 表示偵測協助自動化的瀏覽器延伸模組，例如 Selenium IDE。

    每當使用者安裝了這種類型的延伸模組時，就會新增此標籤，即使使用者未主動使用也一樣。如果您為此實作標籤比對規則，請注意在規則邏輯和動作設定中出現誤報的可能性。例如，您可以使用 CAPTCHA動作，而不是 Block，或者您可以將此標籤比對與其他標籤比對結合，以提高您使用自動化的信心。
  + `awswaf:managed:aws:bot-control:signal:automated_browser` – 表示請求包含用戶端瀏覽器可能已自動化的指標。
  + `awswaf:managed:aws:bot-control:targeted:signal:automated_browser` – 表示請求的 AWS WAF 權杖包含用戶端瀏覽器可能為自動化的指標。

您可以透過 API 呼叫 來擷取規則群組的所有標籤`DescribeManagedRuleGroup`。這些標籤會列在回應的 `AvailableLabels` 屬性中。

Bot Control 受管規則群組會將標籤套用至一組通常允許的可驗證機器人。規則群組不會封鎖這些已驗證的機器人。如果需要，您可以編寫使用 Bot Control 受管規則群組所套用標籤的自訂規則來封鎖它們或其中一部分。如需此 和範例的詳細資訊，請參閱 [AWS WAF 機器人控制](waf-bot-control.md)。

## 機器人控制規則清單
規則清單

本節列出機器人控制規則。

**注意**  
本文件涵蓋此受管規則群組的最新版本。我們會在 的 changelog 日誌中報告版本變更[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)。如需其他版本的資訊，請使用 API 命令 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)。  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要為機器人控制請求新的機器人分類，或需要此處未涵蓋的其他資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。


| 規則名稱 | Description | 
| --- | --- | 
| CategoryAdvertising |  檢查用於廣告目的的機器人。例如，您可以使用需要以程式設計方式存取網站的第三方廣告服務。 規則動作，僅適用於未驗證的機器人： Block 標籤： `awswaf:managed:aws:bot-control:bot:category:advertising`和 `awswaf:managed:aws:bot-control:CategoryAdvertising`  對於已驗證的機器人，規則群組不符合此規則，且不採取任何動作，但會新增機器人名稱和類別標籤加上標籤 `awswaf:managed:aws:bot-control:bot:verified`。  | 
| CategoryArchiver |  檢查用於封存目的的機器人。這些機器人會爬取 Web 並擷取內容，以建立封存。 規則動作，僅適用於未驗證的機器人： Block 標籤： `awswaf:managed:aws:bot-control:bot:category:archiver`和 `awswaf:managed:aws:bot-control:CategoryArchiver`  對於已驗證的機器人，規則群組不符合此規則，且不採取任何動作，但會新增機器人名稱和類別標籤加上標籤 `awswaf:managed:aws:bot-control:bot:verified`。  | 
| CategoryContentFetcher |  檢查代表使用者造訪應用程式網站的機器人、擷取 RSS 摘要等內容，或驗證或驗證您的內容。 規則動作，僅適用於未驗證的機器人： Block 標籤： `awswaf:managed:aws:bot-control:bot:category:content_fetcher`和 `awswaf:managed:aws:bot-control:CategoryContentFetcher`  對於已驗證的機器人，規則群組不符合此規則，且不採取任何動作，但會新增機器人名稱和類別標籤加上標籤 `awswaf:managed:aws:bot-control:bot:verified`。  | 
| CategoryEmailClient |  檢查檢查電子郵件中指向應用程式網站的連結的機器人。這可能包括由企業和電子郵件供應商執行的機器人，以驗證電子郵件中的連結並標記可疑的電子郵件。 規則動作，僅適用於未驗證的機器人： Block 標籤： `awswaf:managed:aws:bot-control:bot:category:email_client`和 `awswaf:managed:aws:bot-control:CategoryEmailClient`  對於已驗證的機器人，規則群組不符合此規則，且不採取任何動作，但會新增機器人名稱和類別標籤加上標籤 `awswaf:managed:aws:bot-control:bot:verified`。  | 
| CategoryHttpLibrary |  檢查機器人從各種程式設計語言的 HTTP 程式庫產生的請求。這些可能包括您選擇允許或監控的 API 請求。 規則動作，僅適用於未驗證的機器人： Block 標籤： `awswaf:managed:aws:bot-control:bot:category:http_library`和 `awswaf:managed:aws:bot-control:CategoryHttpLibrary`  對於已驗證的機器人，規則群組不符合此規則，且不採取任何動作，但會新增機器人名稱和類別標籤加上標籤 `awswaf:managed:aws:bot-control:bot:verified`。  | 
| CategoryLinkChecker |  檢查檢查是否有機器人檢查連結是否損壞。 規則動作，僅適用於未驗證的機器人： Block 標籤： `awswaf:managed:aws:bot-control:bot:category:link_checker`和 `awswaf:managed:aws:bot-control:CategoryLinkChecker`  對於已驗證的機器人，規則群組不符合此規則，且不採取任何動作，但會新增機器人名稱和類別標籤加上標籤 `awswaf:managed:aws:bot-control:bot:verified`。  | 
| CategoryMiscellaneous |  檢查其他不符合其他類別的機器人。 規則動作，僅適用於未驗證的機器人： Block 標籤： `awswaf:managed:aws:bot-control:bot:category:miscellaneous`和 `awswaf:managed:aws:bot-control:CategoryMiscellaneous`  對於已驗證的機器人，規則群組不符合此規則，且不採取任何動作，但會新增機器人名稱和類別標籤加上標籤 `awswaf:managed:aws:bot-control:bot:verified`。  | 
| CategoryMonitoring |  檢查用於監控目的的機器人。例如，您可以使用機器人監控服務來定期 ping 應用程式網站，以監控效能和運作時間等項目。 規則動作，僅適用於未驗證的機器人： Block 標籤： `awswaf:managed:aws:bot-control:bot:category:monitoring`和 `awswaf:managed:aws:bot-control:CategoryMonitoring`  對於已驗證的機器人，規則群組不符合此規則，且不採取任何動作，但會新增機器人名稱和類別標籤加上標籤 `awswaf:managed:aws:bot-control:bot:verified`。  | 
| CategoryPagePreview |  在簡訊平台、社交媒體或協同合作工具上共用內容時，檢查產生頁面預覽和連結預覽的機器人。 規則動作，僅適用於未驗證的機器人： Block 標籤： `awswaf:managed:aws:bot-control:bot:category:page_preview`和 `awswaf:managed:aws:bot-control:CategoryPagePreview`  對於已驗證的機器人，規則群組不符合此規則，且不採取任何動作，但會新增機器人名稱和類別標籤加上標籤 `awswaf:managed:aws:bot-control:bot:verified`。  | 
| CategoryScrapingFramework |  檢查來自 Web 抓取架構的機器人，這些架構用於自動從網站爬取和擷取內容。 規則動作，僅適用於未驗證的機器人： Block 標籤： `awswaf:managed:aws:bot-control:bot:category:scraping_framework`和 `awswaf:managed:aws:bot-control:CategoryScrapingFramework`  對於已驗證的機器人，規則群組不符合此規則，且不採取任何動作，但會新增機器人名稱和類別標籤加上標籤 `awswaf:managed:aws:bot-control:bot:verified`。  | 
| CategorySearchEngine |  檢查搜尋引擎機器人，哪些網路爬取網站編製內容索引，並使資訊可用於搜尋引擎結果。 規則動作，僅適用於未驗證的機器人： Block 標籤： `awswaf:managed:aws:bot-control:bot:category:search_engine`和 `awswaf:managed:aws:bot-control:CategorySearchEngine`  對於已驗證的機器人，規則群組不符合此規則，且不採取任何動作，但會新增機器人名稱和類別標籤加上標籤 `awswaf:managed:aws:bot-control:bot:verified`。  | 
| CategorySecurity |  檢查掃描 Web 應用程式是否有漏洞或執行安全稽核的機器人。例如，您可以使用第三方安全廠商來掃描、監控或稽核 Web 應用程式的安全性。 規則動作，僅適用於未驗證的機器人： Block 標籤： `awswaf:managed:aws:bot-control:bot:category:security`和 `awswaf:managed:aws:bot-control:CategorySecurity`  對於已驗證的機器人，規則群組不符合此規則，且不採取任何動作，但會新增機器人名稱和類別標籤加上標籤 `awswaf:managed:aws:bot-control:bot:verified`。  | 
| CategorySeo |  檢查用於搜尋引擎最佳化的機器人。例如，您可以使用搜尋引擎工具來編目您的網站，以協助您改善搜尋引擎排名。 規則動作，僅適用於未驗證的機器人： Block 標籤： `awswaf:managed:aws:bot-control:bot:category:seo`和 `awswaf:managed:aws:bot-control:CategorySeo`  對於已驗證的機器人，規則群組不符合此規則，且不採取任何動作，但會新增機器人名稱和類別標籤加上標籤 `awswaf:managed:aws:bot-control:bot:verified`。  | 
| CategorySocialMedia |  檢查社交媒體平台所使用的機器人，以便在使用者共用您的內容時提供內容摘要。 規則動作，僅適用於未驗證的機器人： Block 標籤： `awswaf:managed:aws:bot-control:bot:category:social_media`和 `awswaf:managed:aws:bot-control:CategorySocialMedia`  對於已驗證的機器人，規則群組不符合此規則，且不採取任何動作，但會新增機器人名稱和類別標籤加上標籤 `awswaf:managed:aws:bot-control:bot:verified`。  | 
| CategoryWebhooks |  檢查透過 HTTP 回呼將自動通知和資料更新從一個應用程式交付到另一個應用程式的機器人。 規則動作，僅適用於未驗證的機器人： Block 標籤： `awswaf:managed:aws:bot-control:bot:category:webhooks`和 `awswaf:managed:aws:bot-control:CategoryWebhooks`  對於已驗證的機器人，規則群組不符合此規則，且不採取任何動作，但會新增機器人名稱和類別標籤加上標籤 `awswaf:managed:aws:bot-control:bot:verified`。  | 
| CategoryAI |  檢查人工智慧 (AI) 機器人。 此規則會將 動作套用至所有相符項目，無論機器人是否經過驗證。 規則動作：Block 標籤： `awswaf:managed:aws:bot-control:bot:category:ai`和 `awswaf:managed:aws:bot-control:CategoryAI`  對於已驗證的機器人，規則群組符合此規則並採取 動作。它還會新增機器人名稱和類別標籤、規則標籤，以及標籤 `awswaf:managed:aws:bot-control:bot:verified`。  | 
| SignalAutomatedBrowser |  檢查未來自已驗證機器人的請求，是否有可能自動化用戶端瀏覽器的指標。自動化瀏覽器可用於測試或抓取。例如，您可以使用這些類型的瀏覽器來監控或驗證您的應用程式網站。 規則動作：Block 標籤： `awswaf:managed:aws:bot-control:signal:automated_browser`和 `awswaf:managed:aws:bot-control:SignalAutomatedBrowser`  對於已驗證的機器人，規則群組不符合此規則，且不會套用任何訊號或規則標籤。  | 
| SignalKnownBotDataCenter |  檢查未來自已驗證機器人的請求，是否有通常由機器人使用的資料中心指標。 規則動作：Block 標籤： `awswaf:managed:aws:bot-control:signal:known_bot_data_center`和 `awswaf:managed:aws:bot-control:SignalKnownBotDataCenter`  對於已驗證的機器人，規則群組不符合此規則，且不會套用任何訊號或規則標籤。  | 
| SignalNonBrowserUserAgent |  檢查不是來自已驗證機器人的請求，是否有似乎不是來自 Web 瀏覽器的使用者代理程式字串。此類別可以包含 API 請求。 規則動作：Block 標籤： `awswaf:managed:aws:bot-control:signal:non_browser_user_agent`和 `awswaf:managed:aws:bot-control:SignalNonBrowserUserAgent`  對於已驗證的機器人，規則群組不符合此規則，且不會套用任何訊號或規則標籤。  | 
| TGT\$1VolumetricIpTokenAbsent |  檢查過去 5 分鐘內未來自已驗證機器人且來自單一用戶端的 5 個或更多請求的請求，這些請求不包含有效的挑戰字符。如需字符的相關資訊，請參閱 [用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。 如果來自相同用戶端的請求最近缺少字符，則此規則可能符合具有字符的請求。 此規則套用的閾值可能因延遲而略有不同。  此規則處理遺失字符的方式與字符標籤不同：`awswaf:managed:token:absent`。字符標籤會標記沒有字符的個別請求。此規則會維護每個用戶端 IP 缺少權杖的請求計數，並與超過限制的用戶端相符。 規則動作：Challenge 標籤： `awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:ip:token_absent`和 `awswaf:managed:aws:bot-control:TGT_VolumetricIpTokenAbsent`   | 
| TGT\$1TokenAbsent |  檢查未來自未包含有效挑戰字符之已驗證機器人的請求。如需字符的相關資訊，請參閱 [用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。 規則動作：Count 標籤： `awswaf:managed:aws:bot-control:TGT_TokenAbsent`  | 
| TGT\$1VolumetricSession |  檢查是否有異常大量的請求，這些請求不是來自 5 分鐘內來自單一用戶端工作階段的已驗證機器人。評估是根據與使用歷史流量模式 AWS WAF 維護之標準容積基準的比較。 此檢查僅適用於 Web 請求具有字符的情況。權杖會由應用程式整合 SDKs 和規則動作 CAPTCHA和 新增至請求Challenge。如需詳細資訊，請參閱[用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。  此規則在您啟用後可能需要 5 分鐘才會生效。Bot Control 透過比較目前的流量與 AWS WAF 運算的流量基準來識別 Web 流量中的異常行為。  規則動作：CAPTCHA 標籤： `awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:high`和 `awswaf:managed:aws:bot-control:TGT_VolumetricSession`  規則群組會將下列標籤套用至高於最低閾值的中等磁碟區和較低磁碟區請求。對於這些層級，無論用戶端是否已驗證： `awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:medium`和 ，規則都不會採取任何動作`awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:low`。  | 
| TGT\$1VolumetricSessionMaximum |  檢查是否有異常大量的請求，這些請求不是來自 5 分鐘內來自單一用戶端工作階段的已驗證機器人。評估是根據與使用歷史流量模式 AWS WAF 維護之標準容積基準的比較。 此規則表示評估的最大可信度。 此檢查僅適用於 Web 請求具有字符的情況。權杖會由應用程式整合 SDKs 和規則動作 CAPTCHA和 新增至請求Challenge。如需詳細資訊，請參閱[用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。  此規則在您啟用後可能需要 5 分鐘才會生效。Bot Control 透過比較目前的流量與 AWS WAF 運算的流量基準來識別 Web 流量中的異常行為。  規則動作：Block 標籤： `awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:maximum`和 `awswaf:managed:aws:bot-control:TGT_VolumetricSessionMaximum`   | 
| TGT\$1SignalAutomatedBrowser |  檢查未來自已驗證機器人之請求的字符，是否有可能自動化用戶端瀏覽器的指標。如需詳細資訊，請參閱[AWS WAF 字符特性](waf-tokens-details.md)。 此檢查僅適用於 Web 請求具有字符的情況。權杖會由應用程式整合 SDKs 和規則動作 CAPTCHA和 新增至請求Challenge。如需詳細資訊，請參閱[用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。 規則動作：CAPTCHA 標籤： `awswaf:managed:aws:bot-control:targeted:signal:automated_browser`和 `awswaf:managed:aws:bot-control:TGT_SignalAutomatedBrowser`   | 
| TGT\$1SignalBrowserAutomationExtension |  檢查不是來自已驗證機器人的請求，這些機器人指出存在協助自動化的瀏覽器延伸模組，例如 Selenium IDE。每當使用者安裝這種類型的延伸模組時，即使使用者未主動使用，此規則都會相符。 此檢查僅適用於 Web 請求具有字符的情況。權杖會由應用程式整合 SDKs 和規則動作 CAPTCHA和 新增至請求Challenge。如需詳細資訊，請參閱[用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。 規則動作：CAPTCHA 標籤： `awswaf:managed:aws:bot-control:targeted:signal:browser_automation_extension`和 `awswaf:managed:aws:bot-control:TGT_SignalBrowserAutomationExtension`  | 
| TGT\$1SignalBrowserInconsistency |  檢查來自已驗證機器人的請求是否有不一致的瀏覽器查詢資料。如需詳細資訊，請參閱[AWS WAF 字符特性](waf-tokens-details.md)。 此檢查僅適用於 Web 請求具有字符的情況。權杖會由應用程式整合 SDKs 和規則動作 CAPTCHA和 新增至請求Challenge。如需詳細資訊，請參閱[用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。 規則動作：CAPTCHA 標籤： `awswaf:managed:aws:bot-control:targeted:signal:browser_inconsistency`和 `awswaf:managed:aws:bot-control:TGT_SignalBrowserInconsistency`   | 
|  TGT\$1ML\$1CoordinatedActivityLow, TGT\$1ML\$1CoordinatedActivityMedium, TGT\$1ML\$1CoordinatedActivityHigh  |  檢查來自已驗證機器人的請求是否有與分散式、協調機器人活動一致的異常行為。規則層級表示一組請求是協同攻擊參與者的可信度層級。  只有在規則群組設定為使用機器學習 (ML) 時，才會執行這些規則。如需設定此選項的詳細資訊，請參閱 [將 AWS WAF Bot Control 受管規則群組新增至 Web ACL](waf-bot-control-rg-using.md)。   這些規則套用的閾值可能因延遲而略有不同。在套用規則動作之前，有些請求可能會使其超過限制。  AWS WAF 透過網站流量統計資料的機器學習分析來執行此檢查。 會每幾分鐘 AWS WAF 分析一次 Web 流量，並最佳化分析，以偵測分散在許多 IP 地址的低強度、長時間機器人。 這些規則可能會在極少數的請求上相符，然後再判斷是否正在進行協調式攻擊。因此，如果您只看到一兩個相符項目，則結果可能是誤報。不過，如果您看到這些規則出現許多相符項目，則表示您可能正遭受協調式攻擊。  在您使用 ML 選項啟用 Bot Control 目標規則之後，這些規則最多可能需要 24 小時才會生效。Bot Control 會將目前的流量與已計算的 AWS WAF 流量基準進行比較，以識別 Web 流量中的異常行為。當您使用 Bot Control 目標規則搭配 ML 選項時， AWS WAF 只會計算基準，而且最多可能需要 24 小時才能建立有意義的基準。  我們會定期更新這些規則的機器學習模型，以改善機器人預測。如果您注意到這些規則所做的機器人預測突然發生重大變更，請聯絡您的客戶經理或在 [AWS 支援 Center](https://console.aws.amazon.com/support/home#/) 開立案例。 規則動作： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-bot.html) 標籤： `awswaf:managed:aws:bot-control:targeted:aggregate:coordinated_activity:low\|medium\|high`和 `awswaf:managed:aws:bot-control:TGT_ML_CoordinatedActivityLow\|Medium\|High`   | 
|  TGT\$1TokenReuseIpLow, TGT\$1TokenReuseIpMedium, TGT\$1TokenReuseIpHigh  |  檢查未來自已驗證機器人的請求，以在過去 5 分鐘內在多個 IPs 中使用單一字符。每個層級都有不同 IPs 的數量限制： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-bot.html)  這些規則套用的閾值可能因延遲而略有不同。在套用規則動作之前，少數請求可能會使其超過限制。  規則動作： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-bot.html) 標籤： `awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:token_reuse:ip:low\|medium\|high`和 `awswaf:managed:aws:bot-control:TGT_TokenReuseIpLow\|Medium\|High`   | 
|  TGT\$1TokenReuseCountryLow, TGT\$1TokenReuseCountryMedium, TGT\$1TokenReuseCountryHigh  |  檢查未來自已驗證機器人的請求，以在過去 5 分鐘內跨多個國家使用單一字符。每個層級都有不同國家/地區的數量限制： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-bot.html)  這些規則套用的閾值可能因延遲而略有不同。在套用規則動作之前，少數請求可能會使其超過限制。  規則動作： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-bot.html) 標籤： `awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:token_reuse:country:low\|medium\|high`和 `awswaf:managed:aws:bot-control:TGT_TokenReuseCountryLow\|Medium\|High`   | 
|  TGT\$1TokenReuseAsnLow, TGT\$1TokenReuseAsnMedium, TGT\$1TokenReuseAsnHigh  |  檢查未來自已驗證機器人的請求，是否在過去 5 分鐘內跨多個聯網自動系統編號 (ASNs) 使用單一字符。每個層級都有不同 ASNs 的數量限制： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-bot.html)  這些規則套用的閾值可能因延遲而略有不同。在套用規則動作之前，少數請求可能會使其超過限制。  規則動作： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-bot.html) 標籤： `awswaf:managed:aws:bot-control:targeted:aggregate:volumetric:session:token_reuse:asn:low\|medium\|high`和 `awswaf:managed:aws:bot-control:TGT_TokenReuseAsnLow\|Medium\|High`   | 

# AWS WAF 分散式阻斷服務 (DDoS) 預防規則群組
反 DDoS 規則群組的新 Anti-DDoS 受管規則群組 AWS WAF

`AWSManagedRulesAntiDDoSRuleSet` 透過偵測、標記和挑戰疑似參與 DDoS 攻擊的請求來保護您的資源。

本節說明 AWS WAF 受管規則群組，用於防範分散式阻斷服務 (DDoS) 攻擊。

VendorName：`AWS`、Name：`AWSManagedRulesAntiDDoSRuleSet`、WCU：50

**注意**  
本文件涵蓋此受管規則群組的最新版本。我們會在 的 changelog 日誌中報告版本變更[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)。如需其他版本的資訊，請使用 API 命令 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)。  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要比此處更多的資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

反 DDoS 受管規則群組提供規則，可偵測和管理正在參與或可能正在參與 DDoS 攻擊的請求。此外，規則群組會標記它在可能事件期間評估的所有請求。

## 使用此規則群組的考量事項
使用此規則群組

此規則群組為進入 DDoS 攻擊中資源的 Web 請求提供軟式和硬式緩解。若要偵測不同的威脅層級，您可以將這兩種緩解類型的敏感度調整為高、中或低可疑層級。
+ **軟性緩解** – 規則群組可以傳送靜音瀏覽器挑戰，以回應可處理挑戰間質的請求。如需執行挑戰需求的相關資訊，請參閱 [CAPTCHA 和 Challenge動作行為](waf-captcha-and-challenge-actions.md)。
+ **硬性緩解** – 規則群組可以完全封鎖請求。

如需規則群組如何運作以及如何設定規則群組的詳細資訊，請參閱 [使用反 DDoS 受管規則群組的進階 AWS WAF 反 DDoS 保護](waf-anti-ddos-advanced.md)。

**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

此規則群組是 中智慧型威脅緩解保護的一部分 AWS WAF。如需相關資訊，請參閱[中的智慧型威脅防禦 AWS WAF](waf-managed-protections.md)。

為了將成本降至最低並最佳化流量管理，請根據最佳實務準則使用此規則群組。請參閱 [中的智慧型威脅防禦最佳實務 AWS WAF](waf-managed-protections-best-practices.md)。

## 此規則群組新增的標籤
此規則群組新增的標籤

此受管規則群組會將標籤新增至其評估的 Web 請求，這些請求可供保護套件 (Web ACL) AWS WAF 中此規則群組之後執行的規則使用。 也會將標籤記錄到 Amazon CloudWatch 指標。如需標籤和標籤指標的一般資訊，請參閱 [Web 請求標籤](waf-labels.md)和 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。

### 字符標籤
字符標籤

此規則群組使用 AWS WAF 字符管理，根據其 AWS WAF 字符的狀態檢查和標記 Web 請求。 AWS WAF 使用字符進行用戶端工作階段追蹤和驗證。

如需字符和字符管理的資訊，請參閱 [用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。

如需此處所述的標籤元件資訊，請參閱 [中的標籤語法和命名需求 AWS WAF](waf-rule-label-requirements.md)。

**用戶端工作階段標籤**  
標籤`awswaf:managed:token:id:identifier`包含 AWS WAF 字符管理用來識別用戶端工作階段的唯一識別符。如果用戶端取得新的字符，例如在捨棄正在使用的字符之後，識別符可能會變更。

**注意**  
AWS WAF 不會報告此標籤的 Amazon CloudWatch 指標。

**瀏覽器指紋標籤**  
標籤`awswaf:managed:token:fingerprint:fingerprint-identifier`包含強大的瀏覽器指紋識別符，權 AWS WAF 杖管理會從各種用戶端瀏覽器訊號運算。此識別符在多個字符擷取嘗試中保持不變。指紋識別符對單一用戶端來說不是唯一的。

**注意**  
AWS WAF 不會報告此標籤的 Amazon CloudWatch 指標。

**字符狀態標籤：標籤命名空間字首**  
字符狀態標籤會報告字符的狀態，以及其中包含的挑戰和 CAPTCHA 資訊。

每個字符狀態標籤都以下列其中一個命名空間字首開頭：
+ `awswaf:managed:token:` – 用來報告字符的一般狀態，以及報告字符挑戰資訊的狀態。
+ `awswaf:managed:captcha:` – 用來報告字符 CAPTCHA 資訊的狀態。

**字符狀態標籤：標籤名稱**  
在字首後面，標籤的其餘部分提供詳細的字符狀態資訊：
+ `accepted` – 請求字符存在並包含下列項目：
  + 有效的挑戰或 CAPTCHA 解決方案。
  + 未過期的挑戰或 CAPTCHA 時間戳記。
  + 適用於保護套件 (Web ACL) 的網域規格。

  範例：標籤`awswaf:managed:token:accepted`指出 Web 請求的權杖具有有效的挑戰解決方案、未過期的挑戰時間戳記，以及有效的網域。
+ `rejected` – 請求字符存在，但不符合接受條件。

  除了拒絕的標籤之外，字符管理還會新增自訂標籤命名空間和名稱，以指出原因。
  + `rejected:not_solved` – 字符缺少挑戰或 CAPTCHA 解決方案。
  + `rejected:expired` – 權杖的挑戰或 CAPTCHA 時間戳記已過期，視您的保護套件 (Web ACL) 設定的權杖豁免時間而定。
  + `rejected:domain_mismatch` – 字符的網域不符合您的保護套件 (Web ACL) 字符網域組態。
  + `rejected:invalid` – AWS WAF 無法讀取指定的字符。

  範例：標籤 `awswaf:managed:captcha:rejected`和 `awswaf:managed:captcha:rejected:expired`一起表示請求沒有有效的 CAPTCHA 解決方法，因為字符中的 CAPTCHA 時間戳記已超過保護套件 (Web ACL) 中設定的 CAPTCHA 字符豁免時間。
+ `absent` – 請求沒有字符或字符管理器無法讀取。

  範例：標籤`awswaf:managed:captcha:absent`表示請求沒有字符。

### 反 DDoS 標籤
反 DDoS 標籤

Anti-DDoS 受管規則群組會產生具有命名空間字首的標籤，`awswaf:managed:aws:anti-ddos:`後面接著任何自訂命名空間和標籤名稱。每個標籤都會反映反 DDoS 調查結果的某些層面。

除了個別規則新增的標籤之外，規則群組還可能將下列多個標籤新增至請求。
+ `awswaf:managed:aws:anti-ddos:event-detected` – 表示請求將傳送至受管規則群組偵測到 DDoS 事件的受保護資源。當資源的流量與資源的流量基準有顯著偏差時，受管規則群組會偵測事件。

  規則群組會在資源處於此狀態時，將此標籤新增至資源的每個請求，因此合法流量和攻擊流量會取得此標籤。
+ `awswaf:managed:aws:anti-ddos:ddos-request` – 表示請求來自疑似參與事件的來源。

  除了一般標籤之外，規則群組還會新增下列標籤，指出可信度層級。

  `awswaf:managed:aws:anti-ddos:low-suspicion-ddos-request` – 表示可能的 DDoS 攻擊請求。

  `awswaf:managed:aws:anti-ddos:medium-suspicion-ddos-request` – 表示非常可能的 DDoS 攻擊請求。

  `awswaf:managed:aws:anti-ddos:high-suspicion-ddos-request` – 表示非常可能的 DDoS 攻擊請求。
+ `awswaf:managed:aws:anti-ddos:challengeable-request` – 表示請求 URI 能夠處理Challenge動作。受管規則群組會將此套用至 URI 未豁免的任何請求。如果 URIs符合規則群組的豁免 URI 規則表達式，則會豁免 URI。

  如需可以接受無提示瀏覽器挑戰之請求需求的相關資訊，請參閱 [CAPTCHA 和 Challenge動作行為](waf-captcha-and-challenge-actions.md)。

您可以透過 API 呼叫 來擷取規則群組的所有標籤`DescribeManagedRuleGroup`。這些標籤會列在回應的 `AvailableLabels` 屬性中。

Anti-DDoS 受管規則群組會將標籤套用至請求，但不一定會對其採取行動。請求管理取決於規則群組判斷是否參與攻擊的可信度。如果需要，您可以新增在規則群組之後執行的標籤比對規則，來管理規則群組標籤的請求。如需此 和範例的詳細資訊，請參閱 [AWS WAF 分散式阻斷服務 (DDoS) 預防](waf-anti-ddos.md)。

## 反 DDoS 規則清單
規則清單

本節列出反 DDoS 規則。

 

**注意**  
本文件涵蓋此受管規則群組的最新版本。我們會在 的 changelog 日誌中報告版本變更[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)。如需其他版本的資訊，請使用 API 命令 [DescribeManagedRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_DescribeManagedRuleGroup.html)。  
我們為 AWS 受管規則規則群組中的規則發佈的資訊，旨在為您提供使用規則所需的內容，而不會給予不法份子規避規則所需的內容。  
如果您需要比此處更多的資訊，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。


| 規則名稱 | Description | 
| --- | --- | 
| ChallengeAllDuringEvent |  比對具有目前受到攻擊`awswaf:managed:aws:anti-ddos:challengeable-request`之任何受保護資源標籤的請求。 規則動作：Challenge 您只能將此規則動作覆寫為 Allow或 Count。Allow 不建議使用 。對於任何規則動作設定，規則只會比對具有 `challengeable-request`標籤的請求。 此規則的組態會影響下一個規則的評估，`ChallengeDDoSRequests`. AWS WAF only 只會在受管規則群組的 Web ACL 組態中Count，此規則的動作覆寫設定為 時評估該規則。 如果您的工作負載容易受到未預期的請求量變更影響，我們建議您保留 的預設動作設定，以挑戰所有具有挑戰性的請求Challenge。對於較不敏感的應用程式，您可以將此規則的動作設定為 ，Count然後使用規則 調整Challenge回應的敏感度`ChallengeDDoSRequests`。 標籤： `awswaf:managed:aws:anti-ddos:ChallengeAllDuringEvent`  | 
| ChallengeDDoSRequests |  在資源受到攻擊的期間，比對符合或超過規則群組所設定之挑戰敏感度設定的受保護資源請求。 規則動作：Challenge 您只能將此規則動作覆寫為 Allow或 Count。Allow 不建議使用 。無論如何，規則只會比對具有 `challengeable-request`標籤的請求。 AWS WAF 只有在您覆寫先前規則 Count中的 動作時，才會評估此規則`ChallengeAllDuringEvent`。 標籤： `awswaf:managed:aws:anti-ddos:ChallengeDDoSRequests`  | 
| DDoSRequests |  在資源受到攻擊的期間，比對符合或超過規則群組所設定區塊敏感度設定的受保護資源請求。 規則動作：Block 標籤： `awswaf:managed:aws:anti-ddos:DDoSRequests`  | 

# 版本控制的 AWS 受管規則規則群組的部署
版本控制的 AWS 受管規則規則群組的部署新增了版本控制 AWS 受管規則規則群組部署的章節

新增章節，記錄版本控制的 AWS 受管規則規則群組的部署。本節包含如何在發行候選部署期間命名預設版本的相關資訊。

本節介紹 AWS 如何將更新部署到 AWS 受管規則規則群組。

AWS 在三個標準部署中，將變更部署至其版本控制的 AWS 受管規則規則群組：發行候選版本、靜態版本和預設版本。此外， AWS 有時可能需要釋出例外狀況部署或復原預設版本部署。

**注意**  
本節僅適用於版本控制的 AWS 受管規則規則群組。唯一未進行版本控制的規則群組是 IP 評價規則群組。

**Topics**
+ [

# AWS 受管規則規則群組部署的通知
](waf-managed-rule-groups-deployments-notifications.md)
+ [

# AWS 受管規則的標準部署概觀
](waf-managed-rule-groups-deployments-standard.md)
+ [

# AWS 受管規則的一般版本狀態
](waf-managed-rule-groups-typical-version-states.md)
+ [

# 發佈 AWS 受管規則的候選部署
](waf-managed-rule-groups-deployments-release-candidate.md)
+ [

# AWS 受管規則的靜態版本部署
](waf-managed-rule-groups-deployments-static-version.md)
+ [

# AWS 受管規則的預設版本部署
](waf-managed-rule-groups-deployments-default-version.md)
+ [

# AWS 受管規則的例外狀況部署
](waf-managed-rule-groups-deployments-exceptions.md)
+ [

# AWS 受管規則的預設部署轉返
](waf-managed-rule-groups-deployments-default-rollbacks.md)

# AWS 受管規則規則群組部署的通知
部署通知

本節說明 Amazon SNS 通知如何與 AWS 受管規則規則群組搭配使用。

版本控制的 AWS 受管規則規則群組都提供部署的 SNS 更新通知，而且它們都使用相同的 SNS 主題 Amazon Resource Name (ARN)。唯一未進行版本控制的規則群組是 IP 評價規則群組。

對於影響您保護的部署，例如預設版本的變更， AWS 會提供 SNS 通知，通知您計劃的部署，並讓您知道部署何時開始。對於不會影響您保護的部署，例如版本候選和靜態版本部署， AWS 可能會在部署開始後或甚至完成之後通知您。完成新靜態版本的部署時， 會在 的變更日誌中 AWS 更新本指南，[AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)並在 的文件歷史記錄頁面中更新本指南[文件歷史紀錄](doc-history.md)。

若要接收為 AWS 受管規則規則群組 AWS 提供的所有更新，請從本指南的任何 HTML 頁面訂閱 RSS 摘要，並訂閱 AWS 受管規則規則群組的 SNS 主題。如需訂閱 SNS 通知的資訊，請參閱 [收到受管規則群組新版本和更新的通知](waf-using-managed-rule-groups-sns-topic.md)。

**SNS 通知的內容**  
Amazon SNS 通知中的欄位一律包含主旨、訊息和 MessageAttributes。其他欄位取決於訊息的類型，以及通知的受管規則群組。以下顯示 的通知清單範例`AWSManagedRulesCommonRuleSet`。

```
{
    "Type": "Notification",
    "MessageId": "4286b830-a463-5e61-bd15-e1ae72303868",
    "TopicArn": "arn:aws:sns:us-west-2:123456789012:MyTopic",
    "Subject": "New version available for rule group AWSManagedRulesCommonRuleSet",
    "Message": "Welcome to AWSManagedRulesCommonRuleSet version 1.5! We've updated the regex specification in this version to improve protection coverage, adding protections against insecure deserialization. For details about this change, see http://updatedPublicDocs.html. Look for more exciting updates in the future! ",
    "Timestamp": "2021-08-24T11:12:19.810Z",
    "SignatureVersion": "1",
    "Signature": "EXAMPLEHXgJm...",
    "SigningCertURL": "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem",
    "SubscribeURL": "https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:123456789012:MyTopic&Token=2336412f37...",
    "MessageAttributes": {
        "major_version": {
            "Type": "String",
            "Value": "v1"
        },
        "managed_rule_group": {
            "Type": "String",
            "Value": "AWSManagedRulesCommonRuleSet"
        }
    }
}
```

# AWS 受管規則的標準部署概觀
標準部署概觀

AWS 使用三個標準部署階段推出新的 AWS 受管規則功能：發行候選版本、靜態版本和預設版本。

下圖說明這些標準部署。以下各節將詳細說明每個項目。

![\[四個垂直泳道顯示不同的標準部署階段。最左側的泳道會顯示預設版本設定為建議的靜態版本 1.4。第二個泳道顯示預設設定為發行候選 (RC) 版本，用於測試和調校。RC 版本包含 1.4 規則和 RC 規則。備註指出在測試之後，預設值會傳回至建議的靜態版本。第三個泳道顯示從版本候選版本中的規則建立靜態 1.5 版。第四個泳道顯示預設版本設定為新的建議靜態版本 1.5。\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/images/amr-rg-versions-flowchart-diagram.png)


# AWS 受管規則的一般版本狀態
典型版本狀態

一般而言，版本控制的受管規則群組有許多未過期的靜態版本，預設版本會指向 AWS 建議的靜態版本。下圖顯示典型靜態版本集和預設版本設定的範例。

![\[堆疊三個靜態版本 Version_1.2、Version_1.3 和 Version_1.4，其中 Version_1.4 位於最上方。Version_1.4 有兩個規則：RuleA 和 RuleB，兩者都具有生產動作。預設版本指標指向 Version_1.4。\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/images/amr-rg-versions-diagram.png)


靜態版本中大多數規則的生產動作是 Block，但可能設定為不同。如需規則動作設定的詳細資訊，請參閱 中每個規則群組的規則清單[AWS 受管規則規則群組清單](aws-managed-rule-groups-list.md)。

# 發佈 AWS 受管規則的候選部署
發行候選部署

本節說明暫時發行候選部署的運作方式。

當 AWS 有受管規則群組的候選規則變更集時，它會在暫時發行候選部署中對其進行測試。 會根據生產流量 AWS 評估計數模式中的候選規則，並執行最終調校活動，包括緩解誤報。 會針對使用規則群組預設版本的所有客戶，以這種方式 AWS 測試發行候選規則。發行候選部署不適用於使用規則群組靜態版本的客戶。

如果您使用預設版本，則發行候選部署不會改變規則群組管理 Web 流量的方式。在測試候選規則時，您可能會注意到下列事項：
+ 預設版本名稱從 變更為 `Default (using Version_X.Y)` `Default (using Version_X.Y_PLUS_RC_COUNT)`。
+ Amazon CloudWatch 中的其他計數指標名稱`RC_COUNT`為 。這些是由版本候選規則產生。

AWS 會測試發行候選版本約一週，然後移除它，並將預設版本重設為目前建議的靜態版本。

AWS 會針對發行候選部署執行下列步驟：

1. **建立發行候選**版本 – 根據目前建議的靜態版本 AWS 新增發行候選版本，這是預設值指向的版本。

   版本候選項目的名稱是附加 的靜態版本名稱`_PLUS_RC_COUNT`。例如，如果目前建議的靜態版本為 `Version_2.1`，則發行候選版本會命名為 `Version_2.1_PLUS_RC_COUNT`。

   發行候選版本包含下列規則：
   + 完全從目前建議的靜態版本複製的規則，不會變更規則組態。
   + 使用規則動作設定為 Count且名稱以 結尾，來候選新規則`_RC_COUNT`。

     大多數候選規則為已存在於規則群組中的規則提供建議的改進。這些規則的名稱是附加 的現有規則名稱`_RC_COUNT`。

1. **將預設版本設定為發行候選版本，然後測試** – 將預設版本 AWS 設定為指向新的發行候選版本，以針對您的生產流量執行測試。測試通常需要大約一週的時間。

    您會看到預設版本的名稱從僅指出靜態版本的名稱變更，例如 `Default (using Version_1.4)`，變更為指出靜態版本和發行候選規則的名稱，例如 `Default (using Version_1.4_PLUS_RC_COUNT)`。此命名方案可讓您識別您用來管理 Web 流量的靜態版本。

   下圖顯示目前範例規則群組版本的狀態。  
![\[圖頂端有三個堆疊靜態版本，頂端為 Version_1.4。與靜態版本堆疊分開的是版本 Version_1.4_PLUS_RC_COUNT。此版本包含來自 Version_1.4 的規則，也包含兩個發行候選規則 RuleB_RC_COUNT 和 RuleZ_RC_COUNT，兩者都具有計數動作。預設版本指標指向 Version_1.4_PLUS_RC_COUNT。\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/images/amr-rg-versions-rc-diagram.png)

   發行候選規則一律使用 Count動作設定，因此不會改變規則群組管理 Web 流量的方式。

   發行候選規則會產生 Amazon CloudWatch 計數指標， AWS 用於驗證行為並識別誤報。 會視需要 AWS 進行調整，以調整發行候選計數規則的行為。

   發行候選版本不是靜態版本，您無法從靜態規則群組版本清單中選擇。您只能在預設版本規格中查看發行候選版本的名稱。

1. **將預設版本傳回建議的靜態版本** – 測試版本候選規則之後， 會將預設版本 AWS 設回目前建議的靜態版本。預設版本名稱設定會捨棄`_PLUS_RC_COUNT`結尾，且規則群組會停止為發行候選規則產生 CloudWatch 計數指標。這是無提示的變更，與預設版本復原的部署不同。

   下圖顯示測試發行候選項目完成後，範例規則群組版本的狀態。  
![\[這是典型的版本狀態圖。三個靜態版本 Version_1.2、Version_1.3 和 Version_1.4 會與頂部的 Version_1.4 堆疊。Version_1.4 有兩個規則：RuleA 和 RuleB，兩者都具有生產動作。預設版本指標指向 Version_1.4。\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/images/amr-rg-versions-rc-complete-diagram.png)

**時間和通知**  
AWS 會視需要部署發行候選版本，以測試規則群組的改進。
+ **SNS** – 在部署開始時 AWS 傳送 SNS 通知。通知指出測試版本候選項目的預估時間。測試完成時， 會以 AWS 無提示的方式將預設值傳回靜態版本設定，而不需要第二次通知。
+ **變更日誌** – AWS 不會更新此部署類型的變更日誌或本指南的其他部分。

# AWS 受管規則的靜態版本部署
靜態版本部署

當 AWS 判斷發行候選項目為規則群組提供寶貴的變更時， AWS 會根據發行候選項目部署規則群組的新靜態版本。此部署不會變更規則群組的預設版本。

新的靜態版本包含來自 版本候選項目的下列規則：
+ 來自先前靜態版本的規則，在發行候選規則之間沒有替代候選項目。
+ 發行候選規則，變更如下：
  + AWS 透過移除發行候選詞尾 來變更規則名稱`_RC_COUNT`。
  + AWS 會將規則動作從 Count 變更為其生產規則動作。

   對於取代先前現有規則的版本候選規則，這會取代新靜態版本中先前規則的功能。

下圖說明從 發行候選版本建立新的靜態版本。

![\[圖頂端是版本候選版本 Version_1.4_PLUS_RC_COUNT，其規則與先前版本候選部署圖中的規則相同。版本包含來自 Version_1.4 的規則，也包含具有計數動作的發行候選規則 RuleB_RC_COUNT 和 RuleZ_RC_COUNT。下圖下方是靜態版本 Version_1.5，其中包含規則 RuleA、RuleB 和 RuleZ，全部都具有生產動作。從 RC 版本到 Version_1.5 的箭頭，表示從 Version_1.4 規則複製 RuleA，並從版本候選規則複製 RuleB 和 RuleZ。版本_1.5 中的所有規則都有生產動作。\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/images/amr-rg-versions-create-static-diagram.png)


部署之後，新的靜態版本可供您進行測試，並在需要時用於您的保護。您可以在 的規則群組規則清單中檢閱新的和更新的規則動作和描述[AWS 受管規則規則群組清單](aws-managed-rule-groups-list.md)。

靜態版本在部署後是不可變的，而且只會在 AWS 過期時變更。如需版本生命週期的相關資訊，請參閱 [在 中使用版本控制的受管規則群組 AWS WAF](waf-managed-rule-groups-versioning.md)。

**時間和通知**  
AWS 會視需要部署新的靜態版本，以部署規則群組功能的改善。部署靜態版本不會影響預設版本設定。
+ **SNS** – 在部署完成時 AWS 傳送 SNS 通知。
+ **變更日誌** – 部署在 AWS WAF 可用的地方完成後， 會視需要 AWS 更新本指南中的規則群組定義，然後在 AWS 受管規則群組變更日誌和文件歷史記錄頁面中宣告版本。

# AWS 受管規則的預設版本部署
預設版本部署

當 AWS 判斷新的靜態版本與目前的預設值相比，為規則群組提供更好的保護時， 會將預設版本 AWS 更新為新的靜態版本。在將多個靜態版本提升為規則群組的預設版本之前， AWS 可能會發行多個靜態版本。

下圖顯示將預設版本設定 AWS 移至新的靜態版本之後，範例規則群組版本的狀態。

![\[這類似於典型的版本狀態圖，但堆疊頂端有 Version_1.5，且預設指標指向它。\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/images/amr-rg-versions-new-default-diagram.png)


在將此變更部署到預設版本之前， AWS 會提供通知，以便您可以測試和準備即將到來的變更。如果您使用預設版本，則無法採取任何動作，並在更新期間保留在其中。如果您想要延遲切換到新版本，在預設版本部署的計劃開始之前，您可以明確地將規則群組設定為使用預設設定的靜態版本。

**時間和通知**  
AWS 當 為規則群組建議與目前正在使用之規則群組不同的靜態版本時， 會更新預設版本。
+ **SNS** – 在目標部署日之前至少一週 AWS 傳送 SNS 通知，然後在部署當天的部署開始時傳送另一個通知。每個通知都包含規則群組名稱、預設版本要更新的靜態版本、部署日期，以及執行更新之每個 AWS 區域的部署排程時間。
+ **變更日誌** – AWS 不會更新此部署類型的變更日誌或本指南的其他部分。

# AWS 受管規則的例外狀況部署
例外狀況部署

AWS 可能會略過標準部署階段，以快速部署可解決重大安全風險的更新。例外狀況部署可能涉及任何標準部署類型，而且可能會快速跨 AWS 區域推出。

AWS 會盡可能為例外狀況部署提供提前通知。

**時間和通知**  
AWS 只會在需要時執行例外狀況部署。
+ **SNS** – 盡可能在目標部署日之前 AWS 傳送 SNS 通知，然後在部署開始時傳送另一個 SNS 通知。每個通知都包含規則群組名稱、正在進行的變更，以及部署日期。
+ **變更日誌** – 如果部署適用於靜態版本，則在 AWS WAF 可用位置完成部署之後， 會視需要 AWS 更新本指南中的規則群組定義，然後在 AWS 受管規則群組變更日誌和文件歷史記錄頁面中宣告版本。

# AWS 受管規則的預設部署轉返
預設部署轉返

在某些情況下， AWS 可能會將預設版本回復為先前的設定。所有 AWS 區域的復原通常需要不到 10 分鐘的時間。

AWS 只會執行轉返來緩解靜態版本中的重大問題，例如無法接受的高誤報層級。

在復原預設版本設定之後， 會 AWS 加速發生問題的靜態版本過期，以及發行新的靜態版本來解決問題。

**時間和通知**  
AWS 只會在需要時執行預設版本轉返。
+ **SNS** – 在復原時 AWS 傳送單一 SNS 通知。通知包含規則群組名稱、預設版本設定為的版本，以及部署日期。此部署類型非常快速，因此通知不會提供區域的時間資訊。
+ **變更日誌** – AWS 不會更新此部署類型的變更日誌或本指南的其他部分。

# AWS 受管規則變更日誌
AWS 受管規則變更日誌已更新 的 AWS 受管規則 AWS WAF

發行 PHP 應用程式規則群組的靜態 2.2 版。已更新 的 AWS 受管規則 AWS WAF

已發行具有擴展機器人偵測功能的機器人控制規則群組靜態版本 5.0。已更新 的 AWS 受管規則 AWS WAF

已發行 POSIX 作業系統規則群組的 3.2 靜態版本。已更新 的 AWS 受管規則 AWS WAF

已發行已知錯誤輸入規則群組的靜態 1.25 版。已更新 的 AWS 受管規則 AWS WAF

發行 POSIX 作業系統規則群組的 3.1 靜態版本。已更新 的 AWS 受管規則 AWS WAF

發行了已知錯誤輸入規則群組的靜態 1.24 版。已更新 的 AWS 受管規則 AWS WAF

已更新 Bot Control 規則群組，支援跨廣告、AI、內容擷取和社交媒體等多個類別進行擴展機器人偵測。已更新 的 AWS 受管規則 AWS WAF

已將對 AI 代理程式 Web Bot 身分驗證的支援新增至 Bot Control 規則群組。已更新 的 AWS 受管規則 AWS WAF

更新了核心或通用規則集 (CRS)。已更新 的 AWS 受管規則 AWS WAF

更新了核心或通用規則集 (CRS)。已更新 的 AWS 受管規則 AWS WAF

更新了核心或通用規則集 (CRS)。已更新 的 AWS 受管規則 AWS WAF

已更新 AWS WAF 機器人控制規則集。已更新 的 AWS 受管規則 AWS WAF

更新了核心或通用規則集 (CRS)。已更新 的 AWS 受管規則 AWS WAF

已更新 SQLi 資料庫規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新 Linux 作業系統規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新 Bot Control 規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新 SQLi 資料庫規則群組。已更新 的 AWS 受管規則 AWS WAF

更新核心規則集 (CRS) 規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新機器人控制、ATP 和 ACFP 受管規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新 Linux 作業系統規則群組。已更新 的 AWS 受管規則 AWS WAF

更新核心規則集 (CRS) 規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新 Windows 作業系統規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新 WordPress 應用程式規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新 Linux 作業系統規則群組。已更新 的 AWS 受管規則 AWS WAF

更新核心規則集 (CRS) 規則群組。已更新 的 AWS 受管規則 AWS WAF

更新 PHP 應用程式和 Windows 作業系統規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新 Linux 作業系統規則群組。已更新 的 AWS 受管規則 AWS WAF

Bot Control、ATP 和 ACFP 受管規則群組現在已進行版本控制，並提供版本更新的 SNS 通知，與其他版本控制的 AWS 受管規則相同。已更新 的 AWS 受管規則 AWS WAF

已更新 POSIX 作業系統規則群組 `AWSManagedRulesUnixRuleSet`。已更新 的 AWS 受管規則 AWS WAF

更新核心規則集 (CRS) 規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新 SQLi 資料庫規則群組。已更新 的 AWS 受管規則 AWS WAF

更新已知的錯誤輸入和 POSIX 作業系統規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新 Windows 作業系統規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新 IP 評價規則群組。已更新 的 AWS 受管規則 AWS WAF

更新已知的錯誤輸入規則群組。已更新 的 AWS 受管規則 AWS WAF

更新已知的錯誤輸入規則群組。已更新 的 AWS 受管規則 AWS WAF

更新核心規則集 (CRS) 規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組： AWS WAF Bot Control。已更新 的 AWS 受管規則 AWS WAF

已更新 Bot Control 規則群組。已更新 的 AWS 受管規則 AWS WAF

更新核心規則集 (CRS) 規則群組。已更新 的 AWS 受管規則 AWS WAF

更新核心規則集 (CRS) 規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新 POSIX 作業系統規則群組 `AWSManagedRulesUnixRuleSet`。已更新 的 AWS 受管規則 AWS WAF

更新核心規則集 (CRS) 規則群組。的例外狀況部署 AWS 受管規則 AWS WAF

更新已知錯誤輸入規則群組的兩個靜態版本，並更新預設版本以指向最新的靜態版本。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組： AWS WAF Bot Control。已更新 的 AWS 受管規則 AWS WAF

已更新 AWS WAF Bot Control 規則群組。已更新 的 AWS 受管規則 AWS WAF

更新核心規則集 (CRS) 規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新規則群組 `AWSManagedRulesACFPRuleSet`。已更新 的 AWS 受管規則 AWS WAF

已更新 Linux 作業系統規則集。已更新 的 AWS 受管規則 AWS WAF

更新核心規則集 (CRS) 規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新 PHP 應用程式規則群組。已更新 的 AWS 受管規則 AWS WAF

更新規則群組`AWSManagedRulesATPRuleSet`，在保護 Amazon CloudFront 分佈ACLs 中新增登入回應檢查。已更新 的 AWS 受管規則 AWS WAF

更新核心規則集。已更新 的 AWS 受管規則 AWS WAF

已更新 Linux 作業系統規則集。已更新 的 AWS 受管規則 AWS WAF

更新核心規則集。已更新 的 AWS 受管規則 AWS WAF

更新已知的錯誤輸入規則群組。已更新 的 AWS 受管規則 AWS WAF

更新已知的錯誤輸入規則群組。已更新 的 AWS 受管規則 AWS WAF

更正本文件中為下列規則群組提供的標籤名稱：POSIX 作業系統、PHP 應用程式、WordPress 應用程式。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組：IP 評價。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組：已知輸入錯誤。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組：`AWSManagedRulesATPRuleSet`。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組：核心規則集 (CRS)。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組：核心規則集 (CRS)。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組： AWS WAF Bot Control。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組：已知輸入錯誤。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組：已知輸入錯誤。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組：IP 評價清單。已更新 的 AWS 受管規則 AWS WAF

已更新 AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組 `AWSManagedRulesATPRuleSet`。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組：已知輸入錯誤。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組：核心規則集 (CRS)、SQLi 資料庫。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組：已知輸入錯誤。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組：已知輸入錯誤。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組：已知輸入錯誤。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組：核心規則集 (CRS)、Windows 作業系統、Linux 作業系統和 IP 評價清單。已更新 的 AWS 受管規則 AWS WAF

更新核心規則集 (CRS) 規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新 AWS WAF Bot Control 規則群組。已更新 的 AWS 受管規則 AWS WAF

已更新對 IP 評價清單標籤的支援，並移除 Amazon IP 評價清單規則名稱的尾碼。已更新 的 AWS 受管規則 AWS WAF

已更新下列規則群組：核心規則集 (CRS)、管理員保護、已知錯誤輸入和 Linux 作業系統。已更新 的 AWS 受管規則 AWS WAF

已更新 Windows 作業系統規則集。已更新 的 AWS 受管規則 AWS WAF

已更新規則集 PHP 應用程式和 POSIX 作業系統。已更新 的 AWS 受管規則 AWS WAF

更新核心規則集。已更新 的 AWS 受管規則 AWS WAF

已更新 Linux 作業系統規則群組。

本節列出自 2019 年 11 月發行 AWS WAF 以來 的 AWS 受管規則變更。

**注意**  
此變更日誌會報告 AWS 受管規則中規則和規則群組的變更 AWS WAF。  
對於 [IP 評價規則群組](aws-managed-rule-groups-ip-rep.md)，此變更日誌會報告規則和規則群組的變更，並報告規則使用的 IP 地址清單來源的重大變更。由於這些清單的動態性質，它不會報告 IP 地址清單本身的變更。如果您對 IP 地址清單有任何疑問，請聯絡您的客戶經理或在 [AWS 支援 Center](https://console.aws.amazon.com/support/home#/) 開立案例。


| 規則群組和規則 | Description | Date | 
| --- | --- | --- | 
| [PHP 應用程式受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-php-app) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html) |  此規則群組已發行靜態 2.2 版。 改善偵測並新增`PHPHighRiskMethodsVariables_URIPATH`規則。  | 2026-03-24 | 
| [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md) 新規則： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  發佈此規則群組的靜態版本 5.0。 新增超過 400 個跨多個類別的新機器人，包括兩個具有各自規則的新機器人類別：頁面預覽和 Webhook。 **主要改進項目** 提高機器人偵測訊號和一般機器人模式比對的準確性，進而產生更精確的流量分類。 此更新會變更受管規則群組如何排定機器人偵測的優先順序。現在會在一般模式和偵測訊號之前評估特定的未驗證機器人模式。這表示請求更有可能根據其最具體的特性來分類，而不是一般指標。 **這對您的流量意味著什麼：** 一般機器人模式現在比對頻率較低。這些模式僅適用於沒有更具體的機器人規則已識別流量時。這可減少過度分類，並確保使用最準確的可用機器人識別來標記請求。 偵測訊號，例如請求來自雲端服務提供者、已知機器人資料中心或使用非瀏覽器使用者代理程式的指標，現在會在機器人識別規則之後套用。這可確保特定機器人分類優先於一般流量訊號。 **Impact: (影響：)** 您可能會在流量日誌中看到較少的一般機器人模式標籤，因為請求現在會依特定機器人規則更準確分類。這可讓您更清楚地了解自動化流量的實際性質，並減少過於廣泛模式比對的雜訊。未驗證的機器人分類將更明顯且準確，協助您進一步了解和管理對應用程式的自動化請求。 **注意：**此版本包含來自 Version\$14.0 的`awswaf:managed:aws:bot-control:bot:web_bot_auth`標籤和規則更新，但`Web Bot Auth`功能仍然只能在 CloudFront 中使用。  | 2026-02-25 | 
| [POSIX 作業系統受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-posix-os)  |  此規則群組的發行靜態版本 3.2。 改善所有規則的偵測簽章。  | 2026-01-15 | 
| [已知錯誤輸入受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  此規則群組已發行靜態版本 1.25。 更新 `ReactJSRCE_BODY`以改善偵測。  | 2025-12-08 | 
| [POSIX 作業系統受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-posix-os)  |  此規則群組已發行靜態 3.1 版。 改善所有規則的偵測簽章。  | 2025-12-08 | 
| [已知錯誤輸入受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  此規則群組已發行靜態版本 1.24。 更新 `ReactJSRCE_BODY`以改善偵測。  | 2025-12-04 | 
| [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md) 新標籤：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html) 範圍：CloudFront |  部署了新的靜態版本 `AWSManagedRulesBotControlRuleSet` Version\$14.0，並支援 Web Bot Authentication (WBA) 進行密碼編譯機器人驗證。必須明確選取此版本，而且不會使用預設版本自動更新現有的部署。 新功能： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html) 規則更新： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  Version\$14.0 只是靜態版本，不會變更預設版本行為。若要使用 WBA 功能，請在設定 Web ACL 時明確選取版本 \$14.0。   | 2025-11-20 | 
| [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md) 新的已驗證機器人標籤：廣告：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)AI：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)內容擷取器：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)社交媒體：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html) |  關鍵改進：  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  Bot Control 中的機器人類別規則只會在未驗證的機器人上觸發，但也在已驗證的機器人上觸發的 CategoryAI 除外。Version\$13.3 只是靜態版本，不會變更預設版本行為。   | 2025-11-17 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  此規則群組已發行靜態版本 1.20。 改善伺服器端請求偽造 (SSRF) 規則的偵測簽章。  | 2025-10-02 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  此規則群組已發行靜態版本 1.19。 改善跨網站指令碼規則的偵測簽章。  | 2025-08-14 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  此規則群組已發行靜態版本 1.18。 改善跨網站指令碼規則的偵測簽章。  | 2025-06-18 | 
| [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md) 新標籤： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  此規則群組的發行靜態版本 3.2。 新增列出的新標籤。  | 2025-05-29 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  此規則群組已發行靜態版本 1.17。 改善跨網站指令碼規則的偵測簽章。  | 2025-03-03 | 
| [SQL 資料庫受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-sql-db) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態版本 1.3。 已將雙`URL_DECODE_UNI`文字轉換新增至列出的規則。  | 2025-01-24 | 
| [Linux 作業系統受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-linux-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態 2.6 版。 新增簽章以改善偵測。  | 2025-01-24 | 
| [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md) 機器人控制標籤中的新機器人名稱標籤： `awswaf:managed:aws:bot-control:bot::name:nytimes`  | 此規則群組已發行靜態 3.1 版。 已將 New York Times 標籤新增至機器人名稱標籤清單。  | 2024-11-07 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態版本 1.16。 改善跨網站指令碼規則的偵測簽章。  | 2024-10-16 | 
| [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md) 新規則： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html) 已刪除的規則： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html) 新標籤： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html) 現有規則中的其他標籤。  | 此規則群組的發行靜態版本 2.0 和 3.0。2.0 版與 3.0 版相同，但所有新規則的規則動作都設為 Count。本指南會記錄每個規則群組的最新版本。 新增列出的新規則。 已更新標籤，以便所有規則套用模式為 的標籤`awswaf:managed:aws:bot-control:<RuleName>`。 已將雲端服務供應商標籤新增至 Bot Control 訊號標籤。 新增由機器人類別規則檢查的新機器人名稱標籤。  | 2024-09-13 | 
| [AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md) 所有規則  | 此規則群組的發行靜態版本 1.1。 已更新標籤，以便所有規則套用模式為 的標籤`awswaf:managed:aws:atp:<RuleName>`。  | 2024-09-13 | 
| [AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組](aws-managed-rule-groups-acfp.md) 所有規則  | 此規則群組的發行靜態版本 1.1。 已更新標籤，以便所有規則套用模式為 的標籤`awswaf:managed:aws:acfp:<RuleName>`。  | 2024-09-13 | 
| [Linux 作業系統受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-linux-os) 所有規則  | 此規則群組已發行靜態 2.5 版。 新增簽章以改善偵測。  | 2024-09-02 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態版本 1.15。 已改善一般 LFI 規則的偵測簽章。  | 2024-08-30 | 
| [Windows 作業系統受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-windows-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態 2.3 版。 已調整所列規則中的偵測簽章，以減少誤報。  | 2024-08-28 | 
| [WordPress 應用程式受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-wordpress-app) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態版本 1.3。 已將 JS\$1DECODE 文字轉換新增至列出的規則。  | 2024-07-15 | 
| [Linux 作業系統受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-linux-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態 2.4 版。 已將 JS\$1DECODE 文字轉換新增至列出的規則。  | 2024-07-12 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態版本 1.14。 已將 JS\$1DECODE 文字轉換新增至列出的規則。  | 2024-07-09 | 
| [PHP 應用程式受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-php-app) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態 2.1 版。 已將 JS\$1DECODE 文字轉換新增至列出的規則。  | 2024-07-03 | 
| [Windows 作業系統受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-windows-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組的發行靜態版本 2.2。 已將 JS\$1DECODE 文字轉換新增至列出的規則。  | 2024-07-03 | 
| [Linux 作業系統受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-linux-os) 所有規則  | 此規則群組已發行靜態 2.3 版。 新增簽章以改善偵測。  | 2024-06-06 | 
| [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md) [AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md) [AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組](aws-managed-rule-groups-acfp.md)  | 機器人和詐騙規則群組現在已進行版本控制。如果您使用這些規則群組，則此更新不會變更它們處理 Web 流量的方式。 此更新會將目前的規則群組版本設定為靜態版本 1.0，並將預設版本設定為指向該版本。 如需版本控制受管規則的詳細資訊，請參閱下列內容： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 2024-05-29 | 
| [POSIX 作業系統受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-posix-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 發行此規則群組的靜態版本 3.0。 已移除並將其`UNIXShellCommandsVariables_QUERYARGUMENTS`取代為 `UNIXShellCommandsVariables_QUERYSTRING`。如果您的規則符合 的標籤`UNIXShellCommandsVariables_QUERYARGUMENTS`，當您使用此版本時，請將它們切換為符合 的標籤`UNIXShellCommandsVariables_QUERYSTRING`。新標籤為 `awswaf:managed:aws:posix-os:UNIXShellCommandsVariables_QueryString`。 新增規則 `UNIXShellCommandsVariables_HEADER`，符合所有標頭。 以改善的偵測邏輯更新受管規則群組中的所有規則。 更正 標籤的記錄大小寫`UNIXShellCommandsVariables_BODY`。  | 2024-05-28 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組的發行靜態版本 1.12。 新增所有跨網站指令碼規則的簽章，以改善偵測並減少誤判。 | 2024-05-21 | 
| [SQL 資料庫受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-sql-db) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  此規則群組已發行靜態版本 1.2。 已將`JS_DECODE`文字轉換新增至列出的規則。  | 2024-05-14 | 
| [已知錯誤輸入受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態版本 1.22。 已將`JS_DECODE`文字轉換新增至列出的規則。  | 2024-05-08 | 
| [POSIX 作業系統受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-posix-os)  | 此規則群組的發行靜態版本 2.2。 將`JS_DECODE`文字轉換新增至這兩個規則。  | 2024-05-08 | 
| [Windows 作業系統受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-windows-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態 2.1 版。 新增簽章至 `PowerShellCommands_BODY` 以改善偵測。  | 2024-05-03 | 
| [Amazon IP 評價清單受管規則群組](aws-managed-rule-groups-ip-rep.md#aws-managed-rule-groups-ip-rep-amazon) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 更新 IP 評價清單的來源，以改善主動從事惡意活動的地址識別，並減少誤報。 此更新不涉及新版本，因為此規則群組未進行版本控制。  | 2024-03-13 | 
| [已知錯誤輸入受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs)  | 此規則群組已發行靜態版本 1.21。 新增簽章以改善偵測並減少誤報。  | 2023-12-16 | 
| [已知錯誤輸入受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態版本 1.20。 更新`ExploitablePaths_URIPATH`規則，為符合 Atlassian Confluence CVE-2023-22518 不當授權漏洞的請求新增偵測。此漏洞會影響 Confluence 資料中心和伺服器的所有版本。如需詳細資訊，請參閱 [NIST：國家漏洞資料庫：CVE-2023-22518 詳細資訊](https://nvd.nist.gov/vuln/detail/CVE-2023-22518)。  | 2023-12-14 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組的發行靜態版本 1.11。 新增所有跨網站指令碼規則的簽章，以改善偵測並減少誤判。 | 2023-12-06 | 
| [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 將協調活動低標籤新增至規則群組的目標保護層級標籤。此標籤未與任何規則相關聯。此標籤是中、高階規則和標籤的補充。 | 2023-12-05 | 
| [機器人控制標籤](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-labels-rg) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 已將訊號標籤新增至規則群組，指出協助自動化的瀏覽器延伸模組偵測。此標籤並非專屬於個別規則。  | 2023-11-14 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態版本 1.10。 更新了一項規則，以改善偵測並減少誤報。 | 2023-11-02 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態版本 1.9。 更新規則以改善偵測並減少誤報。 | 2023-10-30 | 
| [POSIX 作業系統受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-posix-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態 2.1 版。 更新查詢引數規則以改善偵測。  | 2023-10-12 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態版本 1.8。 更新規則以改善偵測。 | 2023-10-11 | 
| [已知錯誤輸入受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 例外狀況部署：已發行此規則群組的靜態版本 1.19。更新預設版本以使用 1.19 版。 更新`ExploitablePaths_URIPATH`規則，為符合 Atlassian Confluence CVE-2023-22515 權限提升漏洞的請求新增偵測。此漏洞會影響 Atlassian Confluence 的某些版本。如需詳細資訊，請參閱 [NIST：國家漏洞資料庫：CVE-2023-22515 詳細資訊](https://nvd.nist.gov/vuln/detail/CVE-2023-22515)和 [Atlassian Support：CVE-2023-22515 的常見問答集](https://confluence.atlassian.com/kb/faq-for-cve-2023-22515-1295682188.html)。 如需此部署類型的詳細資訊，請參閱 [AWS 受管規則的例外狀況部署](waf-managed-rule-groups-deployments-exceptions.md)。 | 2023-10-04 | 
| [已知錯誤輸入受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 例外狀況部署：已發行此規則群組的靜態 1.18 版。這是此靜態版本的快速推出，以適應 1.19 版的建立和推出。 更新`Host_localhost_HEADER`規則和所有 Log4J 和 Java 還原序列化規則，以改善偵測。 如需此部署類型的詳細資訊，請參閱 [AWS 受管規則的例外狀況部署](waf-managed-rule-groups-deployments-exceptions.md)。 | 2023-10-04 | 
| [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 使用 Count動作將規則新增至規則群組。 權杖重複使用 IP 規則會偵測和計數跨 IP 地址的權杖共用。 協調活動規則使用網站流量的自動化機器學習 (ML) 分析來偵測機器人相關活動。在您的規則群組組態中，您可以選擇不使用 ML。在此版本中，目前使用目標保護層級的客戶可以選擇使用 ML。選擇退出會停用協調活動規則。 | 2023-09-06 | 
| [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 已將規則`CategoryAI`新增至規則群組。 | 2023-08-30 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 發行此規則群組的靜態版本 1.7。 更新限制延伸模組和 EC2 中繼資料 SSRF 規則，以改善偵測並減少誤判。 | 2023-07-26 | 
| [AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組](aws-managed-rule-groups-acfp.md) 新規則群組中的所有規則  | 新增規則群組 AWSManagedRulesACFPRuleSet。 | 2023-06-13 | 
| [Linux 作業系統受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-linux-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組的發行靜態版本 2.2。 新增簽章以改善偵測。  | 2023-05-22 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態版本 1.6。 更新了跨網站指令碼 (XSS) 和限制延伸規則，以改善偵測並減少誤報。 | 2023-04-28 | 
| [PHP 應用程式受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-php-app) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組的發行靜態版本 2.0。 新增簽章以改善所有規則中的偵測。 將規則取代`PHPHighRiskMethodsVariables_QUERYARGUMENTS`為 `PHPHighRiskMethodsVariables_QUERYSTRING`，它會檢查整個查詢字串，而不只是查詢引數。 新增規則 `PHPHighRiskMethodsVariables_HEADER`，以擴展涵蓋範圍以包含所有標頭。 更新下列標籤，以符合標準 AWS 受管規則標籤： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 2023-02-27 | 
| [AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 新增用於受保護 Amazon CloudFront 分佈的登入回應檢查規則。這些規則可以封鎖最近成為太多失敗登入嘗試來源的 IP 地址和用戶端工作階段的新登入嘗試。 | 2023-02-15 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態版本 1.5。 更新了跨網站指令碼 (XSS) 篩選條件，以改善偵測。 | 2023-01-25 | 
| [Linux 作業系統受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-linux-os) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態 2.1 版。 已移除規則`LFI_COOKIE`及其標籤 `awswaf:managed:aws:linux-os:LFI_Cookie`，並將它們取代為新規則`LFI_HEADER`及其標籤 `awswaf:managed:aws:linux-os:LFI_Header`。此變更會將檢查擴展到多個標頭。 已將文字轉換和簽章新增至所有規則，以改善偵測。  | 2022-12-15 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態版本 1.4。 新增文字轉換至 `NoUserAgent_HEADER` 以移除所有 null 位元組。更新了跨網站指令碼規則中的篩選條件，以改善偵測。 | 2022-12-05 | 
| [已知錯誤輸入受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態版本 1.17。 更新 Java 還原序列化規則，為符合 Apache CVE-2022-42889 的請求新增偵測，這是 Apache Commons Text 1.10.0 之前的 Apache Commons Text 版本中的遠端程式碼執行 (RCE) 漏洞。如需詳細資訊，請參閱 [NIST：國家漏洞資料庫：CVE-2022-42889 詳細資訊](https://nvd.nist.gov/vuln/detail/CVE-2022-42889)和 [CVE-2022-42889：1.10.0 之前的 Apache Commons Text 允許 RCE 套用到因不安全插補預設值而不受信任的輸入](https://lists.apache.org/thread/n2bd4vdsgkqh2tm14l1wyc3jyol7s1om)。 改善 中的偵測`Host_localhost_HEADER`。 | 2022-10-20 | 
| [已知錯誤輸入受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態版本 1.16。 移除 1.15 版中 AWS 識別的誤報。 | 2022-10-05 | 
| [POSIX 作業系統受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-posix-os) [PHP 應用程式受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-php-app)  [WordPress 應用程式受管規則群組](aws-managed-rule-groups-use-case.md#aws-managed-rule-groups-use-case-wordpress-app)   | 更正記錄的標籤名稱。  | 2022-09-19 | 
| [IP 評價規則群組](aws-managed-rule-groups-ip-rep.md) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此變更不會改變規則群組處理 Web 流量的方式。 根據 Amazon 威脅情報，新增了具有 Count動作的新規則，以檢查是否有正在參與 DDoS 活動的 IP 地址。  | 2022-08-30 | 
| [已知錯誤輸入受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 此規則群組已發行靜態版本 1.15。 移除它`Log4JRCE`並將其取代為 `Log4JRCE_HEADER`、`Log4JRCE_URI`、 `Log4JRCE_QUERYSTRING`和 `Log4JRCE_BODY`，以更精細地監控和管理誤報。 新增簽章，以改善對所有 和 `JavaDeserializationRCE*``Log4JRCE*`規則的偵測`PROPFIND_METHOD`和封鎖。 更新標籤以更正所有`JavaDeserializationRCE*`規則中的 `Host_localhost_HEADER`和 中的大寫。 已更正 的描述`JavaDeserializationRCE_HEADER`。 | 2022-08-22 | 
| [AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 新增規則，以防止針對 Amazon Cognito 使用者集區 Web 流量使用帳戶接管預防受管規則群組。 | 2022-08-11 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs)  | AWS 已排定 版本`Version_1.2`和規則群組`Version_2.0`的過期時間。版本將於 2022 年 9 月 9 日過期。如需版本過期的資訊，請參閱 [在 中使用版本控制的受管規則群組 AWS WAF](waf-managed-rule-groups-versioning.md)。 | 2022-06-09 | 
| [核心規則集 (CRS) 受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-crs)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 已發行此規則群組的 1.3 版。此版本會更新規則 `GenericLFI_URIPATH`和 中的比對簽章`GenericRFI_URIPATH`，以改善偵測。 | 2022-05-24 | 
| [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 已將規則`CategoryEmailClient`新增至規則群組。 | 2022-04-06 | 
| [已知錯誤輸入受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 已發行此規則群組的 1.14 版。四個`JavaDeserializtionRCE`規則會移至 Block 模式。 | 2022-03-31 | 
| [已知錯誤輸入受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 已發行此規則群組的 1.13 版。更新 Spring Core 和 Cloud Function RCE 漏洞的文字轉換。這些規則處於計數模式，以收集指標並評估相符的模式。標籤可用於封鎖自訂規則中的請求。後續版本將以區塊模式與這些規則一起部署。 | 2022-03-31 | 
| [已知錯誤輸入受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 已發行此規則群組的 1.12 版。新增 Spring Core 和 Cloud Function RCE 漏洞的簽章。這些規則處於計數模式，以收集指標並評估相符的模式。標籤可用於封鎖自訂規則中的請求。後續版本將以區塊模式與這些規則一起部署。 移除規則 `Log4JRCE_HEADER`、`Log4JRCE_QUERYSTRING`、 和 `Log4JRCE_URI`，`Log4JRCE_BODY`並將它們取代為規則 `Log4JRCE`。 | 2022-03-30 | 
| [IP 評價規則群組](aws-managed-rule-groups-ip-rep.md) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 更新AWSManagedReconnaissanceList規則，將動作從計數變更為區塊。 | 2022-02-15 | 
| [AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md) 新規則群組中的所有規則  | 新增規則群組 AWSManagedRulesATPRuleSet。 | 2022-02-11 | 
| [已知錯誤輸入受管規則群組](aws-managed-rule-groups-baseline.md#aws-managed-rule-groups-baseline-known-bad-inputs)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 已發行此規則群組的 1.9 版。移除規則並將其`Log4JRCE`取代為規則 `Log4JRCE_HEADER`、`Log4JRCE_URI`、 `Log4JRCE_QUERYSTRING`和 `Log4JRCE_BODY`，以彈性使用此功能。新增簽章以改善偵測和封鎖。 | 2022-01-28 | 
| 核心規則集 (CRS) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  已發行此規則群組的 2.0 版。針對這些規則，調校偵測簽章以減少誤判。將`URL_DECODE`文字轉換取代為雙`URL_DECODE_UNI`文字轉換。新增`HTML_ENTITY_DECODE`文字轉換。  | 2022-01-10 | 
| 核心規則集 (CRS) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  作為此規則群組 2.0 版發行的一部分， 新增`URL_DECODE_UNI`了文字轉換。從 移除`URL_DECODE`文字轉換`RestrictedExtensions_URIPATH`。  | 2022-01-10 | 
| SQL 資料庫 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  |  已發行此規則群組的 2.0 版。以雙`URL_DECODE`文字轉換取代`URL_DECODE_UNI`文字轉換，並新增`COMPRESS_WHITE_SPACE`文字轉換。 已將更多偵測簽章新增至 `SQLiExtendedPatterns_QUERYARGUMENTS`。 已將 JSON 檢查新增至 `SQLi_BODY`。 新增規則 `SQLiExtendedPatterns_BODY`。 已移除規則 `SQLi_URIPATH`。  | 2022-01-10 | 
| 已知錯誤輸入 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 發佈規則的 1.8 版`Log4JRCE`，以改善標頭檢查和相符條件。 | 2021-12-17 | 
| 已知錯誤輸入 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 發佈規則的 1.4 版`Log4JRCE`，以調整相符條件並檢查其他標頭。發行 1.5 版來調整相符條件。 | 2021-12-11 | 
| 已知錯誤輸入 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/aws-managed-rule-groups-changelog.html)  | 新增規則 1.2 `Log4JRCE`版，以回應 Log4j 中最近揭露的安全問題。如需詳細資訊，請參閱 [CVE-2021-44228](https://www.cve.org/CVERecord?id=CVE-2021-44228)。此規則會檢查常見 URI 路徑、查詢字串、請求內文的前 8KB，以及常見標頭。此規則使用雙`URL_DECODE_UNI`文字轉換。已發行 1.3 版`Log4JRCE`來調整相符條件並檢查其他標頭。 已移除規則 `BadAuthToken_COOKIE_AUTHORIZATION`。  | 2021-12-10 | 

下表列出 2021 年 12 月之前的變更。


| 規則群組和規則 | Description | Date | 
| --- | --- | --- | 
| Amazon IP 評價清單 | `AWSManagedReconnaissanceList` | 在監控/計數模式中新增AWSManagedReconnaissanceList規則。此規則包含正在對 AWS 資源執行偵察的 IP 地址。 | 2021-11-23 | 
| Windows 作業系統 |  `WindowsShellCommands` `PowerShellCommands`  |  為 WindowsShell 命令新增了三個新規則：`WindowsShellCommands_COOKIE`、 `WindowsShellCommands_QUERYARGUMENTS`和 `WindowsShellCommands_BODY`。 新增新的 PowerShell 規則：`PowerShellCommands_COOKIE`。 透過移除字串 \$1Set1 和 \$1Set2 來重組`PowerShellComands`規則命名。 已將更全面的偵測簽章新增至 `PowerShellRules`。 已將`URL_DECODE_UNI`文字轉換新增至所有 Windows 作業系統規則。  | 2021-11-23 | 
| Linux 作業系統 |  `LFI_URIPATH` `LFI_QUERYSTRING` `LFI_BODY` `LFI_COOKIE`  |  將雙`URL_DECODE`文字轉換取代為雙 `URL_DECODE_UNI`。 新增`NORMALIZE_PATH_WIN`為第二個文字轉換。 將`LFI_BODY`規則取代為`LFI_COOKIE`規則。 為所有`LFI`規則新增了更全面的偵測簽章。  | 2021-11-23 | 
| 核心規則集 (CRS) |  `SizeRestrictions_BODY`  | 減少大小限制，以封鎖內文承載大於 8 KB 的 Web 請求。之前，限制為 10 KB。 | 2021-10-27 | 
| 核心規則集 (CRS) |  `EC2MetaDataSSRF_BODY` `EC2MetaDataSSRF_COOKIE` `EC2MetaDataSSRF_URIPATH` `EC2MetaDataSSRF_QUERYARGUMENTS`  | 新增更多偵測簽章。新增雙重 Unicode URL 解碼以改善封鎖。 | 2021-10-27 | 
| 核心規則集 (CRS) |  `GenericLFI_QUERYARGUMENTS` `GenericLFI_URIPATH` `RestrictedExtensions_URIPATH` `RestrictedExtensions_QUERYARGUMENTS`  | 新增雙重 Unicode URL 解碼以改善封鎖。 | 2021-10-27 | 
| 核心規則集 (CRS) |  `GenericRFI_QUERYARGUMENTS` `GenericRFI_BODY` `GenericRFI_URIPATH`  | 根據客戶意見回饋，更新規則簽章以減少誤報。新增雙重 Unicode URL 解碼以改善封鎖。 | 2021-10-27 | 
| 全部 | 所有規則 | 已將 AWS WAF 標籤的支援新增至尚未支援標籤的所有規則。 | 2021-10-25 | 
| Amazon IP 評價清單 | `AWSManagedIPReputationList_xxxx` | 重組 IP 評價清單、從規則名稱中移除尾碼，並新增對 AWS WAF 標籤的支援。 | 2021-05-04 | 
| 匿名 IP 清單 | `AnonymousIPList` `HostingProviderList` | 新增對 AWS WAF 標籤的支援。 | 2021-05-04 | 
| 機器人控制 | 全部 | 新增機器人控制規則集。 | 2021-04-01 | 
| 核心規則集 (CRS) | `GenericRFI_QUERYARGUMENTS`  | 新增雙重 URL 解碼。 | 2021-03-03 | 
| 核心規則集 (CRS) | `RestrictedExtensions_URIPATH`  | 已改善規則的組態，並新增額外的 URL 解碼。 | 2021-03-03 | 
| 管理員保護 | `AdminProtection_URIPATH`  | 新增雙重 URL 解碼。 | 2021-03-03 | 
| 已知錯誤輸入 | `ExploitablePaths_URIPATH`  | 已改善規則的組態，並新增額外的 URL 解碼。 | 2021-03-03 | 
| Linux 作業系統 | `LFI_QUERYARGUMENTS`  | 已改善規則的組態，並新增額外的 URL 解碼。 | 2021-03-03 | 
| Windows 作業系統 | 全部 | 已改善規則的組態。 | 2020-09-23 | 
| PHP 應用程式 | `PHPHighRiskMethodsVariables_QUERYARGUMENTS` `PHPHighRiskMethodsVariables_BODY`  | 將文字轉換從 HTML 解碼變更為 URL 解碼，以改善封鎖。 | 2020-09-16 | 
| POSIX 作業系統 | `UNIXShellCommandsVariables_QUERYARGUMENTS` `UNIXShellCommandsVariables_BODY`  | 將文字轉換從 HTML 解碼變更為 URL 解碼，以改善封鎖。 | 2020-09-16 | 
| 核心規則集 | `GenericLFI_QUERYARGUMENTS` `GenericLFI_URIPATH` GenericLFI\$1BODY  | 將文字轉換從 HTML 解碼變更為 URL 解碼，以改善封鎖。 | 2020-08-07 | 
| Linux 作業系統 | `LFI_URIPATH` `LFI_QUERYARGUMENTS` `LFI_BODY`  | 將文字轉換從 HTML 實體解碼變更為 URL 解碼，以改善偵測和封鎖。 | 2020-05-19 | 
| 匿名 IP 清單 | 全部 | 中的新規則群組[IP 評價規則群組](aws-managed-rule-groups-ip-rep.md)可封鎖來自允許混淆檢視器身分之服務的請求，以協助緩解機器人和逃避地理限制。 | 2020-03-06 | 
| WordPress 應用程式 | `WordPressExploitableCommands_QUERYSTRING`  | 能檢查查詢字串中可入侵字串的新規則 | 2020-03-03 | 
| 核心規則集 (CRS) | `SizeRestrictions_QUERYSTRING` `SizeRestrictions_Cookie_HEADER` `SizeRestrictions_BODY` `SizeRestrictions_URIPATH`  | 調整大小值限制條件以改善準確性。 | 2020-03-03 | 
| SQL 資料庫 | `SQLi_URIPATH`  | 規則現在會檢查訊息 URI。 | 2020-01-23 | 
| SQL 資料庫 | `SQLi_BODY` `SQLi_QUERYARGUMENTS` `SQLi_COOKIE`  | 更新的文字轉換。 | 2019-12-20 | 
| 核心規則集 (CRS) | `CrossSiteScripting_URIPATH` `CrossSiteScripting_BODY` `CrossSiteScripting_QUERYARGUMENTS` `CrossSiteScripting_COOKIE`  | 更新的文字轉換。 | 2019-12-20 | 

# 管理您自己的規則群組


您可以建立自己的規則群組，以重複使用在受管規則群組提供項目中找不到或您偏好自行處理的規則集合。

您建立的規則群組與保護套件 (Web ACL) 的保留規則相同，而且您以與保護套件 (Web ACL) 相同的方式將規則新增至規則群組。建立自己的規則群組時，必須為其設定不可變的容量上限。

**Topics**
+ [

# 建立規則群組
](waf-rule-group-creating.md)
+ [

# 編輯規則群組
](waf-rule-group-editing.md)
+ [

# 在保護套件中使用您的規則群組 (Web ACL)
](waf-rule-group-using.md)
+ [

# 刪除規則群組
](waf-rule-group-deleting.md)
+ [

# 共用規則群組
](waf-rule-group-sharing.md)

# 建立規則群組


若要建立新的規則群組，請遵循此頁面上的程序。

**建立規則群組**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇 **Rule groups (規則群組)**，然後選擇 **Create rule group (建立規則群組)**。

1. 輸入規則的名稱和描述。您將使用這些來識別規則集來管理它並使用它。

   請勿使用以 `AWS`、`PreFM`、 `Shield`或 開頭的名稱`PostFM`。這些字串是預留的，或可能導致與其他 服務為您管理的規則群組混淆。請參閱 [辨識其他服務提供的規則群組](waf-service-owned-rule-groups.md)。
**注意**  
建立規則群組後無法修改名稱。

1. 對於 **Region (區域)**，選擇您要儲存規則群組的區域。若要在保護 Amazon CloudFront 分佈的保護套件 (Web ACLs) 中使用規則群組，您必須使用 全域設定。您也可以對區域應用程式使用全域設定。

1. 選擇**下一步**。

1. 使用規則**建置器**精靈將規則新增至規則群組，就像您在保護套件 (Web ACL) 管理中一樣。唯一的差異是您無法將規則群組新增到另一個規則群組。

1. 針對**容量**，設定規則群組使用保護套件 (Web ACL) 容量單位 (WCUs的最大值。這是一個不可變的設定。如需 WCU 的相關資訊，請參閱 [中的 Web ACL 容量單位 WCUs) AWS WAF](aws-waf-capacity-units.md)。

   當您將規則新增至規則群組時，**Add rules and set capacity (新增規則和設定容量)** 窗格會顯示所需的最小容量，這是根據您已新增的規則而定。您可以使用此項目和對於規則群組的未來計劃，協助評估規則群組將需要的容量。

1. 檢閱規則群組的設定，然後選擇 **Create (建立)**。

# 編輯規則群組


若要從規則群組新增或移除規則或變更組態設定，請使用此頁面上的程序存取規則群組。

**生產流量風險**  
如果您變更目前在保護套件 (Web ACL) 中使用的規則群組，這些變更會影響您使用的保護套件 (Web ACL) 行為。請務必在預備或測試環境中測試和調校所有變更，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調整更新的規則，然後再啟用它們。如需準則，請參閱[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

**編輯規則群組**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇 **Rule groups (規則群組)**。

1. 選擇您要編輯的規則群組名稱。主控台會帶您前往規則群組的頁面。
**注意**  
如果您沒有看到要編輯的規則群組，請檢查**規則群組**區段中的區域選擇。對於用於保護 Amazon CloudFront 分佈的規則群組，請使用**全域 (CloudFront)** 設定。

1. 視需要編輯規則群組。您可以編輯規則群組的可變屬性，類似於您在建立期間所做的操作。主控台會隨心所欲儲存您的變更。
**注意**  
如果您變更規則的名稱，並且希望規則的指標名稱反映變更，則也必須更新指標名稱。 AWS WAF 當您變更規則名稱時， 不會自動更新規則的指標名稱。您可以使用規則 JSON 編輯器，在主控台中編輯規則時變更指標名稱。您也可以透過 APIs 和用於定義保護套件 (Web ACL) 或規則群組的任何 JSON 清單中變更這兩個名稱。

**更新期間的暫時性不一致**  
當您建立或變更保護套件 (Web ACL) 或其他 AWS WAF 資源時，變更會花費少量的時間傳播到儲存資源的所有區域。傳播時間可以是幾秒鐘到幾分鐘。

以下是您在變更傳播期間可能注意到的暫時性不一致的範例：
+ 建立保護套件 (Web ACL) 之後，如果您嘗試將其與資源建立關聯，您可能會收到例外狀況，指出保護套件 (Web ACL) 無法使用。
+ 將規則群組新增至保護套件 (Web ACL) 之後，新的規則群組規則可能會在使用保護套件 (Web ACL) 的一個區域中生效，而不會在另一個區域中生效。
+ 變更規則動作設定後，您可能會在某些地方看到舊動作，在其他地方看到新動作。
+ 將 IP 地址新增至封鎖規則中使用的 IP 集之後，新的地址可能會在某個區域中遭到封鎖，同時仍允許在另一個區域中封鎖。

# 在保護套件中使用您的規則群組 (Web ACL)


若要在保護套件 (Web ACL) 中使用規則群組，請將它新增至規則群組參考陳述式中的保護套件 (Web ACL)。

**生產流量風險**  
在生產流量的保護套件 (Web ACL) 中部署變更之前，請先在預備或測試環境中進行測試和調校，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調整更新的規則，然後再啟用它們。如需準則，請參閱[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

**注意**  
在保護套件 (Web ACL) 中使用超過 1，500 WCUs 會產生超出基本保護套件 (Web ACL) 價格的成本。如需詳細資訊，請參閱 [中的 Web ACL 容量單位 WCUs) AWS WAF](aws-waf-capacity-units.md) 和 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

**使用規則群組**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇 **Rule groups (規則群組)**。

1. 選擇您要使用的規則群組名稱。

1. 選擇**新增規則**，然後選擇**新增我自己的規則和規則群組**。

1. 選擇**規則群組**，然後從清單中選擇您的規則群組。

在保護套件 (Web ACL) 中，您可以將個別規則動作設定為 Count 或任何其他動作，以變更規則群組及其規則的行為。這可協助您執行像是測試規則群組、識別規則群組中規則的誤報，以及自訂受管規則群組如何處理您的請求。如需詳細資訊，請參閱[在 中覆寫規則群組動作 AWS WAF](web-acl-rule-group-override-options.md)。

如果您的規則群組包含以速率為基礎的陳述式，則您使用規則群組的每個保護套件 (Web ACL) 都有自己的個別速率追蹤和管理以速率為基礎的規則，與您使用規則群組的任何其他保護套件 (Web ACL) 無關。如需詳細資訊，請參閱[在 中使用以速率為基礎的規則陳述式 AWS WAF](waf-rule-statement-type-rate-based.md)。

**更新期間的暫時性不一致**  
當您建立或變更保護套件 (Web ACL) 或其他 AWS WAF 資源時，變更會花費少量的時間傳播到存放資源的所有區域。傳播時間可以是幾秒鐘到幾分鐘。

以下是您在變更傳播期間可能注意到的暫時不一致的範例：
+ 建立保護套件 (Web ACL) 之後，如果您嘗試將其與資源建立關聯，您可能會收到例外狀況，指出保護套件 (Web ACL) 無法使用。
+ 將規則群組新增至保護套件 (Web ACL) 之後，新的規則群組規則可能會在使用保護套件 (Web ACL) 的一個區域中生效，而不會在另一個區域中生效。
+ 變更規則動作設定後，您可能會在某些地方看到舊動作，在其他地方看到新動作。
+ 將 IP 地址新增至封鎖規則中使用的 IP 集之後，新的地址可能會在某個區域中遭到封鎖，同時仍允許在另一個區域中封鎖。

# 刪除規則群組


遵循本節中的指引來刪除規則群組。

**刪除參考的集合和規則群組**  
當您刪除可在保護套件 (Web ACL) 中使用的實體，例如 IP 集、regex 模式集或規則群組時， 會 AWS WAF 檢查實體目前是否在保護套件 (Web ACL) 中使用。如果發現正在使用中， 會 AWS WAF 警告您。 AWS WAF 幾乎總是能夠判斷保護套件 (Web ACL) 是否正在參考實體。但是在極少數的情況下，它也可能無法判斷。如果您需要確定實體目前沒有任何內容正在使用，請在刪除保護套件 (Web ACLs) 之前檢查它。如果實體是參考集合，也請檢查沒有規則群組正在使用它。

**刪除規則群組**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇 **Rule groups (規則群組)**。

1. 選擇您要刪除的規則群組，然後選擇 **Delete (刪除)**。
**注意**  
如果您沒有看到要刪除的規則群組，請檢查**規則群組**區段中的區域選擇。對於用於保護 Amazon CloudFront 分佈的規則群組，請使用**全域 (CloudFront)** 設定。

# 共用規則群組


您可以與其他帳戶共用規則群組，以供這些帳戶使用。

**共用規則群組**  
您可以與一或多個特定帳戶共用，也可以與組織中的所有帳戶共用。

若要共用規則群組，您可以使用 AWS WAF API 為您想要的規則群組共用建立政策。如需詳細資訊，請參閱《 *AWS WAF API 參考*》中的 [PutPermissionPolicy](https://docs.aws.amazon.com/waf/latest/APIReference/API_PutPermissionPolicy.html)。

**使用已與您共用的規則群組**  
如果規則群組已與您的帳戶共用，您可以透過 API 存取它，而且您可以在透過 API 建立或更新保護套件 (Web ACLs) 時參考它。如需詳細資訊，請參閱 *AWS WAF API 參考*中的 [GetRuleGroup](https://docs.aws.amazon.com/waf/latest/APIReference/API_GetRuleGroup.html)、[CreateWebACL](https://docs.aws.amazon.com/waf/latest/APIReference/API_CreateWebACL.html) 和 [UpdateWebACL](https://docs.aws.amazon.com/waf/latest/APIReference/API_UpdateWebACL.html)。與您共用的規則群組不會出現在 AWS WAF 主控台規則群組清單中。

# AWS Marketplace 規則群組


本節說明如何使用 AWS Marketplace 規則群組。

AWS Marketplace 規則群組可透過 的 AWS Marketplace 主控台進行訂閱[AWS Marketplace](https://aws.amazon.com/marketplace)。訂閱 AWS Marketplace 規則群組後，您可以在 中使用它 AWS WAF。若要在 AWS Firewall Manager AWS WAF 政策中使用 AWS Marketplace 規則群組，組織中的每個帳戶都必須訂閱該群組。

**您可以透過下列方式訂閱不同類型的規則群組 AWS Marketplace：**
+ AWS WAF 合作夥伴管理的規則群組
+ 用戶端保護

在將 AWS WAF 保護用於生產流量之前，測試和調校保護的任何變更。如需相關資訊，請參閱[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

**AWS Marketplace 規則群組定價**  
AWS Marketplace 規則群組在沒有長期合約且沒有最低承諾的情況下可用。當您訂閱規則群組時，系統會根據數量向您收取每月費用 （每小時按比例分配） 和持續的請求費用。不過，只有在您將訂閱的規則群組新增至 Web ACL 並開始使用時，才會向您收取訂閱費用。如需詳細資訊，請參閱 中每個 AWS Marketplace 規則群組的[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)和描述[AWS Marketplace](https://aws.amazon.com/marketplace)。

**對 AWS Marketplace 規則群組有任何疑問？**  
有關賣方管理的規則群組 AWS Marketplace 以及請求變更功能的問題，請聯絡供應商的客戶支援團隊。若要尋找聯絡資訊，請參閱供應商的清單，網址為 [AWS Marketplace](https://aws.amazon.com/marketplace)。

 AWS Marketplace 規則群組提供者會決定如何管理規則群組，例如如何更新規則群組，以及規則群組是否已進行版本控制。提供者也會決定規則群組的詳細資訊，包括規則、規則動作，以及規則新增至相符 Web 請求的任何標籤。

## 訂閱 AWS Marketplace 規則群組
已將用戶端保護新增至 AWS WAF

的用戶端保護 AWS Marketplace 現已可用。您可以透過 AWS Marketplace 主控台訂閱和取消訂閱用戶端保護。

您可以在 AWS WAF 主控台上訂閱和取消訂閱 AWS Marketplace 規則群組。

**重要**  
若要在 AWS Firewall Manager 政策中使用 AWS Marketplace 規則群組，組織中的每個帳戶必須先訂閱該規則群組。

**訂閱 AWS Marketplace 規則群組**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇**附加元件保護**。

1. 在 **AWS Marketplace**區段中，選擇規則群組的名稱以檢視詳細資訊和定價資訊。
**提示**  
使用篩選條件快速排序您最感興趣的規則。例如，您可以使用**類別**篩選條件，僅檢視用戶端保護。

1. 若要訂閱 AWS Marketplace 規則群組：

   1. 導覽至規則群組，然後選擇**透過 Marketplace 訂閱**。

   1. 在開啟的 Marketplace 頁面中，選擇**檢視購買選項**，然後選擇**訂閱**。
**注意**  
如果您決定不訂閱規則群組，只要關閉彈出式視窗即可。

訂閱 AWS Marketplace 規則群組之後，您可以在保護套件 (Web ACLs) 中使用它，就像使用其他受管規則群組一樣。如需相關資訊，請參閱[在 中建立保護套件 (Web ACL) AWS WAF](web-acl-creating.md)。

將規則群組新增至保護套件 (Web ACL) 時，您可以覆寫規則群組中規則的動作，以及規則群組結果的動作。如需詳細資訊，請參閱[在 中覆寫規則群組動作 AWS WAF](web-acl-rule-group-override-options.md)。

## 從 AWS Marketplace 規則群組取消訂閱


您可以在 AWS Marketplace 主控台上取消訂閱 AWS Marketplace 規則群組。

**重要**  
若要停止 AWS Marketplace 規則群組的訂閱費用，除了取消訂閱外，您還必須將其從 AWS WAF 和任何 Firewall Manager AWS WAF 政策中的所有保護套件 (Web ACLs) 中移除。如果您取消訂閱 AWS Marketplace 規則群組，但未將其從保護套件 (Web ACLs) 中移除，則會繼續向您收取訂閱費用。

**取消訂閱 AWS Marketplace 規則群組**

1. 從所有保護套件 (Web ACLs) 中移除規則群組。如需詳細資訊，請參閱[在 中編輯保護套件 (Web ACL) AWS WAF](web-acl-editing.md)。

1. 在 https：//[https://console.aws.amazon.com/marketplace](https://console.aws.amazon.com/marketplace) 開啟 AWS 主控台。

   **管理訂閱頁面隨即出現**。

1. 開啟**交付方法**清單，然後選擇 **SaaS**。

1. 在**協議**下，開啟**動作清單**，然後選擇您要取消訂閱的規則群組名稱旁的**取消**訂閱。

1. 在**取消訂閱**對話方塊中，輸入 **confirm**，然後選擇**是，取消訂閱**。

## 對 AWS Marketplace 規則群組進行故障診斷


如果您發現 AWS Marketplace 規則群組封鎖合法流量，您可以執行下列步驟來疑難排解問題。

**對 AWS Marketplace 規則群組進行故障診斷**

1. 覆寫動作以計算封鎖合法流量的規則數量。您可以使用 AWS WAF 抽樣請求或 AWS WAF 日誌來識別哪些規則封鎖特定請求。您可以查看日誌中的 `ruleGroupId` 欄位或取樣請求中的 `RuleWithinRuleGroup` 來識別規則。您可以在 模式 中識別規則`<Seller Name>#<RuleGroup Name>#<Rule Name>`。

1. 如果將特定規則設定為僅計數請求無法解決問題，您可以覆寫所有規則動作，或將 AWS Marketplace 規則群組本身的動作從**無覆寫**變更為**覆寫以計數**。這允許 web 請求通過，無視規則群組內的個別規則動作。

1. 在覆寫個別規則動作或整個 AWS Marketplace 規則群組動作之後，請聯絡規則群組提供者的客戶支援團隊，以進一步疑難排解問題。如需聯絡資訊，請參閱 AWS Marketplace中產品列表頁面的規則群組清單。

### 聯絡 AWS 支援


對於 AWS WAF 或由 管理的規則群組的問題 AWS，請聯絡 AWS 支援。如果規則群組由 AWS Marketplace 賣方管理的問題，請聯絡供應商的客戶支援團隊。若要尋找聯絡資訊，請參閱供應商的清單 AWS Marketplace。

# 辨識其他服務提供的規則群組
從其他 服務識別規則群組

如果您或組織中的管理員使用 AWS Firewall Manager 或 AWS Shield Advanced 來管理資源保護 AWS WAF，您可能會在帳戶中看到新增至保護套件 (Web ACLs) 的規則群組參考陳述式。

這些規則群組的名稱以下列字串開頭：
+ **`ShieldMitigationRuleGroup`** – 這些規則群組由 管理， AWS Shield Advanced 並用於為受保護的應用程式層 （第 7 層） 資源提供自動應用程式層 DDoS 緩解。

  當您為受保護的資源啟用自動應用程式層 DDoS 緩解時，Shield Advanced 會將其中一個規則群組新增至與資源相關聯的保護套件 (Web ACL)。Shield Advanced 會將優先順序設定為 10，000，000 的規則群組參考陳述式指派給規則群組參考陳述式，以便在您在保護套件 (Web ACL) 中設定的規則之後執行。如需這些規則群組的詳細資訊，請參閱 [使用 Shield Advanced 自動化應用程式層 DDoS 緩解](ddos-automatic-app-layer-response.md)。
**警告**  
請勿嘗試在保護套件 (Web ACL) 中手動管理此規則群組。特別是，請勿從保護套件 (Web ACL) 手動刪除`ShieldMitigationRuleGroup`規則群組參考陳述式。這樣做可能會對與保護套件 (Web ACL) 相關聯的所有資源產生意外後果。反之，請使用 Shield Advanced 停用與保護套件 (Web ACL) 相關聯的資源的自動緩解。當不需要自動緩解時，Shield Advanced 會為您移除規則群組。
+ **`PREFMManaged` 和 `POSTFMManaged`** – 這些規則群組是由 AWS Firewall Manager 根據 Firewall Manager AWS WAF 政策組態管理。Firewall Manager 會在 Firewall Manager 管理的保護套件 (Web ACLs) 內提供這些規則群組。

  Firewall Manager 會為您建立名稱開頭為 的保護套件 (Web ACLs)`FMManagedWebACLV2`。您也可以設定 Firewall Manager 來改善現有的保護套件 (Web ACLs)。對於這些，保護套件 (Web ACL) 名稱是您在建立時指定的名稱。在任何一種情況下，防火牆管理員都會將這些規則群組新增至保護套件 (Web ACL)。如需詳細資訊，請參閱[搭配 Firewall Manager 使用 AWS WAF 政策](waf-policies.md)。

# 中的 Web ACL 容量單位 WCUs) AWS WAF
Web ACL 容量單位 WCUs)超過 1，500 個 Web ACL WCUs可變定價

在 Web ACL 中使用超過 1，500 個 Web ACL 容量單位 (WCUs) 會產生額外的成本，這會隨著 Web ACL WCU 用量的增加和減少而自動調整。Web ACL 上限為 5，000 WCUs。

本節說明什麼是 Web ACL 容量單位 WCUs)，以及它們的運作方式。

AWS WAF 使用 WCUs 來計算和控制執行規則、規則群組和 Web ACLs 所需的操作資源。當您設定規則群組和 Web ACLs 時， 會 AWS WAF 強制執行 WCU 限制。WCUs不會影響 AWS WAF 檢查 Web 流量的方式。

AWS WAF 管理規則、規則群組和 Web ACLs容量。

**規則 WCUs**  
AWS WAF 當您建立或更新規則時， 會計算規則容量。 會針對每個規則類型以不同的方式 AWS WAF 計算容量，以反映每個規則的相對成本。相較於使用更多處理能力的複雜規則，執行成本較少的簡單規則，會使用較少的 WCU。例如，大小限制規則陳述式使用的 WCUs 少於使用 regex 模式集檢查請求的陳述式。

規則容量需求通常從規則類型的基本成本開始，並隨著複雜性而增加，例如，當您在檢查之前新增文字轉換，或檢查 JSON 內文時。如需規則容量需求的資訊，請參閱 中規則陳述式的清單[在 中使用規則陳述式 AWS WAF](waf-rule-statements.md)。

**規則群組 WCUs**  
規則群組的 WCU 需求取決於您在規則群組中定義的規則。規則群組的最大容量為 5，000 WCUs。

每個規則群組都有不可變的容量設定，擁有者會在建立時指派此設定。這適用於您透過 建立的受管規則群組和規則群組 AWS WAF。當您修改規則群組時，您的變更必須將規則群組的 WCUs保持在其容量內。這可確保使用規則群組的保護套件 (Web ACLs) 或 Web ACLs保持在其容量需求內。

規則群組中正在使用的 WCUs 是規則的 WCUs 總和減去 AWS WAF 可透過結合規則行為取得的任何處理最佳化。例如，如果您定義兩個規則來檢查相同的 Web 請求元件，而且每個規則在檢查元件之前都會套用特定的轉換， AWS WAF 則可能只需針對套用轉換向您收取一次費用。在保護套件 (Web ACL) 中使用規則群組的 WCU 成本，一律是您在規則群組建立時定義的固定 WCU 設定。

當您建立規則群組時，請小心將容量設定為足夠高，以容納您要在整個規則群組生命週期內使用的規則。

**保護套件或 Web ACL WCUs**  
保護套件 (Web ACL) 的 WCU 需求取決於您在保護套件 (Web ACL) 中使用的規則和規則群組。
+ 在保護套件 (Web ACL) 中使用規則群組的成本是規則群組的容量設定。
+ 使用規則的成本是規則的計算 WCUs減去 AWS WAF 可從保護套件 (Web ACL) 規則組合取得的任何處理最佳化。例如，如果您定義兩個規則來檢查相同的 Web 請求元件，而且每個規則在檢查元件之前都會套用特定的轉換， AWS WAF 則可能只需針對套用轉換向您收取一次費用。

保護套件 (Web ACL) 的基本價格最多包含 1，500 WCUs。根據分層定價模式，使用超過 1，500 WCUs 會產生額外費用。隨著保護套件 (Web ACL) WCU 用量的變更 AWS WAF ， 會自動調整您的保護套件 (Web ACL) 定價。如需定價詳細資訊，請參閱 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

保護套件 (Web ACL) 的最大容量為 5，000 WCUs。

## 判斷規則群組、保護套件 (Web ACL) 或 Web ACL WCUs


如先前章節所述，規則群組、保護套件 (Web ACL) 或 Web ACL 中使用的 WCUs 總數，將等於*或小於*規則群組、保護套件 (Web ACL) 或 Web ACL 中定義之所有規則的 WCUs 總和。

在 AWS WAF 主控台中，您可以查看將規則新增至保護套件 (Web ACL)、Web ACL 或規則群組時所使用的容量。主控台會顯示您新增規則時所使用的目前容量單位。

透過 API，您可以檢查要在保護套件 (Web ACL)、Web ACL 或規則群組中使用的規則的最大容量需求。若要這樣做，請將規則的 JSON 清單提供給檢查容量呼叫。如需詳細資訊，請參閱 *AWS WAF V2 API 參考*中的 [CheckCapacity](https://docs.aws.amazon.com/waf/latest/APIReference/API_CheckCapacity.html)。

# 在 中過大 Web 請求元件 AWS WAF
過大 Web 請求元件AWS WAF 處理過大的內文、標頭和 Cookie 請求元件

您現在可以在檢查這些元件的規則中指定 AWS WAF 應如何處理過大請求內文、標頭和 Cookie。您已建立用來檢查這些元件的規則，其行為符合處理過大的新Continue選項。

本節說明如何管理在 中檢查 Web 請求內文、標頭和 Cookie 的大小限制 AWS WAF。

AWS WAF 不支援檢查 Web 請求元件內文、標頭或 Cookie 的超大型內容。基礎主機服務對其轉送到 AWS WAF 進行檢查的項目具有計數和大小限制。例如，主機服務不會傳送超過 200 個標頭給 AWS WAF，因此對於具有 205 個標頭的 Web 請求， AWS WAF 無法檢查最後 5 個標頭。

當 AWS WAF 允許 Web 請求繼續到您的受保護資源時，會傳送整個 Web 請求，包括 AWS WAF 超出可檢查之計數和大小限制的任何內容。

**元件檢查大小限制**  
元件檢查大小限制如下：
+ **`Body` 和 `JSON Body`** – 對於 Application Load Balancer 和 AWS AppSync， AWS WAF 可以檢查請求主體的前 8 KB。根據預設，對於 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access， AWS WAF 可以檢查前 16 KB，並且您可以將保護套件 (Web ACL) 組態中的限制提高到 64 KB。如需詳細資訊，請參閱[在 中管理主體檢查的考量事項 AWS WAF](web-acl-setting-body-inspection-limit.md)。
+ **`Headers`** – 最多 AWS WAF 可以檢查請求標頭的前 8 KB (8，192 個位元組） 和前 200 個標頭。內容最多可 AWS WAF 達第一個限制可供檢查。

  當您檢查請求中的所有標頭時，會套用這些限制。當您檢查單一標頭時， AWS WAF 可以在沒有這些大小或計數限制的情況下檢查該標頭的完整內容。
+ **`Cookies`** – 最多 AWS WAF 可以檢查請求 Cookie 的前 8 KB (8，192 個位元組） 和前 200 個 Cookie。內容最多可 AWS WAF 達第一個限制可供檢查。

**規則陳述式的超大處理選項**  
當您撰寫規則陳述式來檢查其中一個請求元件類型時，您可以指定如何處理過大元件。當規則檢查的請求元件超過大小限制時，超大處理 AWS WAF 會告知如何處理 Web 請求。

處理過大元件的選項如下：
+ **Continue** – 根據規則檢查條件，正常檢查請求元件。 AWS WAF 會檢查大小限制內的請求元件內容。
+ **Match** – 將 Web 請求視為符合規則陳述式。 會將規則動作 AWS WAF 套用至請求，而不根據規則的檢查條件進行評估。
+ **No match** – 將 Web 請求視為不符合規則陳述式，而不根據規則的檢查標準進行評估。 會使用保護套件 (Web ACL) 中的其餘規則 AWS WAF 繼續檢查 Web 請求，就像對任何不相符規則所做的一樣。

在 AWS WAF 主控台中，您必須選擇其中一個處理選項。在主控台外，預設選項為 Continue。

如果您在其動作設為 的規則中使用 Match選項Block，則規則會封鎖已檢查元件過大的請求。使用任何其他組態時，請求的最終處置取決於各種因素，例如保護套件 (Web ACL) 中其他規則的組態，以及保護套件 (Web ACL) 的預設動作設定。

**在非您擁有的規則群組中進行過大處理**  
元件大小和計數限制適用於您在保護套件 (Web ACL) 中使用的所有規則。這包括您在受管規則群組和另一個帳戶與您共用的規則群組中，使用但未管理的任何規則。

當您使用未管理的規則群組時，規則群組可能會有規則來檢查有限的請求元件，但不會以您需要的方式處理過大的內容。如需 AWS 受管規則如何管理過大元件的資訊，請參閱 [AWS 受管規則規則群組清單](aws-managed-rule-groups-list.md)。如需其他規則群組的資訊，請洽詢您的規則群組提供者。

**管理保護套件中過大元件的準則 (Web ACL)**  
您在保護套件 (Web ACL) 中處理過大元件的方式，取決於多種因素，例如請求元件內容的預期大小、保護套件 (Web ACL) 的預設請求處理，以及保護套件 (Web ACL) 中的其他規則如何符合和處理請求。

管理過大 Web 請求元件的一般準則如下：
+ 如果您需要允許某些具有過大元件內容的請求，請盡可能新增規則以明確允許這些請求。優先考慮這些規則，使其在檢查相同元件類型的保護套件 (Web ACL) 中的任何其他規則之前執行。透過此方法，您將無法使用 AWS WAF 來檢查您允許傳遞至受保護資源的超大元件的完整內容。
+ 對於所有其他請求，您可以透過封鎖超過限制的請求來防止任何額外的位元組通過：
  + **您的規則和規則群組** – 在檢查具有大小限制的元件的規則中，設定過大處理，以便封鎖超出限制的請求。例如，如果您的規則封鎖具有特定標頭內容的請求，請將超大處理設定為符合具有超大標頭內容的請求。或者，如果您的保護套件 (Web ACL) 預設封鎖請求，且您的規則允許特定標頭內容，則請將規則的過大處理設定為與具有過大標頭內容的任何請求不相符。
  + **您未管理的規則群組** – 為了防止您未管理的規則群組允許過大請求元件，您可以新增單獨的規則來檢查請求元件類型，並封鎖超過限制的請求。優先考慮保護套件中的規則 (Web ACL)，使其在規則群組之前執行。例如，您可以在保護套件 (Web ACL) 中執行任何內文檢查規則之前，使用過大內文內容封鎖請求。下列程序說明如何新增此類型的規則。

## 封鎖過大的 Web 請求元件
封鎖過大的元件

您可以在保護套件 (Web ACL) 中新增規則，以封鎖具有過大元件的請求。

**新增封鎖過大內容的規則**

1. 當您建立或編輯保護套件 (Web ACL) 時，請在規則設定中選擇**新增規則**、**新增我自己的規則和規則群組**、**規則建置器**，然後選擇**規則視覺化編輯器**。如需建立或編輯保護套件 (Web ACL) 的指引，請參閱 [在 中檢視 Web 流量指標 AWS WAF](web-acl-working-with.md)。

1. 輸入規則的名稱，並將**類型**設定保留為**規則**。

1. 從其預設值變更下列相符設定：

   1. 在**陳述**式上，針對**檢查**，開啟下拉式清單並選擇您需要的 Web 請求元件，包括**內文**、**標頭**或 **Cookie**。

   1. 針對**相符類型**，選擇**大於的大小**。

   1. 針對**大小**，輸入至少為元件類型大小下限的數字。針對標頭和 Cookie，輸入 `8192`。在 Application Load Balancer 或 AWS AppSync 保護套件 (Web ACLs) 中，針對內文，輸入 `8192`。對於 CloudFront、API Gateway、Amazon Cognito、App Runner 或 Verified Access 保護套件 (Web ACLs) 中的主體，如果您使用預設的主體大小限制，請輸入 `16384`。否則，請輸入您為保護套件定義的體型大小限制 (Web ACL)。

   1. 針對**超大處理**，選取**相符**。

1. 針對**動作**，選取**封鎖**。

1. 選擇**新增規則**。

1. 新增規則後，在**設定規則優先順序**頁面上，將其移至您保護套件 (Web ACL) 中檢查相同元件類型的任何規則或規則群組上方。這為新規則提供了較低的數值優先順序設定，這會導致 先 AWS WAF 對其進行評估。如需詳細資訊，請參閱[設定規則優先順序](web-acl-processing-order.md)。

# 中支援的規則表達式語法 AWS WAF
支援的規則表達式語法

AWS WAF 支援 PCRE 程式庫 使用的規則表達式模式語法`libpcre`。程式庫記錄在 [PCRE - Perl 相容規則表達式](http://www.pcre.org/)中。

AWS WAF 不支援程式庫的所有建構。例如，它支援一些零寬度聲明，但不是全部。我們沒有支援的建構的完整清單。不過，如果您提供的 regex 模式無效或使用不支援的建構， AWS WAF API 會報告失敗。

AWS WAF 不支援下列 PCRE 模式：
+ Backreferences 和擷取子運算式
+ 子程式參考和遞迴模式
+ 條件式模式
+ 恢復控制動詞
+ \$1C 單一位元組指令
+ \$1R 換行比對指令
+ \$1K 開頭比對重設指令
+ 圖說文字和內嵌的程式碼
+ 原子分組和所佔有的量詞

# 中的 IP 集和 regex 模式集 AWS WAF
IP 集合和規則運算式模式集

本節介紹 IP 集和 regex 模式集的主題。

AWS WAF 會將一些更複雜的資訊儲存在您在規則中參考它們所使用的集合中。這些集合中的每一個都有一個名稱，並在建立時獲指派一個 Amazon Resource Name (ARN)。您可以從規則陳述式內管理這些集合，而且可以透過主控台導覽窗格存取和管理這些集合。

您可以在規則群組或保護套件 (Web ACL) 中使用受管集。
+ 若要使用 IP 集，請參閱 [IP 集合比對規則陳述式](waf-rule-statement-type-ipset-match.md)。
+ 若要使用 regex 模式集，請參閱 [規則運算式模式集比對規則陳述式](waf-rule-statement-type-regex-pattern-set-match.md)。

**更新期間的暫時性不一致**  
當您建立或變更保護套件 (Web ACL) 或其他 AWS WAF 資源時，變更會花費少量的時間傳播到存放資源的所有區域。傳播時間可以是幾秒鐘到幾分鐘。

以下是您在變更傳播期間可能注意到的暫時不一致的範例：
+ 建立保護套件 (Web ACL) 之後，如果您嘗試將其與資源建立關聯，您可能會收到例外狀況，指出保護套件 (Web ACL) 無法使用。
+ 將規則群組新增至保護套件 (Web ACL) 之後，新的規則群組規則可能會在使用保護套件 (Web ACL) 的一個區域中生效，而不會在另一個區域中生效。
+ 變更規則動作設定後，您可能會在某些地方看到舊動作，在其他地方看到新動作。
+ 將 IP 地址新增至封鎖規則中使用的 IP 集之後，新的地址可能會在某個區域中遭到封鎖，同時仍允許在另一個區域中封鎖。

**Topics**
+ [

# 在 中建立和管理 IP 集 AWS WAF
](waf-ip-set-managing.md)
+ [

# 在 中建立和管理 regex 模式集 AWS WAF
](waf-regex-pattern-set-managing.md)

# 在 中建立和管理 IP 集 AWS WAF
建立和管理 IP 集合

IP 集合提供您要在規則陳述式中一起使用的 IP 地址和 IP 地址範圍的集合。IP 集是 AWS 資源。

若要在保護套件 (Web ACL) 或規則群組中使用 IP 組，請先`IPSet`使用地址規格建立 AWS 資源。然後在將 IP 集合規則陳述式新增至保護套件 (Web ACL) 或規則群組時參考集合。

## 建立 IP 集合


遵循本節中的程序來建立新的 IP 集合。

**注意**  
除了本節中的程序之外，您還可以在將 IP 比對規則新增至保護套件 (Web ACL) 或規則群組時，選擇新增 IP 組。選擇該選項需要您提供與此程序所需的相同設定。

**建立 IP 集合**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇 **IP sets (IP 集合)**，然後選擇 **Create IP set (建立 IP 集合)**。

1. 輸入 IP 集合的名稱和描述。當您要使用它們時，您將使用它們來識別該集合。
**注意**  
建立 IP 集合後無法修改名稱。

1. 針對**區域**，選擇全域 (CloudFront) 或選擇要存放 IP 集的區域。您只能在保護區域資源的保護套件 (Web ACLs) 中使用區域 IP 集。若要在保護套件 (Web ACLs) 中使用 IP 組來保護 Amazon CloudFront 分佈，您必須使用全域 (CloudFront)。

1. 針對 **IP version (IP 版本)**，選取您要使用的版本。

1. 在 **IP 地址**文字方塊中，在 CIDR 表示法中輸入每行一個 IP 地址或 IP 地址範圍。 AWS WAF 支援除 以外的所有 IPv4 和 IPv6 CIDR 範圍`/0`。如需 CIDR 符號表示法的詳細資訊，請參閱 Wikipedia 文章 [無類別網域間路由](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)。

   以下是一些範例：
   + 若要指定 IPv4 地址 192.0.2.44，請輸入 **192.0.2.44/32**。
   + 若要指定 IPv6 地址 2620：0：2d0：200：0：0：0，請輸入 **2620：0：2d0：200：0：0：0：0/128**。
   + 若要指定 IPv4 地址的範圍，從 192.0.2.0 to 192.0.2.255，請輸入 **192.0.2.0/24**。
   + 若要指定 IPv6 地址的範圍，從 2620:0:2d0:200:0:0:0:0 to 2620:0:2d0:200:ffff:ffff:ffff:ffff，請輸入 **2620:0:2d0:200::/64**。

1. 檢閱 IP 集合的設定，然後選擇 **Create IP set (建立 IP 集合)**。

## 刪除 IP 集合


遵循本節中的指引來刪除參考集。

**刪除參考的集合和規則群組**  
當您刪除可在保護套件 (Web ACL) 中使用的實體，例如 IP 集、regex 模式集或規則群組時， 會 AWS WAF 檢查實體目前是否在保護套件 (Web ACL) 中使用。如果發現正在使用中， 會 AWS WAF 警告您。 AWS WAF 幾乎總是能夠判斷保護套件 (Web ACL) 是否正在參考實體。但是在極少數的情況下，它也可能無法判斷。如果您需要確定實體目前沒有任何內容正在使用，請在刪除保護套件 (Web ACLs) 之前檢查它。如果實體是參考集合，也請檢查沒有規則群組正在使用它。

**刪除 IP 集合**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇 **IP sets (IP 集合)**。

1. 選取您要刪除的 IP 集合，然後選擇 **Delete (刪除)**。

# 在 中建立和管理 regex 模式集 AWS WAF
建立和管理規則運算式模式集

規則運算式模式集提供您要在規則陳述式中一起使用的規則運算式的集合。Regex 模式集是 AWS 資源。

若要在保護套件 (Web ACL) 或規則群組中使用 regex 模式集，您必須先建立`RegexPatternSet`具有 regex 模式規格 AWS 的資源。然後在將 regex 模式集規則陳述式新增至保護套件 (Web ACL) 或規則群組時參考集合。規則運算式模式集必須至少包含一個規則運算式模式。

如果您的 regex 模式集包含多個 regex 模式，則在規則中使用它時，模式比對會與`OR`邏輯結合。也就是說，如果請求元件符合集合中的任何模式，則 Web 請求將比對模式集規則陳述式。

AWS WAF 支援 PCRE 程式庫使用的模式語法`libpcre`，但有一些例外。程式庫記錄在 [PCRE - Perl 相容規則表達式](http://www.pcre.org/)中。如需 AWS WAF 支援的相關資訊，請參閱 [中支援的規則表達式語法 AWS WAF](waf-regex-pattern-support.md)。

## 建立規則運算式模式集


遵循本節中的程序來建立新的規則運算式模式集。

**建立規則運算式模式集**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇 **Regex pattern sets (規則運算式模式集)**，然後選擇 **Create regex pattern set (建立規則運算式模式集)**。

1. 輸入規則運算式模式集的名稱和描述。當您要使用該集合時，您將使用這些項目來加以識別。
**注意**  
建立規則運算式模式集後無法變更名稱。

1. 針對**區域**，選擇全域 (CloudFront) 或選擇要存放 regex 模式集的區域。您只能在保護區域資源的保護套件 (Web ACLs) 中使用區域 regex 模式集。若要在保護套件 (Web ACLs) 中使用保護 Amazon CloudFront 分佈的 regex 模式集，您必須使用全域 (CloudFront)。

1. 在 **Regular expressions (規則運算式)** 文字方塊中，每行輸入一個規則運算式模式。

   例如，規則運算式 `I[a@]mAB[a@]dRequest` 符合下列字串：`IamABadRequest`、`IamAB@dRequest`、`I@mABadRequest` 和 `I@mAB@dRequest`。

   AWS WAF 支援 PCRE 程式庫使用的模式語法`libpcre`，但有一些例外。程式庫記錄在 [PCRE - Perl 相容規則表達式](http://www.pcre.org/)中。如需 AWS WAF 支援的相關資訊，請參閱 [中支援的規則表達式語法 AWS WAF](waf-regex-pattern-support.md)。

1. 檢閱規則運算式模式集的設定，然後選擇 **Create regex pattern set (建立規則運算式模式集)**。

## 刪除規則運算式模式集


遵循本節中的指引來刪除參考集。

**刪除參考的集合和規則群組**  
當您刪除可在保護套件 (Web ACL) 中使用的實體，例如 IP 集、regex 模式集或規則群組時， 會 AWS WAF 檢查實體目前是否在保護套件 (Web ACL) 中使用。如果發現正在使用中， 會 AWS WAF 警告您。 AWS WAF 幾乎總是能夠判斷保護套件 (Web ACL) 是否正在參考實體。但是在極少數的情況下，它也可能無法判斷。如果您需要確定實體目前沒有任何內容正在使用，請在刪除保護套件 (Web ACLs) 之前檢查它。如果實體是參考集合，也請檢查沒有規則群組正在使用它。

**刪除規則運算式模式集**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇 **Regex pattern sets (規則運算式模式集)**。

1. 選取您要刪除的規則運算式模式集，然後選擇 **Delete (刪除)**。

# 中的自訂 Web 請求和回應 AWS WAF
自訂的 Web 請求和回應自訂請求和回應處理

您可以為未封鎖的 AWS WAF Web 請求包含自訂標頭，也可以為封鎖的 AWS WAF Web 請求傳送自訂回應。這可用於保護套件 (Web ACL) 預設動作和規則動作設定。

本節說明如何將自訂 Web 請求和回應處理行為新增至 AWS WAF 規則動作和預設保護套件 (Web ACL) 動作。您的自訂設定會在附加至 的動作套用時套用。

您可以透過下列方式自訂 Web 請求和回應：
+ 透過 Allow、CAPTCHA、 Count和 Challenge動作，您可以將自訂標頭插入 Web 請求。當 AWS WAF 轉送 Web 請求到受保護的資源時，請求會包含整個原始請求，以及您已插入的自訂標頭。對於 CAPTCHA和 Challenge動作，只有在請求通過 CAPTCHA 或挑戰字符檢查時， AWS WAF 才會套用自訂。
+ 透過 Block動作，您可以使用回應程式碼、標頭和內文來定義完整的自訂回應。受保護的資源會使用 提供的自訂回應來回應請求 AWS WAF。您的自訂回應會取代 的預設Block動作回應`403 (Forbidden)`。

**您可以自訂的動作設定**  
您可以在定義下列動作設定時指定自訂請求或回應：
+ 規則動作。如需相關資訊，請參閱[在 中使用規則動作 AWS WAF](waf-rule-action.md)。
+ 保護套件 (Web ACL) 的預設動作。如需相關資訊，請參閱[在 中設定保護套件 (Web ACL) 預設動作 AWS WAF](web-acl-default-action.md)。

**您無法自訂的動作設定**  
對於您在保護套件 (Web ACL) 中使用的規則群組，*您無法*在覆寫動作中指定自訂請求處理。請參閱 [在 中使用保護套件 (Web ACLs) 搭配規則和規則群組 AWS WAF](web-acl-processing.md)。另請參閱 [在 中使用受管規則群組陳述式 AWS WAF](waf-rule-statement-type-managed-rule-group.md)和 [在 中使用規則群組陳述式 AWS WAF](waf-rule-statement-type-rule-group.md)。

**更新期間的暫時性不一致**  
當您建立或變更保護套件 (Web ACL) 或其他 AWS WAF 資源時，變更會花費少量的時間傳播到存放資源的所有區域。傳播時間可以是幾秒鐘到幾分鐘。

以下是您在變更傳播期間可能注意到的暫時不一致的範例：
+ 建立保護套件 (Web ACL) 之後，如果您嘗試將其與資源建立關聯，您可能會收到例外狀況，指出保護套件 (Web ACL) 無法使用。
+ 將規則群組新增至保護套件 (Web ACL) 之後，新的規則群組規則可能會在使用保護套件 (Web ACL) 的一個區域中生效，而不會在另一個區域中生效。
+ 變更規則動作設定後，您可能會在某些地方看到舊動作，在其他地方看到新動作。
+ 將 IP 地址新增至封鎖規則中使用的 IP 集之後，新的地址可能會在某個區域中遭到封鎖，同時仍允許在另一個區域中封鎖。

**自訂請求和回應的使用限制**  
AWS WAF 會為您使用自訂請求和回應定義最大設定。例如，每個保護套件 (Web ACL) 或規則群組的請求標頭數目上限，以及單一自訂回應定義的自訂標頭數目上限。如需相關資訊，請參閱[AWS WAF 配額](limits.md)。

**Topics**
+ [

# 插入非封鎖動作的自訂請求標頭
](customizing-the-incoming-request.md)
+ [

# 傳送Block動作的自訂回應
](customizing-the-response-for-blocked-requests.md)
+ [

# 自訂回應支援的狀態碼
](customizing-the-response-status-codes.md)

# 插入非封鎖動作的自訂請求標頭
插入自訂請求標頭

本節說明如何在規則動作未封鎖請求時 AWS WAF ，指示 將自訂標頭插入原始 HTTP 請求。使用此選項，您只能將 新增至請求。您無法修改或取代原始請求的任何部分。自訂標頭插入的使用案例包括發出下游應用程式的訊號，根據插入的標頭以不同方式處理請求，並標記分析請求。

**重要**  
此選項適用於規則動作 Allow、CAPTCHA、 Count和 ，Challenge以及設定為 的保護套件 (Web ACL) 預設動作Allow。如需規則動作的詳細資訊，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)。如需預設保護套件 (Web ACL) 動作的詳細資訊，請參閱 [在 中設定保護套件 (Web ACL) 預設動作 AWS WAF](web-acl-default-action.md)。

## 使用自訂請求標頭名稱時的考量


**新增至請求標頭的字首**  
AWS WAF 會為其插入的所有請求標頭加上字首`x-amzn-waf-`，以避免與已在請求中的標頭混淆。例如，如果您指定標頭名稱 `sample`， 會 AWS WAF 插入標頭 `x-amzn-waf-sample`。

**重要**  
作為安全實務，您可以新增字串比對規則，封鎖標頭已以 開頭的請求`x-amzn-waf-`。這會封鎖來自非AWS WAF 來源的請求，這些來源模擬處理自訂請求標頭時 AWS WAF 插入的`x-amzn-waf-`字首字串。

下列範例顯示字串比對規則，設定為封鎖未插入`x-amzn-waf-`字首的流量 AWS WAF：

```
    "Rules": [
        {
          "Name": "CustomHeader",
          "Priority": 0,
          "Statement": {
            "ByteMatchStatement": {
              "SearchString": " x-amzn-waf-",
              "FieldToMatch": {
                "Headers": {
                  "MatchPattern": {
                    "All": {}
                  },
                  "MatchScope": "KEY",
                  "OversizeHandling": "MATCH"
                }
              },
              "TextTransformations": [
                {
                  "Priority": 0,
                  "Type": "NONE"
                }
              ],
              "PositionalConstraint": "STARTS_WITH"
            }
          },
          "Action": {
            "Block": {}
          },
          "VisibilityConfig": {
            "SampledRequestsEnabled": true,
            "CloudWatchMetricsEnabled": true,
            "MetricName": "CustomHeader"
          }
        }
      ]
```

如需使用字串比對規則的資訊，請參閱 [字串比對規則陳述式](waf-rule-statement-type-string-match.md)。

**具有相同名稱的標頭**  
如果請求已有插入中相同名稱的標頭 AWS WAF ， 會 AWS WAF 覆寫標頭。因此，如果您在多個具有相同名稱的規則中定義標頭，則檢查請求並尋找相符項目的最後一個規則會新增其標頭，而任何先前的規則都不會新增。

## 搭配非終止規則動作使用自訂標頭


與 Allow動作不同，Count動作不會 AWS WAF 停止使用保護套件 (Web ACL) 中的其餘規則來處理 Web 請求。同樣地，當 CAPTCHA和 Challenge判斷請求字符有效時，這些動作不會 AWS WAF 停止處理 Web 請求。因此，如果您使用規則搭配其中一個動作來插入自訂標頭，後續規則也可能插入自訂標頭。如需規則動作行為的詳細資訊，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)。

例如，假設您有下列規則，依顯示的順序排定優先順序：

1. RuleA 具有Count動作和名為 的自訂標頭`RuleAHeader`。

1. RuleB 具有 Allow動作和名為 的自訂標頭`RuleBHeader`。

如果請求同時符合 RuleA 和 RuleB， 會 AWS WAF 插入標頭 `x-amzn-waf-RuleAHeader`和 `x-amzn-waf-RuleBHeader`，然後將請求轉送到受保護的資源。

AWS WAF 在完成檢查請求時， 會將自訂標頭插入 Web 請求。因此，如果您將自訂請求處理與 動作設為 的規則搭配使用Count，則您新增的自訂標頭不會由後續規則檢查。

## 自訂請求處理範例


您可以定義規則動作或保護套件 (Web ACL) 預設動作的自訂請求處理。以下清單顯示新增至保護套件 (Web ACL) 預設動作的自訂處理 JSON。

```
{
 "Name": "SampleWebACL",
 "Scope": "REGIONAL",
 "DefaultAction": {
  "Allow": {
   "CustomRequestHandling": {
    "InsertHeaders": [
     {
      "Name": "fruit",
      "Value": "watermelon"
     },
     {
      "Name": "pie",
      "Value": "apple"
     }
    ]
   }
  }
 },
 "Description": "Sample protection pack (web ACL) with custom request handling configured for default action.",
 "Rules": [],
 "VisibilityConfig": {
  "SampledRequestsEnabled": true,
  "CloudWatchMetricsEnabled": true,
  "MetricName": "SampleWebACL"
 }
}
```

# 傳送Block動作的自訂回應
傳送自訂回應

本節說明如何指示 AWS WAF 將自訂 HTTP 回應傳回用戶端，以取得設定為 的規則動作或保護套件 (Web ACL) 預設動作Block。如需規則動作的詳細資訊，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)。如需預設保護套件 (Web ACL) 動作的詳細資訊，請參閱 [在 中設定保護套件 (Web ACL) 預設動作 AWS WAF](web-acl-default-action.md)。

當您定義Block動作的自訂回應處理時，您可以定義狀態碼、標頭和回應內文。如需可與 搭配使用的狀態碼清單 AWS WAF，請參閱以下章節：[自訂回應支援的狀態碼](customizing-the-response-status-codes.md)。

**使用案例**  
自訂回應的使用案例包括下列項目：
+ 將非預設狀態碼傳回用戶端。
+ 將自訂回應標頭傳回用戶端。您可以指定 以外的任何標頭名稱`content-type`。
+ 傳送靜態錯誤頁面回用戶端。
+ 將用戶端重新導向至不同的 URL。若要這樣做，您可以指定其中一個`3xx`重新導向狀態代碼，例如 `301 (Moved Permanently)`或 `302 (Found)`，然後使用新的 URL 指定名為 `Location` 的新標頭。

**與您在受保護資源中定義的回應互動**  
您為 AWS WAF Block動作指定的自訂回應優先於您在受保護資源中定義的任何回應規格。

您使用 保護之 AWS 資源的主機服務 AWS WAF 可能會允許 Web 請求的自訂回應處理。範例如下：
+ 使用 Amazon CloudFront，您可以根據狀態碼自訂錯誤頁面。如需詳細資訊，請參閱《*Amazon CloudFront 開發人員指南*》中的[產生自訂錯誤回應](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GeneratingCustomErrorResponses.html)。
+ 透過 Amazon API Gateway，您可以定義閘道的回應和狀態碼。如需詳細資訊，請參閱《*Amazon API Gateway * [API Gateway 開發人員指南》中的 API Gateway 中的閘道回應](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-gatewayResponse-definition.html)。

您無法在受保護 AWS 的資源中結合 AWS WAF 自訂回應設定與自訂回應設定。任何個別 Web 請求的回應規格完全 AWS WAF 來自或完全來自受保護的資源。

對於 AWS WAF 封鎖的 Web 請求，以下顯示優先順序。

1. **AWS WAF 自訂回應** – 如果 AWS WAF Block動作已啟用自訂回應，受保護的資源會將設定的自訂回應傳回給用戶端。您可能已在受保護資源本身中定義的任何回應設定都無效。

1. **受保護的資源中定義的自訂回應** – 否則，如果受保護的資源已指定自訂回應設定，則受保護的資源會使用這些設定來回應用戶端。

1. **AWS WAF 預設Block回應** – 否則，受保護的資源會以 AWS WAF 預設回應 回應用戶端Block`403 (Forbidden)`。

對於 AWS WAF 允許 的 Web 請求，受保護資源的組態會決定其傳回用戶端的回應。您無法 AWS WAF 在 中為允許的請求設定回應設定。您可以在 中 AWS WAF 為允許的請求設定的唯一自訂項目是將自訂標頭插入原始請求，然後再將請求轉送至受保護的資源。此選項會在上一節 中說明[插入非封鎖動作的自訂請求標頭](customizing-the-incoming-request.md)。

**自訂回應標頭**  
您可以指定 以外的任何標頭名稱`content-type`。

**自訂回應內文**  
您可以在要使用的保護套件 (Web ACL) 或規則群組內容中定義自訂回應的內文。定義自訂回應內文之後，您可以在建立自訂回應內文的保護套件 (Web ACL) 或規則群組中的任意位置參考。在個別Block動作設定中，您會參考要使用的自訂內文，並定義自訂回應的狀態碼和標頭。

當您在主控台中建立自訂回應時，您可以從已定義的回應內文中進行選擇，也可以建立新的內文。在主控台外部，您可以在保護套件 (Web ACL) 或規則群組層級定義自訂回應主體，然後從保護套件 (Web ACL) 或規則群組內的動作設定中參考它們。這會顯示在下一節的範例 JSON 中。

**自訂回應範例**  
下列範例列出具有自訂回應設定的規則群組的 JSON。自訂回應內文是為整個規則群組定義，然後在規則動作中由索引鍵參考。

```
{
 "ARN": "test_rulegroup_arn",
 "Capacity": 1,
 
 "CustomResponseBodies": {
  "CustomResponseBodyKey1": {
   "Content": "This is a plain text response body.",
   "ContentType": "TEXT_PLAIN"
  }
 },
 
 "Description": "This is a test rule group.",
 "Id": "test_rulegroup_id",
 "Name": "TestRuleGroup",
 
 "Rules": [
  {
   "Action": {
    "Block": {
     "CustomResponse": {
      "CustomResponseBodyKey": "CustomResponseBodyKey1",
      "ResponseCode": 404,
      "ResponseHeaders": [
       {
        "Name": "BlockActionHeader1Name",
        "Value": "BlockActionHeader1Value"
       }
      ]
     }
    }
   },
   "Name": "GeoMatchRule",
   "Priority": 1,
   "Statement": {
    "GeoMatchStatement": {
     "CountryCodes": [
      "US"
     ]
    }
   },
   "VisibilityConfig": {
    "CloudWatchMetricsEnabled": true,
    "MetricName": "TestRuleGroupReferenceMetric",
    "SampledRequestsEnabled": true
   }
  }
 ],
 "VisibilityConfig": {
  "CloudWatchMetricsEnabled": true,
  "MetricName": "TestRuleGroupMetric",
  "SampledRequestsEnabled": true
 }
}
```

# 自訂回應支援的狀態碼
支援的回應狀態碼

本節列出您可以在自訂回應中使用的狀態碼。如需 HTTP 狀態碼的詳細資訊，請參閱網際網路工程任務小組 (IETF) [的狀態碼](https://www.rfc-editor.org/rfc/rfc9110.html#name-status-codes)和 Wikipedia [上的 HTTP 狀態碼清單](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes)。

以下是 AWS WAF 支援自訂回應的 HTTP 狀態碼。
+ `2xx Successful`
  + `200` – `OK`
  + `201` – `Created`
  + `202` – `Accepted` 
  + `204` – `No Content` 
  + `206` – `Partial Content`
+ `3xx Redirection `
  + `300` – `Multiple Choices`
  + `301` – `Moved Permanently`
  + `302` – `Found`
  + `303` –`See Other`
  + `304` – `Not Modified`
  + `307` – `Temporary Redirect`
  + `308` – `Permanent Redirect`
+ `4xx Client Error `
  + `400` – `Bad Request`
  + `401` – `Unauthorized`
  + `403` – `Forbidden`
  + `404` – `Not Found`
  + `405` – `Method Not Allowed`
  + `408` – `Request Timeout`
  + `409` – `Conflict`
  + `411` – `Length Required`
  + `412` – `Precondition Failed`
  + `413` – `Request Entity Too Large`
  + `414` – `Request-URI Too Long`
  + `415` – `Unsupported Media Type`
  + `416` – `Requested Range Not Satisfiable`
  + `421` – `Misdirected Request`
  + `429` – `Too Many Requests`
+ `5xx Server Error`
  + `500` – `Internal Server Error`
  + `501` – `Not Implemented`
  + `502` – `Bad Gateway`
  + `503` – `Service Unavailable`
  + `504` – `Gateway Timeout`
  + `505` – `HTTP Version Not Supported`

# 中的 Web 請求標籤 AWS WAF
Web 請求標籤AWS WAF Web 請求上的標籤

您可以設定規則，將標籤新增至相符的 Web 請求，並比對其他規則新增的標籤。

本節說明什麼是 AWS WAF 標籤。

標籤是當規則符合請求時，規則新增至 Web 請求的中繼資料。新增後，標籤會保留在請求上，直到保護套件 (Web ACL) 評估結束為止。您可以使用標籤比對陳述式，存取稍後在保護套件 (Web ACL) 評估中執行之規則中的標籤。如需詳細資訊，請參閱[標籤比對規則陳述式](waf-rule-statement-type-label-match.md)。

Web 請求上的標籤會產生 Amazon CloudWatch 標籤指標。如需指標和維度的清單，請參閱 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。如需有關透過 CloudWatch 和主控台 AWS WAF 存取指標和指標摘要的資訊，請參閱 [監控和調校您的 AWS WAF 保護](web-acl-testing-activities.md)。

**標記使用案例**  
 AWS WAF 標籤的常見使用案例包括下列項目：
+ **在對請求採取動作之前，針對多個規則陳述式評估 Web 請求** – 在與保護套件 (Web ACL) 中的規則找到相符項目之後，如果規則動作未終止保護套件 (Web ACL) 評估， AWS WAF 則繼續針對保護套件 (Web ACL) 評估請求。您可以在決定允許或封鎖請求之前，使用標籤來評估和收集來自多個規則的資訊。若要這樣做，請將現有規則的動作變更為 ，Count並將它們設定為將標籤新增至相符的請求。然後，新增一或多個要在其他規則之後執行的新規則，並設定它們來評估標籤，並根據標籤比對組合管理請求。
+ **依地理區域管理 Web 請求** – 您可以單獨使用地理比對規則，依來源國家/地區管理 Web 請求。若要將位置微調到區域層級，您可以使用地理比對規則搭配Count動作，後面接著標籤比對規則。如需地理比對規則的詳細資訊，請參閱 [地理比對規則陳述式](waf-rule-statement-type-geo-match.md)。
+ **跨多個規則重複使用邏輯** – 如果您需要跨多個規則重複使用相同的邏輯，您可以使用標籤來單一來源邏輯，並只測試結果。當您有多個使用常見巢狀規則陳述式子集的複雜規則時，跨複雜規則複製常見規則集可能會耗時且容易出錯。使用標籤，您可以建立一個具有常見規則子集的新規則，該規則子集會計算相符請求，並將標籤新增至它們。您可以將新規則新增至保護套件 (Web ACL)，使其在原始複雜規則之前執行。然後，在原始規則中，您可以將共用規則子集取代為檢查標籤的單一規則。

  例如，假設您有多個規則，只想套用至您的登入路徑。您可以實作包含該邏輯的單一新規則，而不是讓每個規則指定相同的邏輯以符合潛在的登入路徑。讓新規則將標籤新增至相符的請求，以指出請求位於登入路徑上。在保護套件 (Web ACL) 中，將此新規則設為比原始規則更低的數值優先順序設定，以便先執行。然後，在您的原始規則中，將共用邏輯取代為檢查標籤是否存在。如需優先順序設定的資訊，請參閱 [設定規則優先順序](web-acl-processing-order.md)。
+ 在**規則群組中建立規則的例外**狀況 – 此選項對於您無法檢視或修改的受管規則群組特別有用。許多受管規則群組規則會將標籤新增至相符的 Web 請求，以指出相符的規則，並可能提供有關相符項目的其他資訊。當您使用將標籤新增至請求的規則群組時，您可以覆寫規則群組規則來計算相符項目，然後在根據規則群組標籤處理 Web 請求的規則群組之後執行規則。所有 AWS 受管規則都會將標籤新增至相符的 Web 請求。如需詳細資訊，請參閱 中的規則描述[AWS 受管規則規則群組清單](aws-managed-rule-groups-list.md)。
+ **使用標籤指標來監控流量模式** – 您可以存取透過規則新增之標籤的指標，以及您在保護套件 (Web ACL) 中使用的任何受管規則群組新增的指標。所有 AWS 受管規則規則群組都會將標籤新增至其評估的 Web 請求。如需標籤指標和維度的清單，請參閱 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。您可以透過 CloudWatch 和 AWS WAF 主控台中的保護套件 (Web ACL) 頁面來存取指標和指標摘要。如需相關資訊，請參閱[監控和調校您的 AWS WAF 保護](web-acl-testing-activities.md)。

# 標籤在 中的運作方式 AWS WAF
標籤的運作方式

本節說明 AWS WAF 標籤的運作方式。

當規則符合 Web 請求時，如果規則已定義標籤， 會在規則評估結束時將標籤 AWS WAF 新增至請求。在保護套件 (Web ACL) 中比對規則之後評估的規則，可以比對規則新增的標籤。

**誰會將標籤新增至請求**  
評估請求的保護套件 (Web ACL) 元件可以將標籤新增至請求。
+ 任何不是規則群組參考陳述式的規則，都可以將標籤新增至相符的 Web 請求。標記條件是規則定義的一部分，當 Web 請求符合規則時， 會將規則的標籤 AWS WAF 新增至請求。如需相關資訊，請參閱[AWS WAF 新增標籤的 規則](waf-rule-label-add.md)。
+ 地理比對規則陳述式會將國家和區域標籤新增至其檢查的任何請求，無論陳述式是否導致比對。如需相關資訊，請參閱[地理比對規則陳述式](waf-rule-statement-type-geo-match.md)。
+  AWS WAF 所有 的 AWS 受管規則都會將標籤新增至其檢查的請求。它們會根據規則群組中的規則比對新增一些標籤，並根據受管規則群組使用的程序新增一些 AWS 標籤，例如當您使用智慧型威脅緩解規則群組時新增的字符標籤。如需每個受管規則群組新增之標籤的相關資訊，請參閱 [AWS 受管規則規則群組清單](aws-managed-rule-groups-list.md)。

**如何 AWS WAF 管理標籤**  
AWS WAF 在規則檢查請求結束時， 會將規則的標籤新增至請求。標籤是規則比對活動的一部分，類似於 動作。

在保護套件 (Web ACL) 評估結束後，標籤不會保留在 Web 請求中。為了讓其他規則與您的規則新增的標籤相符，您的規則動作不得終止保護套件 (Web ACL) 對 Web 請求的評估。規則動作必須設定為 Count、 CAPTCHA或 Challenge。當保護套件 (Web ACL) 評估未終止時，保護套件 (Web ACL) 中的後續規則可以針對請求執行其標籤比對條件。如需規則動作的詳細資訊，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)。

**在保護套件 (Web ACL) 評估期間存取標籤**  
新增後，只要針對保護套件 (Web ACL) AWS WAF 評估請求，標籤就會保留在請求上。保護套件 (Web ACL) 中的任何規則都可以存取已在相同保護套件 (Web ACL) 中執行的規則所新增的標籤。這包括直接在保護套件 (Web ACL) 內定義的規則，以及在保護套件 (Web ACL) 中使用的規則群組內定義的規則。
+ 您可以使用標籤比對陳述式，比對規則請求檢查條件中的標籤。您可以比對連接到請求的任何標籤。如需陳述式詳細資訊，請參閱 [標籤比對規則陳述式](waf-rule-statement-type-label-match.md)。
+ 地理比對陳述式會新增有或沒有相符項目的標籤，但只有在包含保護套件 (Web ACL) 規則的陳述式完成請求評估後才能使用。
  + 您無法使用單一規則，例如邏輯`AND`陳述式，針對地理標籤執行地理比對陳述式，後面接著標籤比對陳述式。您必須將標籤比對陳述式放在包含地理比對陳述式的規則之後執行的個別規則中。
  + 如果您使用地理比對陳述式做為以速率為基礎的規則陳述式或受管規則群組參考陳述式內的縮小範圍陳述式，則包含規則陳述式的陳述式無法檢查地理比對陳述式新增的標籤。如果您需要檢查以速率為基礎的規則陳述式或規則群組中的地理標籤，您必須在事先執行的單獨規則中執行地理比對陳述式。

**存取保護套件 (Web ACL) 評估之外的標籤資訊**  
在保護套件 (Web ACL) 評估結束後，標籤不會保留在 Web 請求中，但 會在日誌和指標中 AWS WAF 記錄標籤資訊。
+ AWS WAF 會將前 100 個標籤的 Amazon CloudWatch 指標存放在任何單一請求上。如需存取標籤指標的資訊，請參閱 [使用 Amazon CloudWatch 監控](monitoring-cloudwatch.md)和 [標籤指標和維度](waf-metrics.md#waf-metrics-label)。
+ AWS WAF 在 AWS WAF 主控台的保護套件 (Web ACL) 流量概觀儀表板中摘要 CloudWatch 標籤指標。您可以在任何保護套件 (Web ACL) 頁面上存取儀表板。如需詳細資訊，請參閱[保護套件的流量概觀儀表板 (Web ACLs)](web-acl-dashboards.md)。
+ AWS WAF 會將請求前 100 個標籤的標籤記錄在 日誌中。您可以使用標籤以及規則動作來篩選記錄的 AWS WAF 日誌。如需相關資訊，請參閱[記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。

您的保護套件 (Web ACL) 評估可以將超過 100 個標籤套用至 Web 請求，並與超過 100 個標籤進行比對，但 AWS WAF 只會在日誌和指標中記錄前 100 個標籤。

# 中的標籤語法和命名需求 AWS WAF
標籤語法和命名需求

本節說明如何建構和比對 AWS WAF 標籤。

標籤是由字首、選用命名空間和名稱組成的字串。標籤的元件以冒號分隔。標籤具有下列需求和特性：
+ 標籤區分大小寫。
+ 每個標籤命名空間或標籤名稱最多可有 128 個字元。
+ 您可以在標籤中指定最多五個命名空間。
+ 標籤的元件以冒號 () 分隔`:`。
+ 您無法在為標籤指定的命名空間或名稱中使用下列預留字串：`awswaf`、`aws`、`waf`、`rulegroup`、`webacl`、 `regexpatternset` `ipset`和 `managed`。

## 標籤語法


完整標籤具有字首、選用命名空間和標籤名稱。字首識別新增標籤之規則的規則群組或保護套件 (Web ACL) 內容。命名空間可用於為標籤新增更多內容。標籤名稱提供最低層級的標籤詳細資訊。它通常表示將標籤新增至請求的特定規則。

標籤字首會根據其原始伺服器而有所不同。
+ **您的標籤** – 以下顯示您在保護套件 (Web ACL) 和規則群組規則中建立的標籤的完整標籤語法。實體類型為 `rulegroup`和 `webacl`。

  ```
  awswaf:<entity owner account id>:<entity type>:<entity name>:<custom namespace>:...:<label name>
  ```
  + 標籤命名空間字首： `awswaf:<entity owner account id>:<entity type>:<entity name>:`
  + 自訂命名空間新增項目： `<custom namespace>:…:`

  當您在規則群組或保護套件 (Web ACL) 中定義規則的標籤時，您可以控制自訂命名空間字串和標籤名稱。其餘部分由 為您產生 AWS WAF。 AWS WAF 會以 `awswaf`和帳戶和保護套件 (Web ACL) 或規則群組實體設定自動加上所有標籤的字首。
+ **受管規則群組標籤** – 以下顯示受管規則群組中規則所建立標籤的完整標籤語法。

  ```
  awswaf:managed:<vendor>:<rule group name>:<custom namespace>:...:<label name>
  ```
  + 標籤命名空間字首： `awswaf:managed:<vendor>:<rule group name>:`
  + 自訂命名空間新增項目： `<custom namespace>:…:`

  所有 AWS 受管規則規則群組都會新增標籤。如需受管規則群組的相關資訊，請參閱 [在 中使用受管規則群組 AWS WAF](waf-managed-rule-groups.md)。
+ **來自其他 AWS 程序的標籤** – AWS 受管規則規則群組會使用這些程序，因此您會看到這些程序新增至您使用受管規則群組評估的 Web 請求。以下顯示由受管規則群組呼叫的程序所建立之標籤的完整標籤語法。

  ```
  awswaf:managed:<process>:<custom namespace>:...:<label name>
  ```
  + 標籤命名空間字首： `awswaf:managed:<process>:`
  + 自訂命名空間新增： `<custom namespace>:…:`

  此類型的標籤會針對呼叫 程序 AWS 的受管規則群組列出。如需受管規則群組的相關資訊，請參閱 [在 中使用受管規則群組 AWS WAF](waf-managed-rule-groups.md)。

## 規則的標籤範例


下列範例標籤是由屬於帳戶 111122223333 `testRules`的規則群組中的規則定義。

```
awswaf:111122223333:rulegroup:testRules:testNS1:testNS2:LabelNameA
```

```
awswaf:111122223333:rulegroup:testRules:testNS1:LabelNameQ
```

```
awswaf:111122223333:rulegroup:testRules:LabelNameZ
```

下列清單顯示 JSON 中的範例標籤規格。這些標籤名稱包含結尾標籤名稱之前的自訂命名空間字串。

```
Rule: {
    Name: "label_rule",
    Statement: {...}
    RuleLabels: [
        Name: "header:encoding:utf8",
        Name: "header:user_agent:firefox"
    ],
    Action: { Count: {} }
}
```

**注意**  
您可以透過規則 JSON 編輯器在主控台中存取此類型的清單。

如果您在與上述標籤範例相同的規則群組和帳戶中執行上述規則，則產生的完整標籤如下：

```
awswaf:111122223333:rulegroup:testRules:header:encoding:utf8
```

```
awswaf:111122223333:rulegroup:testRules:header:user_agent:firefox
```

## 受管規則群組的標籤範例


以下顯示受 AWS 管規則規則群組的範例標籤，以及他們叫用的處理程序。

```
awswaf:managed:aws:core-rule-set:NoUserAgent_Header
```

```
awswaf:managed:aws:sql-database:SQLiExtendedPatterns_QueryArguments
```

```
awswaf:managed:aws:atp:aggregate:attribute:compromised_credentials
```

```
awswaf:managed:token:accepted
```

# AWS WAF 新增標籤的 規則
新增標籤的規則

在幾乎所有規則中，您可以定義標籤 AWS WAF ，並將其套用至任何相符的請求。

下列規則類型是唯一的例外狀況：
+ **速率型規則標籤僅在速率限制時** – 速率型規則僅在該執行個體速率受到限制時，將標籤新增至特定彙總執行個體的 Web 請求 AWS WAF。如需速率型規則的相關資訊，請參閱 [在 中使用以速率為基礎的規則陳述式 AWS WAF](waf-rule-statement-type-rate-based.md)。
+ **規則群組參考陳述式中不允許標記** – 主控台不接受規則群組陳述式或受管規則群組陳述式的標籤。透過 API，指定任一陳述式類型的標籤會導致驗證例外狀況。如需這些陳述式類型的詳細資訊，請參閱 [在 中使用受管規則群組陳述式 AWS WAF](waf-rule-statement-type-managed-rule-group.md)和 [在 中使用規則群組陳述式 AWS WAF](waf-rule-statement-type-rule-group.md)。

**WCUs ** – 您在保護套件 (Web ACL) 或規則群組規則中定義的每 5 個標籤 1 個 WCU。

**哪裡可以找到此項**
+ 主控台上的**規則建置器** – 在規則**的動作**設定下，**在標籤**下。
+ **API 資料類型** – `Rule` `RuleLabels`

您可以在規則中定義標籤，方法是指定要附加到標籤命名空間字首的自訂命名空間字串和名稱。 會從您定義規則的內容 AWS WAF 衍生字首。如需相關資訊，請參閱 下的標籤語法資訊[中的標籤語法和命名需求 AWS WAF](waf-rule-label-requirements.md)。

# AWS WAF 符合標籤的規則
符合標籤的規則

本節說明如何使用標籤比對陳述式來評估 Web 請求標籤。您可以比對需要標籤名稱的 *Label*，或是比對需要命名空間規格的 *Namespace*。對於標籤或命名空間，您可以選擇在規格中包含前面的命名空間和字首。如需此陳述式類型的一般資訊，請參閱 [標籤比對規則陳述式](waf-rule-statement-type-label-match.md)。

標籤的字首定義了定義標籤規則的規則群組或保護套件 (Web ACL) 的內容。在規則的標籤比對陳述式中，如果您的標籤或命名空間比對字串未指定字首， AWS WAF 會使用標籤比對規則的字首。
+ 直接在保護套件 (Web ACL) 內定義的規則標籤具有指定保護套件 (Web ACL) 內容的字首。
+ 規則群組內規則的標籤具有指定規則群組內容的字首。這可以是您自己的規則群組或為您管理的規則群組。

如需詳細資訊，請參閱 下的標籤語法[中的標籤語法和命名需求 AWS WAF](waf-rule-label-requirements.md)。

**注意**  
有些受管規則群組會新增標籤。您可以透過 API 呼叫 來擷取這些項目`DescribeManagedRuleGroup`。這些標籤會列在回應的 `AvailableLabels` 屬性中。

如果您想要比對與規則內容不同的規則，則必須在比對字串中提供字首。例如，如果您想要比對受管規則群組中規則新增的標籤，您可以使用標籤比對陳述式在保護套件 (Web ACL) 中新增規則，其比對字串會指定規則群組的字首，後面接著您的其他比對條件。

在標籤比對陳述式的比對字串中，您可以指定標籤或命名空間：
+ **標籤** – 相符項目的標籤規格由標籤的結尾部分組成。您可以包含任意數量的連續命名空間，其緊接在標籤名稱前面，後面接著名稱。您也可以使用 字首啟動規格，以提供完整標籤。

  範例規格：
  + `testNS1:testNS2:LabelNameA`
  + `awswaf:managed:aws:managed-rule-set:testNS1:testNS2:LabelNameA`
+ **命名空間** – 相符項目的命名空間規格由名稱以外的任何標籤規格連續子集組成。您可以包含 字首，也可以包含一或多個命名空間字串。

  範例規格：
  + `testNS1:testNS2:`
  + `awswaf:managed:aws:managed-rule-set:testNS1:`

# AWS WAF 標籤比對範例
標籤比對範例

本節提供標籤比對規則陳述式的比對規格範例。

**注意**  
這些 JSON 清單是在主控台中建立，方法是使用標籤比對規格將規則新增至保護套件 (Web ACL)，然後編輯規則並切換到**規則 JSON 編輯器**。您也可以透過 APIs JSON。

**Topics**
+ [

## 比對本機標籤
](#waf-rule-label-match-examples-local-label)
+ [

## 比對其他內容中的標籤
](#waf-rule-label-match-examples-label)
+ [

## 符合受管規則群組標籤
](#waf-rule-label-match-examples-mgd-rg-label)
+ [

## 比對本機命名空間
](#waf-rule-label-match-examples-local-namespace)
+ [

## 符合受管規則群組命名空間
](#waf-rule-label-match-examples-mgd-rg-namespace)

## 比對本機標籤


下列 JSON 清單顯示已新增至本機 Web 請求之標籤的標籤比對陳述式，其內容與此規則相同。

```
Rule: {
    Name: "match_rule",
    Statement: {
        LabelMatchStatement: {
            Scope: "LABEL",
            Key: "header:encoding:utf8"
        }
    },
    RuleLabels: [
        ...generate_more_labels...
    ],
    Action: { Block: {} }
}
```

如果您在帳戶 111122223333 中使用此比對陳述式，在您為保護套件 (Web ACL) 定義的規則中`testWebACL`，它會符合下列標籤。

```
awswaf:111122223333:webacl:testWebACL:header:encoding:utf8
```

```
awswaf:111122223333:webacl:testWebACL:testNS1:testNS2:header:encoding:utf8
```

它不符合下列標籤，因為標籤字串不是完全相符。

```
awswaf:111122223333:webacl:testWebACL:header:encoding2:utf8
```

它不符合下列標籤，因為內容不同，因此字首不相符。即使您將規則群組新增至定義規則`productionRules`的保護套件 (Web ACL)`testWebACL`，也是如此。

```
awswaf:111122223333:rulegroup:productionRules:header:encoding:utf8
```

## 比對其他內容中的標籤


下列 JSON 清單顯示標籤比對規則，符合使用者建立的規則群組內規則的標籤。對於在保護套件 (Web ACL) 中執行且不屬於具名規則群組的所有規則，規格中需要 字首。此範例標籤規格僅符合確切的標籤。

```
Rule: {
    Name: "match_rule",
    Statement: {
        LabelMatchStatement: {
            Scope: "LABEL",
            Key: "awswaf:111122223333:rulegroup:testRules:header:encoding:utf8"
        }
    },
    RuleLabels: [
        ...generate_more_labels...
    ],
    Action: { Block: {} }
}
```

## 符合受管規則群組標籤


這是比對標籤的特殊情況，該標籤來自比對規則以外的其他內容。下列 JSON 清單顯示受管規則群組標籤的標籤比對陳述式。這只會比對標籤比對陳述式金鑰設定中指定的確切標籤。

```
Rule: {
    Name: "match_rule",
    Statement: {
        LabelMatchStatement: {
            Scope: "LABEL",
            Key: "awswaf:managed:aws:managed-rule-set:header:encoding:utf8"
        }
    },
    RuleLabels: [
        ...generate_more_labels...
    ],
    Action: { Block: {} }
}
```

## 比對本機命名空間


下列 JSON 清單顯示本機命名空間的標籤比對陳述式。

```
Rule: {
    Name: "match_rule",
    Statement: {
        LabelMatchStatement: {
            Scope: "NAMESPACE",
            Key: "header:encoding:"
        }
    },
    Labels: [
        ...generate_more_labels...
    ],
    Action: { Block: {} }
}
```

與本機`Label`比對類似，如果您在帳戶 111122223333 中使用此陳述式，在您為保護套件 (Web ACL) 定義的規則中`testWebACL`，它會符合下列標籤。

```
awswaf:111122223333:webacl:testWebACL:header:encoding:utf8
```

它不符合下列標籤，因為帳戶不同，因此字首不相符。

```
awswaf:444455556666:webacl:testWebACL:header:encoding:utf8
```

字首也不符合受管規則群組套用的任何標籤，如下所示。

```
awswaf:managed:aws:managed-rule-set:header:encoding:utf8
```

## 符合受管規則群組命名空間


下列 JSON 清單顯示受管規則群組命名空間的標籤比對陳述式。對於您擁有的規則群組，您也需要提供 字首，才能比對規則內容以外的命名空間。

```
Rule: {
    Name: "match_rule",
    Statement: {
        LabelMatchStatement: {
            Scope: "NAMESPACE",
            Key: "awswaf:managed:aws:managed-rule-set:header:"
        }
    },
    RuleLabels: [
        ...generate_more_labels...
    ],
    Action: { Block: {} }
}
```

此規格符合下列範例標籤。

```
awswaf:managed:aws:managed-rule-set:header:encoding:utf8
```

```
awswaf:managed:aws:managed-rule-set:header:encoding:unicode
```

它不符合下列標籤。

```
awswaf:managed:aws:managed-rule-set:query:badstring
```

# 中的智慧型威脅防禦 AWS WAF
智慧威脅防禦重新命名最上層區段：受管保護

本節現在已命名為 AWS WAF 智慧型威脅防禦，符合我們的行銷頁面。

本節涵蓋 提供的受管智慧型威脅緩解功能 AWS WAF。這些是進階的專門保護，您可以實作這些保護，以防止惡意機器人和帳戶接管嘗試等威脅。

**注意**  
除了使用 的基本費用之外，此處所述的功能會產生額外費用 AWS WAF。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

本節中提供的指引適用於通常知道如何建立和管理 AWS WAF Web ACLs、規則和規則群組的使用者。這些主題涵蓋在本指南的先前章節中。

**Topics**
+ [

# 中的智慧型威脅防禦選項 AWS WAF
](waf-managed-protections-comparison-table.md)
+ [

# 中的智慧型威脅防禦最佳實務 AWS WAF
](waf-managed-protections-best-practices.md)
+ [

# 用於 AWS WAF 智慧型威脅緩解的字符
](waf-tokens.md)
+ [

# AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP)
](waf-acfp.md)
+ [

# AWS WAF 詐騙控制帳戶接管預防 (ATP)
](waf-atp.md)
+ [

# AWS WAF 機器人控制
](waf-bot-control.md)
+ [

# AWS WAF 分散式阻斷服務 (DDoS) 預防
](waf-anti-ddos.md)
+ [

# 中的用戶端應用程式整合 AWS WAF
](waf-application-integration.md)
+ [

# CAPTCHA 和 Challenge 中的 AWS WAF
](waf-captcha-and-challenge.md)

# 中的智慧型威脅防禦選項 AWS WAF
緩解選項

本節提供實作智慧型威脅緩解選項的詳細比較。

AWS WAF 提供以下類型的智慧威脅緩解保護。
+ **AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP)** – 偵測和管理應用程式註冊頁面上的惡意帳戶建立嘗試。核心功能由 ACFP 受管規則群組提供。如需詳細資訊，請參閱[AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP)](waf-acfp.md)及[AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組](aws-managed-rule-groups-acfp.md)。
+ **AWS WAF 詐騙控制帳戶接管預防 (ATP)** – 偵測和管理應用程式登入頁面上的惡意接管嘗試。核心功能由 ATP 受管規則群組提供。如需詳細資訊，請參閱[AWS WAF 詐騙控制帳戶接管預防 (ATP)](waf-atp.md)及[AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md)。
+ **AWS WAF 機器人控制** – 識別、標記和管理易記和惡意機器人。此功能為具有跨應用程式唯一簽章的常見機器人提供管理，也為具有應用程式特定簽章的目標機器人提供管理。核心功能由 Bot Control 受管規則群組提供。如需詳細資訊，請參閱[AWS WAF 機器人控制](waf-bot-control.md)及[AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md)。
+ **用戶端應用程式整合 SDKs** – 驗證您網頁上的用戶端工作階段和最終使用者，並取得權 AWS WAF 杖供用戶端用於其 Web 請求。如果您使用 ACFP、ATP 或 Bot Control，請盡可能在用戶端應用程式中實作應用程式整合 SDKs，以充分利用所有規則群組功能。我們只建議在沒有 SDK 整合的情況下使用這些規則群組做為臨時措施，因為關鍵資源需要快速保護，而且沒有足夠的時間進行 SDK 整合。如需實作 SDKs的資訊，請參閱 [中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)。
+ **Challenge 和 CAPTCHA規則動作** – 驗證用戶端工作階段和最終使用者，並取得權 AWS WAF 杖供用戶端在 Web 請求中使用。您可以在您指定規則動作的任何位置、在您的規則中，以及在您使用的規則群組中，將這些實作為覆寫。這些動作使用 AWS WAF JavaScript 執行個體來查詢用戶端或最終使用者，而且需要支援 JavaScript 的用戶端應用程式。如需詳細資訊，請參閱[CAPTCHA 和 Challenge 中的 AWS WAF](waf-captcha-and-challenge.md)。

智慧型威脅緩解 AWS 受管規則規則群組 ACFP、ATP 和 Bot Control 會使用權杖進行進階偵測。如需有關字符在規則群組中啟用的功能的資訊，請參閱 [搭配 ACFP 使用應用程式整合 SDKs](waf-acfp-with-tokens.md)、 [搭配 ATP 使用應用程式整合 SDKs](waf-atp-with-tokens.md)和 [搭配 Bot Control 使用應用程式整合 SDKs](waf-bot-with-tokens.md)。

實作智慧型威脅緩解的選項從基本使用規則動作來執行挑戰和強制執行權杖擷取，到智慧型威脅緩解 AWS 受管規則規則群組提供的進階功能。

下表提供基本和進階功能選項的詳細比較。

**Topics**
+ [

# 挑戰和權杖取得的選項
](waf-managed-protections-comparison-table-token.md)
+ [

# 智慧型威脅緩解受管規則群組的選項
](waf-managed-protections-comparison-table-rg.md)
+ [

# 速率型規則和目標機器人控制規則中速率限制的選項
](waf-rate-limiting-options.md)

# 挑戰和權杖取得的選項
挑戰和權杖取得

本節會比較挑戰和字符管理選項。

您可以使用 AWS WAF 應用程式整合 SDKs 或規則動作 和 來提供挑戰Challenge並取得權杖CAPTCHA。廣義而言，規則動作較容易實作，但會產生額外的成本、深入探索您的客戶體驗，而且需要 JavaScript。SDKs需要在用戶端應用程式中進行程式設計，但可以提供更好的客戶體驗、免費使用，而且可以與 JavaScript 或 Android 或 iOS 應用程式搭配使用。您只能將應用程式整合 SDKs 與使用其中一個付費智慧型威脅緩解受管規則群組的保護套件 (Web ACLs) 搭配使用，如下節所述。


**比較挑戰和權杖取得的選項**  

|  | Challenge 規則動作 | CAPTCHA 規則動作 | JavaScript SDK 挑戰 | 行動 SDK 挑戰 | 
| --- | --- | --- | --- | --- | 
| 它是什麼 | 規則動作，透過向瀏覽器用戶端呈現無提示挑戰間質來強制執行 AWS WAF 字符的取得  | 規則動作，透過向用戶端最終使用者提供視覺或音訊挑戰間質來強制執行 AWS WAF 字符的取得  |  應用程式整合層，適用於用戶端瀏覽器和其他執行 JavaScript 的裝置。轉譯靜音挑戰並取得字符  |  應用程式整合層，適用於 Android 和 iOS 應用程式。原生轉譯靜音挑戰並取得字符  | 
| 適合... | 針對支援 JavaScript 之用戶端的機器人工作階段和字符擷取強制執行的靜音驗證  | 對於支援 JavaScript 的用戶端，針對機器人工作階段和強制執行字符獲取的最終使用者和靜音驗證 | 針對機器人工作階段的無提示驗證，以及針對支援 JavaScript 的用戶端強制執行權杖擷取。SDKs提供最低延遲，並對挑戰指令碼在應用程式中執行的位置進行最佳控制。 | 針對 Android 和 iOS 上原生行動應用程式的機器人工作階段和字符擷取強制執行的靜音驗證。SDKs提供最低延遲，並對挑戰指令碼在應用程式中執行的位置進行最佳控制。 | 
| 實作考量 | 實作為規則動作設定 | 實作為規則動作設定 | 需要保護套件 (Web ACL) 中其中一個 ACFP、ATP 或 Bot Control 付費規則群組。在用戶端應用程式中需要編碼。 | 需要保護套件 (Web ACL) 中其中一個 ACFP、ATP 或 Bot Control 付費規則群組。在用戶端應用程式中需要編碼。 | 
| 執行時期考量 | 沒有有效字符之請求的侵入性流程。用戶端會重新導向至 AWS WAF 挑戰間質。新增網路往返，並需要第二次評估 Web 請求。 | 沒有有效字符之請求的侵入性流程。用戶端會重新導向至 AWS WAF CAPTCHA 間質。新增網路往返，並需要第二次評估 Web 請求。 | 可以在幕後執行。讓您更能掌控挑戰體驗。 | 可以在幕後執行。讓您更能掌控挑戰體驗。 | 
| 需要 JavaScript | 是 | 是 | 是 | 否 | 
| 支援的用戶端 | 執行 Javascript 的瀏覽器和裝置 | 執行 Javascript 的瀏覽器和裝置 | 執行 Javascript 的瀏覽器和裝置 | Android 和 iOS 裝置 | 
| 支援單頁應用程式 (SPA) | 僅限強制執行。您可以搭配 SDKs 使用 Challenge動作，以確保請求具有有效的挑戰字符。您無法使用規則動作將挑戰指令碼交付至頁面。 | 僅限強制執行。您可以搭配 SDKs 使用 CAPTCHA動作，以確保請求具有有效的 CAPTCHA 字符。您無法使用規則動作將 CAPTCHA 指令碼交付至頁面。 | 是 | N/A | 
| 額外費用 | 是，對於您明確指定的動作設定，可以是在您定義的規則中，或是在您使用的規則群組中做為規則動作覆寫。在所有其他情況下為否。 | 是，對於您明確指定的動作設定，可以是在您定義的規則中，或是在您使用的規則群組中做為規則動作覆寫。在所有其他情況下為否。 | 否，但需要其中一個付費規則群組 ACFP、ATP 或 Bot Control。 | 否，但需要其中一個付費規則群組 ACFP、ATP 或機器人控制 。 | 

如需這些選項相關成本的詳細資訊，請參閱 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)中的智慧型威脅緩解資訊。

只需新增具有 Challenge或 CAPTCHA動作的規則，即可更輕鬆地執行挑戰並提供基本權杖強制執行。您可能需要使用規則動作，例如，如果您無法存取應用程式碼。

不過，如果您可以實作SDKs，相較於使用 Challenge動作，您可以節省成本並減少用戶端 Web 請求的保護套件 (Web ACL) 評估延遲：
+ 您可以在應用程式中的任何時間點撰寫 SDK 實作來執行挑戰。您可以在將 Web 請求傳送到受保護資源的任何客戶動作之前，在背景中取得字符。如此一來，字符即可與用戶端的第一個請求一起傳送。
+ 如果您使用 Challenge動作實作規則來取得字符，則當用戶端第一次傳送請求時以及字符過期時，規則和動作需要額外的 Web 請求評估和處理。Challenge 動作會封鎖沒有有效、未過期字符的請求，並將挑戰交還給用戶端。用戶端成功回應挑戰後， 會使用有效的字符重新傳送原始 Web 請求，然後由保護套件 (Web ACL) 再次評估。

# 智慧型威脅緩解受管規則群組的選項
受管規則群組

本節會比較受管規則群組選項。

智慧型威脅緩解 AWS 受管規則規則群組提供基本機器人的管理、複雜惡意機器人的偵測和緩解、帳戶接管嘗試的偵測和緩解，以及詐騙帳戶建立嘗試的偵測和緩解。這些規則群組結合上一節所述的應用程式整合 SDKs，可提供最進階的保護，並與用戶端應用程式進行安全耦合。


**受管規則群組選項的比較**  

|  | ACFP  | ATP  | 機器人控制共同層級 | 機器人控制目標層級 | 
| --- | --- | --- | --- | --- | 
| 它是什麼 | 管理可能屬於應用程式註冊和註冊頁面上詐騙帳戶建立嘗試一部分的請求。不管理機器人。請參閱 [AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組](aws-managed-rule-groups-acfp.md)。 | 管理可能屬於應用程式登入頁面上惡意接管嘗試一部分的請求。不管理機器人。請參閱 [AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md)。 | 使用應用程式間唯一的簽章，管理可自我識別的常見機器人。請參閱 [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md)。 | 使用應用程式特有的簽章，管理無法自我識別的目標機器人。請參閱 [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md)。 | 
| 適合... | 檢查帳戶建立流量是否有詐騙性帳戶建立攻擊，例如使用者名稱周遊的建立嘗試，以及從單一 IP 地址建立的許多新帳戶。 | 檢查帳戶接管攻擊的登入流量，例如密碼周遊的登入嘗試，以及來自相同 IP 地址的許多登入嘗試。與字符搭配使用時， 也會提供彙總保護，例如針對大量失敗登入嘗試的 IPs 和用戶端工作階段速率限制。 | 一般自動化機器人流量的基本機器人保護和標籤。 | 針對複雜機器人的保護，包括用戶端工作階段層級的速率限制，以及偵測和緩解瀏覽器自動化工具，例如 Selenium 和 Puppeteer。 | 
| 新增指示評估結果的標籤 | 是 | 是 | 是 | 是 | 
| 新增字符標籤 | 是 | 是 | 是 | 是 | 
| 封鎖沒有有效字符的請求 | 不包含 。請參閱 [封鎖沒有有效 AWS WAF 字符的請求](waf-tokens-block-missing-tokens.md)。 | 不包含 。請參閱 [封鎖沒有有效 AWS WAF 字符的請求](waf-tokens-block-missing-tokens.md)。 | 不包含 。請參閱 [封鎖沒有有效 AWS WAF 字符的請求](waf-tokens-block-missing-tokens.md)。 | 封鎖在沒有字符的情況下傳送 5 個請求的用戶端工作階段。 | 
| 需要 AWS WAF 字符 aws-waf-token | 所有規則都需要。請參閱 [搭配 ACFP 使用應用程式整合 SDKs](waf-acfp-with-tokens.md)。 | 許多規則都需要。請參閱 [搭配 ATP 使用應用程式整合 SDKs](waf-atp-with-tokens.md)。 | 否 | 是 | 
| 取得 AWS WAF 權杖 aws-waf-token | 是，由規則強制執行 AllRequests | 否 | 否 | 有些規則會使用 Challenge或 CAPTCHA規則動作，以取得字符。 | 

如需這些選項相關成本的詳細資訊，請參閱 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)中的智慧型威脅緩解資訊。

# 速率型規則和目標機器人控制規則中速率限制的選項
速率限制

本節比較以速率為基礎的緩解選項。

 AWS WAF Bot Control 規則群組的目標層級和速率 AWS WAF 型規則陳述式都提供 Web 請求速率限制。下表比較兩個選項。


**比較以速率為基礎的偵測和緩解選項**  

|  | AWS WAF 以速率為基礎的規則 | AWS WAF 機器人控制目標規則 | 
| --- | --- | --- | 
| 如何套用速率限制 | 對速率太高的請求群組採取行動。您可以套用 以外的任何動作Allow。 | 透過使用請求字符，強制執行類似人類的存取模式並套用動態速率限制。 | 
| 根據歷史流量基準？  | 否  | 是  | 
| 累積歷史流量基準所需的時間  | N/A  | 動態閾值為五分鐘。缺少字符的 N/A。 | 
| 緩解延遲  | 通常為 30-50 秒。最多可達幾分鐘。 | 通常少於 10 秒。最多可達幾分鐘。 | 
| 緩解目標  | 可設定。您可以使用縮小範圍陳述式和一或多個彙總索引鍵來分組請求，例如 IP 地址、HTTP 方法和查詢字串。 | IP 地址和用戶端工作階段  | 
| 觸發緩解所需的流量磁碟區層級  | 中 - 可以在指定的時段內低至 10 個請求  | 低 - 旨在偵測用戶端模式，例如慢速抓取器  | 
| 可自訂的閾值  | 是  | 否  | 
| 預設緩解動作 | 主控台預設為 Block。API 中沒有預設設定；需要設定。您可以將此設定為 以外的任何規則動作Allow。 | 規則群組規則動作設定Challenge適用於缺少字符，以及來自單一用戶端工作階段CAPTCHA的大量流量。您可以將其中一個規則設定為任何有效的規則動作。 | 
| 針對高度分散式攻擊的彈性  | 中型 - 10，000 個 IP 地址上限，用於自行限制 IP 地址 | 中 - IP 地址和權杖之間的總計限制為 50，000  | 
| [AWS WAF 定價](https://aws.amazon.com/waf/pricing/) | 包含在 的標準費用中 AWS WAF。 | 包含在目標層級的 Bot Control 智慧威脅緩解費用中。 | 
| 如需詳細資訊 | [在 中使用以速率為基礎的規則陳述式 AWS WAF](waf-rule-statement-type-rate-based.md) | [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md) | 

# 中的智慧型威脅防禦最佳實務 AWS WAF
最佳實務智慧型威脅防禦的最佳實務

已新增實作 Bot Control、ATP 和其他智慧型威脅緩解功能的最佳實務章節。

遵循本節中的最佳實務，以最有效率、最具成本效益的方式實作智慧型威脅緩解功能。
+ **實作 JavaScript 和行動應用程式整合 SDKs** – 實作應用程式整合，以最有效的方式啟用完整的 ACFP、ATP 或機器人控制功能。受管規則群組使用 SDKs 提供的字符，在工作階段層級將合法用戶端流量與不需要的流量分開。應用程式整合 SDKs 可確保這些字符隨時可用。如需詳細資訊，請參閱以下：
  + [搭配 ACFP 使用應用程式整合 SDKs](waf-acfp-with-tokens.md)
  + [搭配 ATP 使用應用程式整合 SDKs](waf-atp-with-tokens.md)
  + [搭配 Bot Control 使用應用程式整合 SDKs](waf-bot-with-tokens.md)

  使用整合在用戶端中實作挑戰，並針對 JavaScript 自訂 CAPTCHA 拼圖如何呈現給最終使用者。如需詳細資訊，請參閱[中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)。

  如果您使用 JavaScript API 自訂 CAPTCHA 拼圖，並在保護套件 (Web ACL) 中的任何位置使用CAPTCHA規則動作，請遵循 用戶端中處理 AWS WAF CAPTCHA 回應的指引[從 處理 CAPTCHA 回應 AWS WAF](waf-js-captcha-api-conditional.md)。本指南適用於使用 CAPTCHA動作的任何規則，包括 ACFP 受管規則群組中的規則，以及 Bot Control 受管規則群組的目標保護層級。
+ **限制您傳送至 ACFP、ATP 和 Bot Control 規則群組的請求** – 使用智慧型威脅緩解 AWS 受管規則規則群組會產生額外費用。ACFP 規則群組會檢查您指定之帳戶註冊和建立端點的請求。ATP 規則群組會檢查您指定之登入端點的請求。Bot Control 規則群組會在保護套件 (Web ACL) 評估中檢查到達該規則群組的每個請求。

  請考慮以下方法來減少您對這些規則群組的使用：
  + 在受管規則群組陳述式中使用縮小範圍陳述式排除來自檢查的請求。您可以使用任何可巢狀陳述式來執行此操作。如需相關資訊，請參閱[在 中使用縮小範圍陳述式 AWS WAF](waf-rule-scope-down-statements.md)。
  + 在規則群組之前新增規則，從檢查中排除請求。對於您無法在縮小範圍陳述式中使用的規則，以及更複雜的情況，例如標記後接標籤比對，您可能想要新增在規則群組之前執行的規則。如需詳細資訊，請參閱 [在 中使用縮小範圍陳述式 AWS WAF](waf-rule-scope-down-statements.md) 及 [在 中使用規則陳述式 AWS WAF](waf-rule-statements.md)。
  + 在較便宜的規則之後執行規則群組。如果您有其他基於任何原因封鎖請求的標準 AWS WAF 規則，請在這些付費規則群組之前執行它們。如需規則和規則管理的詳細資訊，請參閱 [在 中使用規則陳述式 AWS WAF](waf-rule-statements.md)。
  + 如果您使用的是多個智慧型威脅緩解受管規則群組，請依照下列順序執行它們，以降低成本：Bot Control、ATP、ACFP。

  如需更多定價的詳細資訊，請參閱 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。
+ **請勿限制您傳送至 Anti-DDoS 規則群組的請求 ** – 當您在 中設定規則群組以監控您未明確允許的所有 Web 流量時，此規則群組運作最佳。將其定位在您的 Web ACL 中，僅在具有Allow規則動作的規則之後以及在所有其他規則之前進行評估。
+ **對於分散式拒絕服務 (DDoS) 保護，請使用 Anti-DDoS 或 Shield Advanced 自動應用程式層 DDoS 緩解** – 其他智慧型威脅緩解規則群組不提供 DDoS 保護。ACFP 可防止對應用程式的註冊頁面進行詐騙帳戶建立嘗試。ATP 可防止帳戶接管嘗試到您的登入頁面。Bot Control 著重於在用戶端工作階段上使用字符和動態速率限制強制執行類似人類的存取模式。

  反 DDoS 可讓您監控和控制 DDoS 攻擊，以便快速回應和緩解威脅。Shield Advanced 搭配自動應用程式層 DDoS 緩解會自動回應偵測到的 DDoS 攻擊，方法是代表您建立、評估和部署自訂 AWS WAF 緩解措施。

  如需 Shield Advanced 的詳細資訊，請參閱 [AWS Shield Advanced 概觀](ddos-advanced-summary.md)和 [使用 AWS Shield Advanced 和 保護應用程式層 （第 7 層） AWS WAF](ddos-app-layer-protections.md)。

  如需分散式阻斷服務 (DDoS) 預防的詳細資訊，請參閱 [反 DDoS 規則群組](aws-managed-rule-groups-anti-ddos.md)和 [分散式阻斷服務 (DDoS) 預防](waf-anti-ddos.md)。
+  **在正常 Web 流量期間啟用反 DDoS 規則群組和機器人控制規則群組的目標保護層級** – 這些規則類別需要時間來建立正常流量的基準。

   在**正常 Web 流量期間啟用 Bot Control 規則群組的目標保護層級** – 目標保護層級的某些規則需要時間為正常流量模式建立基準，才能識別和回應不規則或惡意流量模式。例如，`TGT_ML_*`規則最多需要 24 小時才能暖機。

  當您沒有遭受攻擊時，請新增這些保護，並讓他們有時間建立其基準，再預期他們做出適當的回應。如果您在攻擊期間新增這些規則，則需要在計數模式中啟用反 DDoS 規則群組。攻擊消失後，建立基準的時間通常是正常所需時間的兩倍到三倍，因為攻擊流量增加的擺動。如需規則及其所需的任何暖機時間的詳細資訊，請參閱 [規則清單](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-rules)。
+ **對於分散式拒絕服務 (DDoS) 保護，請使用 Shield Advanced 自動應用程式層 DDoS 緩解** – 智慧型威脅緩解規則群組不提供 DDoS 保護。ACFP 可防止對應用程式的註冊頁面進行詐騙帳戶建立嘗試。ATP 可防止帳戶接管嘗試到您的登入頁面。Bot Control 著重於在用戶端工作階段上使用字符和動態速率限制強制執行類似人類的存取模式。

  當您在啟用自動應用程式層 DDoS 緩解措施的情況下使用 Shield Advanced 時，Shield Advanced 會透過代表您建立、評估和部署自訂 AWS WAF 緩解措施，自動回應偵測到的 DDoS 攻擊。如需 Shield Advanced 的詳細資訊，請參閱 [AWS Shield Advanced 概觀](ddos-advanced-summary.md)和 [使用 AWS Shield Advanced 和 保護應用程式層 （第 7 層） AWS WAF](ddos-app-layer-protections.md)。
+ **當您為 Anti-DDoS 規則群組建立基準時，請使用生產流量負載** – 使用人工測試流量測試其他規則群組是常見的做法。不過，當您測試和建立反 DDoS 規則群組的基準時，建議您使用反映生產環境中負載的流量流程。使用典型流量建立反 DDoS 基準是確保您的資源在生產環境中啟用規則群組時受到保護的最佳方式。
+ **調校和設定權杖處理** – 調整保護套件 (Web ACL) 的權杖處理，以獲得最佳使用者體驗。
  + 為了降低營運成本並改善最終使用者的體驗，請將權杖管理抗擾性時間調整為安全需求允許的最長時間。這可將 CAPTCHA 拼圖和靜音挑戰的使用降至最低。如需相關資訊，請參閱[在 中設定時間戳記過期和字符豁免時間 AWS WAF](waf-tokens-immunity-times.md)。
  + 若要在受保護的應用程式之間啟用權杖共用，請為您的保護套件設定權杖網域清單 (Web ACL)。如需相關資訊，請參閱[在 中指定字符網域和網域清單 AWS WAF](waf-tokens-domains.md)。
+ **使用任意主機規格拒絕請求** – 設定受保護的資源，要求 Web 請求中的`Host`標頭符合目標資源。您可以接受一個值或一組特定值，例如 `myExampleHost.com`和 `www.myExampleHost.com`，但不接受主機的任意值。
+ **對於屬於 CloudFront 分佈原始伺服器的 Application Load Balancer，請設定 CloudFront 和 AWS WAF 以進行適當的字符處理** – 如果您將保護套件 (Web ACL) 與 Application Load Balancer 建立關聯，並將 Application Load Balancer 部署為 CloudFront 分佈的原始伺服器，請參閱 [屬於 CloudFront 原始伺服器的 Application Load Balancer 所需的組態](waf-tokens-with-alb-and-cf.md)。
+ **部署前測試和調校** – 在您實作保護套件 (Web ACL) 的任何變更之前，請遵循本指南中的測試和調校程序，以確保您獲得預期的行為。這對這些付費功能尤其重要。如需一般指引，請參閱 [測試和調校您的 AWS WAF 保護](web-acl-testing.md)。如需付費受管規則群組的特定資訊，請參閱 [測試和部署 ACFP](waf-acfp-deploying.md)、 [測試和部署 ATP](waf-atp-deploying.md)和 [測試和部署 AWS WAF 機器人控制](waf-bot-control-deploying.md)。

# 用於 AWS WAF 智慧型威脅緩解的字符
智慧型威脅防禦中的字符AWS WAF 字符的新區段

了解 如何使用 AWS WAF 權杖進行智慧型威脅緩解。

本節說明 AWS WAF 字符的功能。

AWS WAF 權杖是 AWS WAF 智慧型威脅防禦所提供的增強型保護不可或缺的一部分。權杖有時稱為指紋，是用戶端儲存的單一用戶端工作階段相關資訊集合，並提供用戶端傳送的每個 Web 請求。 AWS WAF 會使用權杖來識別惡意用戶端工作階段，並將其與合法工作階段分開，即使兩者都來自單一 IP 地址。字符使用會對合法使用者施加可忽略的成本，但殭屍網路會大規模增加成本。

AWS WAF 使用字符來支援其瀏覽器和最終使用者挑戰功能，該功能由應用程式整合 SDKs 和規則動作 Challenge 和 提供CAPTCHA。此外，字符會啟用 AWS WAF Bot Control 和帳戶接管預防受管規則群組的功能。

AWS WAF 會為成功回應無聲挑戰和 CAPTCHA 謎題的用戶端建立、更新和加密字符。當具有字符的用戶端傳送 Web 請求時，它會包含加密的字符，並 AWS WAF 解密字符並驗證其內容。

**Topics**
+ [

# AWS WAF 如何使用字符
](waf-tokens-usage.md)
+ [

# AWS WAF 字符特性
](waf-tokens-details.md)
+ [

# 在 中設定時間戳記過期和字符豁免時間 AWS WAF
](waf-tokens-immunity-times.md)
+ [

# 在 中指定字符網域和網域清單 AWS WAF
](waf-tokens-domains.md)
+ [

# 中的字符標籤類型 AWS WAF
](waf-tokens-labeling.md)
+ [

# 封鎖沒有有效 AWS WAF 字符的請求
](waf-tokens-block-missing-tokens.md)
+ [

# 屬於 CloudFront 原始伺服器的 Application Load Balancer 所需的組態
](waf-tokens-with-alb-and-cf.md)

# AWS WAF 如何使用字符
AWS WAF 如何使用字符

本節說明 如何使用 AWS WAF 字符。

AWS WAF 使用字符來記錄和驗證下列類型的用戶端工作階段驗證：
+ **CAPTCHA** – CAPTCHA 拼圖有助於區分機器人與人類使用者。CAPTCHA 僅由CAPTCHA規則動作執行。成功完成拼圖後，CAPTCHA 指令碼會更新字符的 CAPTCHA 時間戳記。如需詳細資訊，請參閱[CAPTCHA 和 Challenge 中的 AWS WAF](waf-captcha-and-challenge.md)。
+ **挑戰** – 挑戰會無提示地執行，以協助區分定期用戶端工作階段與機器人工作階段，並讓機器人操作成本更高。當挑戰成功完成時，挑戰指令碼會自動 AWS WAF 視需要從 取得新的權杖，然後更新權杖的挑戰時間戳記。

  AWS WAF 在下列情況下執行挑戰：
  + **應用程式整合 SDKs** – 應用程式整合 SDKs 會在您的用戶端應用程式工作階段中執行，並協助確保只有在用戶端成功回應挑戰之後，才允許登入嘗試。如需詳細資訊，請參閱[中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)。
  + **Challenge 規則動作** – 如需詳細資訊，請參閱 [CAPTCHA 和 Challenge 中的 AWS WAF](waf-captcha-and-challenge.md)。
  + **CAPTCHA** – 當 CAPTCHA 間質執行時，如果用戶端還沒有字符，指令碼會自動先執行挑戰，以驗證用戶端工作階段並初始化字符。

智慧型威脅 AWS 受管規則規則群組中的許多規則都需要字符。這些規則使用權杖來執行某些操作，例如區分工作階段層級的用戶端、判斷瀏覽器特性，以及了解應用程式網頁上的人類互動程度。這些規則群組會叫用 AWS WAF 權杖管理，套用規則群組接著檢查的權杖標籤。
+ **AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP)** – ACFP 規則需要具有有效字符的 Web 請求。如需規則的詳細資訊，請參閱 [AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組](aws-managed-rule-groups-acfp.md)。
+ **AWS WAF 詐騙控制帳戶接管預防 (ATP)** – 防止大量和長時間持續用戶端工作階段的 ATP 規則需要具有有效權杖和未過期挑戰時間戳記的 Web 請求。如需詳細資訊，請參閱[AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md)。
+ **AWS WAF 機器人控制** – 此規則群組中的目標規則會限制用戶端在沒有有效字符的情況下可傳送的 Web 請求數量，而且它們會使用字符工作階段追蹤進行工作階段層級監控和管理。視需要，規則會套用 Challenge和 CAPTCHA規則動作，以強制執行權杖取得和有效的用戶端行為。如需詳細資訊，請參閱[AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md)。

# AWS WAF 字符特性
字符特性

每個字符具有下列特性：
+ 權杖存放在名為 的 Cookie 中`aws-waf-token`。
+ 字符已加密。
+ 字符會使用包含下列資訊的黏性精細識別符來指紋用戶端工作階段：
  + 用戶端最近成功回應無提示挑戰的時間戳記。
  + 最終使用者最近成功回應 CAPTCHA 的時間戳記。只有當您在保護中使用 CAPTCHA 時，才會出現這種情況。
  + 有關用戶端和用戶端行為的其他資訊，可協助將您的合法用戶端與不需要的流量分開。此資訊包含各種用戶端識別符和用戶端訊號，可用於偵測自動化活動。所收集的資訊是非唯一的，無法映射到個別的人類。
    + 所有字符都包含來自用戶端瀏覽器查詢的資料，例如自動化和瀏覽器設定不一致的指示。此資訊由 Challenge動作和用戶端應用程式 SDKs 執行的指令碼擷取。指令碼會主動查詢瀏覽器，並將結果放入字符中。
    + 此外，當您實作用戶端應用程式整合 SDK 時，字符包含被動收集的有關最終使用者與應用程式頁面互動的資訊。互動包括滑鼠移動、按鍵，以及與頁面上任何 HTML 格式的互動。此資訊有助於 AWS WAF 偵測用戶端中的人類互動程度，以挑戰似乎不是人類的使用者。如需用戶端整合的相關資訊，請參閱 [中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)。

基於安全考量， AWS 不提供 AWS WAF 字符內容的完整描述或字符加密程序的詳細資訊。

# 在 中設定時間戳記過期和字符豁免時間 AWS WAF
設定時間戳記過期和字符抗擾性時間

本節說明挑戰和 CAPTCHA 時間戳記如何過期。

AWS WAF 使用挑戰和 CAPTCHA 豁免時間來控制單一用戶端工作階段可呈現挑戰或 CAPTCHA 的頻率。在最終使用者成功回應 CAPTCHA 之後，CAPTCHA 親和性時間會決定最終使用者維持免受其他 CAPTCHA 影響的時間長度。同樣地，挑戰抗擾性時間會決定用戶端工作階段在成功回應挑戰後，仍能承受挑戰多久。

** AWS WAF 權杖抗擾性時間的運作方式**

AWS WAF 透過更新字符內的對應時間戳記，記錄對挑戰或 CAPTCHA 的成功回應。當 AWS WAF 檢查字符是否有挑戰或 CAPTCHA 時，它會從目前時間減去時間戳記。如果結果大於設定的抗擾性時間，則時間戳記已過期。

**權 AWS WAF 杖抗擾性時間的可設定層面**

您可以在保護套件 (Web ACL) 和使用 CAPTCHA或 規則Challenge動作的任何規則中設定挑戰和 CAPTCHA 豁免時間。
+ 兩個抗擾性時間的預設保護套件 (Web ACL) 設定為 300 秒。
+ 您可以為使用 CAPTCHA或 Challenge動作的任何規則指定豁免時間。如果您未指定規則的豁免時間，則會繼承保護套件 (Web ACL) 中的設定。
+ 對於使用 CAPTCHA或 Challenge動作之規則群組內的規則，如果您未指定規則的豁免時間，則會從您使用規則群組的每個保護套件 (Web ACL) 繼承設定。
+ 應用程式整合 SDKs 使用保護套件 (Web ACL) 的挑戰抗擾性時間。
+ 挑戰抗擾性時間的最小值為 300 秒。CAPTCHA 抗擾性時間的最小值為 60 秒。兩個抗擾性時間的最大值為 259，200 秒或三天。

您可以使用保護套件 (Web ACL) 和規則層級豁免時間設定來調整CAPTCHA動作Challenge、 或 SDK 挑戰管理行為。例如，您可以設定規則來控制存取具有低抗擾性時間的高敏感資料，然後在保護套件 (Web ACL) 中為其他規則和要繼承SDKs設定更高的抗擾性時間。

特別是針對 CAPTCHA，解決拼圖可能會降低您的客戶網站體驗，因此調校 CAPTCHA 豁免時間可協助您減輕對客戶體驗的影響，同時仍然提供您想要的保護。

如需針對使用 Challenge和 CAPTCHA規則動作調整抗擾性時間的詳細資訊，請參閱 [使用 CAPTCHA和 Challenge動作的最佳實務](waf-captcha-and-challenge-best-practices.md)。

# 在何處設定 AWS WAF 字符豁免時間
在何處設定抗擾性時間

您可以在保護套件 (Web ACL) 和使用 Challenge和 CAPTCHA規則動作的規則中設定豁免時間。

如需管理保護套件 (Web ACL) 及其規則的一般資訊，請參閱 [在 中檢視 Web 流量指標 AWS WAF](web-acl-working-with.md)。

**在何處設定保護套件的豁免時間 (Web ACL)**
+ **主控台** – 當您編輯保護套件 (Web ACL) 時，請在**規則**索引標籤中編輯和變更**保護套件 (Web ACL) CAPTCHA 組態**和**保護套件 (Web ACL) 挑戰組態**窗格中的設定。在 主控台中，您只能在建立保護套件 (Web ACL) 之後，設定保護套件 (Web ACL) CAPTCHA 和挑戰抗擾性時間。
+ **主控台外部** – 保護套件 (Web ACL) 資料類型具有 CAPTCHA 和挑戰組態參數，您可以在保護套件 (Web ACL) 上設定和提供建立和更新操作。

**在何處設定規則的豁免時間**
+ **主控台** – 當您建立或編輯規則並指定 CAPTCHA或 Challenge動作時，您可以修改規則的抗擾性時間設定。
+ 在**主控台外部** – 規則資料類型具有 CAPTCHA 和挑戰組態參數，您可以在定義規則時設定這些參數。

# 在 中指定字符網域和網域清單 AWS WAF
指定字符網域和網域清單AWS WAF 允許跨多個受保護應用程式共用字符

您可以透過為保護套件設定權杖網域清單 (Web ACL)，在多個受保護的應用程式間啟用權杖使用。

本節說明如何設定 AWS WAF 字符中使用的網域，以及 字符中接受的網域。

當 為用戶端 AWS WAF 建立權杖時，它會使用權杖網域來設定權杖。當 AWS WAF 檢查 Web 請求中的字符時，如果字符的網域不符合任何被視為對保護套件有效的網域 (Web ACL)，則會拒絕字符為無效。

根據預設， AWS WAF 僅接受網域設定完全符合與保護套件 (Web ACL) 相關聯之資源的主機網域的權杖。這是 Web 請求中 `Host` 標頭的值。在瀏覽器中，您可以在 JavaScript `window.location.hostname` 屬性和您的使用者在其地址列中看到的地址中找到此網域。

您也可以在保護套件 (Web ACL) 組態中指定可接受的字符網域，如下節所述。在此情況下， AWS WAF 接受與主機標頭完全相符，且與字符網域清單中的網域完全相符。

您可以在設定網域和評估保護套件 (Web ACL) 中的權杖時，指定 AWS WAF 要使用的權杖網域。您指定的網域不能是公有字尾，例如 `gov.au`。如需無法使用的網域，請參閱公有字尾清單[https://publicsuffix.org/list/public_suffix_list.dat](https://publicsuffix.org/list/public_suffix_list.dat)下的清單。 [https://publicsuffix.org/list/](https://publicsuffix.org/list/)

## AWS WAF 保護套件 (Web ACL) 權杖網域清單組態
AWS WAF 保護套件 (Web ACL) 字符網域清單

您可以將保護套件 (Web ACL) 設定為在多個受保護的資源之間共用權杖，方法是使用 AWS WAF 您要接受的其他網域提供權杖網域清單。透過字符網域清單， AWS WAF 仍然接受資源的主機網域。此外，它接受字符網域清單中的所有網域，包括其字首的子網域。

例如，`example.com`字符網域清單中的網域規格符合 `example.com`（來自 `http://example.com/`)`api.example.com`、、 （來自 `http://api.example.com/`) 和 `www.example.com`（來自 )`http://www.example.com/`。它與 `example.api.com`、 （來自 `http://example.api.com/`) 或 `apiexample.com`（來自 ) 不相符`http://apiexample.com/`。

您可以在建立或編輯權杖網域時，在保護套件 (Web ACL) 中設定權杖網域清單。如需管理保護套件 (Web ACL) 的一般資訊，請參閱 [在 中檢視 Web 流量指標 AWS WAF](web-acl-working-with.md)。

## AWS WAF 字符網域設定
Token 網域設定

AWS WAF 會在挑戰指令碼的要求下建立權杖，由應用程式整合 SDKs 和 Challenge和 CAPTCHA規則動作執行。

權杖中 AWS WAF 設定的網域取決於請求權杖的 挑戰指令碼類型，以及您提供的任何其他權杖網域組態。 AWS WAF 會將權杖中的網域設定為可在組態中找到的最短、最一般的設定。
+ **JavaScript 開發套件** – 您可以使用字符網域規格來設定 JavaScript 開發套件，該規格可包含一或多個網域。您設定的網域必須是 AWS WAF 根據受保護主機網域和保護套件 (Web ACL) 權杖網域清單接受的網域。

  當 為用戶端 AWS WAF 發出權杖時，它會將權杖網域設定為與主機網域相符且最短的權杖網域，從已設定清單中的主機網域和網域之間。例如，如果主機網域是 ，`api.example.com`且權杖網域清單具有 `example.com`， AWS WAF 會在權杖`example.com`中使用 ，因為它符合主機網域且較短。如果您未在 JavaScript API 組態中提供字符網域清單， 會將網域 AWS WAF 設定為受保護資源的主機網域。

  如需詳細資訊，請參閱[提供用於字符的網域](waf-js-challenge-api-set-token-domain.md)。
+ **行動開發套件** – 在您的應用程式程式碼中，您必須使用字符網域屬性設定行動開發套件。此屬性必須是 AWS WAF 根據受保護主機網域和保護套件 (Web ACL) 權杖網域清單接受的網域。

  當 為用戶端 AWS WAF 發出權杖時，它會使用此屬性做為權杖網域。 AWS WAF 不會在其為行動 SDK 用戶端發出的權杖中使用主機網域。

  如需詳細資訊，請參閱 中的 `WAFConfiguration``domainName`設定[AWS WAF 行動 SDK 規格](waf-mobile-sdk-specification.md)。
+ **Challenge 動作** – 如果您在保護套件 (Web ACL) 中指定權杖網域清單， 會將權杖網域 AWS WAF 設定為與主機網域相符且最短的網域，從主機網域和清單中的網域。例如，如果主機網域是 ，`api.example.com`且權杖網域清單具有 `example.com`，則會在權杖 AWS WAF `example.com`中使用 ，因為它符合主機網域且較短。如果您未在保護套件 (Web ACL) 中提供字符網域清單， 會將網域 AWS WAF 設定為受保護資源的主機網域。

# 中的字符標籤類型 AWS WAF
字符標籤的類型AWS WAF 挑戰和 CAPTCHA 字符標籤

權杖管理現在會新增 CAPTCHA 權杖的標籤，並增強了挑戰權杖的權杖標籤。AWS WAF 權杖標記新增瀏覽器指紋

權杖管理現在會新增瀏覽器指紋的標籤。

本節說明 AWS WAF 權杖管理新增至 Web 請求的標籤。如需標籤的一般資訊，請參閱 [中的 Web 請求標籤 AWS WAF](waf-labels.md)。

當您使用任何 AWS WAF 機器人或詐騙控制受管規則群組時，規則群組會使用 AWS WAF 權杖管理來檢查 Web 請求權杖，並將權杖標籤套用至請求。如需受管規則群組的相關資訊，請參閱 [AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組](aws-managed-rule-groups-acfp.md)、 [AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md)和 [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md) 。

**注意**  
AWS WAF 只有在您使用其中一個智慧型威脅緩解受管規則群組時， 才會套用權杖標籤。

權杖管理可以將下列標籤新增至 Web 請求。

**用戶端工作階段標籤**  
標籤`awswaf:managed:token:id:identifier`包含 AWS WAF 字符管理用來識別用戶端工作階段的唯一識別符。如果用戶端取得新的字符，例如在捨棄正在使用的字符之後，識別符可能會變更。

**注意**  
AWS WAF 不會報告此標籤的 Amazon CloudWatch 指標。

**瀏覽器指紋標籤**  
標籤`awswaf:managed:token:fingerprint:fingerprint-identifier`包含強大的瀏覽器指紋識別符，權 AWS WAF 杖管理會從各種用戶端瀏覽器訊號運算。此識別符在多個字符擷取嘗試中保持不變。指紋識別符對單一用戶端來說不是唯一的。

**注意**  
AWS WAF 不會報告此標籤的 Amazon CloudWatch 指標。

**字符狀態標籤：標籤命名空間字首**  
字符狀態標籤會報告字符的狀態，以及其中包含的挑戰和 CAPTCHA 資訊。

每個字符狀態標籤都以下列其中一個命名空間字首開頭：
+ `awswaf:managed:token:` – 用來報告字符的一般狀態，以及報告字符挑戰資訊的狀態。
+ `awswaf:managed:captcha:` – 用來報告字符 CAPTCHA 資訊的狀態。

**字符狀態標籤：標籤名稱**  
在字首後面，標籤的其餘部分提供詳細的字符狀態資訊：
+ `accepted` – 請求字符存在且包含下列項目：
  + 有效的挑戰或 CAPTCHA 解決方案。
  + 未過期的挑戰或 CAPTCHA 時間戳記。
  + 適用於保護套件 (Web ACL) 的網域規格。

  範例：標籤`awswaf:managed:token:accepted`指出 Web 請求的權杖具有有效的挑戰解決方案、未過期的挑戰時間戳記，以及有效的網域。
+ `rejected` – 請求字符存在，但不符合接受條件。

  除了拒絕的標籤之外，字符管理還會新增自訂標籤命名空間和名稱，以指出原因。
  + `rejected:not_solved` – 字符缺少挑戰或 CAPTCHA 解決方案。
  + `rejected:expired` – 權杖的挑戰或 CAPTCHA 時間戳記已過期，根據您的保護套件 (Web ACL) 設定的權杖豁免時間而定。
  + `rejected:domain_mismatch` – 字符的網域不符合您的保護套件 (Web ACL) 字符網域組態。
  + `rejected:invalid` – AWS WAF 無法讀取指定的字符。

  範例：標籤 `awswaf:managed:captcha:rejected`和 `awswaf:managed:captcha:rejected:expired`一起指出請求沒有有效的 CAPTCHA 解決方法，因為字符中的 CAPTCHA 時間戳記已超過保護套件 (Web ACL) 中設定的 CAPTCHA 字符豁免時間。
+ `absent` – 請求沒有字符或字符管理器無法讀取。

  範例：標籤`awswaf:managed:captcha:absent`指出請求沒有字符。

# 封鎖沒有有效 AWS WAF 字符的請求
封鎖沒有有效字符的請求

本節說明如何封鎖在使用 AWS WAF 行動 SDK 時缺少字符的登入請求。

當您使用智慧型威脅 AWS 受管規則規則群組 `AWSManagedRulesACFPRuleSet`、 `AWSManagedRulesATPRuleSet`和 時`AWSManagedRulesBotControlRuleSet`，規則群組會叫用 AWS WAF 權杖管理來評估 Web 請求權杖的狀態，並相應地標記請求。

**注意**  
字符標籤只會套用到您使用其中一個受管規則群組評估的 Web 請求。

如需權杖管理套用之標籤的相關資訊，請參閱上一節：[中的字符標籤類型 AWS WAF](waf-tokens-labeling.md)。

智慧型威脅緩解受管規則群組接著會處理字符需求，如下所示：
+ `AWSManagedRulesACFPRuleSet` `AllRequests` 規則設定為針對所有請求執行 Challenge動作，有效地封鎖任何沒有`accepted`字符標籤的 。
+ 會`AWSManagedRulesATPRuleSet`封鎖具有`rejected`字符標籤的請求，但不會封鎖具有`absent`字符標籤的請求。
+ `AWSManagedRulesBotControlRuleSet` 目標保護層級會在用戶端傳送五個沒有`accepted`字符標籤的請求後，向用戶端提出挑戰。它不會封鎖沒有有效字符的個別請求。規則群組的常見保護層級不會管理字符需求。

如需智慧型威脅規則群組的其他詳細資訊，請參閱 [AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組](aws-managed-rule-groups-acfp.md)[AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md)和 [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md)。

**使用 Bot Control 或 ATP 受管規則群組時，封鎖缺少字符的請求**  
使用 Bot Control 和 ATP 規則群組時，如果請求沒有有效的權杖，則可以退出規則群組評估，並繼續由保護套件 (Web ACL) 進行評估。

若要封鎖缺少字符或字符遭到拒絕的所有請求，請在受管規則群組之後新增要立即執行的規則，以擷取和封鎖規則群組未為您處理的請求。

以下是使用 ATP 受管規則群組之保護套件 (Web ACL) 的範例 JSON 清單。保護套件 (Web ACL) 具有新增的規則，可擷取並處理`awswaf:managed:token:absent`標籤。規則會將評估範圍縮小為前往登入端點的 Web 請求，以符合 ATP 規則群組的範圍。新增的規則會以粗體列出。

```
{
  "Name": "exampleWebACL",
  "Id": "55555555-6666-7777-8888-999999999999",
  "ARN": "arn:aws:wafv2:us-east-1:111111111111:regional/webacl/exampleWebACL/55555555-4444-3333-2222-111111111111",
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "",
  "Rules": [
    {
      "Name": "AWS-AWSManagedRulesATPRuleSet",
      "Priority": 1,
      "Statement": {
        "ManagedRuleGroupStatement": {
          "VendorName": "AWS",
          "Name": "AWSManagedRulesATPRuleSet",
          "ManagedRuleGroupConfigs": [
            {
              "AWSManagedRulesATPRuleSet": {
                "LoginPath": "/web/login",
                "RequestInspection": {
                  "PayloadType": "JSON",
                  "UsernameField": {
                    "Identifier": "/form/username"
                  },
                  "PasswordField": {
                    "Identifier": "/form/password"
                  }
                },
                "ResponseInspection": {
                  "StatusCode": {
                    "SuccessCodes": [
                      200
                    ],
                    "FailureCodes": [
                      401,
                      403,
                      500
                    ]
                  }
                }
              }  
            }
          ]
        }
      },
      "OverrideAction": {
        "None": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSManagedRulesATPRuleSet"
      }
    },
    {
      "Name": "RequireTokenForLogins",
      "Priority": 2,
      "Statement": {
        "AndStatement": {
          "Statements": [
            {
              "Statement": {
                "LabelMatchStatement": {
                  "Scope": "LABEL",
                  "Key": "awswaf:managed:token:absent"
                }
              }
            },
            {
              "ByteMatchStatement": {
                "SearchString": "/web/login",
                "FieldToMatch": {
                  "UriPath": {}
                },
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                 }
                ],
                "PositionalConstraint": "STARTS_WITH"
              }
            },
            {
              "ByteMatchStatement": {
                "SearchString": "POST",
                "FieldToMatch": {
                  "Method": {}
                },
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                  }
                ],
                "PositionalConstraint": "EXACTLY"
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "RequireTokenForLogins"
      } 
    }
  ],
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "exampleWebACL"
  },
  "Capacity": 51,
  "ManagedByFirewallManager": false,
  "RetrofittedByFirewallManager": false,
  "LabelNamespace": "awswaf:111111111111:webacl:exampleWebACL:"
}
```

# 屬於 CloudFront 原始伺服器的 Application Load Balancer 所需的組態
屬於 CloudFront 原始伺服器的 Application Load Balancer 組態

如果您將保護套件 (Web ACL) 與 Application Load Balancer 建立關聯，並將 Application Load Balancer 部署為 CloudFront 分佈的原始伺服器，請閱讀本節。

使用此架構時，您需要提供下列額外組態，才能正確處理字符資訊。
+ 設定 CloudFront 將 `aws-waf-token` Cookie 轉送至 Application Load Balancer。根據預設，CloudFront 會從 Web 請求移除 Cookie，然後再將其轉送至原始伺服器。若要使用 Web 請求保留權杖 Cookie，請將 CloudFront 快取行為設定為僅包含權杖 Cookie 或所有 Cookie。如需如何執行此操作的詳細資訊，請參閱《*Amazon CloudFront 開發人員指南*》中的[根據 Cookie 快取內容](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html)。
+ 設定 ， AWS WAF 使其將 CloudFront 分佈的網域識別為有效的權杖網域。根據預設，CloudFront 會將 `Host`標頭設定為 Application Load Balancer 原始伺服器， AWS WAF 並使用該標頭做為受保護資源的網域。不過，用戶端瀏覽器會將 CloudFront 分佈視為主機網域，而為用戶端產生的字符會使用 CloudFront 網域作為字符網域。如果沒有任何其他組態，當 AWS WAF 檢查受保護的資源網域與權杖網域，就會得到不相符。若要修正此問題，請將 CloudFront 分佈網域名稱新增至保護套件 (Web ACL) 組態中的字符網域清單。如需如何進行該服務的詳細資訊，請參閱[AWS WAF 保護套件 (Web ACL) 權杖網域清單組態](waf-tokens-domains.md#waf-tokens-domain-lists)。

# AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP)
AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP)新的 AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP)

您可以使用新的 AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 受管規則群組 來偵測和封鎖詐騙帳戶建立嘗試`AWSManagedRulesACFPRuleSet`。透過受保護的 CloudFront 分佈，您也可以使用 ACFP 封鎖最近提交太多失敗帳戶建立嘗試之用戶端的新帳戶建立嘗試。

本節說明 AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 的功能。

帳戶建立詐騙是一種線上非法活動，攻擊者會嘗試建立一或多個仿造帳戶。攻擊者使用仿造帳戶進行詐騙活動，例如濫用促銷和註冊獎勵、冒充某人，以及網路釣魚等網路攻擊。存在仿造帳戶可能會對您的業務造成負面影響，方法是損害您與客戶的評價以及遭受財務詐騙。

您可以透過實作 ACFP 功能來監控和控制帳戶建立詐騙嘗試。 `AWSManagedRulesACFPRuleSet`會在 AWS 受管規則規則群組中使用配套應用程式整合 SDKs AWS WAF 提供此功能。

ACFP 受管規則群組會標記和管理可能屬於惡意帳戶建立嘗試一部分的請求。規則群組會透過檢查用戶端傳送到您應用程式帳戶註冊端點的帳戶建立嘗試來執行此操作。

ACFP 透過監控異常活動的帳戶註冊請求，以及自動封鎖可疑的請求，來保護您的帳戶註冊頁面。規則群組使用請求識別符、行為分析和機器學習來偵測詐騙請求。
+ **請求檢查** – ACFP 可讓您查看和控制使用遭竊登入資料的異常帳戶建立嘗試和嘗試，以防止建立詐騙帳戶。ACFP 會針對其遭竊的登入資料資料庫檢查電子郵件和密碼組合，該資料庫會在深色 Web 上發現新的洩漏登入資料時定期更新。ACFP 會評估電子郵件地址中使用的網域，並監控電話號碼和地址欄位的使用，以驗證項目並偵測詐騙行為。ACFP 會依 IP 地址和用戶端工作階段彙總資料，以偵測和封鎖傳送過多可疑請求的用戶端。
+ **回應檢查** – 對於 CloudFront 分佈，除了檢查傳入的帳戶建立請求之外，ACFP 規則群組還會檢查應用程式對帳戶建立嘗試的回應，以追蹤成功和失敗率。使用此資訊，ACFP 可以暫時封鎖嘗試失敗次數過多的用戶端工作階段或 IP 地址。 會以非同步方式 AWS WAF 執行回應檢查，因此這不會增加 Web 流量的延遲。

**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

**注意**  
ACFP 功能不適用於 Amazon Cognito 使用者集區。

**Topics**
+ [

# AWS WAF ACFP 元件
](waf-acfp-components.md)
+ [

# 搭配 ACFP 使用應用程式整合 SDKs
](waf-acfp-with-tokens.md)
+ [

# 將 ACFP 受管規則群組新增至 Web ACL
](waf-acfp-rg-using.md)
+ [

# 測試和部署 ACFP
](waf-acfp-deploying.md)
+ [

# AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 範例
](waf-acfp-control-examples.md)

# AWS WAF ACFP 元件
ACFP 元件

 AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 的主要元件如下：
+ **`AWSManagedRulesACFPRuleSet`** – 此 AWS 受管規則規則群組中的規則會偵測、標記和處理各種類型的詐騙帳戶建立活動。規則群組會檢查用戶端傳送至指定帳戶註冊端點的 HTTP `GET` text/html 請求，以及用戶端傳送至指定帳戶註冊端點的 `POST` Web 請求。對於受保護的 CloudFront 分佈，規則群組也會檢查分佈傳回至帳戶建立請求的回應。如需此規則群組規則的清單，請參閱 [AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組](aws-managed-rule-groups-acfp.md)。您可以使用受管規則群組參考陳述式，將此規則群組包含在保護套件 (Web ACL) 中。如需使用此規則群組的詳細資訊，請參閱 [將 ACFP 受管規則群組新增至 Web ACL](waf-acfp-rg-using.md)。
**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。
+ **有關應用程式帳戶註冊和建立頁面的詳細資訊** – 當您將`AWSManagedRulesACFPRuleSet`規則群組新增至保護套件 (Web ACL) 時，必須提供帳戶註冊和建立頁面的相關資訊。這可讓規則群組縮小其檢查的請求範圍，並正確驗證帳戶建立 Web 請求。註冊頁面必須接受`GET`文字/html 請求。帳戶建立路徑必須接受`POST`請求。ACFP 規則群組適用於電子郵件格式的使用者名稱。如需詳細資訊，請參閱[將 ACFP 受管規則群組新增至 Web ACL](waf-acfp-rg-using.md)。
+ **對於受保護的 CloudFront 分佈，有關應用程式如何回應帳戶建立嘗試的詳細資訊** – 您可以提供有關應用程式對帳戶建立嘗試回應的詳細資訊，而 ACFP 規則群組會從單一 IP 地址或單一用戶端工作階段追蹤和管理大量帳戶建立嘗試。如需設定此選項的資訊，請參閱 [將 ACFP 受管規則群組新增至 Web ACL](waf-acfp-rg-using.md)。
+ **JavaScript 和行動應用程式整合 SDKs** – 使用 ACFP 實作實作 AWS WAF JavaScript 和行動 SDKs，以啟用規則群組提供的完整功能集。許多 ACFP 規則使用 SDKs 提供的資訊進行工作階段層級用戶端驗證和行為彙總，這是將合法用戶端流量與機器人流量分開的必要條件。如需 SDK 的詳細資訊，請參閱「[中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)」。

您可以結合 ACFP 實作與下列項目，協助您監控、調整和自訂保護。
+ **記錄和指標** – 您可以監控流量，並透過為保護套件設定和啟用日誌、Amazon Security Lake 資料收集和 Amazon CloudWatch 指標 (Web ACL)，了解 ACFP 受管規則群組如何影響流量。`AWSManagedRulesACFPRuleSet` 新增至 Web 請求的標籤會包含在資料中。如需選項的相關資訊，請參閱 [記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)、 [使用 Amazon CloudWatch 監控](monitoring-cloudwatch.md)和[什麼是 Amazon Security Lake？](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html)。

  根據您的需求和您看到的流量，您可能想要自訂`AWSManagedRulesACFPRuleSet`實作。例如，您可能想要從 ACFP 評估中排除一些流量，或者您可能想要使用縮小範圍陳述式或標籤比對規則等 AWS WAF 功能，改變它處理其識別的一些帳戶建立詐騙嘗試的方式。
+ **標籤和標籤比對規則** – 對於 中的任何規則`AWSManagedRulesACFPRuleSet`，您可以將封鎖行為切換為計數，然後比對規則新增的標籤。使用此方法自訂如何處理由 ACFP 受管規則群組識別的 Web 請求。如需標記和使用標籤比對陳述式的詳細資訊，請參閱 [標籤比對規則陳述式](waf-rule-statement-type-label-match.md)和 [中的 Web 請求標籤 AWS WAF](waf-labels.md)。
+ **自訂請求和回應** – 您可以將自訂標頭新增至您允許的請求，也可以為封鎖的請求傳送自訂回應。若要這樣做，請將標籤比對與 AWS WAF 自訂請求和回應功能配對。如需自訂請求和回應的詳細資訊，請參閱 [中的自訂 Web 請求和回應 AWS WAF](waf-custom-request-response.md)。

# 搭配 ACFP 使用應用程式整合 SDKs
搭配 ACFP 使用應用程式整合 SDKs

我們強烈建議您實作應用程式整合 SDKs，以最有效率的方式使用 ACFP 規則群組。
+ **完整的規則群組功能** – ACFP 規則`SignalClientHumanInteractivityAbsentLow`僅適用於由應用程式整合填入的字符。此規則會偵測和管理與應用程式頁面的異常人類互動。應用程式整合 SDKs 可以透過滑鼠移動、按鍵和其他測量來偵測正常的人類互動。由規則動作傳送CAPTCHA且Challenge無法提供此類型資料的間質。
+ **降低延遲** – 規則群組規則會將Challenge規則動作`AllRequests`套用至尚未具有挑戰字符的任何請求。發生這種情況時，規則群組會評估請求兩次：一次沒有字符，另一次是透過Challenge動作間質取得字符之後。您無須為僅使用`AllRequests`規則支付任何額外費用，但此方法會增加 Web 流量的額外負荷，並增加最終使用者體驗的延遲。如果您使用應用程式整合取得字符用戶端，在傳送帳戶建立請求之前，ACFP 規則群組會評估請求一次。

如需規則群組功能的詳細資訊，請參閱 [AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組](aws-managed-rule-groups-acfp.md)。

如需SDKs的詳細資訊，請參閱 [中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)。如需 AWS WAF 字符的相關資訊，請參閱 [用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。如需規則動作的相關資訊，請參閱 [CAPTCHA 和 Challenge 中的 AWS WAF](waf-captcha-and-challenge.md)。

# 將 ACFP 受管規則群組新增至 Web ACL
將 ACFP 受管規則群組新增至保護套件 (Web ACL)

本節說明如何新增和設定`AWSManagedRulesACFPRuleSet`規則群組。

若要設定 ACFP 受管規則群組來辨識 Web 流量中的帳戶建立詐騙活動，您可以提供有關用戶端如何存取您的註冊頁面，以及將帳戶建立請求傳送至應用程式的資訊。對於受保護的 Amazon CloudFront 分佈，您也可以提供應用程式如何回應帳戶建立請求的相關資訊。此組態是受管規則群組的一般組態以外的組態。

如需規則群組描述和規則清單，請參閱 [AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組](aws-managed-rule-groups-acfp.md)。

**注意**  
ACFP 遭竊的登入資料資料庫僅包含電子郵件格式的使用者名稱。

本指南適用於通常知道如何建立和管理 AWS WAF 保護套件 (Web ACLs)、規則和規則群組的使用者。這些主題涵蓋在本指南的先前章節中。如需如何將受管規則群組新增至保護套件 (Web ACL) 的基本資訊，請參閱 [透過主控台將受管規則群組新增至保護套件 (Web ACL)](waf-using-managed-rule-group.md)。

**遵循最佳實務**  
根據 的最佳實務使用 ACFP 規則群組[中的智慧型威脅防禦最佳實務 AWS WAF](waf-managed-protections-best-practices.md)。

**在保護套件中使用`AWSManagedRulesACFPRuleSet`規則群組 (Web ACL)**

1. 將 AWS 受管規則群組`AWSManagedRulesACFPRuleSet`新增至保護套件 (Web ACL)，並在儲存之前**編輯**規則群組設定。
**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

1. 在**規則群組組態**窗格中，提供 ACFP 規則群組用來檢查帳戶建立請求的資訊。

   1. 對於**在路徑中使用規則運算式**，如果您 AWS WAF 想要為註冊和帳戶建立頁面路徑規格執行規則運算式比對，請開啟此選項。

      AWS WAF 支援 PCRE 程式庫使用的模式語法`libpcre`，但有一些例外。程式庫記錄在 [PCRE - Perl 相容規則表達式](http://www.pcre.org/)中。如需 AWS WAF 支援的相關資訊，請參閱 [中支援的規則表達式語法 AWS WAF](waf-regex-pattern-support.md)。

   1. 針對**註冊頁面路徑**，提供應用程式的註冊頁面端點路徑。此頁面必須接受`GET`文字/html 請求。規則群組只會檢查對指定註冊頁面端點的 HTTP `GET` text/html 請求。
**注意**  
端點比對不區分大小寫。Regex 規格不得包含旗標 `(?-i)`，這會停用不區分大小寫的比對。字串規格必須以正斜線 開頭`/`。

      例如，對於 URL `https://example.com/web/registration`，您可以提供字串路徑規格 `/web/registration`。以您提供的路徑開頭的註冊頁面路徑會被視為相符項目。例如， `/web/registration`符合註冊路徑 `/web/registration`、`/web/registration/`、 `/web/registrationPage`和 `/web/registration/thisPage`，但不符合路徑 `/home/web/registration`或 `/website/registration`。
**注意**  
確保您的最終使用者在提交帳戶建立請求之前載入註冊頁面。這有助於確保來自用戶端的帳戶建立請求包含有效的字符。

   1. 對於**帳戶建立路徑**，請在您的網站中提供接受已完成新使用者詳細資訊的 URI。此 URI 必須接受`POST`請求。
**注意**  
端點比對不區分大小寫。Regex 規格不得包含旗標 `(?-i)`，這會停用不區分大小寫的比對。字串規格必須以正斜線 開頭`/`。

      例如，對於 URL `https://example.com/web/newaccount`，您可以提供字串路徑規格 `/web/newaccount`。以您提供的路徑開頭的帳戶建立路徑會被視為相符。例如， `/web/newaccount`符合帳戶建立路徑 `/web/newaccount`、`/web/newaccountPage`、 `/web/newaccount/`和 `/web/newaccount/thisPage`，但不符合路徑 `/home/web/newaccount`或 `/website/newaccount`。

   1. 針對**請求檢查**，請提供請求承載類型，以及提供使用者名稱、密碼和其他帳戶建立詳細資訊之請求內文中的欄位名稱，以指定應用程式接受帳戶建立嘗試的方式。
**注意**  
對於主要地址和電話號碼欄位，請依欄位出現在請求承載中的順序提供欄位。

      欄位名稱的規格取決於承載類型。
      + **JSON 承載類型** – 以 JSON 指標語法指定欄位名稱。如需有關 JSON Pointer 語法的資訊，請參閱 Internet Engineering Task Force (IETF) 文件 [JavaScript 物件標記法 (JSON) Pointer](https://tools.ietf.org/html/rfc6901)。

        例如，對於下列範例 JSON 承載，使用者名稱欄位規格為 `/signupform/username`，主要地址欄位規格為 `/signupform/addrp1`、 `/signupform/addrp2`和 `/signupform/addrp3`。

        ```
        {
            "signupform": {
                "username": "THE_USERNAME",
                "password": "THE_PASSWORD",
                "addrp1": "PRIMARY_ADDRESS_LINE_1",
                "addrp2": "PRIMARY_ADDRESS_LINE_2",
                "addrp3": "PRIMARY_ADDRESS_LINE_3",
                "phonepcode": "PRIMARY_PHONE_CODE",
                "phonepnumber": "PRIMARY_PHONE_NUMBER"
            }
        }
        ```
      + **FORM\$1ENCODED 承載類型** – 使用 HTML 表單名稱。

        例如，對於具有名為 `username1`和 之使用者和密碼輸入元素的 HTML 表單`password1`，使用者名稱欄位規格為 `username1`，密碼欄位規格為 `password1`。

   1. 如果您要保護 Amazon CloudFront 分佈，請在**回應檢查**下指定應用程式在回應帳戶建立嘗試時如何表示成功或失敗。
**注意**  
ACFP 回應檢查僅適用於保護 CloudFront 分佈的保護套件 (Web ACLs)。

      在您要 ACFP 檢查的帳戶建立回應中指定單一元件。對於**內文**和 **JSON** 元件類型， AWS WAF 可以檢查元件的前 65，536 個位元組 (64 KB)。

      提供元件類型的檢查條件，如 界面所示。您必須同時提供成功和失敗條件，才能在元件中檢查 。

      例如，假設您的應用程式在回應的狀態碼中指出帳戶建立嘗試的狀態，並使用 `200 OK` 表示成功和 `401 Unauthorized` 或 `403 Forbidden` 表示失敗。您會將回應檢查**元件類型**設定為**狀態碼**，然後在**成功**文字方塊中輸入 `200`，然後在**失敗**文字方塊中輸入 ，`401`在第一行和第二`403`行中輸入 。

      ACFP 規則群組只會計算符合您成功或失敗檢查條件的回應。當用戶端在計數的回應中擁有過高的成功率時，規則群組規則會對用戶端採取行動，以減少大量帳戶建立嘗試。如需規則群組規則的準確行為，請務必提供成功和失敗帳戶建立嘗試的完整資訊。

      若要查看檢查帳戶建立回應的規則，請在 `VolumetricSessionSuccessfulResponse` 的規則清單中尋找 `VolumetricIPSuccessfulResponse`和 [AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組](aws-managed-rule-groups-acfp.md)。

1. 提供您想要用於規則群組的任何其他組態。

   您可以將縮小範圍陳述式新增至受管規則群組陳述式，進一步限制規則群組檢查的請求範圍。例如，您只能檢查具有特定查詢引數或 Cookie 的請求。規則群組只會檢查符合您縮小範圍陳述式中條件，並傳送至您在規則群組組態中指定之帳戶註冊和帳戶建立路徑的請求。如需縮小範圍陳述式的資訊，請參閱 [在 中使用縮小範圍陳述式 AWS WAF](waf-rule-scope-down-statements.md)。

1. 將變更儲存至保護套件 (Web ACL)。

在部署生產流量的 ACFP 實作之前，請在預備或測試環境中進行測試和調校，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調校規則，然後再啟用它們。如需指引，請參閱以下章節。

# 測試和部署 ACFP
測試和部署 ACFP

本節提供為您的網站設定和測試 AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 實作的一般指引。您選擇遵循的特定步驟將取決於您收到的需求、資源和 Web 請求。

此資訊是 所提供測試和調校的一般資訊之外的。 [測試和調校您的 AWS WAF 保護](web-acl-testing.md)

**注意**  
AWS 受管規則旨在保護您免受常見的 Web 威脅。根據文件使用時， AWS 受管規則規則群組會為您的應用程式新增另一層安全性。不過， AWS 受管規則規則群組並非旨在取代您的安全責任，這取決於您選擇的 AWS 資源。請參閱 [共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)，以確保您在 中的資源 AWS 受到適當保護。

**生產流量風險**  
在部署生產流量的 ACFP 實作之前，請在預備或測試環境中進行測試和調校，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調校規則，然後再啟用它們。

AWS WAF 提供測試登入資料，您可以用來驗證 ACFP 組態。在下列程序中，您將設定測試保護套件 (Web ACL) 以使用 ACFP 受管規則群組、設定規則以擷取規則群組新增的標籤，然後使用這些測試憑證執行帳戶建立嘗試。您將檢查帳戶建立嘗試的 Amazon CloudWatch 指標，以確認您的保護套件 (Web ACL) 已正確管理嘗試。

本指南適用於通常知道如何建立和管理 AWS WAF 保護套件 (Web ACLs)、規則和規則群組的使用者。這些主題涵蓋在本指南的先前章節中。

**設定和測試 AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 實作**

請先在測試環境中執行這些步驟，然後在生產環境中執行這些步驟。

1. 

**在計數模式中新增 AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 受管規則群組**
**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

   將 AWS 受管規則規則群組`AWSManagedRulesACFPRuleSet`新增至新的或現有的保護套件 (Web ACL)，並加以設定，使其不會變更目前的保護套件 (Web ACL) 行為。如需此規則群組之規則和標籤的詳細資訊，請參閱 [AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組](aws-managed-rule-groups-acfp.md)。
   + 當您新增受管規則群組時，請進行編輯並執行下列動作：
     + 在**規則群組組態**窗格中，提供應用程式帳戶註冊和建立頁面的詳細資訊。ACFP 規則群組會使用此資訊來監控登入活動。如需詳細資訊，請參閱[將 ACFP 受管規則群組新增至 Web ACL](waf-acfp-rg-using.md)。
     + 在**規則**窗格中，開啟**覆寫所有規則動作**下拉式清單，然後選擇 **Count**。使用此組態， 會根據規則群組中的所有規則 AWS WAF 評估請求，並僅計算該結果的相符項目，同時仍將標籤新增至請求。如需詳細資訊，請參閱[覆寫規則群組中的規則動作](web-acl-rule-group-settings.md#web-acl-rule-group-rule-action-override)。

       透過此覆寫，您可以監控 ACFP 受管規則的潛在影響，以判斷您是否要新增例外狀況，例如內部使用案例的例外狀況。
   + 放置規則群組，以便在保護套件 (Web ACL) 中現有規則之後進行評估，其優先順序設定在數值上高於您已使用的任何規則或規則群組。如需詳細資訊，請參閱[設定規則優先順序](web-acl-processing-order.md)。

     如此一來，您目前的流量處理不會中斷。例如，如果您有偵測惡意流量的規則，例如 SQL Injection 或跨網站指令碼，它們將繼續偵測並記錄。或者，如果您有允許已知非惡意流量的規則，則可以繼續允許該流量，而不會被 ACFP 受管規則群組封鎖。您可以在測試和調校活動期間決定調整處理順序。

1. 

**實作應用程式整合 SDKs**

   將 AWS WAF JavaScript SDK 整合到瀏覽器的帳戶註冊和帳戶建立路徑。 AWS WAF 也提供行動 SDKs來整合 iOS 和 Android 裝置。如需整合 SDKs的詳細資訊，請參閱 [中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)。如需此建議的相關資訊，請參閱 [搭配 ACFP 使用應用程式整合 SDKs](waf-acfp-with-tokens.md)。
**注意**  
如果您無法使用應用程式整合 SDKs，則可以在保護套件 (Web ACL) 中編輯 ACFP 規則群組，並移除您在規則上放置的覆寫，以測試 ACFP `AllRequests`規則群組。這會啟用規則Challenge的動作設定，以確保請求包含有效的挑戰字符。  
*首先在測試環境中執行此操作，然後在生產環境中非常小心。*這種方法可能會封鎖使用者。例如，如果您的註冊頁面路徑不接受`GET`文字/html 請求，則此規則組態可以有效地封鎖註冊頁面上的所有請求。

1. 

**啟用保護套件的記錄和指標 (Web ACL)**

   視需要設定 保護套件 (Web ACL) 的記錄、Amazon Security Lake 資料收集、請求取樣和 Amazon CloudWatch 指標。您可以使用這些可見性工具來監控 ACFP 受管規則群組與流量的互動。
   + 如需日誌記錄的相關資訊，請參閱[記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。
   + 如需 Amazon Security Lake 的相關資訊，請參閱《[Amazon Security Lake 使用者指南》中的什麼是 Amazon Security Lake？](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html)以及[從 AWS 服務收集資料](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)。 **
   + 如需 Amazon CloudWatch 指標的相關資訊，請參閱 [使用 Amazon CloudWatch 監控](monitoring-cloudwatch.md)。
   + 如需有關 Web 請求取樣的資訊，請參閱 [檢視 Web 請求的範例](web-acl-testing-view-sample.md)。

1. 

**將保護套件 (Web ACL) 與資源建立關聯**

   如果保護套件 (Web ACL) 尚未與測試資源建立關聯，請建立關聯。如需相關資訊，請參閱[將保護與 AWS 資源建立關聯或取消關聯](web-acl-associating-aws-resource.md)。

1. 

**監控流量和 ACFP 規則相符項目**

   請確定您的正常流量正在流動，而且 ACFP 受管規則群組規則正在將標籤新增至相符的 Web 請求。您可以在日誌中查看標籤，並在 Amazon CloudWatch 指標中查看 ACFP 和標籤指標。在 日誌中，您已覆寫規則群組中計數的規則會顯示在 中，`ruleGroupList`並將 `action` 設定為計數，並`overriddenAction`指出您覆寫的已設定規則動作。

1. 

**測試規則群組的登入資料檢查功能**

   使用測試洩露的登入資料執行帳戶建立嘗試，並檢查規則群組是否如預期相符。

   1. 存取受保護資源的帳戶註冊頁面，並嘗試新增新帳戶。使用以下 AWS WAF 測試登入資料對並輸入任何測試 
      + 使用者： `WAF_TEST_CREDENTIAL@wafexample.com`
      + 密碼： `WAF_TEST_CREDENTIAL_PASSWORD`

      這些測試登入資料會分類為遭到入侵的登入資料，而 ACFP 受管規則群組會將`awswaf:managed:aws:acfp:signal:credential_compromised`標籤新增至帳戶建立請求，您可以在日誌中看到。

   1. 在保護套件 (Web ACL) 日誌中，在測試帳戶建立請求的日誌項目的 `labels` 欄位中尋找`awswaf:managed:aws:acfp:signal:credential_compromised`標籤。如需日誌記錄的相關資訊，請參閱[記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。

   驗證規則群組如預期擷取遭入侵的登入資料後，您可以採取步驟來設定其實作，以因應受保護資源的需求。

1. 

**針對 CloudFront 分佈，測試規則群組的大量帳戶建立嘗試管理**

   針對您為 ACFP 規則群組設定的每個成功回應條件執行此測試。在測試之間等待至少 30 分鐘。

   1. 針對您的每個成功條件，識別在回應中使用該成功條件成功的帳戶建立嘗試。然後，從單一用戶端工作階段，在 30 分鐘內執行至少 5 次成功的帳戶建立嘗試。使用者通常只會在您的網站上建立單一帳戶。

      第一次成功建立帳戶後，`VolumetricSessionSuccessfulResponse`規則應該會根據您的規則動作覆寫，開始比對您帳戶建立回應的其餘部分，並加上標籤和計數。規則可能會因為延遲而遺漏前一或兩個。

   1. 在保護套件 (Web ACL) 日誌中，在測試帳戶建立 Web 請求的日誌項目的 `labels` 欄位中尋找`awswaf:managed:aws:acfp:aggregate:volumetric:session:successful_creation_response:high`標籤。如需日誌記錄的相關資訊，請參閱[記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。

   這些測試會檢查規則彙總的成功計數是否超過規則的閾值，以驗證您的成功條件是否符合您的回應。達到閾值後，如果您繼續從相同工作階段傳送帳戶建立請求，則規則將繼續相符，直到成功率低於閾值為止。超過閾值時，規則會同時符合工作階段地址中成功或失敗的帳戶建立嘗試。

1. 

**自訂 ACFP Web 請求處理**

   視需要新增您自己的規則，明確允許或封鎖請求，以變更 ACFP 規則處理它們的方式。

   例如，您可以使用 ACFP 標籤來允許或封鎖請求，或自訂請求處理。您可以在 ACFP 受管規則群組之後新增標籤比對規則，以篩選要套用之處理方式的標記請求。測試之後，請將相關的 ACFP 規則保持在計數模式中，並在您的自訂規則中維護請求處理決策。如需範例，請參閱 [ACFP 範例：針對遭到入侵的登入資料進行自訂回應](waf-acfp-control-example-compromised-credentials.md)。

1. 

**移除您的測試規則並啟用 ACFP 受管規則群組設定**

   根據您的情況，您可能已決定要將一些 ACFP 規則保留在計數模式中。對於您想要在規則群組中依設定執行的規則，請在保護套件 (Web ACL) 規則群組組態中停用計數模式。完成測試後，您也可以移除測試標籤比對規則。

1. 

**監控和調校**

   為了確保 Web 請求可依您想要的方式處理，請在啟用您要使用的 ACFP 功能後密切監控流量。視需要使用規則群組上的規則計數覆寫和您自己的規則來調整行為。

完成測試 ACFP 規則群組實作後，如果您尚未將 AWS WAF JavaScript 開發套件整合至瀏覽器的帳戶註冊和帳戶建立頁面，我們強烈建議您這麼做。 AWS WAF 也提供行動SDKs，以整合 iOS 和 Android 裝置。如需整合 SDKs的詳細資訊，請參閱 [中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)。如需此建議的相關資訊，請參閱 [搭配 ACFP 使用應用程式整合 SDKs](waf-acfp-with-tokens.md)。

# AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 範例
ACFP 範例更新的 ACFP 範例

新增描述回應檢查組態的範例。

本節顯示滿足 AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 實作常用案例的範例組態。

每個範例都會提供使用案例的說明，然後在自訂設定規則的 JSON 清單中顯示解決方案。

**注意**  
您可以透過主控台保護套件 (Web ACL) JSON 下載或規則 JSON 編輯器，或透過 APIs 和命令列界面中的 `getWebACL`操作，擷取這些範例中顯示的 JSON 清單。

**Topics**
+ [

# ACFP 範例：簡易組態
](waf-acfp-control-example-basic.md)
+ [

# ACFP 範例：針對遭到入侵的登入資料進行自訂回應
](waf-acfp-control-example-compromised-credentials.md)
+ [

# ACFP 範例：回應檢查組態
](waf-acfp-control-example-response-inspection.md)

# ACFP 範例：簡易組態
簡單組態

下列 JSON 清單顯示具有 AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 受管規則群組的範例保護套件 (Web ACL)。請注意額外的 `CreationPath`和 `RegistrationPagePath`組態，以及承載類型和在承載中尋找新帳戶資訊所需的資訊，以便進行驗證。規則群組會使用此資訊來監控和管理您的帳戶建立請求。此 JSON 包含保護套件 (Web ACL) 自動產生的設定，例如標籤命名空間和保護套件 (Web ACL) 的應用程式整合 URL。

```
{
  "Name": "simpleACFP",
  "Id": "... ",
  "ARN": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/simpleACFP/... ",
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "",
  "Rules": [
    {
      "Name": "AWS-AWSManagedRulesACFPRuleSet",
      "Priority": 0,
      "Statement": {
        "ManagedRuleGroupStatement": {
          "VendorName": "AWS",
          "Name": "AWSManagedRulesACFPRuleSet",
          "ManagedRuleGroupConfigs": [
            {
              "AWSManagedRulesACFPRuleSet": {
                "CreationPath": "/web/signup/submit-registration",
                "RegistrationPagePath": "/web/signup/registration",
                "RequestInspection": {
                  "PayloadType": "JSON",
                  "UsernameField": {
                    "Identifier": "/form/username"
                  },
                  "PasswordField": {
                    "Identifier": "/form/password"
                  },
                  "EmailField": {
                    "Identifier": "/form/email"
                  },
                  "PhoneNumberFields": [
                    {
                      "Identifier": "/form/country-code"
                    },
                    {
                      "Identifier": "/form/region-code"
                    },
                    {
                      "Identifier": "/form/phonenumber"
                    }
                  ],
                  "AddressFields": [
                    {
                      "Identifier": "/form/name"
                    },
                    {
                      "Identifier": "/form/street-address"
                    },
                    {
                      "Identifier": "/form/city"
                    },
                    {
                      "Identifier": "/form/state"
                    },
                    {
                      "Identifier": "/form/zipcode"
                    }
                  ]
                },
                "EnableRegexInPath": false
              }
            }
          ]
        }
      },
      "OverrideAction": {
        "None": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSManagedRulesACFPRuleSet"
      }
    }
  ],
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "simpleACFP"
  },
  "Capacity": 50,
  "ManagedByFirewallManager": false,
  "RetrofittedByFirewallManager": false,
  "LabelNamespace": "awswaf:111122223333:webacl:simpleACFP:"
}
```

# ACFP 範例：針對遭到入侵的登入資料進行自訂回應
針對遭到入侵的登入資料的自訂回應

根據預設，規則群組執行的登入資料檢查會透過標記和封鎖請求來處理`AWSManagedRulesACFPRuleSet`遭到入侵的登入資料。如需規則群組和規則行為的詳細資訊，請參閱 [AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組](aws-managed-rule-groups-acfp.md)。

若要通知使用者他們提供的帳戶登入資料已遭入侵，您可以執行下列動作：
+ **將`SignalCredentialCompromised`規則覆寫為 Count** – 這會導致規則僅計數和標記相符請求。
+ **使用自訂處理新增標籤比對規則** – 設定此規則以符合 ACFP 標籤，並執行您的自訂處理。

下列保護套件 (Web ACL) 清單顯示先前範例中的 ACFP 受管規則群組，規則`SignalCredentialCompromised`動作會覆寫為計數。透過此組態，當此規則群組評估任何使用遭入侵登入資料的 Web 請求時，它會標記請求，但不會將其封鎖。

此外，保護套件 (Web ACL) 現在具有名為 的自訂回應`aws-waf-credential-compromised`和名為 的新規則`AccountSignupCompromisedCredentialsHandling`。規則優先順序是高於規則群組的數值設定，因此會在保護套件 (Web ACL) 評估中的規則群組之後執行。新規則會比對具有規則群組遭入侵憑證標籤的任何請求。當規則找到相符項目時，它會將 Block動作套用至具有自訂回應內文的請求。自訂回應內文會向最終使用者提供其登入資料遭到入侵的資訊，並提議採取動作。

```
{
  "Name": "compromisedCreds",
  "Id": "... ",
  "ARN": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/compromisedCreds/...",
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "",
  "Rules": [
    {
      "Name": "AWS-AWSManagedRulesACFPRuleSet",
      "Priority": 0,
      "Statement": {
        "ManagedRuleGroupStatement": {
          "VendorName": "AWS",
          "Name": "AWSManagedRulesACFPRuleSet",
          "ManagedRuleGroupConfigs": [
            {
              "AWSManagedRulesACFPRuleSet": {
                "CreationPath": "/web/signup/submit-registration",
                "RegistrationPagePath": "/web/signup/registration",
                "RequestInspection": {
                  "PayloadType": "JSON",
                  "UsernameField": {
                    "Identifier": "/form/username"
                  },
                  "PasswordField": {
                    "Identifier": "/form/password"
                  },
                  "EmailField": {
                    "Identifier": "/form/email"
                  },
                  "PhoneNumberFields": [
                    {
                      "Identifier": "/form/country-code"
                    },
                    {
                      "Identifier": "/form/region-code"
                    },
                    {
                      "Identifier": "/form/phonenumber"
                    }
                  ],
                  "AddressFields": [
                    {
                      "Identifier": "/form/name"
                    },
                    {
                      "Identifier": "/form/street-address"
                    },
                    {
                      "Identifier": "/form/city"
                    },
                    {
                      "Identifier": "/form/state"
                    },
                    {
                      "Identifier": "/form/zipcode"
                    }
                  ]
                },
                "EnableRegexInPath": false
              }
            }
          ],
          "RuleActionOverrides": [
            {
              "Name": "SignalCredentialCompromised",
              "ActionToUse": {
                "Count": {}
              }
            }
          ]
        }
      },
      "OverrideAction": {
        "None": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSManagedRulesACFPRuleSet"
      }
    },
    {
      "Name": "AccountSignupCompromisedCredentialsHandling",
      "Priority": 1,
      "Statement": {
        "LabelMatchStatement": {
          "Scope": "LABEL",
          "Key": "awswaf:managed:aws:acfp:signal:credential_compromised"
        }
      },
      "Action": {
        "Block": {
          "CustomResponse": {
            "ResponseCode": 406,
            "CustomResponseBodyKey": "aws-waf-credential-compromised",
            "ResponseHeaders": [
              {
                "Name": "aws-waf-credential-compromised",
                "Value": "true"
              }
            ]
          }
        }
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AccountSignupCompromisedCredentialsHandling"
      }
    }
  ],
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "compromisedCreds"
  },
  "Capacity": 51,
  "ManagedByFirewallManager": false,
  "RetrofittedByFirewallManager": false,
  "LabelNamespace": "awswaf:111122223333:webacl:compromisedCreds:",
  "CustomResponseBodies": {
    "aws-waf-credential-compromised": {
      "ContentType": "APPLICATION_JSON",
      "Content": "{\n  \"credentials-compromised\": \"The credentials you provided have been found in a compromised credentials database.\\n\\nTry again with a different username, password pair.\"\n}"
    }
  }
}
```

# ACFP 範例：回應檢查組態
回應檢查組態

下列 JSON 清單顯示範例保護套件 (Web ACL)，其中包含設定為檢查原始伺服器回應的 AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 受管規則群組。請注意回應檢查組態，這會指定成功和回應狀態碼。您也可以根據標頭、內文和內文 JSON 相符項目來設定成功和回應設定。此 JSON 包含保護套件 (Web ACL) 自動產生的設定，例如標籤命名空間和保護套件 (Web ACL) 的應用程式整合 URL。

**注意**  
ATP 回應檢查僅適用於保護 CloudFront 分佈的保護套件 (Web ACLs)。

```
{
  "Name": "simpleACFP",
  "Id": "... ",
  "ARN": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/simpleACFP/... ",
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "",
  "Rules": [
    {
      "Name": "AWS-AWSManagedRulesACFPRuleSet",
      "Priority": 0,
      "Statement": {
        "ManagedRuleGroupStatement": {
          "VendorName": "AWS",
          "Name": "AWSManagedRulesACFPRuleSet",
          "ManagedRuleGroupConfigs": [
            {
              "AWSManagedRulesACFPRuleSet": {
                "CreationPath": "/web/signup/submit-registration",
                "RegistrationPagePath": "/web/signup/registration",
                "RequestInspection": {
                  "PayloadType": "JSON",
                  "UsernameField": {
                    "Identifier": "/form/username"
                  },
                  "PasswordField": {
                    "Identifier": "/form/password"
                  },
                  "EmailField": {
                    "Identifier": "/form/email"
                  },
                  "PhoneNumberFields": [
                    {
                      "Identifier": "/form/country-code"
                    },
                    {
                      "Identifier": "/form/region-code"
                    },
                    {
                      "Identifier": "/form/phonenumber"
                    }
                  ],
                  "AddressFields": [
                    {
                      "Identifier": "/form/name"
                    },
                    {
                      "Identifier": "/form/street-address"
                    },
                    {
                      "Identifier": "/form/city"
                    },
                    {
                      "Identifier": "/form/state"
                    },
                    {
                      "Identifier": "/form/zipcode"
                    }
                  ]
                },
                "ResponseInspection": {
                  "StatusCode": {
                    "SuccessCodes": [
                      200
                    ],
                    "FailureCodes": [
                      401
                    ]
                  }
                },
                "EnableRegexInPath": false
              }
            }
          ]
        }
      },
      "OverrideAction": {
        "None": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSManagedRulesACFPRuleSet"
      }
    }
  ],
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "simpleACFP"
  },
  "Capacity": 50,
  "ManagedByFirewallManager": false,
  "RetrofittedByFirewallManager": false,
  "LabelNamespace": "awswaf:111122223333:webacl:simpleACFP:"
  }
```

# AWS WAF 詐騙控制帳戶接管預防 (ATP)
AWS WAF 詐騙控制帳戶接管預防 (ATP)AWS WAF 詐騙控制帳戶接管預防 (ATP) 登入回應檢查

對於受保護的 CloudFront 分佈，您現在可以使用 ATP 封鎖最近提交太多失敗登入嘗試的用戶端的新登入嘗試。AWS WAF 詐騙控制帳戶接管預防 (ATP)

您可以使用新的 AWS WAF 詐騙控制帳戶接管預防 (ATP) 受管規則群組 來偵測和封鎖帳戶接管嘗試`AWSManagedRulesATPRuleSet`。AWS WAF 詐騙控制帳戶接管預防 (ATP)

您現在可以將 AWS WAF 詐騙控制帳戶接管預防 (ATP) 功能與 Amazon CloudFront 分發搭配使用。

本節說明 AWS WAF 詐騙控制帳戶接管預防 (ATP) 的功能。

帳戶接管是一種線上非法活動，攻擊者可在其中未經授權存取某人的帳戶。攻擊者可能會以多種方式執行此操作，例如使用遭竊的登入資料或透過一系列嘗試猜測受害者的密碼。當攻擊者取得存取權時，他們可能會從受害者竊取金錢、資訊或服務。攻擊者可能會偽裝成受害者，以取得受害者擁有之其他帳戶的存取權，或存取其他人或組織的帳戶。此外，他們可能會嘗試變更使用者的密碼，以封鎖受害者與自己的帳戶。

您可以實作 ATP 功能來監控和控制帳戶接管嘗試。 AWS WAF 會在 AWS 受管規則規則群組`AWSManagedRulesATPRuleSet`和配套應用程式整合 SDKs中提供此功能。

ATP 受管規則群組會標記和管理可能屬於惡意帳戶接管嘗試一部分的請求。規則群組會透過檢查用戶端傳送至應用程式登入端點的登入嘗試來執行此操作。
+ **請求檢查** – ATP 可讓您查看和控制使用遭竊登入資料的異常登入嘗試和登入嘗試，以防止可能導致詐騙活動的帳戶接管。ATP 會針對其遭竊的登入資料資料庫檢查電子郵件和密碼組合，因為在黑暗的網路上發現新的洩漏登入資料時，會定期更新。ATP 會依 IP 地址和用戶端工作階段彙總資料，以偵測和封鎖傳送過多可疑請求的用戶端。
+ **回應檢查** – 對於 CloudFront 分佈，除了檢查傳入的登入請求之外，ATP 規則群組還會檢查應用程式的登入嘗試回應，以追蹤成功和失敗率。使用此資訊，ATP 可以暫時封鎖登入失敗次數過多的用戶端工作階段或 IP 地址。 會以非同步方式 AWS WAF 執行回應檢查，因此這不會增加 Web 流量的延遲。

**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

**注意**  
ATP 功能不適用於 Amazon Cognito 使用者集區。

**Topics**
+ [

# AWS WAF ATP 元件
](waf-atp-components.md)
+ [

# 搭配 ATP 使用應用程式整合 SDKs
](waf-atp-with-tokens.md)
+ [

# 將 ATP 受管規則群組新增至保護套件 (Web ACL)
](waf-atp-rg-using.md)
+ [

# 測試和部署 ATP
](waf-atp-deploying.md)
+ [

# AWS WAF 詐騙控制帳戶接管預防 (ATP) 範例
](waf-atp-control-examples.md)

# AWS WAF ATP 元件
ATP 元件

 AWS WAF 詐騙控制帳戶接管預防 (ATP) 的主要元件如下：
+ **`AWSManagedRulesATPRuleSet`** – 此 AWS 受管規則規則群組中的規則會偵測、標記和處理各種類型的帳戶接管活動。規則群組會檢查用戶端傳送至指定登入端點的 HTTP `POST` Web 請求。對於受保護的 CloudFront 分佈，規則群組也會檢查分佈傳回這些請求的回應。如需規則群組規則的清單，請參閱 [AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md)。您可以使用受管規則群組參考陳述式將此規則群組包含在保護套件 (Web ACL) 中。如需使用此規則群組的詳細資訊，請參閱 [將 ATP 受管規則群組新增至保護套件 (Web ACL)](waf-atp-rg-using.md)。
**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。
+ **有關應用程式登入頁面的詳細資訊** – 當您將`AWSManagedRulesATPRuleSet`規則群組新增至保護套件 (Web ACL) 時，必須提供登入頁面的相關資訊。這可讓規則群組縮小其檢查的請求範圍，並正確驗證 Web 請求中的登入資料用量。ATP 規則群組適用於電子郵件格式的使用者名稱。如需詳細資訊，請參閱[將 ATP 受管規則群組新增至保護套件 (Web ACL)](waf-atp-rg-using.md)。
+ **對於受保護的 CloudFront 分佈，有關應用程式如何回應登入嘗試的詳細資訊** – 您可以提供有關應用程式對登入嘗試回應的詳細資訊，而規則群組會追蹤和管理傳送太多失敗登入嘗試的用戶端。如需設定此選項的詳細資訊，請參閱 [將 ATP 受管規則群組新增至保護套件 (Web ACL)](waf-atp-rg-using.md)。
+ **JavaScript 和行動應用程式整合 SDKs** – 使用 ATP 實作實作 AWS WAF JavaScript 和行動 SDKs，以啟用規則群組提供的完整功能集。許多 ATP 規則會使用 SDKs 提供的資訊進行工作階段層級用戶端驗證和行為彙總，這是將合法用戶端流量與機器人流量分開的必要條件。如需 SDK 的詳細資訊，請參閱「[中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)」。

您可以結合 ATP 實作與下列項目，協助您監控、調校和自訂保護。
+ **記錄和指標** – 您可以監控流量，並透過設定和啟用日誌、Amazon Security Lake 資料收集和 Amazon CloudWatch 指標來保護套件 (Web ACL)，了解 ACFP 受管規則群組如何影響流量。`AWSManagedRulesATPRuleSet` 新增至 Web 請求的標籤會包含在資料中。如需選項的相關資訊，請參閱 [記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)、 [使用 Amazon CloudWatch 監控](monitoring-cloudwatch.md)和[什麼是 Amazon Security Lake？](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html)。

  根據您的需求和您看到的流量，您可能想要自訂`AWSManagedRulesATPRuleSet`實作。例如，您可能想要從 ATP 評估中排除一些流量，或者您可能想要使用縮小範圍陳述式或標籤比對規則等 AWS WAF 功能，改變它處理其識別的一些帳戶接管嘗試的方式。
+ **標籤和標籤比對規則** – 對於 中的任何規則`AWSManagedRulesATPRuleSet`，您可以將封鎖行為切換為計數，然後比對規則新增的標籤。使用此方法自訂如何處理 ATP 受管規則群組識別的 Web 請求。如需標記和使用標籤比對陳述式的詳細資訊，請參閱 [標籤比對規則陳述式](waf-rule-statement-type-label-match.md)和 [中的 Web 請求標籤 AWS WAF](waf-labels.md)。
+ **自訂請求和回應** – 您可以將自訂標頭新增至您允許的請求，也可以為封鎖的請求傳送自訂回應。若要這樣做，請將標籤比對與 AWS WAF 自訂請求和回應功能配對。如需自訂請求和回應的詳細資訊，請參閱 [中的自訂 Web 請求和回應 AWS WAF](waf-custom-request-response.md)。

# 搭配 ATP 使用應用程式整合 SDKs
搭配 ATP 使用應用程式整合 SDKs

本節說明如何將應用程式整合 SDKs與 ATP 搭配使用。

ATP 受管規則群組需要應用程式整合 SDKs 產生的挑戰字符。權杖會啟用規則群組提供的完整一組保護。

我們強烈建議您實作應用程式整合 SDKs，以最有效地使用 ATP 規則群組。挑戰指令碼必須在 ATP 規則群組之前執行，規則群組才能從指令碼取得的字符中受益。應用程式整合 SDKs會自動發生這種情況。如果您無法使用SDKs，您可以交替設定保護套件 (Web ACL)，以便針對 ATP CAPTCHA規則群組將檢查的所有請求執行 Challenge或 規則動作。使用 Challenge或 CAPTCHA規則動作可能會產生額外費用。如需定價詳細資訊，請參閱 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

**不需要字符的 ATP 規則群組功能**  
當 Web 請求沒有字符時，ATP 受管規則群組能夠封鎖下列類型的流量：
+ 發出大量登入請求的單一 IP 地址。
+ 在短時間內發出大量失敗登入請求的單一 IP 地址。
+ 使用相同的使用者名稱但變更密碼，以密碼周遊進行登入嘗試。

**需要字符的 ATP 規則群組功能**  
挑戰字符中提供的資訊會擴展規則群組和整體用戶端應用程式安全性的功能。

字符會為每個 Web 請求提供用戶端資訊，讓 ATP 規則群組能夠將合法用戶端工作階段與行為不良的用戶端工作階段分開，即使兩者都來自單一 IP 地址。規則群組會使用字符中的資訊來彙總用戶端工作階段請求行為，以進行微調偵測和緩解。

當字符可用於 Web 請求時，ATP 規則群組可以在工作階段層級偵測和封鎖下列其他類別的用戶端：
+ 軟體SDKs管理的無提示挑戰失敗的用戶端工作階段。
+ 周遊使用者名稱或密碼的用戶端工作階段。這也稱為登入資料填充。
+ 用戶端工作階段會重複使用遭竊的登入資料來登入。
+ 長時間嘗試登入的用戶端工作階段。
+ 發出大量登入請求的用戶端工作階段。ATP 規則群組提供比以 AWS WAF 速率為基礎的規則更好的用戶端隔離，這會依 IP 地址封鎖用戶端。ATP 規則群組也會使用較低的閾值。
+ 在短時間內提出大量失敗登入請求的用戶端工作階段。此功能適用於受保護的 Amazon CloudFront 分佈。

如需規則群組功能的詳細資訊，請參閱 [AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md)。

如需SDKs的詳細資訊，請參閱 [中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)。如需 AWS WAF 字符的相關資訊，請參閱 [用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。如需規則動作的相關資訊，請參閱 [CAPTCHA 和 Challenge 中的 AWS WAF](waf-captcha-and-challenge.md)。

# 將 ATP 受管規則群組新增至保護套件 (Web ACL)
將 ATP 受管規則群組新增至 Web ACL更新 AWS WAF 詐騙控制帳戶接管預防 (ATP)

您現在可以使用規則表達式指定 ATP 受管規則群組的登入端點。

本節說明如何新增和設定`AWSManagedRulesATPRuleSet`規則群組。

若要設定 ATP 受管規則群組來辨識 Web 流量中的帳戶接管活動，您可以提供有關用戶端如何將登入請求傳送到應用程式的資訊。對於受保護的 Amazon CloudFront 分佈，您也可以提供應用程式如何回應登入請求的相關資訊。此組態是受管規則群組的一般組態以外的組態。

如需規則群組描述和規則清單，請參閱 [AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md)。

**注意**  
ATP 遭竊的登入資料資料庫僅包含電子郵件格式的使用者名稱。

本指南適用於通常知道如何建立和管理 AWS WAF 保護套件 (Web ACLs)、規則和規則群組的使用者。這些主題涵蓋在本指南的先前章節中。如需如何將受管規則群組新增至保護套件 (Web ACL) 的基本資訊，請參閱 [透過主控台將受管規則群組新增至保護套件 (Web ACL)](waf-using-managed-rule-group.md)。

**遵循最佳實務**  
根據 的最佳實務使用 ATP 規則群組[中的智慧型威脅防禦最佳實務 AWS WAF](waf-managed-protections-best-practices.md)。

**在保護套件中使用`AWSManagedRulesATPRuleSet`規則群組 (Web ACL)**

1. 將 AWS 受管規則群組`AWSManagedRulesATPRuleSet`新增至保護套件 (Web ACL)，並在儲存之前**編輯**規則群組設定。
**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

1. 在**規則群組組態**窗格中，提供 ATP 規則群組用來檢查登入請求的資訊。

   1. 對於**在路徑中使用規則運算式**，如果您 AWS WAF 想要針對登入頁面路徑規格執行規則運算式比對，請開啟此選項。

      AWS WAF 支援 PCRE 程式庫使用的模式語法`libpcre`，但有一些例外。程式庫記錄在 [PCRE - Perl 相容規則表達式](http://www.pcre.org/)中。如需 AWS WAF 支援的相關資訊，請參閱 [中支援的規則表達式語法 AWS WAF](waf-regex-pattern-support.md)。

   1. 針對**登入路徑**，提供應用程式的登入端點路徑。規則群組只會檢查對指定登入端點的 HTTP `POST`請求。
**注意**  
端點比對不區分大小寫。Regex 規格不得包含旗標 `(?-i)`，這會停用不區分大小寫的比對。字串規格必須以正斜線 開頭`/`。

      例如，對於 URL `https://example.com/web/login`，您可以提供字串路徑規格 `/web/login`。以您提供的路徑開頭的登入路徑會被視為相符項目。例如， `/web/login` 符合登入路徑 `/web/login`、`/web/loginPage`、 `/web/login/`和 `/web/login/thisPage`，但不符合登入路徑 `/home/web/login`或 `/website/login`。

   1. 針對**請求檢查**，提供請求承載類型，以及提供使用者名稱和密碼之請求內文中的欄位名稱，以指定應用程式接受登入嘗試的方式。欄位名稱的規格取決於承載類型。
      + **JSON 承載類型** – 以 JSON 指標語法指定欄位名稱。如需有關 JSON Pointer 語法的資訊，請參閱 Internet Engineering Task Force (IETF) 文件 [JavaScript 物件標記法 (JSON) Pointer](https://tools.ietf.org/html/rfc6901)。

        例如，對於下列範例 JSON 承載，使用者名稱欄位規格為 `/login/username`，密碼欄位規格為 `/login/password`。

        ```
        {
            "login": {
                "username": "THE_USERNAME",
                "password": "THE_PASSWORD"
            }
        }
        ```
      + **FORM\$1ENCODED 承載類型** – 使用 HTML 表單名稱。

        例如，對於輸入元素名為 `username1`和 的 HTML 表單`password1`，使用者名稱欄位規格為 `username1`，密碼欄位規格為 `password1`。

   1. 如果您要保護 Amazon CloudFront 分佈，請在**回應檢查**下指定應用程式在對登入嘗試的回應中指出成功或失敗的方式。
**注意**  
ATP 回應檢查僅適用於保護 CloudFront 分佈的保護套件 (Web ACLs)。

      在您要 ATP 檢查的登入回應中指定單一元件。對於**內文**和 **JSON** 元件類型， AWS WAF 可以檢查元件的前 65，536 個位元組 (64 KB)。

      提供元件類型的檢查條件，如 界面所示。您必須同時提供成功和失敗條件，才能在元件中檢查 。

      例如，假設您的應用程式在回應的狀態碼中指出登入嘗試的狀態，並使用 `200 OK` 表示成功和 `401 Unauthorized` 或 `403 Forbidden` 表示失敗。您會將回應檢查**元件類型**設定為**狀態碼**，然後在**成功**文字方塊中輸入 `200`，然後在**失敗**文字方塊中輸入 ，`401`在第一行和第二`403`行中輸入 。

      ATP 規則群組只會計算符合您成功或失敗檢查條件的回應。當用戶端在計數的回應中失敗率過高時，規則群組規則會對用戶端執行動作。如需規則群組規則的準確行為，請務必提供成功和失敗登入嘗試的完整資訊。

      若要查看檢查登入回應的規則，請在 `VolumetricSessionFailedLoginResponseHigh` 的規則清單中尋找 `VolumetricIpFailedLoginResponseHigh`和 [AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md)。

1. 提供您想要用於規則群組的任何其他組態。

   您可以將縮小範圍陳述式新增至受管規則群組陳述式，進一步限制規則群組檢查的請求範圍。例如，您只能檢查具有特定查詢引數或 Cookie 的請求。規則群組只會檢查對指定登入端點的 HTTP `POST`請求，這些登入端點符合您縮小範圍陳述式中的條件。如需縮小範圍陳述式的詳細資訊，請參閱 [在 中使用縮小範圍陳述式 AWS WAF](waf-rule-scope-down-statements.md)。

1. 將變更儲存至保護套件 (Web ACL)。

在部署生產流量的 ATP 實作之前，請在預備或測試環境中進行測試和調校，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調校規則，然後再啟用它們。如需指引，請參閱以下章節。

# 測試和部署 ATP
測試和部署 ATP

本節提供為您的網站設定和測試 AWS WAF 詐騙控制帳戶接管預防 (ATP) 實作的一般指引。您選擇遵循的特定步驟將取決於您收到的需求、資源和 Web 請求。

此資訊是 所提供測試和調校的一般資訊之外的[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

**注意**  
AWS 受管規則旨在保護您免受常見的 Web 威脅。根據文件使用時， AWS 受管規則規則群組會為您的應用程式新增另一層安全性。不過， AWS 受管規則規則群組並非旨在取代您的安全責任，這取決於您選擇的 AWS 資源。請參閱 [共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)，以確保您在 中的資源 AWS 受到適當保護。

**生產流量風險**  
在部署生產流量的 ATP 實作之前，請在預備或測試環境中進行測試和調校，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調校規則，然後再啟用它們。

AWS WAF 提供測試登入資料，您可以用來驗證 ATP 組態。在下列程序中，您將設定測試保護套件 (Web ACL) 以使用 ATP 受管規則群組、設定規則以擷取規則群組新增的標籤，然後使用這些測試憑證執行登入嘗試。您將檢查登入嘗試的 Amazon CloudWatch 指標，以驗證 Web ACL 是否已正確管理嘗試。

本指南適用於通常知道如何建立和管理 AWS WAF 保護套件 (Web ACLs)、規則和規則群組的使用者。這些主題涵蓋在本指南的先前章節中。

**設定和測試 AWS WAF 詐騙控制帳戶接管預防 (ATP) 實作**

請先在測試環境中執行這些步驟，然後在生產環境中執行。

1. 

**在計數模式中新增 AWS WAF 詐騙控制帳戶接管預防 (ATP) 受管規則群組**
**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

   將 AWS 受管規則規則群組`AWSManagedRulesATPRuleSet`新增至新的或現有的保護套件 (Web ACL)，並加以設定，使其不會變更目前的保護套件 (Web ACL) 行為。如需此規則群組之規則和標籤的詳細資訊，請參閱 [AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md)。
   + 當您新增受管規則群組時，請進行編輯並執行下列動作：
     + 在**規則群組組態**窗格中，提供應用程式登入頁面的詳細資訊。ATP 規則群組會使用此資訊來監控登入活動。如需詳細資訊，請參閱[將 ATP 受管規則群組新增至保護套件 (Web ACL)](waf-atp-rg-using.md)。
     + 在**規則**窗格中，開啟**覆寫所有規則動作**下拉式清單，然後選擇 **Count**。使用此組態， 會根據規則群組中的所有規則 AWS WAF 評估請求，並僅計算該結果的相符項目，同時仍將標籤新增至請求。如需詳細資訊，請參閱[覆寫規則群組中的規則動作](web-acl-rule-group-settings.md#web-acl-rule-group-rule-action-override)。

       透過此覆寫，您可以監控 ATP 受管規則的潛在影響，以判斷您是否要新增例外狀況，例如內部使用案例的例外狀況。
   + 將規則群組放在保護套件 (Web ACL) 中，以便在您現有的規則之後進行評估，其優先順序設定在數值上高於您已使用的任何規則或規則群組。如需詳細資訊，請參閱[設定規則優先順序](web-acl-processing-order.md)。

     如此一來，您目前的流量處理不會中斷。例如，如果您有偵測惡意流量的規則，例如 SQL Injection 或跨網站指令碼，它們將繼續偵測並記錄。或者，如果您有允許已知非惡意流量的規則，則可以繼續允許該流量，而不會被 ATP 受管規則群組封鎖。您可以在測試和調校活動期間決定調整處理順序。

1. 

**啟用保護套件的記錄和指標 (Web ACL)**

   視需要設定 保護套件 (Web ACL) 的記錄、Amazon Security Lake 資料收集、請求取樣和 Amazon CloudWatch 指標。您可以使用這些可見性工具來監控 ATP 受管規則群組與流量的互動。
   + 如需設定和使用記錄的資訊，請參閱 [記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。
   + 如需 Amazon Security Lake 的相關資訊，請參閱《[Amazon Security Lake 使用者指南》中的什麼是 Amazon Security Lake？](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html)以及[從 AWS 服務收集資料](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)。 **
   + 如需 Amazon CloudWatch 指標的相關資訊，請參閱 [使用 Amazon CloudWatch 監控](monitoring-cloudwatch.md)。
   + 如需有關 Web 請求取樣的資訊，請參閱 [檢視 Web 請求的範例](web-acl-testing-view-sample.md)。

1. 

**將保護套件 (Web ACL) 與資源建立關聯**

   如果保護套件 (Web ACL) 尚未與測試資源建立關聯，請建立關聯。如需相關資訊，請參閱[將保護與 AWS 資源建立關聯或取消關聯](web-acl-associating-aws-resource.md)。

1. 

**監控流量和 ATP 規則相符項目**

   請確定您的正常流量正在流動，且 ATP 受管規則群組規則正在將標籤新增至相符的 Web 請求。您可以在日誌中查看標籤，並在 Amazon CloudWatch 指標中查看 ATP 和標籤指標。在 日誌中，您已覆寫規則群組中計數的規則會顯示在 中，`ruleGroupList`並將 `action` 設定為計數，並`overriddenAction`指出您覆寫的已設定規則動作。

1. 

**測試規則群組的登入資料檢查功能**

   使用測試洩露的登入資料執行登入嘗試，並檢查規則群組是否如預期相符。

   1. 使用以下 AWS WAF 測試登入資料對登入受保護資源的登入頁面：
      + 使用者： `WAF_TEST_CREDENTIAL@wafexample.com`
      + 密碼： `WAF_TEST_CREDENTIAL_PASSWORD`

      這些測試登入資料會分類為遭到入侵的登入資料，而 ATP 受管規則群組會將`awswaf:managed:aws:atp:signal:credential_compromised`標籤新增至登入請求，您可以在日誌中看到。

   1. 在保護套件 (Web ACL) 日誌中，在測試登入 Web 請求的日誌項目的 `labels` 欄位中尋找`awswaf:managed:aws:atp:signal:credential_compromised`標籤。如需日誌記錄的相關資訊，請參閱[記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。

   確認規則群組如預期擷取遭入侵的登入資料後，您可以視需要針對受保護的資源採取步驟來設定其實作。

1. 

**針對 CloudFront 分佈，測試規則群組的登入失敗管理**

   

   1. 針對您為 ATP 規則群組設定的每個失敗回應條件執行測試。在測試之間等待至少 10 分鐘。

      若要測試單一失敗條件，請在回應中識別失敗的登入嘗試。然後，從單一用戶端 IP 地址，在 10 分鐘內執行至少 10 次失敗的登入嘗試。

      在前 6 次失敗之後，磁碟區失敗的登入規則應該會開始與您的其餘嘗試相符，並加上標籤和計數。規則可能會因為延遲而遺漏前一或兩個。

   1. 在保護套件 (Web ACL) 日誌中，在測試登入 Web 請求的日誌項目的 `labels` 欄位中尋找`awswaf:managed:aws:atp:aggregate:volumetric:ip:failed_login_response:high`標籤。如需日誌記錄的相關資訊，請參閱[記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。

   這些測試會檢查失敗的登入計數是否超過規則 的閾值，以驗證您的失敗條件是否符合您的回應`VolumetricIpFailedLoginResponseHigh`。達到閾值後，如果您繼續從相同的 IP 地址傳送登入請求，則規則會繼續比對，直到失敗率低於閾值為止。當超過閾值時，規則會同時符合來自 IP 地址的成功或失敗登入。

1. 

**自訂 ATP Web 請求處理**

   視需要新增您自己的規則，明確允許或封鎖請求，以變更 ATP 規則處理它們的方式。

   例如，您可以使用 ATP 標籤來允許或封鎖請求，或自訂請求處理。您可以在 ATP 受管規則群組之後新增標籤比對規則，以篩選要套用之處理方式的標記請求。測試之後，請將相關的 ATP 規則保持在計數模式中，並在您的自訂規則中維護請求處理決策。如需範例，請參閱 [ATP 範例：針對遺失和洩露的登入資料進行自訂處理](waf-atp-control-example-user-agent-exception.md)。

1. 

**移除您的測試規則並啟用 ATP 受管規則群組設定**

   根據您的情況，您可能已決定要將一些 ATP 規則保留在計數模式中。對於您想要在規則群組中依設定執行的規則，請在保護套件 (Web ACL) 規則群組組態中停用計數模式。完成測試後，您也可以移除測試標籤比對規則。

1. 

**監控和調校**

   為了確保 Web 請求可依您想要的方式處理，請在啟用您要使用的 ATP 功能後密切監控流量。視需要使用規則群組上的規則計數覆寫和您自己的規則來調整行為。

完成測試 ATP 規則群組實作後，如果您尚未這麼做，強烈建議您將 AWS WAF JavaScript SDK 整合到瀏覽器登入頁面，以增強偵測功能。 AWS WAF 也提供行動 SDKs來整合 iOS 和 Android 裝置。如需整合 SDKs的詳細資訊，請參閱 [中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)。如需此建議的相關資訊，請參閱 [搭配 ATP 使用應用程式整合 SDKs](waf-atp-with-tokens.md)。

# AWS WAF 詐騙控制帳戶接管預防 (ATP) 範例
ATP 範例更新的 ATP 範例

新增描述回應檢查組態的範例，並更新現有範例以反映最佳實務。

本節顯示滿足 AWS WAF 詐騙控制帳戶接管預防 (ATP) 實作常用案例的範例組態。

每個範例都會提供使用案例的說明，然後在自訂設定規則的 JSON 清單中顯示解決方案。

**注意**  
您可以透過主控台保護套件 (Web ACL) JSON 下載或規則 JSON 編輯器，或透過 APIs 和命令列界面中的 `getWebACL`操作，擷取這些範例中顯示的 JSON 清單。

**Topics**
+ [

# ATP 範例：簡易組態
](waf-atp-control-example-basic.md)
+ [

# ATP 範例：針對遺失和洩露的登入資料進行自訂處理
](waf-atp-control-example-user-agent-exception.md)
+ [

# ATP 範例：回應檢查組態
](waf-atp-control-example-response-inspection.md)

# ATP 範例：簡易組態
簡單組態

下列 JSON 清單顯示具有 AWS WAF 詐騙控制帳戶接管預防 (ATP) 受管規則群組的範例保護套件 (Web ACL)。請注意額外的登入頁面組態，這會為規則群組提供監控和管理登入請求所需的資訊。此 JSON 包含保護套件 (Web ACL) 自動產生的設定，例如標籤命名空間和保護套件 (Web ACL) 的應用程式整合 URL。

```
{
    "WebACL": {
        "LabelNamespace": "awswaf:111122223333:webacl:ATPModuleACL:",
        "Capacity": 50,
        "Description": "This is a test protection pack (web ACL) for ATP.",
        "Rules": [
            {
                "Priority": 1,
                "OverrideAction": {
                    "None": {}
                },
                "VisibilityConfig": {
                    "SampledRequestsEnabled": true,
                    "CloudWatchMetricsEnabled": true,
                    "MetricName": "AccountTakeOverValidationRule"
                },
                "Name": "DetectCompromisedUserCredentials",
                "Statement": {
                    "ManagedRuleGroupStatement": {
                        "VendorName": "AWS",
                        "Name": "AWSManagedRulesATPRuleSet",
                        "ManagedRuleGroupConfigs": [
                          {
                            "AWSManagedRulesATPRuleSet": {
                              "LoginPath": "/web/login",
                              "RequestInspection": {
                                "PayloadType": "JSON",
                                "UsernameField": {
                                  "Identifier": "/form/username"
                                },
                                "PasswordField": {
                                  "Identifier": "/form/password"
                                }
                              },
                              "EnableRegexInPath": false
                            }
                          }
                        ]
                    }
                }
            }
        ],
        "VisibilityConfig": {
            "SampledRequestsEnabled": true,
            "CloudWatchMetricsEnabled": true,
            "MetricName": "ATPValidationAcl"
        },
        "DefaultAction": {
            "Allow": {}
        },
        "ManagedByFirewallManager": false,
        "RetrofittedByFirewallManager": false,
        "Id": "32q10987-65rs-4tuv-3210-98765wxyz432",
        "ARN": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/ATPModuleACL/32q10987-65rs-4tuv-3210-98765wxyz432",
        "Name": "ATPModuleACL"
    },
    "ApplicationIntegrationURL": "https://9z87abce34ea.us-east-1.sdk.awswaf.com/9z87abce34ea/1234567a1b10/",
    "LockToken": "6d0e6966-95c9-48b6-b51d-8e82e523b847"
}
```

# ATP 範例：針對遺失和洩露的登入資料進行自訂處理
自訂處理遺失或洩露的登入資料

根據預設，規則群組執行的登入資料檢查會`AWSManagedRulesATPRuleSet`處理 Web 請求，如下所示：
+ **缺少登入**資料 – 標記和封鎖請求。
+ **遭入侵的登入**資料 – 標記請求，但不封鎖或計數。

如需規則群組和規則行為的詳細資訊，請參閱 [AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md)。

您可以執行下列動作，為憑證遺失或遭到入侵的 Web 請求新增自訂處理：
+ **覆寫`MissingCredential`規則至 Count** – 此規則動作覆寫會導致規則僅計數和標記相符請求。
+ **使用自訂處理新增標籤比對規則** – 設定此規則以比對兩個 ATP 標籤，並執行您的自訂處理。例如，您可以將客戶重新導向至您的註冊頁面。

下列規則顯示先前範例中的 ATP 受管規則群組，規則`MissingCredential`動作會覆寫為計數。這會導致規則將其標籤套用至相符的請求，然後只計算請求，而不是封鎖請求。

```
"Rules": [
    {
        "Priority": 1,
        "OverrideAction": {
            "None": {}
        },
        "VisibilityConfig": {
            "SampledRequestsEnabled": true,
            "CloudWatchMetricsEnabled": true,
            "MetricName": "AccountTakeOverValidationRule"
        },
        "Name": "DetectCompromisedUserCredentials",
        "Statement": {
            "ManagedRuleGroupStatement": {
                "ManagedRuleGroupConfigs": [
                  {
                    "AWSManagedRulesATPRuleSet": {
                      "LoginPath": "/web/login",
                      "RequestInspection": {
                        "PayloadType": "JSON",
                        "UsernameField": {
                          "Identifier": "/form/username"
                        },
                        "PasswordField": {
                          "Identifier": "/form/password"
                        }
                      },
                      "EnableRegexInPath": false
                    }
                  }
                ]
                "VendorName": "AWS",
                "Name": "AWSManagedRulesATPRuleSet",
                "RuleActionOverrides": [
                  {
                    "ActionToUse": {
                      "Count": {}
                    },
                    "Name": "MissingCredential"
                  }
                ],
                "ExcludedRules": []
            }
        }
    }
],
```

使用此組態，當此規則群組評估任何缺少或洩露憑證的 Web 請求時，它會標記請求，但不會將其封鎖。

下列規則的優先順序設定在數值上高於上述規則群組。 會以數值順序 AWS WAF 評估規則，從最低開始，因此此規則會在規則群組評估之後進行評估。規則設定為符合其中一個登入資料標籤，並傳送相符請求的自訂回應。

```
"Name": "redirectToSignup",
      "Priority": 10,
      "Statement": {
        "OrStatement": {
          "Statements": [
            {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:managed:aws:atp:signal:missing_credential"
              }
            },
            {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:managed:aws:atp:signal:credential_compromised"
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {
          "CustomResponse": {
             your custom response settings 
          }
        }
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "redirectToSignup"
      }
```

# ATP 範例：回應檢查組態
回應檢查組態

下列 JSON 清單顯示範例保護套件 (Web ACL)，其中包含設定為檢查原始伺服器回應的 AWS WAF 詐騙控制帳戶接管預防 (ATP) 受管規則群組。請注意回應檢查組態，這會指定成功和回應狀態碼。您也可以根據標頭、內文和內文 JSON 相符項目來設定成功和回應設定。此 JSON 包含保護套件 (Web ACL) 自動產生的設定，例如標籤命名空間和保護套件 (Web ACL) 的應用程式整合 URL。

**注意**  
ATP 回應檢查僅適用於保護 CloudFront 分佈的保護套件 (Web ACLs)。

```
{
    "WebACL": {
        "LabelNamespace": "awswaf:111122223333:webacl:ATPModuleACL:",
        "Capacity": 50,
        "Description": "This is a test protection pack (web ACL) for ATP.",
        "Rules": [
            {
                "Priority": 1,
                "OverrideAction": {
                    "None": {}
                },
                "VisibilityConfig": {
                    "SampledRequestsEnabled": true,
                    "CloudWatchMetricsEnabled": true,
                    "MetricName": "AccountTakeOverValidationRule"
                },
                "Name": "DetectCompromisedUserCredentials",
                "Statement": {
                    "ManagedRuleGroupStatement": {
                        "VendorName": "AWS",
                        "Name": "AWSManagedRulesATPRuleSet",
                        "ManagedRuleGroupConfigs": [
                          {
                            "AWSManagedRulesATPRuleSet": {
                              "LoginPath": "/web/login",
                              "RequestInspection": {
                                "PayloadType": "JSON",
                                "UsernameField": {
                                  "Identifier": "/form/username"
                                },
                                "PasswordField": {
                                  "Identifier": "/form/password"
                                }
                              },
                              "ResponseInspection": {
                                "StatusCode": {
                                  "SuccessCodes": [
                                    200
                                  ],
                                  "FailureCodes": [
                                    401
                                  ]
                                }
                              },
                              "EnableRegexInPath": false
                            }
                          }
                        ]
                    }
                }
            }
        ],
        "VisibilityConfig": {
            "SampledRequestsEnabled": true,
            "CloudWatchMetricsEnabled": true,
            "MetricName": "ATPValidationAcl"
        },
        "DefaultAction": {
            "Allow": {}
        },
        "ManagedByFirewallManager": false,
        "RetrofittedByFirewallManager": false,
        "Id": "32q10987-65rs-4tuv-3210-98765wxyz432",
        "ARN": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/ATPModuleACL/32q10987-65rs-4tuv-3210-98765wxyz432",
        "Name": "ATPModuleACL"
    },
    "ApplicationIntegrationURL": "https://9z87abce34ea.us-east-1.sdk.awswaf.com/9z87abce34ea/1234567a1b10/",
    "LockToken": "6d0e6966-95c9-48b6-b51d-8e82e523b847"
}
```

# AWS WAF 機器人控制
AWS WAF 機器人控制AWS WAF 機器人控制

您可以使用新的 AWS WAF Bot Control 功能來監控和控制機器人流量，該功能結合了 Bot Control 受管規則群組與 Web 請求標籤、縮小範圍陳述式和日誌篩選。

本節說明 Bot Control 執行的操作。

透過 Bot Control，您可以輕鬆監控、封鎖或速率限制機器人，例如抓取器、掃描器、爬蟲程式、狀態監視器和搜尋引擎。如果您使用規則群組的目標檢查層級，也可以挑戰無法自我識別的機器人，讓惡意機器人對您的網站操作更困難且更昂貴。您可以單獨使用 Bot Control 受管規則群組，或結合其他 AWS 受管規則規則群組和您自己的自訂 AWS WAF 規則來保護應用程式。

Bot Control 包含主控台儀表板，可根據請求取樣，顯示目前來自機器人的流量。透過將 Bot Control 受管規則群組新增至保護套件 (Web ACL)，您可以對機器人流量採取動作，並接收有關傳入應用程式的常見機器人流量的詳細即時資訊。

**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

Bot Control 受管規則群組提供基本的常見保護層級，可將標籤新增至自我識別機器人、驗證一般所需的機器人，以及偵測高可信度的機器人簽章。這可讓您監控和控制常見類別的機器人流量。

Bot Control 規則群組也提供目標式保護層級，為無法自我識別的複雜機器人新增偵測。目標式保護使用瀏覽器查詢、指紋和行為啟發式等偵測技術來識別錯誤的機器人流量。此外，針對性保護提供網站流量統計資料的選用自動化機器學習分析，以偵測機器人相關活動。當您啟用機器學習時， AWS WAF 會使用網站流量的統計資料，例如時間戳記、瀏覽器特性和先前造訪的 URL，來改善 Bot Control 機器學習模型。

當 針對 Bot Control 受管規則群組 AWS WAF 評估 Web 請求時，規則群組會將標籤新增至偵測到與機器人相關的請求，例如機器人的類別和機器人名稱。您可以在自己的 AWS WAF 規則中比對這些標籤，以自訂處理方式。Bot Control 受管規則群組產生的標籤會包含在 Amazon CloudWatch 指標和您的保護套件 (Web ACL) 日誌中。

您也可以使用 AWS Firewall Manager AWS WAF 政策，在您的組織中的多個帳戶中跨應用程式部署 Bot Control 受管規則群組 AWS Organizations。

如需 Bot Control 受管規則群組的詳細資訊，請參閱 [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md)。

## AI 代理器的 Web 機器人身分驗證


AWS WAF Bot Control 現在支援 Web Bot Authentication (WBA) 作為存取 CloudFront 分佈的機器人和 AI 代理器的密碼編譯驗證方法。此功能可讓合法 AI 爬蟲程式和代理程式證明其身分，而不需要傳統的挑戰回應機制。

版本需求：`AWSManagedRulesBotControlRuleSet`Version\$14.0 或更新版本。（必須明確選取靜態版本。) 如需詳細的標籤分類和規則行為，請參閱：
+ [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md)
+ [中的 Web 請求標籤 AWS WAF](waf-labels.md)
+ [AWS 受管規則變更日誌](aws-managed-rule-groups-changelog.md)

# AWS WAF 機器人控制元件
機器人控制元件AWS WAF 機器人控制

Bot Control 受管規則群組的目標保護層級現在會檢查 IP 地址之間的字符重複使用。它現在還提供可選的流量統計資料機器學習分析，以偵測一些機器人相關活動。

Bot Control 實作的主要元件如下：
+ **`AWSManagedRulesBotControlRuleSet`** – Bot Control 受管規則群組，其規則會偵測和處理各種類別的機器人。此規則群組會將標籤新增至偵測到為機器人流量的 Web 請求。
**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

Bot Control 受管規則群組提供兩種層級的保護，您可以從中選擇：
  + **常見** – 偵測各種自我識別機器人，例如 Web 抓取架構、搜尋引擎和自動化瀏覽器。此層級的機器人控制保護會使用傳統機器人偵測技術來識別常見的機器人，例如靜態請求資料分析。這些規則會標記來自這些機器人的流量，並封鎖他們無法驗證的流量。
  + **目標型** – 包含共同層級的保護，並為無法自我識別的複雜機器人新增目標型偵測。針對性保護使用速率限制和 CAPTCHA 和背景瀏覽器挑戰的組合來緩解機器人活動。
    + **`TGT_`** – 提供目標保護的規則具有以 開頭的名稱`TGT_`。所有目標防護都使用偵測技術，例如瀏覽器查詢、指紋和行為啟發式，來識別錯誤的機器人流量。
    + **`TGT_ML_`** – 使用機器學習的目標保護規則具有以 開頭的名稱`TGT_ML_`。這些規則使用網站流量統計資料的自動化機器學習分析來偵測指示分散式、協調機器人活動的異常行為。 AWS WAF 會分析網站流量的統計資料，例如時間戳記、瀏覽器特性和先前造訪的 URL，以改善 Bot Control 機器學習模型。預設會啟用機器學習功能，但您可以在規則群組組態中停用這些功能。停用機器學習時， AWS WAF 不會評估這些規則。

  如需包含規則群組規則相關資訊的詳細資訊，請參閱 [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md)。

  您可以使用受管規則群組參考陳述式將此規則群組包含在保護套件 (Web ACL) 中，並指出您要使用的檢查層級。針對目標層級，您也可以指出是否啟用機器學習。如需將此受管規則群組新增至保護套件 (Web ACL) 的詳細資訊，請參閱 [將 AWS WAF Bot Control 受管規則群組新增至 Web ACL](waf-bot-control-rg-using.md)。
+ **Bot Control 儀表板** – 保護套件 (Web ACL) 的機器人監控儀表板，可透過保護套件 (Web ACL) Bot Control 索引標籤取得。使用此儀表板來監控您的流量，並了解有多少流量來自各種類型的機器人。這可以是自訂機器人管理的起點，如本主題所述。您也可以使用它來驗證變更，並監控各種機器人和機器人類別的活動。
+ **AI 流量分析儀表板** – 用於詳細 AI 機器人和客服人員活動分析的特殊儀表板，可透過保護套件 (Web ACL) AI 流量分析索引標籤取得。除了標準 Bot Control 指標之外，還提供 AI 特定流量模式、機器人意圖和存取行為的增強可見性。
+ **JavaScript 和行動應用程式整合 SDKs** – 如果您使用 Bot Control 規則群組的目標保護層級，則應實作 AWS WAF JavaScript 和行動 SDKs。目標規則使用用戶端字符中 SDKs 提供的資訊，以增強對惡意機器人的偵測。如需 SDK 的詳細資訊，請參閱「[中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)」。
+ **記錄和指標** – 您可以監控機器人流量，並了解 Bot Control 受管規則群組如何透過透過 AWS WAF 日誌、Amazon Security Lake 和 Amazon CloudWatch 研究為保護套件 (Web ACL) 收集的資料來評估和處理您的流量。Bot Control 新增至 Web 請求的標籤會包含在資料中。如需這些選項的詳細資訊，請參閱 [記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)、 [使用 Amazon CloudWatch 監控](monitoring-cloudwatch.md)和[什麼是 Amazon Security Lake？](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html)。

  根據您的需求和您看到的流量，您可能想要自訂 Bot Control 實作。以下是一些最常用的選項。
+ **縮小範圍陳述式** – 您可以透過在 Bot Control 受管規則群組參考陳述式中新增縮小範圍陳述式，從 Bot Control 受管規則群組評估的 Web 請求中排除一些流量。縮小範圍陳述式可以是任何可巢狀規則陳述式。當請求不符合縮小範圍陳述式時， 會 AWS WAF 將其評估為不符合規則群組參考陳述式，而未針對規則群組進行評估。如需縮小範圍陳述式的詳細資訊，請參閱 [在 中使用縮小範圍陳述式 AWS WAF](waf-rule-scope-down-statements.md)。

  使用 Bot Control 受管規則群組的成本會隨著 AWS WAF 評估的 Web 請求數量而增加。您可以使用縮小範圍陳述式來限制規則群組評估的請求，以協助降低這些成本。例如，您可能想要允許您的首頁載入每個人，包括機器人，然後將規則群組規則套用至前往應用程式 APIs或包含特定類型內容的請求。
+ **標籤和標籤比對規則** – 您可以自訂 Bot Control 規則群組如何處理使用 AWS WAF 標籤比對規則陳述式識別的一些機器人流量。Bot Control 規則群組會將標籤新增至您的 Web 請求。您可以在符合 Bot Control 標籤的 Bot Control 規則群組之後新增標籤比對規則，並套用所需的處理。如需標記和使用標籤比對陳述式的詳細資訊，請參閱 [標籤比對規則陳述式](waf-rule-statement-type-label-match.md)和 [中的 Web 請求標籤 AWS WAF](waf-labels.md)。
+ **自訂請求和回應** – 您可以將自訂標頭新增至您允許的請求，並透過將標籤比對與自訂請求和回應功能配對來傳送封鎖請求的 AWS WAF 自訂回應。如需自訂請求和回應的詳細資訊，請參閱 [中的自訂 Web 請求和回應 AWS WAF](waf-custom-request-response.md)。

# 搭配 Bot Control 使用應用程式整合 SDKs
搭配 Bot Control 使用應用程式整合 SDKs

本節說明如何搭配 Bot Control 使用應用程式整合 SDKs。

Bot Control 受管規則群組的大多數目標保護都需要應用程式整合 SDKs 產生的挑戰字符。在請求上不需要挑戰字符的規則是 Bot Control 常見層級保護和目標層級機器學習規則。如需規則群組中保護層級和規則的說明，請參閱 [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md)。

我們強烈建議您實作應用程式整合 SDKs，以最有效地使用 Bot Control 規則群組。挑戰指令碼必須在 Bot Control 規則群組之前執行，才能讓規則群組受益於指令碼取得的字符。
+ 使用應用程式整合 SDKs指令碼會自動執行。
+ 如果您無法使用 SDKs，您可以設定保護套件 (Web ACL)，以便針對 Bot Control CAPTCHA規則群組將檢查的所有請求執行 Challenge或 規則動作。使用 Challenge或 CAPTCHA規則動作可能會產生額外費用。如需定價詳細資訊，請參閱 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

當您在用戶端中實作應用程式整合 SDKs，或使用執行挑戰指令碼的其中一個規則動作時，您可以擴展規則群組和整體用戶端應用程式安全性的功能。

權杖提供每個 Web 請求的用戶端資訊。此額外資訊可讓 Bot Control 規則群組將合法用戶端工作階段與行為不良的用戶端工作階段分開，即使兩者都來自單一 IP 地址。規則群組會使用字符中的資訊來彙總用戶端工作階段請求行為，以進行針對性保護層級提供的微調偵測和緩解。

如需SDKs的詳細資訊，請參閱 [中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)。如需 AWS WAF 字符的資訊，請參閱 [用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。如需規則動作的相關資訊，請參閱 [CAPTCHA 和 Challenge 中的 AWS WAF](waf-captcha-and-challenge.md)。

# 將 AWS WAF Bot Control 受管規則群組新增至 Web ACL
將 Bot Control 受管規則群組新增至保護套件 (Web ACL)

本節說明如何新增和設定`AWSManagedRulesBotControlRuleSet`規則群組。

Bot Control 受管規則群組`AWSManagedRulesBotControlRuleSet`需要額外的組態，以識別您要實作的保護層級。

如需規則群組描述和規則清單，請參閱 [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md)。

本指南適用於通常知道如何建立和管理 AWS WAF 保護套件 (Web ACLs)、規則和規則群組的使用者。這些主題涵蓋在本指南的先前章節中。如需如何將受管規則群組新增至保護套件 (Web ACL) 的基本資訊，請參閱 [透過主控台將受管規則群組新增至保護套件 (Web ACL)](waf-using-managed-rule-group.md)。

**遵循最佳實務**  
根據 的最佳實務使用 Bot Control 規則群組[中的智慧型威脅防禦最佳實務 AWS WAF](waf-managed-protections-best-practices.md)。

**在保護套件中使用`AWSManagedRulesBotControlRuleSet`規則群組 (Web ACL)**

1. 將 AWS 受管規則群組`AWSManagedRulesBotControlRuleSet`新增至您的保護套件 (Web ACL)。如需完整的規則群組描述，請參閱 [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md)。
**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

   當您新增規則群組時，請進行編輯以開啟規則群組的組態頁面。

1. 在規則群組的組態頁面上的**檢查層級**窗格中，選取您要使用的檢查層級。
   + **常見** – 偵測各種自我識別機器人，例如 Web 抓取架構、搜尋引擎和自動化瀏覽器。此層級的機器人控制保護會使用傳統機器人偵測技術來識別常見的機器人，例如靜態請求資料分析。這些規則會標記來自這些機器人的流量，並封鎖他們無法驗證的流量。
   + **目標型** – 包含共同層級的保護，並為無法自我識別的複雜機器人新增目標型偵測。針對性保護會使用速率限制和 CAPTCHA 和背景瀏覽器挑戰的組合來緩解機器人活動。
     + **`TGT_`** – 提供目標保護的規則具有以 開頭的名稱`TGT_`。所有目標防護都使用瀏覽器查詢、指紋和行為啟發式等偵測技術來識別錯誤的機器人流量。
     + **`TGT_ML_`** – 使用機器學習的目標保護規則具有以 開頭的名稱`TGT_ML_`。這些規則使用網站流量統計資料的自動化機器學習分析來偵測指示分散式、協調機器人活動的異常行為。 AWS WAF 會分析網站流量的統計資料，例如時間戳記、瀏覽器特性和先前造訪的 URL，以改善 Bot Control 機器學習模型。預設會啟用機器學習功能，但您可以在規則群組組態中停用這些功能。停用機器學習時， AWS WAF 不會評估這些規則。

1. 如果您使用目標保護層級，而且不想 AWS WAF 使用機器學習 (ML) 來分析分散式協調機器人活動的 Web 流量，請停用機器學習選項。名稱開頭為 的機器人控制規則需要機器學習`TGT_ML_`。如需這些規則的詳細資訊，請參閱 [機器人控制規則清單](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-rules)。

1. 為規則群組新增縮小範圍陳述式，以包含使用規則群組的成本。縮小範圍陳述式會縮小規則群組檢查的一組請求。例如，使用案例，以 [機器人控制範例：僅針對登入頁面使用機器人控制](waf-bot-control-example-scope-down-login.md)和 開頭[機器人控制範例：僅將機器人控制用於動態內容](waf-bot-control-example-scope-down-dynamic-content.md)。

1. 提供規則群組所需的任何其他組態。

1. 將變更儲存至保護套件 (Web ACL)。

為生產流量部署 Bot Control 實作之前，請先在預備或測試環境中進行測試和調校，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調校規則，然後再啟用它們。如需指引，請參閱以下各節。

# 使用 AWS WAF Bot Control 的誤判案例範例
使用 Bot Control 的誤判

 本節提供使用 AWS WAF Bot Control 時可能遇到誤報的範例情況。

我們已仔細選取 AWS WAF Bot Control 受管規則群組中的規則，以將誤報降至最低。我們會針對全球流量測試規則，並監控其對測試保護套件 (Web ACLs) 的影響。不過，由於流量模式的變更，仍然可能得到誤報。此外，已知某些使用案例會導致誤報，並且需要針對您的 Web 流量進行自訂。

您可能會遇到誤報的情況包括：
+ 行動應用程式通常具有非瀏覽器使用者代理程式，規則預設會封鎖該代理`SignalNonBrowserUserAgent`程式。如果您預期來自行動應用程式的流量，或任何其他使用非瀏覽器使用者代理程式的合法流量，則需要新增例外狀況才能允許。
+ 您可能會依賴某些特定的機器人流量來進行運作時間監控、整合測試或行銷工具。如果 Bot Control 識別並封鎖您想要允許的機器人流量，您需要新增自己的規則來改變處理方式。雖然這不是所有客戶的誤報案例，但如果是針對您，您將需要將其處理為與誤報相同的情況。
+ Bot Control 受管規則群組會使用來自 的 IP 地址來驗證機器人 AWS WAF。如果您使用 Bot Control，且已驗證透過代理或負載平衡器路由的機器人，您可能需要使用自訂規則明確允許它們。如需如何建立此類型自訂規則的資訊，請參閱 [在 中使用轉送的 IP 地址 AWS WAF](waf-rule-statement-forwarded-ip-address.md)。
+ 全域誤報率低的機器人控制規則可能會嚴重影響特定裝置或應用程式。例如，在測試和驗證中，我們可能不會觀察到來自低流量應用程式或較不常見瀏覽器或裝置的請求。
+ 具有歷史低誤報率的機器人控制規則可能會增加有效流量的誤報。這可能是由於新的流量模式或請求屬性隨著有效流量而出現，導致它符合之前未出現的規則。這些變更可能是因為下列情況所造成：
  + 隨著流量流經網路設備而變更的流量詳細資訊，例如負載平衡器或內容分佈網路 (CDN)。
  + 流量資料的新興變更，例如新瀏覽器或現有瀏覽器的新版本。

如需有關如何處理您可能從 AWS WAF Bot Control 受管規則群組取得之誤報的資訊，請參閱以下章節中的指引：[測試和部署 AWS WAF 機器人控制](waf-bot-control-deploying.md)。

# 測試和部署 AWS WAF 機器人控制
測試和部署機器人控制

本節提供設定和測試您網站之 AWS WAF Bot Control 實作的一般指引。您選擇遵循的特定步驟將取決於您的需求、資源和您收到的 Web 請求。

此資訊是 所提供測試和調校的一般資訊之外的[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

**注意**  
AWS 受管規則旨在保護您免受常見的 Web 威脅。根據文件使用時， AWS 受管規則規則群組會為您的應用程式新增另一層安全性。不過， AWS 受管規則規則群組並非旨在取代您的安全責任，這取決於您選擇的 AWS 資源。請參閱 [共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)，以確保您在 中的資源 AWS 受到適當保護。

**生產流量風險**  
為生產流量部署 Bot Control 實作之前，請先在預備或測試環境中進行測試和調校，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調校規則，然後再啟用它們。

本指南適用於通常知道如何建立和管理 AWS WAF 保護套件 (Web ACLs)、規則和規則群組的使用者。這些主題涵蓋在本指南的先前章節中。

**設定和測試機器人控制實作**

請先在測試環境中執行這些步驟，然後在生產環境中執行。

1. 

**新增 Bot Control 受管規則群組**
**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

   將受管 AWS 規則群組`AWSManagedRulesBotControlRuleSet`新增至新的或現有的保護套件 (Web ACL)，並加以設定，使其不會變更目前的保護套件 (Web ACL) 行為。
   + 當您新增受管規則群組時，請進行編輯並執行下列動作：
     + 在**檢查層級**窗格中，選取您要使用的檢查層級。
       + **常見** – 偵測各種自我識別機器人，例如 Web 抓取架構、搜尋引擎和自動化瀏覽器。此層級的機器人控制保護會使用傳統機器人偵測技術來識別常見的機器人，例如靜態請求資料分析。規則會標記來自這些機器人的流量，並封鎖他們無法驗證的流量。
       + **目標型** – 包含共同層級的保護，並為無法自我識別的複雜機器人新增目標型偵測。針對性保護會使用速率限制和 CAPTCHA 和背景瀏覽器挑戰的組合來緩解機器人活動。
         + **`TGT_`** – 提供目標保護的規則具有以 開頭的名稱`TGT_`。所有目標防護都使用瀏覽器查詢、指紋和行為啟發式等偵測技術來識別錯誤的機器人流量。
         + **`TGT_ML_`** – 使用機器學習的目標保護規則具有以 開頭的名稱`TGT_ML_`。這些規則使用網站流量統計資料的自動化機器學習分析來偵測指示分散式、協調機器人活動的異常行為。 AWS WAF 會分析網站流量的統計資料，例如時間戳記、瀏覽器特性和先前造訪的 URL，以改善 Bot Control 機器學習模型。預設會啟用機器學習功能，但您可以在規則群組組態中停用這些功能。停用機器學習時， AWS WAF 不會評估這些規則。

       如需此選項的詳細資訊，請參閱 [AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md)。
     + 在**規則**窗格中，開啟**覆寫所有規則動作**下拉式清單，然後選擇 **Count**。透過此組態， 會根據規則群組中的所有規則 AWS WAF 評估請求，並僅計算該結果的相符項目，同時仍將標籤新增至請求。如需詳細資訊，請參閱[覆寫規則群組中的規則動作](web-acl-rule-group-settings.md#web-acl-rule-group-rule-action-override)。

       透過此覆寫，您可以監控機器人控制規則對流量的潛在影響，以判斷您是否要新增內部使用案例或所需機器人等物件的例外狀況。
   + 放置規則群組，使其在保護套件 (Web ACL) 中最後評估，其優先順序設定在數值上高於您已使用的任何其他規則或規則群組。如需詳細資訊，請參閱[設定規則優先順序](web-acl-processing-order.md)。

     如此一來，您目前的流量處理不會中斷。例如，如果您有偵測惡意流量的規則，例如 SQL Injection 或跨網站指令碼，它們將繼續偵測並記錄這些請求。或者，如果您有允許已知非惡意流量的規則，則可以繼續允許該流量，而不會被 Bot Control 受管規則群組封鎖。您可以決定在測試和調校活動期間調整處理順序，但這是開始的好方法。

1. 

**啟用保護套件的記錄和指標 (Web ACL)**

   視需要設定 保護套件 (Web ACL) 的記錄、Amazon Security Lake 資料收集、請求取樣和 Amazon CloudWatch 指標。您可以使用這些可見性工具來監控 Bot Control 受管規則群組與流量的互動。
   + 如需日誌記錄的相關資訊，請參閱[記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。
   + 如需 Amazon Security Lake 的相關資訊，請參閱《[Amazon Security Lake 使用者指南》中的什麼是 Amazon Security Lake？](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html)以及[從 AWS 服務收集資料](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)。 **
   + 如需 Amazon CloudWatch 指標的相關資訊，請參閱 [使用 Amazon CloudWatch 監控](monitoring-cloudwatch.md)。
   + 如需 Web 請求取樣的資訊，請參閱 [檢視 Web 請求的範例](web-acl-testing-view-sample.md)。

1. 

**將保護套件 (Web ACL) 與資源建立關聯**

   如果保護套件 (Web ACL) 尚未與資源建立關聯，請建立關聯。如需相關資訊，請參閱[將保護與 AWS 資源建立關聯或取消關聯](web-acl-associating-aws-resource.md)。

1. 

**監控流量和機器人控制規則相符項目**

   確定流量正在流動，且 Bot Control 受管規則群組規則正在將標籤新增至相符的 Web 請求。您可以在日誌中查看標籤，並在 Amazon CloudWatch 指標中查看機器人和標籤指標。在 日誌中，您已覆寫規則群組中計數的規則會顯示在 中，`ruleGroupList`並將 `action` 設定為計數，並`overriddenAction`指出您覆寫的已設定規則動作。
**注意**  
Bot Control 受管規則群組會使用來自 的 IP 地址來驗證機器人 AWS WAF。如果您使用 Bot Control，且已驗證透過代理或負載平衡器路由的機器人，您可能需要使用自訂規則明確允許它們。如需如何建立自訂規則的資訊，請參閱 [在 中使用轉送的 IP 地址 AWS WAF](waf-rule-statement-forwarded-ip-address.md)。如需有關如何使用規則自訂 Bot Control Web 請求處理的資訊，請參閱下一個步驟。

   仔細檢閱 Web 請求處理，找出您可能需要透過自訂處理緩解的任何誤報。如需誤報的範例，請參閱 [使用 AWS WAF Bot Control 的誤判案例範例](waf-bot-control-false-positives.md)。

1. 

**自訂 Bot Control Web 請求處理**

   視需要新增您自己的規則，明確允許或封鎖請求，以變更 Bot Control 規則處理它們的方式。

   如何執行此操作取決於您的使用案例，但以下是常見的解決方案：
   + 明確允許具有您在 Bot Control 受管規則群組之前新增之規則的請求。如此一來，允許的請求永遠不會到達規則群組進行評估。這有助於包含使用 Bot Control 受管規則群組的成本。
   + 透過在 Bot Control 受管規則群組陳述式中新增縮小範圍陳述式，從 Bot Control 評估中排除請求。這的運作方式與上述選項相同。它可以協助包含使用 Bot Control 受管規則群組的成本，因為不符合縮小範圍陳述式的請求永遠不會達到規則群組評估。如需縮小範圍陳述式的資訊，請參閱 [在 中使用縮小範圍陳述式 AWS WAF](waf-rule-scope-down-statements.md)。

     如需 範例，請參閱下方：
     + [從機器人管理排除 IP 範圍](waf-bot-control-example-scope-down-ip.md)
     + [允許來自您控制之機器人的流量](waf-bot-control-example-scope-down-your-bot.md)
   + 在請求處理中使用機器人控制標籤來允許或封鎖請求。在 Bot Control 受管規則群組之後新增標籤比對規則，從您要封鎖的請求中篩選出要允許的已標記請求。

     測試之後，請將相關的機器人控制規則保持在計數模式中，並在您的自訂規則中維護請求處理決策。如需標籤比對陳述式的詳細資訊，請參閱 [標籤比對規則陳述式](waf-rule-statement-type-label-match.md)。

     如需這類自訂的範例，請參閱下列內容：
     + [為封鎖的使用者代理程式建立例外狀況](waf-bot-control-example-user-agent-exception.md)
     + [允許特定封鎖的機器人](waf-bot-control-example-allow-blocked-bot.md)
     + [封鎖已驗證的機器人](waf-bot-control-example-block-verified-bots.md)

   如需額外的範例，請參閱[AWS WAF 機器人控制範例](waf-bot-control-examples.md)。

1. 

**視需要啟用 Bot Control 受管規則群組設定**

   根據您的情況，您可能已決定要將一些機器人控制規則保留在計數模式中，或使用不同的動作覆寫。對於您想要在規則群組內設定時執行的規則，請啟用規則組態。若要這樣做，請在保護套件 (Web ACL) 中編輯規則群組陳述式，並在**規則**窗格中進行變更。

# AWS WAF 機器人控制範例
機器人控制範例更新機器人控制範例

新增描述目標檢查層級的範例，並更新現有範例以反映最佳實務。

本節顯示可滿足 AWS WAF 機器人控制實作各種常見使用案例的範例組態。

每個範例都會提供使用案例的說明，然後在自訂設定規則的 JSON 清單中顯示解決方案。

**注意**  
這些範例中顯示的 JSON 清單是在主控台中建立，方法是設定規則，然後使用**規則 JSON 編輯器**進行編輯。

**Topics**
+ [

# 機器人控制範例：簡易組態
](waf-bot-control-example-basic.md)
+ [

# 機器人控制範例：明確允許已驗證的機器人
](waf-bot-control-example-allow-verified-bots.md)
+ [

# 機器人控制範例：封鎖已驗證的機器人
](waf-bot-control-example-block-verified-bots.md)
+ [

# 機器人控制範例：允許特定封鎖的機器人
](waf-bot-control-example-allow-blocked-bot.md)
+ [

# 機器人控制範例：為封鎖的使用者代理程式建立例外狀況
](waf-bot-control-example-user-agent-exception.md)
+ [

# 機器人控制範例：僅針對登入頁面使用機器人控制
](waf-bot-control-example-scope-down-login.md)
+ [

# 機器人控制範例：僅將機器人控制用於動態內容
](waf-bot-control-example-scope-down-dynamic-content.md)
+ [

# 機器人控制範例：從機器人管理排除 IP 範圍
](waf-bot-control-example-scope-down-ip.md)
+ [

# 機器人控制範例：允許來自您控制之機器人的流量
](waf-bot-control-example-scope-down-your-bot.md)
+ [

# 機器人控制範例：啟用目標檢查層級
](waf-bot-control-example-targeted-inspection-level.md)
+ [

# 機器人控制範例：使用兩個陳述式來限制目標檢查層級的使用
](waf-bot-control-example-common-and-targeted-inspection-level.md)

# 機器人控制範例：簡易組態
簡單組態

下列 JSON 清單顯示具有 AWS WAF Bot Control 受管規則群組的範例保護套件 (Web ACL)。請注意可見性組態，這會導致 AWS WAF 儲存請求範例和指標以供監控。

```
{
  "Name": "Bot-WebACL",
  "Id": "...",
  "ARN": "...",
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "Bot-WebACL",
  "Rules": [
      {
        ...
      },
      {
         "Name": "AWS-AWSBotControl-Example",
         "Priority": 5,
         "Statement": {
            "ManagedRuleGroupStatement": {
               "VendorName": "AWS",
               "Name": "AWSManagedRulesBotControlRuleSet",
               "ManagedRuleGroupConfigs": [
                 {
                   "AWSManagedRulesBotControlRuleSet": {
                     "InspectionLevel": "COMMON"
                   }
                 }
               ],
               "RuleActionOverrides": [],
               "ExcludedRules": []
            },
            "VisibilityConfig": {
               "SampledRequestsEnabled": true,
               "CloudWatchMetricsEnabled": true,
               "MetricName": "AWS-AWSBotControl-Example"
             }
          }
      }
    ],
    "VisibilityConfig": {
      ...
    },
    "Capacity": 1496,
    "ManagedByFirewallManager": false,
    "RetrofittedByFirewallManager": false
}
```

# 機器人控制範例：明確允許已驗證的機器人
明確允許已驗證的機器人

AWS WAF Bot Control 不會封鎖已知 AWS 為常見且可驗證的機器人。當 Bot Control 將 Web 請求識別為來自已驗證的機器人時，它會新增名為機器人的標籤，以及指出它是已驗證機器人的標籤。Bot Control 不會新增任何其他標籤，例如訊號標籤，以防止封鎖已知的良好機器人。

您可能還有其他 AWS WAF 規則封鎖已驗證的機器人。如果您想要確保允許已驗證的機器人，請新增自訂規則，以根據機器人控制標籤來允許它們。您的新規則必須在 Bot Control 受管規則群組之後執行，才能比對標籤。

下列規則明確允許已驗證的機器人。

```
{
    "Name": "match_rule",
    "Statement": {
      "LabelMatchStatement": {
        "Scope": "LABEL",
        "Key": "awswaf:managed:aws:bot-control:bot:verified"
      }
    },
    "RuleLabels": [],
    "Action": {
      "Allow": {}
    }
}
```

# 機器人控制範例：封鎖已驗證的機器人
封鎖已驗證的機器人

若要封鎖已驗證的機器人，您必須新增規則來封鎖在 AWS WAF Bot Control 受管規則群組之後執行的機器人。若要這樣做，請識別您要封鎖的機器人名稱，並使用標籤比對陳述式來識別和封鎖它們。如果您想要只封鎖所有已驗證的機器人，您可以省略與`bot:name:`標籤的比對。

下列規則只會封鎖`bingbot`已驗證的機器人。此規則必須在 Bot Control 受管規則群組之後執行。

```
{
    "Name": "match_rule",
    "Statement": {
      "AndStatement": {
        "Statements": [
          {
            "LabelMatchStatement": {
              "Scope": "LABEL",
              "Key": "awswaf:managed:aws:bot-control:bot:name:bingbot"
            }
          },
          {
            "LabelMatchStatement": {
              "Scope": "LABEL",
              "Key": "awswaf:managed:aws:bot-control:bot:verified"
            }
          }
        ]
      }
    },
    "RuleLabels": [],
    "Action": {
      "Block": {}
    }
  }
```

下列規則會封鎖所有已驗證的機器人。

```
{
    "Name": "match_rule",
    "Statement": {
      "LabelMatchStatement": {
        "Scope": "LABEL",
        "Key": "awswaf:managed:aws:bot-control:bot:verified"
      }
    },
    "RuleLabels": [],
    "Action": {
      "Block": {}
    }
}
```

# 機器人控制範例：允許特定封鎖的機器人
允許特定封鎖的機器人

機器人可能會被多個 Bot Control 規則封鎖。針對每個封鎖規則執行下列程序。

如果 AWS WAF Bot Control 規則封鎖您不想封鎖的機器人，請執行下列動作：

1. 透過檢查日誌來識別封鎖機器人的機器人控制規則。封鎖規則將在名稱開頭為 的 欄位中的日誌中指定`terminatingRule`。如需保護套件 (Web ACL) 日誌的資訊，請參閱 [記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。請注意，規則會新增至請求的標籤。

1. 在保護套件 (Web ACL) 中，覆寫封鎖規則要計數的動作。若要在主控台中執行此操作，請在保護套件 (Web ACL) 中編輯規則群組規則，並為規則選擇 Count的規則動作覆寫。這可確保機器人不受規則封鎖，但規則仍會將其標籤套用至相符的請求。

1. 在 Bot Control 受管規則群組之後，將標籤比對規則新增至保護套件 (Web ACL)。設定規則以比對覆寫規則的標籤，並封鎖所有相符的請求，但您不想封鎖的機器人除外。

   您的保護套件 (Web ACL) 現在已設定完成，因此您透過日誌識別的封鎖規則不會再封鎖您要允許的機器人。

再次檢查流量和您的日誌，以確保透過 來允許機器人。如果沒有，請再次執行上述程序。

例如，假設您想要封鎖 以外的所有監控機器人`pingdom`。在此情況下，您會覆寫`CategoryMonitoring`規則以計數，然後撰寫規則來封鎖所有監控機器人，但具有機器人名稱標籤 的機器人除外`pingdom`。

下列規則使用 Bot Control 受管規則群組，但會覆寫規則動作`CategoryMonitoring`讓 計數。類別監控規則會像往常一樣將其標籤套用至相符的請求，但只會計算它們，而不是執行區塊的一般動作。

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
      "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "COMMON"
          }
        }
      ],
	  "RuleActionOverrides": [
        {
          "ActionToUse": {
            "Count": {}
          },
          "Name": "CategoryMonitoring"
        }
      ],
      "ExcludedRules": []
    }
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "AWS-AWSBotControl-Example"
  }
}
```

下列規則符合上述`CategoryMonitoring`規則新增至相符 Web 請求的類別監控標籤。在類別監控請求中，此規則會封鎖除了具有機器人名稱 標籤的所有 之外的所有 `pingdom`。

下列規則必須在保護套件 (Web ACL) 處理順序中的上述 Bot Control 受管規則群組之後執行。

```
{
      "Name": "match_rule",
      "Priority": 10,
      "Statement": {
        "AndStatement": {
          "Statements": [
            {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:managed:aws:bot-control:bot:category:monitoring"
              }
            },
            {
              "NotStatement": {
                "Statement": {
                  "LabelMatchStatement": {
                    "Scope": "LABEL",
                    "Key": "awswaf:managed:aws:bot-control:bot:name:pingdom"
                  }
                }
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "match_rule"
      }
}
```

# 機器人控制範例：為封鎖的使用者代理程式建立例外狀況
為封鎖的使用者代理程式建立例外狀況

如果某些非瀏覽器使用者代理程式的流量遭到錯誤封鎖，您可以將違規的 AWS WAF Bot Control 規則設定為 Count，然後將規則的標籤與您的例外條件合併，`SignalNonBrowserUserAgent`以建立例外狀況。

**注意**  
行動應用程式通常具有非瀏覽器使用者代理程式，規則預設會封鎖該代理`SignalNonBrowserUserAgent`程式。

下列規則使用 Bot Control 受管規則群組，但會覆寫 `SignalNonBrowserUserAgent` 對 計數的規則動作。訊號規則會照常將其標籤套用至相符的請求，但只會計算它們，而不是執行其一般的區塊動作。

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
      "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "COMMON"
          }
        }
      ],
	  "RuleActionOverrides": [
        {
          "ActionToUse": {
            "Count": {}
          },
          "Name": "SignalNonBrowserUserAgent"
        }
      ],
      "ExcludedRules": []
    }
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "AWS-AWSBotControl-Example"
  }
}
```

下列規則會比對機器人控制`SignalNonBrowserUserAgent`規則新增至其相符 Web 請求的訊號標籤。在訊號請求中，此規則會封鎖除了具有我們想要允許之使用者代理程式以外的所有 。

下列規則必須在保護套件 (Web ACL) 處理順序中的上述 Bot Control 受管規則群組之後執行。

```
{
    "Name": "match_rule",
    "Statement": {
      "AndStatement": {
        "Statements": [
          {
            "LabelMatchStatement": {
              "Scope": "LABEL",
              "Key": "awswaf:managed:aws:bot-control:signal:non_browser_user_agent"
            }
          },
          {
            "NotStatement": {
              "Statement": {
                "ByteMatchStatement": {
                  "FieldToMatch": {
                    "SingleHeader": {
                      "Name": "user-agent"
                    }
                  },
                  "PositionalConstraint": "EXACTLY",
                  "SearchString": "PostmanRuntime/7.29.2",
                  "TextTransformations": [
                    {
                      "Priority": 0,
                      "Type": "NONE"
                    }
                  ]
                }
              }
            }
          }
        ]
      }
    },
    "RuleLabels": [],
    "Action": {
      "Block": {}
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "match_rule"
    }
}
```

# 機器人控制範例：僅針對登入頁面使用機器人控制
僅將機器人控制用於登入頁面

下列範例使用縮小範圍陳述式，僅針對前往網站登入頁面的流量套用 AWS WAF 機器人控制，該登入頁面由 URI 路徑 識別`login`。登入頁面的 URI 路徑可能與範例不同，具體取決於您的應用程式和環境。

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
	  "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "COMMON"
          }
        }
      ],
      "RuleActionOverrides": [],
      "ExcludedRules": []
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "AWS-AWSBotControl-Example"
    },
    "ScopeDownStatement": {
      "ByteMatchStatement": {
        "SearchString": "login",
        "FieldToMatch": {
          "UriPath": {}
        },
        "TextTransformations": [
          {
            "Priority": 0,
            "Type": "NONE"
          }
        ],
        "PositionalConstraint": "CONTAINS"
      }
    }
  }
}
```

# 機器人控制範例：僅將機器人控制用於動態內容
僅將機器人控制用於動態內容

此範例使用縮小範圍陳述式，僅將 AWS WAF 機器人控制套用至動態內容。

縮小範圍陳述式會否定 regex 模式集的相符結果，以排除靜態內容：
+ regex 模式集已設定為符合*靜態內容*的延伸。例如，regex 模式集規格可能是 `(?i)\.(jpe?g|gif|png|svg|ico|css|js|woff2?)$`。如需 regex 模式集和陳述式的相關資訊，請參閱 [規則運算式模式集比對規則陳述式](waf-rule-statement-type-regex-pattern-set-match.md)。
+ 在縮小範圍陳述式中，我們將 regex 模式集陳述式巢狀化在`NOT`陳述式中，以排除相符的靜態內容。如需 `NOT`陳述式的詳細資訊，請參閱 [NOT 規則陳述式](waf-rule-statement-type-not.md)。

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
	  "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "COMMON"
          }
        }
      ],
      "RuleActionOverrides": [],
      "ExcludedRules": []
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "AWS-AWSBotControl-Example"
    },
    "ScopeDownStatement": {
      "NotStatement": {
        "Statement": {
          "RegexPatternSetReferenceStatement": {
            "ARN": "arn:aws:wafv2:us-east-1:123456789:regional/regexpatternset/excludeset/00000000-0000-0000-0000-000000000000",
            "FieldToMatch": {
              "UriPath": {}
            },
            "TextTransformations": [
              {
                "Priority": 0,
                "Type": "NONE"
              }
            ]
          }
        }
      }
    }
  }
}
```

# 機器人控制範例：從機器人管理排除 IP 範圍
從機器人管理排除 IP 範圍

如果您想要從 AWS WAF Bot Control 管理排除一部分的 Web 流量，而且您可以使用規則陳述式來識別該子集，則透過將縮小範圍陳述式新增至 Bot Control 受管規則群組陳述式來排除它。

下列規則會在所有 Web 流量上執行正常的 Bot Control 機器人管理，但來自特定 IP 地址範圍的 Web 請求除外。

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
      "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "COMMON"
          }
        }
      ],
      "RuleActionOverrides": [],
      "ExcludedRules": []
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "AWS-AWSBotControl-Example"
    },
    "ScopeDownStatement": {
      "NotStatement": {
        "Statement": {
          "IPSetReferenceStatement": {
            "ARN": "arn:aws:wafv2:us-east-1:123456789:regional/ipset/friendlyips/00000000-0000-0000-0000-000000000000"
          }
        }
      }
    }
  }
}
```

# 機器人控制範例：允許來自您控制之機器人的流量
允許來自您控制之機器人的流量

您可以設定一些網站監控機器人和自訂機器人來傳送自訂標頭。如果您想要允許來自這些類型機器人的流量，您可以將它們設定為在 標頭中新增共用秘密。然後，您可以將縮小範圍陳述式新增至 AWS WAF Bot Control 受管規則群組陳述式，以排除具有 標頭的訊息。

下列範例規則會從 Bot Control 檢查排除具有秘密標頭的流量。

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
      "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "COMMON"
          }
        }
      ],
      "RuleActionOverrides": [],
      "ExcludedRules": []
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "AWS-AWSBotControl-Example"
    },
    "ScopeDownStatement": {
      "NotStatement": {
        "Statement": {
          "ByteMatchStatement": {
            "SearchString": "YSBzZWNyZXQ=",
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "x-bypass-secret"
              }
            },
            "TextTransformations": [
              {
                "Priority": 0,
                "Type": "NONE"
              }
            ],
            "PositionalConstraint": "EXACTLY"
          }
        }
      }
    }
  }
}
```

# 機器人控制範例：啟用目標檢查層級
啟用目標檢查層級

如需增強保護層級，您可以在 AWS WAF Bot Control 受管規則群組中啟用目標檢查層級。

在下列範例中，機器學習功能已啟用。您可以將 `EnableMachineLearning`設定為 ，以選擇退出此行為`false`。

```
{
  "Name": "AWS-AWSBotControl-Example",
  "Priority": 5,
  "Statement": {
    "ManagedRuleGroupStatement": {
      "VendorName": "AWS",
      "Name": "AWSManagedRulesBotControlRuleSet",
      "ManagedRuleGroupConfigs": [
        {
          "AWSManagedRulesBotControlRuleSet": {
            "InspectionLevel": "TARGETED",
            "EnableMachineLearning": true
          }
        }
      ],
      "RuleActionOverrides": [],
      "ExcludedRules": []
    },
    "VisibilityConfig": {
      "SampledRequestsEnabled": true,
      "CloudWatchMetricsEnabled": true,
      "MetricName": "AWS-AWSBotControl-Example"
    }
  }
}
```

# 機器人控制範例：使用兩個陳述式來限制目標檢查層級的使用
使用兩個陳述式來限制目標檢查層級的使用

作為成本最佳化，您可以在保護套件 (Web ACL) 中使用兩個 AWS WAF Bot Control 受管規則群組陳述式，具有單獨的檢查層級和範圍。例如，您可以將目標檢查層級陳述式範圍限定為更敏感的應用程式端點。

下列範例中的兩個陳述式具有互斥範圍。如果沒有此組態，請求可能會導致兩次 Bot Control 評估計費。

**注意**  
主控台的視覺化編輯器`AWSManagedRulesBotControlRuleSet`不支援參考多個陳述式。請改用 JSON 編輯器。

```
{
  "Name": "Bot-WebACL",
  "Id": "...",
  "ARN": "...",
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "Bot-WebACL",
  "Rules": [
      {
        ...
      },
      {
       "Name": "AWS-AWSBotControl-Common",
       "Priority": 5,
       "Statement": {
          "ManagedRuleGroupStatement": {
             "VendorName": "AWS",
             "Name": "AWSManagedRulesBotControlRuleSet",
             "ManagedRuleGroupConfigs": [
               {
                 "AWSManagedRulesBotControlRuleSet": {
                   "InspectionLevel": "COMMON"
                 }
               }
             ],
             "RuleActionOverrides": [],
             "ExcludedRules": []
          },
          "VisibilityConfig": {
             "SampledRequestsEnabled": true,
             "CloudWatchMetricsEnabled": true,
             "MetricName": "AWS-AWSBotControl-Common"
           },
           "ScopeDownStatement": {
              "NotStatement": {
                "Statement": {
                  "ByteMatchStatement": {
                    "FieldToMatch": {
                      "UriPath": {}
                    },
                    "PositionalConstraint": "STARTS_WITH",
                    "SearchString": "/sensitive-endpoint",
                    "TextTransformations": [
                      {
                        "Type": "NONE",
                        "Priority": 0
                      }
                    ]
                  }
                }
              }
            }
        }
      },
      {
       "Name": "AWS-AWSBotControl-Targeted",
       "Priority": 6,
       "Statement": {
          "ManagedRuleGroupStatement": {
             "VendorName": "AWS",
             "Name": "AWSManagedRulesBotControlRuleSet",
             "ManagedRuleGroupConfigs": [
               {
                 "AWSManagedRulesBotControlRuleSet": {
                   "InspectionLevel": "TARGETED",
                   "EnableMachineLearning": true
                 }
               }
             ],
             "RuleActionOverrides": [],
             "ExcludedRules": []
          },
          "VisibilityConfig": {
             "SampledRequestsEnabled": true,
             "CloudWatchMetricsEnabled": true,
             "MetricName": "AWS-AWSBotControl-Targeted"
           },
           "ScopeDownStatement": {
              "Statement": {
                "ByteMatchStatement": {
                  "FieldToMatch": {
                    "UriPath": {}
                  },
                  "PositionalConstraint": "STARTS_WITH",
                  "SearchString": "/sensitive-endpoint",
                  "TextTransformations": [
                    {
                      "Type": "NONE",
                      "Priority": 0
                    }
                  ]
                }
              }
            }
        }
      }
    ],
    "VisibilityConfig": {
      ...
    },
    "Capacity": 1496,
    "ManagedByFirewallManager": false,
    "RetrofittedByFirewallManager": false
}
```

# AWS WAF 分散式阻斷服務 (DDoS) 預防
分散式阻斷服務 (DDoS) 預防AWS WAF 新增資源層級 DDoS 保護

您現在可以使用反 DDoS 功能來偵測和防止 Application Load Balancer 中的 DDoS 攻擊。

AWS WAF 為您的 AWS 資源提供複雜且可自訂的 DDoS 攻擊防護。檢閱本節所述的選項，然後選取符合您安全和業務需求的反 DDoS 保護層級。

您可以在 中選擇兩個層級的 DDoS 保護 AWS WAF：

資源層級 DDoS 保護  
標準層可在 Application Load Balancer 內運作，透過主機上篩選來防禦已知的惡意來源。您可以設定保護行為，以對潛在的 DDoS 事件做出最佳反應。  
資源層級 DDoS 保護：  
+ 自動監控您的流量模式。
+ 即時更新威脅情報。
+ 防範已知惡意來源。
**最佳化 Application Load Balancer 的 Web ACL 請求成本**  
您必須將 Web ACL 與 Application Load Balancer 建立關聯，才能啟用資源層級保護。如果您的 Application Load Balancer 與沒有組態的 Web ACL 相關聯，則不會從 AWS WAF 請求產生費用，但是， AWS WAF 不會在 CloudWatch 指標中提供 Application Load Balancer 的範例請求或報告。您可以採取下列動作來啟用 Application Load Balancer 的可觀測性功能：  
+ 在 中使用 `Block` 動作或 `Allow`動作搭配自訂請求標頭`DefaultAction`。如需相關資訊，請參閱[插入非封鎖動作的自訂請求標頭](customizing-the-incoming-request.md)。
+ 將任何規則新增至 Web ACL。如需相關資訊，請參閱[AWS WAF 規則](waf-rules.md)。
+ 啟用記錄目的地。如需相關資訊，請參閱[設定保護套件的記錄 (Web ACL)](logging-management-configure.md)。
+ 將 Web ACL 與 AWS Firewall Manager 政策建立關聯。如需相關資訊，請參閱[為 建立 AWS Firewall Manager 政策 AWS WAF](create-policy.md#creating-firewall-manager-policy-for-waf)。
AWS WAF 如果沒有這些組態， 將不會提供抽樣請求或發佈 CloudWatch 指標。

AWS 受管規則群組 DDoS 保護  
進階的 DDoS 保護層是透過 提供`AWSManagedRulesAntiDDoSRuleSet`。受管規則群組補充了資源層級的保護層，具有以下顯著差異：  
+ 保護延伸至 Application Load Balancer 和 CloudFront 分佈
+ 流量基準是為您的受保護資源建立的，以改善新型攻擊模式的偵測。
+ 保護行為會根據您選取的敏感度層級來啟用。
+ 在可能的 DDoS 事件期間，管理和標記對受保護資源的請求。
如需包含的規則和功能的完整清單，請參閱 [AWS WAF 分散式阻斷服務 (DDoS) 預防規則群組](aws-managed-rule-groups-anti-ddos.md)。

**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

**Topics**
+ [

# Application Load Balancer 的資源層級 DDoS 保護
](waf-anti-ddos-alb.md)
+ [

# 使用反 DDoS 受管規則群組的進階 AWS WAF 反 DDoS 保護
](waf-anti-ddos-advanced.md)

# Application Load Balancer 的資源層級 DDoS 保護
資源層級 DDoS 保護

**資源層級 DDoS 保護**可為 Application Load Balancer 新增立即防禦，而不會產生部署 AWS WAF 受管規則群組的費用。此標準等級的反 DDoS 保護使用 AWS 威脅情報和流量模式分析來保護 Application Load Balancer。為了識別已知的惡意來源，Anti-DDoS 保護會對直接用戶端 IP 地址和 X-Forwarded-For (XFF) 標頭執行主機上篩選。識別已知惡意來源後，會透過兩種模式之一來啟用保護：

在** DDoS 下作用中**是預設保護模式，建議大多數使用案例使用。

此模式：
+ 在偵測高負載條件或潛在的 DDoS 事件時自動啟用保護
+ Rate-limits 僅在攻擊條件期間來自已知惡意來源的流量
+ 將正常操作期間對合法流量的影響降至最低
+ 使用 Application Load Balancer 運作狀態指標和 AWS WAF 回應資料來判斷何時啟用保護

**Always on** 是選用模式，啟用後一律處於作用中狀態。

此模式：
+ 持續防範已知惡意來源
+ Rate-limiting 即時限制來自已知惡意來源的流量
+ 對 XFF 標頭中具有惡意 IPs直接連線和請求套用保護
+ 對合法流量的影響可能較高，但可提供最大的安全性

資源層級 DDoS 保護封鎖的請求會記錄在 CloudWatch 日誌中，做為 `LowReputationPacketsDropped`或 `LowReputationRequestsDenied`指標。如需相關資訊，請參閱[AWS WAF 核心指標和維度](waf-metrics.md#waf-metrics-general)。

## 在現有的 webACL 上啟用標準 DDoS 保護


您可以在建立 Web ACL 時啟用 DDoS 保護，或更新與 Application Load Balancer 相關聯的現有 Web ACL。

**注意**  
如果您有與 Application Load Balancer 相關聯的現有 Web ACL，則預設會在 DDoS 模式下使用 **Active 啟用反 DDoS** 保護。

**在 AWS WAF 主控台中啟用反 DDoS 保護**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中選擇 **Web ACLs**，然後開啟與 Application Load Balancer 相關聯的任何 Web ACL。

1. 選擇**關聯的 AWS 資源**。

1. 在**資源層級 DDoS 保護**下，選擇**編輯**。

1. 選取下列其中一個保護模式：
   + 在** DDoS 下作用中** （建議） - 只有在高負載條件下才啟用保護
   + **Always on** - 針對已知惡意來源的 Always-on 保護

1. 選擇**儲存變更**。

**注意**  
如需建立 Web ACL 的詳細資訊，請參閱 [在 中建立保護套件 (Web ACL) AWS WAF](web-acl-creating.md)。

**最佳化 Application Load Balancer 的 Web ACL 請求成本**  
您必須將 Web ACL 與 Application Load Balancer 建立關聯，才能啟用資源層級保護。如果您的 Application Load Balancer 與沒有組態的 Web ACL 相關聯，則不會從 AWS WAF 請求產生費用，但是， AWS WAF 不會在 CloudWatch 指標中提供 Application Load Balancer 的範例請求或報告。您可以採取下列動作來啟用 Application Load Balancer 的可觀測性功能：  
在 中使用 `Block` 動作或 `Allow`動作搭配自訂請求標頭`DefaultAction`。如需相關資訊，請參閱[插入非封鎖動作的自訂請求標頭](customizing-the-incoming-request.md)。
將任何規則新增至 Web ACL。如需相關資訊，請參閱[AWS WAF 規則](waf-rules.md)。
啟用記錄目的地。如需相關資訊，請參閱[設定保護套件的記錄 (Web ACL)](logging-management-configure.md)。
將 Web ACL 與 AWS Firewall Manager 政策建立關聯。如需相關資訊，請參閱[為 建立 AWS Firewall Manager 政策 AWS WAF](create-policy.md#creating-firewall-manager-policy-for-waf)。
AWS WAF 如果沒有這些組態， 將不會提供抽樣請求或發佈 CloudWatch 指標。

# 使用反 DDoS 受管規則群組的進階 AWS WAF 反 DDoS 保護
使用 Anti-DDoS 受管規則群組

`AWSManagedRulesAntiDDoSRuleSet` 受管規則群組是 中最進階的反 DDoS 保護層 AWS WAF。

**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

## AWS WAF 反 DDoS 保護元件
反 DDoS 保護元件

在 中實作進階反 DDoS 保護的主要元件 AWS WAF 包括下列項目：

**`AWSManagedRulesAntiDDoSRuleSet`** – 偵測、標記和挑戰可能參與 DDoS 攻擊的請求。它也會在事件期間標記對受保護資源的所有請求。如需規則群組規則和標籤的詳細資訊，請參閱 [AWS WAF 分散式阻斷服務 (DDoS) 預防規則群組](aws-managed-rule-groups-anti-ddos.md)。若要使用此規則群組，請使用受管規則群組參考陳述式將其包含在保護套件 (Web ACL) 中。如需相關資訊，請參閱[將 Anti-DDoS 受管規則群組新增至您的保護套件 (Web ACL)](waf-anti-ddos-rg-using.md)。
+ **Web ACL 流量概觀儀表板** – 在主控台中提供 DDoS 活動和反 DDoS 回應的監控。如需詳細資訊，請參閱[保護套件的流量概觀儀表板 (Web ACLs)](web-acl-dashboards.md)。
+ **記錄和指標** – 可讓您監控流量並了解反 DDoS 保護效果。為您的保護套件 (Web ACL) 設定日誌、Amazon Security Lake 資料收集和 Amazon CloudWatch 指標。如需這些選項的詳細資訊，請參閱 [記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)、 [使用 Amazon CloudWatch 監控](monitoring-cloudwatch.md)和[什麼是 Amazon Security Lake？](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html)。
+ **標籤和標籤比對規則** – 可讓您自訂處理由 Anti-DDoS 受管規則群組識別的 Web 請求。對於 中的任何規則`AWSManagedRulesAntiDDoSRuleSet`，您可以切換到計數模式並比對新增的標籤。如需詳細資訊，請參閱[標籤比對規則陳述式](waf-rule-statement-type-label-match.md)及[中的 Web 請求標籤 AWS WAF](waf-labels.md)。
+ **自訂請求和回應** – 可讓您將自訂標頭新增至允許的請求，並傳送封鎖請求的自訂回應。將標籤比對與 AWS WAF 自訂請求和回應功能配對。如需詳細資訊，請參閱[中的自訂 Web 請求和回應 AWS WAF](waf-custom-request-response.md)。

# 將 Anti-DDoS 受管規則群組新增至您的保護套件 (Web ACL)
將 Anti-DDoS 受管規則群組新增至您的保護套件 (Web ACL)

本節說明如何新增和設定`AWSManagedRulesAntiDDoSRuleSet`規則群組。

若要設定 Anti-DDoS 受管規則群組，您可以提供設定，包括規則群組對 DDoS 攻擊的敏感度，以及對正在或可能正在參與攻擊的請求採取的動作。此組態是受管規則群組的一般組態以外的組態。

如需規則群組描述和規則和標籤清單，請參閱 [AWS WAF 分散式阻斷服務 (DDoS) 預防規則群組](aws-managed-rule-groups-anti-ddos.md)。

本指南適用於通常知道如何建立和管理 AWS WAF 保護套件 (Web ACLs)、規則和規則群組的使用者。這些主題涵蓋在本指南的先前章節中。如需如何將受管規則群組新增至保護套件 (Web ACL) 的基本資訊，請參閱 [透過主控台將受管規則群組新增至保護套件 (Web ACL)](waf-using-managed-rule-group.md)。

**遵循最佳實務**  
根據 的最佳實務使用 Anti-DDoS 規則群組[中的智慧型威脅防禦最佳實務 AWS WAF](waf-managed-protections-best-practices.md)。

**在保護套件中使用`AWSManagedRulesAntiDDoSRuleSet`規則群組 (Web ACL)**

1. 將 AWS 受管規則群組`AWSManagedRulesAntiDDoSRuleSet`新增至保護套件 (Web ACL)，並在儲存之前**編輯**規則群組設定。
**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

1. 在**規則群組組態**窗格中，為`AWSManagedRulesAntiDDoSRuleSet`規則群組提供任何自訂組態。

   1. 針對**區塊敏感度層級**，指定您希望規則在規則群組的 DDoS 可疑標籤上相符`DDoSRequests`時的敏感度。敏感度越高，規則符合的標記層級就越低：
      + 低敏感度較不敏感，導致規則僅與攻擊中最明顯的參與者相符，且具有高度可疑的標籤 `awswaf:managed:aws:anti-ddos:high-suspicion-ddos-request`。
      + 中等敏感度會導致規則在中等和高度懷疑標籤上相符。
      + 高敏感度會導致規則在所有可疑標籤上相符：低、中和高。

      此規則提供對疑似參與 DDoS 攻擊之 Web 請求的最嚴重處理方式。

   1. 針對**啟用挑戰**，選擇是否啟用規則 `ChallengeDDoSRequests`和 `ChallengeAllDuringEvent`，預設會將Challenge動作套用至相符的請求。

      這些規則提供請求處理，旨在允許合法使用者繼續處理其請求，同時封鎖 DDoS 攻擊的參與者。您可以將其動作設定覆寫為 Allow或 ，Count也可以完全停用其使用。

      如果您啟用這些規則，請提供您想要的任何其他組態：
      + 針對**挑戰敏感度等級**，指定您希望規則`ChallengeDDoSRequests`的敏感度。

        敏感度越高，規則符合的標記層級就越低：
        + 低敏感度較不敏感，導致規則僅與攻擊中最明顯的參與者相符，且具有高度可疑的標籤 `awswaf:managed:aws:anti-ddos:high-suspicion-ddos-request`。
        + 中等敏感度會導致規則在中等和高度懷疑標籤上相符。
        + 高敏感度會導致規則在所有可疑標籤上相符：低、中和高。
      + 對於**豁免 URI 規則表達式**，提供符合無法處理無提示瀏覽器挑戰之 Web 請求 URIs 的規則表達式。Challenge 動作會有效地封鎖來自缺少挑戰字符URIs 的請求，除非它們可以處理靜音瀏覽器挑戰。

        動作Challenge只能由預期 HTML 內容的用戶端正確處理。如需 動作運作方式的詳細資訊，請參閱 [CAPTCHA 和 Challenge動作行為](waf-captcha-and-challenge-actions.md)。

        檢閱預設規則表達式並視需要更新。規則使用指定的規則表達式來識別無法處理Challenge動作的請求 URIs，並防止規則傳送挑戰回去。您以這種方式排除的請求只能由規則群組使用規則 來封鎖`DDoSRequests`。

        主控台提供的預設表達式涵蓋大多數使用案例，但您應該檢閱並針對應用程式進行調整。

        AWS WAF 支援 PCRE 程式庫使用的模式語法`libpcre`，但有一些例外。程式庫記錄在 [PCRE - Perl 相容規則表達式](http://www.pcre.org/)中。如需 AWS WAF 支援的相關資訊，請參閱 [中支援的規則表達式語法 AWS WAF](waf-regex-pattern-support.md)。

1. 為規則群組提供您想要的任何其他組態，並儲存規則。
**注意**  
AWS 建議不要搭配此受管規則群組使用縮小範圍陳述式。縮小範圍陳述式會限制規則群組觀察到的請求，因此可能會導致流量基準不準確和 DDoS 事件偵測減少。縮小範圍陳述式選項適用於所有受管規則群組陳述式，但不應用於此陳述式。如需縮小範圍陳述式的資訊，請參閱 [在 中使用縮小範圍陳述式 AWS WAF](waf-rule-scope-down-statements.md)。

1. 在**設定規則優先順序**頁面中，將新的反 DDoS 受管規則群組規則向上移動，使其僅在您擁有的任何Allow動作規則之後以及在任何其他規則之前執行。這可讓規則群組追蹤最多流量以進行反 DDoS 保護。

1. 將變更儲存至保護套件 (Web ACL)。

在部署生產流量的反 DDoS 實作之前，請在預備或測試環境中進行測試和調校，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調校規則，然後再啟用它們。如需指引，請參閱以下章節。

# 測試和部署反 DDoS
測試和部署反 DDoS

在部署功能之前，您會想要設定和測試 AWS WAF 分散式阻斷服務 (DDoS) 預防。本節提供設定和測試的一般指引，但您選擇遵循的特定步驟將取決於您收到的需求、資源和 Web 請求。

此資訊是 所提供測試和調校的一般資訊之外的[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

**注意**  
AWS 受管規則旨在保護您免受常見的 Web 威脅。根據文件使用時， AWS 受管規則規則群組會為您的應用程式新增另一層安全性。不過， AWS 受管規則規則群組並非旨在取代您的安全責任，這取決於您選擇的 AWS 資源。請參閱 [共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)，以確保您在 中的資源 AWS 受到適當保護。

**生產流量風險**  
在預備或測試環境中測試和調校您的反 DDoS 實作，直到您熟悉對流量的潛在影響為止。然後，使用生產流量在計數模式中測試和調校規則，然後再啟用它們。

本指南適用於通常知道如何建立和管理 AWS WAF 保護套件 (Web ACLs)、規則和規則群組的使用者。這些主題涵蓋在本指南的先前章節中。

**設定和測試 AWS WAF 分散式阻斷服務 (DDoS) 預防實作**

請先在測試環境中執行這些步驟，然後在生產環境中執行。

1. 

**在計數模式中新增 AWS WAF 分散式阻斷服務 (DDoS) 預防受管規則群組**
**注意**  
當您使用此受管規則群組時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

   將 AWS 受管規則規則群組`AWSManagedRulesAntiDDoSRuleSet`新增至新的或現有的保護套件 (Web ACL)，並加以設定，使其不會變更目前的保護套件 (Web ACL) 行為。如需此規則群組之規則和標籤的詳細資訊，請參閱 [AWS WAF 分散式阻斷服務 (DDoS) 預防規則群組](aws-managed-rule-groups-anti-ddos.md)。
   + 當您新增受管規則群組時，請進行編輯並執行下列動作：
     + 在**規則群組組態**窗格中，提供為 Web 流量執行反 DDoS 活動所需的詳細資訊。如需詳細資訊，請參閱[將 Anti-DDoS 受管規則群組新增至您的保護套件 (Web ACL)](waf-anti-ddos-rg-using.md)。
     + 在**規則**窗格中，開啟**覆寫所有規則動作**下拉式清單，然後選擇 **Count**。使用此組態， 會根據規則群組中的所有規則 AWS WAF 評估請求，並僅計算該結果的相符項目，同時仍將標籤新增至請求。如需詳細資訊，請參閱[覆寫規則群組中的規則動作](web-acl-rule-group-settings.md#web-acl-rule-group-rule-action-override)。

       透過此覆寫，您可以監控反 DDoS 受管規則的潛在影響，以判斷您是否要進行修改，例如為無法處理無提示瀏覽器挑戰URIs 擴展 regex。
   + 將規則群組置於允許流量的任何規則之後，盡快評估規則群組。規則會以遞增的數值優先順序進行評估。主控台會為您設定順序，從規則清單頂端開始。如需詳細資訊，請參閱[設定規則優先順序](web-acl-processing-order.md)。

1. 

**啟用保護套件的記錄和指標 (Web ACL)**

   視需要設定 保護套件 (Web ACL) 的記錄、Amazon Security Lake 資料收集、請求取樣和 Amazon CloudWatch 指標。您可以使用這些可見性工具來監控 Anti-DDoS 受管規則群組與流量的互動。
   + 如需設定和使用記錄的資訊，請參閱 [記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。
   + 如需 Amazon Security Lake 的相關資訊，請參閱《[Amazon Security Lake 使用者指南》中的什麼是 Amazon Security Lake？](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html)以及[從 AWS 服務收集資料](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)。 **
   + 如需 Amazon CloudWatch 指標的相關資訊，請參閱 [使用 Amazon CloudWatch 監控](monitoring-cloudwatch.md)。
   + 如需 Web 請求取樣的資訊，請參閱 [檢視 Web 請求的範例](web-acl-testing-view-sample.md)。

1. 

**將保護套件 (Web ACL) 與資源建立關聯**

   如果保護套件 (Web ACL) 尚未與測試資源建立關聯，請建立關聯。如需相關資訊，請參閱[將保護與 AWS 資源建立關聯或取消關聯](web-acl-associating-aws-resource.md)。

1. 

**監控流量和反 DDoS 規則相符項目**

   請確定您的正常流量正在流動，且 Anti-DDoS 受管規則群組規則正在將標籤新增至相符的 Web 請求。您可以在日誌中查看標籤，並在 Amazon CloudWatch 指標中查看反 DDoS 和標籤指標。在 日誌中，您已覆寫規則群組中計數的規則會顯示在 中，`ruleGroupList`並將 `action` 設定為計數，並`overriddenAction`指出您覆寫的已設定規則動作。

1. 

**自訂反 DDoS Web 請求處理**

   視需要新增您自己的規則，明確允許或封鎖請求，以變更反 DDoS 規則處理它們的方式。

   例如，您可以使用反 DDoS 標籤來允許或封鎖請求，或自訂請求處理。您可以在反 DDoS 受管規則群組之後新增標籤比對規則，以篩選要套用之處理方式的標記請求。測試之後，請將相關的反 DDoS 規則保持在計數模式中，並在您的自訂規則中維護請求處理決策。

1. 

**移除測試規則並設定反 DDoS 設定**

   檢閱您的測試結果，以判斷您希望在計數模式中保留哪些 Anti-DDoS 規則，僅進行監控。對於您想要使用作用中保護執行的任何規則，請在保護套件 (Web ACL) 規則群組組態中停用計數模式，以允許他們執行其設定的動作。完成這些設定後，請移除任何臨時測試標籤比對規則，同時保留您為生產用途建立的任何自訂規則。如需其他反 DDoS 組態考量，請參閱 [中的智慧型威脅防禦最佳實務 AWS WAF](waf-managed-protections-best-practices.md)。

1. 

**監控和調校**

   為了確保 Web 請求可依您想要的方式處理，請在啟用您要使用的反 DDoS 功能後密切監控流量。視需要使用規則群組上的規則計數覆寫和您自己的規則來調整行為。

# 反 DDoS 的最佳實務

+ **在正常流量期間啟用保護** – 這可讓保護在回應攻擊之前建立基準流量模式。當您沒有遭受攻擊時新增保護，並允許建立基準的時間。
+ **定期監控指標** – 檢閱 CloudWatch 指標，以了解流量模式和保護有效性。
+ **考慮關鍵應用程式的主動模式** – 雖然大多數使用案例都建議使用被動模式，但對於需要持續防護已知威脅的應用程式，請考慮使用主動模式。
+ **在預備環境中測試** – 在生產環境中啟用保護之前，請在預備環境中測試和調校設定，以了解對合法流量的影響。

# 中的用戶端應用程式整合 AWS WAF
用戶端應用程式整合應用程式整合已重新命名為智慧型威脅整合

我們將用戶端應用程式整合的現有功能重新命名為智慧型威脅整合，以協助區分該功能和適用於 JavaScript 的新 CAPTCHA 應用程式整合。AWS WAF 用戶端應用程式整合

使用 AWS WAF JavaScript 和行動用戶端 APIs，將您的用戶端應用程式與智慧型威脅緩解 AWS 受管規則規則群組整合，以增強偵測。

本節說明如何將智慧型威脅整合 APIs和 JavaScript CAPTCHA 整合 API 與您的 AWS WAF 功能搭配使用。

使用 AWS WAF 用戶端應用程式整合 APIs 將用戶端保護與您的 AWS 伺服器端保護套件 (Web ACL) 保護耦合，以協助驗證將 Web 請求傳送至受保護資源的用戶端應用程式是否為預期的用戶端，以及您的最終使用者是否為人類。

使用用戶端整合來管理無提示的瀏覽器挑戰和 CAPTCHA 拼圖、取得具有成功瀏覽器和最終使用者回應證明的字符，以及將這些字符包含在對受保護端點的請求中。如需 AWS WAF 字符的一般資訊，請參閱 [用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。

將用戶端整合與需要有效字符才能存取 資源的保護套件 (Web ACL) 保護結合。您可以使用規則群組來檢查和監控挑戰字符，例如下一節列出的挑戰字符，網址為 [智慧威脅整合和 AWS 受管規則](waf-application-integration-with-AMRs.md)，而且您可以使用 CAPTCHA和 Challenge規則動作來檢查，如 中所述[CAPTCHA 和 Challenge 中的 AWS WAF](waf-captcha-and-challenge.md)。

AWS WAF 為 JavaScript 應用程式提供兩種整合層級，並為行動應用程式提供一種：
+ **智慧威脅整合** – 驗證用戶端應用程式，並提供 AWS 權杖取得和管理。這類似於規則動作所提供的 AWS WAF Challenge功能。此功能完全整合您的用戶端應用程式與`AWSManagedRulesACFPRuleSet`受管規則群組、`AWSManagedRulesATPRuleSet`受管規則群組，以及`AWSManagedRulesBotControlRuleSet`受管規則群組的目標保護層級。

  智慧型威脅整合 APIs 使用無 AWS WAF 提示瀏覽器挑戰，以協助確保只有在用戶端取得有效的字符之後，才允許對您受保護資源的登入嘗試和其他呼叫。APIs 會管理用戶端應用程式工作階段的字符授權，並收集用戶端的相關資訊，以協助判斷其是否由機器人或人類操作。
**注意**  
這適用於 JavaScript 和 Android 和 iOS 行動應用程式。
+ **CAPTCHA 整合** – 使用您在應用程式中管理的自訂 CAPTCHA 拼圖來驗證最終使用者。這類似於規則動作所提供的 AWS WAF CAPTCHA功能，但增加了對拼圖放置和行為的控制。

  此整合利用 JavaScript 智慧型威脅整合來執行無聲挑戰，並將 AWS WAF 權杖提供給客戶的頁面。
**注意**  
這適用於 JavaScript 應用程式。

**Topics**
+ [

# 智慧威脅整合和 AWS 受管規則
](waf-application-integration-with-AMRs.md)
+ [

# 存取 AWS WAF 用戶端應用程式整合 APIs
](waf-application-integration-location-in-console.md)
+ [

# AWS WAF JavaScript 整合
](waf-javascript-api.md)
+ [

# AWS WAF 行動應用程式整合
](waf-mobile-sdk.md)

# 智慧威脅整合和 AWS 受管規則
智慧威脅整合和 AWS 受管規則

本節說明智慧型威脅整合 APIs如何與 AWS 受管規則規則群組搭配使用。

智慧型威脅整合 APIs 可與使用智慧型威脅規則群組的保護套件 (Web ACLs) 搭配使用，以啟用這些進階受管規則群組的完整功能。
+ AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 受管規則群組 `AWSManagedRulesACFPRuleSet`。

  帳戶建立詐騙是一種線上非法活動，攻擊者會在您的應用程式中建立無效的帳戶，例如接收註冊獎金或冒充某人。ACFP 受管規則群組提供規則來封鎖、標記和管理可能屬於詐騙帳戶建立嘗試一部分的請求。APIs 可啟用經過微調的用戶端瀏覽器驗證和人類互動資訊，以供 ACFP 規則用來區隔有效的用戶端流量與惡意流量。

  如需詳細資訊，請參閱[AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組](aws-managed-rule-groups-acfp.md)及[AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP)](waf-acfp.md)。
+ AWS WAF 詐騙控制帳戶接管預防 (ATP) 受管規則群組 `AWSManagedRulesATPRuleSet`。

  帳戶接管是一種線上非法活動，攻擊者可在其中未經授權存取某人的帳戶。ATP 受管規則群組提供規則來封鎖、標記和管理可能屬於惡意帳戶接管嘗試一部分的請求。APIs 可啟用微調的用戶端驗證和行為彙總，讓 ATP 規則用來區隔有效的用戶端流量與惡意流量。

  如需詳細資訊，請參閱[AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md)及[AWS WAF 詐騙控制帳戶接管預防 (ATP)](waf-atp.md)。
+  AWS WAF Bot Control 受管規則群組 的目標保護層級`AWSManagedRulesBotControlRuleSet`。

  機器人從自我識別和有用的機器人執行，例如大多數搜尋引擎和爬蟲程式，到針對您的網站操作且不自我識別的惡意機器人。Bot Control 受管規則群組提供規則來監控、標記和管理 Web 流量中的機器人活動。當您使用此規則群組的目標保護層級時，目標規則會使用 APIs提供的用戶端工作階段資訊，以更有效偵測惡意機器人。

  如需詳細資訊，請參閱[AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md)及[AWS WAF 機器人控制](waf-bot-control.md)。

若要將其中一個受管規則群組新增至保護套件 (Web ACL)[將 ATP 受管規則群組新增至保護套件 (Web ACL)](waf-atp-rg-using.md)，請參閱程序 [將 ACFP 受管規則群組新增至 Web ACL](waf-acfp-rg-using.md)、 和 [將 AWS WAF Bot Control 受管規則群組新增至 Web ACL](waf-bot-control-rg-using.md)。

**注意**  
受管規則群組目前不會封鎖缺少字符的請求。為了封鎖缺少權杖的請求，在您實作應用程式整合 APIs 之後，請遵循 中的指引[封鎖沒有有效 AWS WAF 字符的請求](waf-tokens-block-missing-tokens.md)。

# 存取 AWS WAF 用戶端應用程式整合 APIs
存取整合 APIs

本節說明在 AWS WAF 主控台中尋找應用程式整合 APIs的位置。

JavaScript 整合 APIs已全面推出，您可以將其用於您的瀏覽器和其他執行 JavaScript 的裝置。

AWS WAF 提供適用於 Android 和 iOS 行動應用程式的自訂智慧型威脅整合 SDKs。
+ 對於 Android 行動和電視應用程式，SDKs適用於 Android API 第 23 版 (Android 第 6 版） 和更新版本。如需 Android 版本的資訊，請參閱 [SDK 平台版本備註](https://developer.android.com/tools/releases/platforms)。
+ 對於 iOS 行動應用程式，SDKs適用於 iOS 版本 13 和更新版本。如需 iOS 版本的資訊，請參閱 [iOS & iPadOS 版本備註](https://developer.apple.com/documentation/ios-ipados-release-notes)。
+ 對於 Apple TV 應用程式，SDKs適用於 tvOS 第 14 版或更新版本。如需 tvOS 版本的資訊，請參閱 [tvOS 版本備註](https://developer.apple.com/documentation/tvos-release-notes)。

**透過主控台存取整合 APIs**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中選擇**應用程式整合**，然後選擇您感興趣的索引標籤。
   + **智慧型威脅整合**適用於 JavaScript 和行動應用程式。

     標籤包含下列項目：
     + 已啟用智慧型威脅應用程式整合的保護套件 (Web ACLs) 清單。此清單包含每個使用`AWSManagedRulesACFPRuleSet`受管規則群組、`AWSManagedRulesATPRuleSet`受管規則群組或`AWSManagedRulesBotControlRuleSet`受管規則群組的目標保護層級的保護套件 (Web ACL)。當您實作智慧型威脅 APIs 時，您可以使用要與之整合的保護套件 (Web ACL) 的整合 URL。
     + 您可以存取APIs。JavaScript APIs 一律可用。如需存取行動SDKs，請聯絡 [Contact AWS](https://aws.amazon.com/contact-us) 的支援。
   + **CAPTCHA 整合**適用於 JavaScript 應用程式。

     標籤包含下列項目：
     + 用於整合的整合 URL。
     + 您為用戶端應用程式網域建立的 API 金鑰。您使用 CAPTCHA API 需要加密的 API 金鑰，讓用戶端有權從其網域存取 AWS WAF CAPTCHA。對於您整合的每個用戶端，請使用包含用戶端網域的 API 金鑰。如需這些要求以及管理這些金鑰的詳細資訊，請參閱 [管理 JS CAPTCHA API 的 API 金鑰](waf-js-captcha-api-key.md)。

# AWS WAF JavaScript 整合
JavaScript 整合

本節說明如何使用 AWS WAF JavaScript 整合。

您可以使用 JavaScript 整合 APIs 在瀏覽器和其他執行 JavaScript 的裝置中實作 AWS WAF 應用程式整合。

CAPTCHA 拼圖和無提示挑戰只能在瀏覽器存取 HTTPS 端點時執行。瀏覽器用戶端必須在安全的內容中執行，才能取得字符。
+ 智慧型威脅 APIs 可讓您透過無提示的用戶端瀏覽器挑戰來管理權杖授權，並在您傳送至受保護資源的請求中包含權杖。
+ CAPTCHA 整合 API 會新增至智慧型威脅 APIs，並可讓您自訂用戶端應用程式中 CAPTCHA 拼圖的位置和特性。此 API 利用智慧型威脅 APIs 來取得 AWS WAF 權杖，以便在最終使用者成功完成 CAPTCHA 拼圖後，用於 頁面。

透過使用這些整合，您可以確保用戶端的遠端程序呼叫包含有效的字符。當您的應用程式頁面上有這些整合 APIs 時，您可以在保護套件 (Web ACL) 中實作緩解規則，例如封鎖不包含有效字符的請求。您也可以在規則中使用 Challenge或 CAPTCHA動作，實作規則來強制使用用戶端應用程式取得的字符。

**實作智慧型威脅 APIs的範例**  
下列清單顯示 Web 應用程式頁面中智慧威脅 APIs典型實作的基本元件。

```
<head>
<script type="text/javascript" src="protection pack (web ACL) integration URL/challenge.js" defer></script>
</head>
<script>
const login_response = await AwsWafIntegration.fetch(login_url, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: login_body
  });
</script>
```

**CAPTCHA JavaScript API 的範例實作**  
CAPTCHA 整合 API 可讓您自訂最終使用者的 CAPTCHA 拼圖體驗。CAPTCHA 整合利用 JavaScript 智慧型威脅整合進行瀏覽器驗證和權杖管理，並新增用於設定和轉譯 CAPTCHA 拼圖的函數。

下列清單顯示 CAPTCHA JavaScript API 在 Web 應用程式頁面中典型實作的基本元件。

```
<head>
    <script type="text/javascript" src="<Integration URL>/jsapi.js" defer></script>
</head>

<script type="text/javascript">
    function showMyCaptcha() {
        var container = document.querySelector("#my-captcha-container");
        
        AwsWafCaptcha.renderCaptcha(container, {
            apiKey: "...API key goes here...",
            onSuccess: captchaExampleSuccessFunction,
            onError: captchaExampleErrorFunction,
            ...other configuration parameters as needed...
        });
    }
    
    function captchaExampleSuccessFunction(wafToken) {
        // Use WAF token to access protected resources
        AwsWafIntegration.fetch("...WAF-protected URL...", {
            method: "POST",
            ...
        });
    }
    
    function captchaExampleErrorFunction(error) {
        /* Do something with the error */
    }
</script>

<div id="my-captcha-container">
    <!-- The contents of this container will be replaced by the captcha widget -->
</div>
```

**Topics**
+ [

# 提供用於字符的網域
](waf-js-challenge-api-set-token-domain.md)
+ [

# 搭配內容安全政策使用 JavaScript API
](waf-javascript-api-csp.md)
+ [

# 使用智慧型威脅 JavaScript API
](waf-js-challenge-api.md)
+ [

# 使用 CAPTCHA JavaScript API
](waf-js-captcha-api.md)

# 提供用於字符的網域
提供用於字符的網域

本節說明如何提供字符的其他網域。

根據預設，當 AWS WAF 建立權杖時，它會使用與保護套件 (Web ACL) 相關聯的 資源的主機網域。您可以為為為 JavaScript APIs AWS WAF 建立的字符提供額外的網域。若要這樣做，`window.awsWafCookieDomainList`請使用一或多個字符網域來設定全域變數 。

當 AWS WAF 建立字符時，它會使用來自 中網域組合中最適當、最短的網域，`window.awsWafCookieDomainList`以及與保護套件相關聯的資源主機網域 (Web ACL)。

範例設定：

```
window.awsWafCookieDomainList = ['.aws.amazon.com']
```

```
window.awsWafCookieDomainList = ['.aws.amazon.com', 'abc.aws.amazon.com']
```

您無法在此清單中使用公有字尾。例如，您無法使用 `gov.au`或 `co.uk`做為清單中的字符網域。

您在此清單中指定的網域必須與其他網域和網域組態相容：
+ 根據受保護的主機網域和為保護套件設定的字符網域清單 (Web ACL)，網域必須是 AWS WAF 將接受的網域。如需詳細資訊，請參閱[AWS WAF 保護套件 (Web ACL) 權杖網域清單組態](waf-tokens-domains.md#waf-tokens-domain-lists)。
+ 如果您使用 JavaScript CAPTCHA API，CAPTCHA API 金鑰中至少有一個網域必須與 中的其中一個字符網域完全相符，`window.awsWafCookieDomainList`或者必須是其中一個字符網域的頂點網域。

  例如，對於字符網域 `mySubdomain.myApex.com`，API 金鑰`mySubdomain.myApex.com`是完全相符的，API 金鑰`myApex.com`是頂點網域。任一金鑰都符合字符網域。

  如需 API 金鑰的詳細資訊，請參閱 [管理 JS CAPTCHA API 的 API 金鑰](waf-js-captcha-api-key.md)。

如果您使用 `AWSManagedRulesACFPRuleSet`受管規則群組，您可以設定符合您提供給規則群組組態之帳戶建立路徑的網域。如需此組態的詳細資訊，請參閱「[將 ACFP 受管規則群組新增至 Web ACL](waf-acfp-rg-using.md)」。

如果您使用 `AWSManagedRulesATPRuleSet`受管規則群組，您可以在您提供給規則群組組態的登入路徑中，設定符合該網域的網域。如需此組態的詳細資訊，請參閱「[將 ATP 受管規則群組新增至保護套件 (Web ACL)](waf-atp-rg-using.md)」。

# 搭配內容安全政策使用 JavaScript API
內容安全政策

本節提供允許列出頂 AWS WAF 點網域的範例組態。

如果您將內容安全政策 (CSP) 套用至資源，為了讓 JavaScript AWS WAF 實作運作，您需要允許列出頂點網域 `awswaf.com`。JavaScript SDKs會呼叫不同的 AWS WAF 端點，因此允許列出此網域可提供SDKs操作所需的許可。

以下顯示允許列出 apex AWS WAF 網域的範例組態：

```
connect-src 'self' https://*.awswaf.com;
script-src 'self' https://*.awswaf.com;
script-src-elem 'self' https://*.awswaf.com;
```

如果您嘗試將 JavaScript SDKs與使用 CSP 的資源搭配使用，而且您尚未允許列出 AWS WAF 網域，您將會收到如下的錯誤：

```
Refused to load the script ...awswaf.com/<> because it violates the following Content Security Policy directive: “script-src ‘self’
```

# 使用智慧型威脅 JavaScript API
使用智慧型威脅 API

本節提供在用戶端應用程式中使用智慧型威脅 JavaScript API 的指示。

智慧型威脅 APIs 提供對使用者瀏覽器執行無提示挑戰的操作，以及處理提供成功挑戰證明和 CAPTCHA 回應的 AWS WAF 字符的操作。

先在測試環境中實作 JavaScript 整合，然後在生產環境中實作。如需其他編碼指引，請參閱以下各節。

 

**使用智慧型威脅 APIs**

1. **安裝 APIs** 

   如果您使用 CAPTCHA API，則可以略過此步驟。當您安裝 CAPTCHA API 時，指令碼會自動安裝智慧型威脅 APIs。

   1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

   1. 在導覽窗格中，選擇 **Application integration (應用程式整合)**。在**應用程式整合**頁面上，您可以看到標籤選項。

   1. 選取**智慧型威脅整合**

   1. 在 索引標籤中，選取您要整合的保護套件 (Web ACL)。保護套件 (Web ACL) 清單僅包含使用`AWSManagedRulesACFPRuleSet`受管規則群組、`AWSManagedRulesATPRuleSet`受管規則群組或`AWSManagedRulesBotControlRuleSet`受管規則群組的目標保護層級的保護套件 (Web ACLs)。

   1. 開啟 **JavaScript SDK** 窗格，並複製指令碼標籤以用於整合。

   1. 在應用程式頁面程式碼的 `<head>`區段中，插入您為保護套件複製的指令碼標籤 (Web ACL)。此包含項目會導致您的用戶端應用程式在頁面載入的背景中自動擷取字符。

      ```
      <head>
          <script type="text/javascript" src="protection pack (web ACL) integration URL/challenge.js” defer></script>
      <head>
      ```

      此`<script>`清單使用 `defer` 屬性設定，但如果`async`您想要為頁面採取不同的行為，您可以將設定變更為 。

1. **（選用） 新增用戶端字符的網域組態** – 在預設情況下，當 AWS WAF 建立字符時，它會使用與保護套件相關聯的資源的主機網域 (Web ACL)。若要提供 JavaScript APIs 的其他網域，請遵循 中的指引[提供用於字符的網域](waf-js-challenge-api-set-token-domain.md)。

1. **為您的智慧型威脅整合編寫程式碼** – 撰寫程式碼，以確保字符擷取在用戶端將其請求傳送至受保護的端點之前完成。如果您已經使用 `fetch` API 進行呼叫，則可以取代整合`fetch`包裝函式 AWS WAF 。如果您不使用 `fetch` API，則可以改用 AWS WAF 整合`getToken`操作。如需編碼指引，請參閱下列各節。

1. 在**保護套件 (Web ACL) 中新增權杖驗證** – 將至少一個規則新增至保護套件 (Web ACL)，以檢查用戶端傳送的 Web 請求中是否有有效的挑戰權杖。您可以使用規則群組來檢查和監控挑戰字符，例如 Bot Control 受管規則群組的目標層級，而且您可以使用Challenge規則動作來檢查，如中所述[CAPTCHA 和 Challenge 中的 AWS WAF](waf-captcha-and-challenge.md)。

   保護套件 (Web ACL) 新增項目會驗證對受保護端點的請求是否包含您在用戶端整合中取得的字符。包含有效、未過期字符的請求會通過Challenge檢查，並且不會向您的用戶端傳送另一個無提示挑戰。

1. **（選用） 封鎖缺少權杖的請求** – 如果您使用 APIs搭配 ACFP 受管規則群組、ATP 受管規則群組或 Bot Control 規則群組的目標規則，這些規則不會封鎖缺少權杖的請求。若要封鎖缺少字符的請求，請遵循 中的指引[封鎖沒有有效 AWS WAF 字符的請求](waf-tokens-block-missing-tokens.md)。

**Topics**
+ [

# 智慧型威脅 API 規格
](waf-js-challenge-api-specification.md)
+ [

# 如何使用整合`fetch`包裝函式
](waf-js-challenge-api-fetch-wrapper.md)
+ [

# 如何使用整合 `getToken`
](waf-js-challenge-api-get-token.md)

# 智慧型威脅 API 規格
智慧型威脅 API 規格

本節列出智慧型威脅緩解 JavaScript APIs 的方法和屬性規格。使用這些 APIs進行智慧威脅和 CAPTCHA 整合。

**`AwsWafIntegration.fetch()`**  
使用 AWS WAF 整合實作將 HTTP `fetch`請求傳送至伺服器。

**`AwsWafIntegration.getToken()`**  
擷取存放的 AWS WAF 字符，並將其存放在目前頁面上名為 `aws-waf-token`且值設定為字符值的 Cookie 中。

**`AwsWafIntegration.hasToken()`**  
傳回布林值，指出 `aws-waf-token` Cookie 目前是否保留未過期的字符。

如果您也使用 CAPTCHA 整合，請參閱 中該整合的規格[CAPTCHA JavaScript API 規格](waf-js-captcha-api-specification.md)。

# 如何使用整合`fetch`包裝函式
如何使用`fetch`包裝函式

本節提供使用整合`fetch`包裝函式的說明。

您可以在 `AwsWafIntegration` 命名空間下變更對 `fetch` API 的正常`fetch`呼叫，以使用 AWS WAF `fetch`包裝函式。 AWS WAF 包裝函式支援所有與標準 JavaScript `fetch` API 呼叫相同的選項，並新增整合的字符處理。此方法通常是整合您應用程式最簡單的方法。

**在包裝函式實作之前**  
下列範例清單顯示實作`AwsWafIntegration``fetch`包裝函式之前的標準程式碼。

```
const login_response = await fetch(login_url, {
	    method: 'POST',
	    headers: {
	      'Content-Type': 'application/json'
	    },
	    body: login_body
	  });
```

**包裝函式實作之後**  
以下清單顯示與`AwsWafIntegration``fetch`包裝函式實作相同的程式碼。

```
const login_response = await AwsWafIntegration.fetch(login_url, {
	    method: 'POST',
	    headers: {
	      'Content-Type': 'application/json'
	    },
	    body: login_body
	  });
```

# 如何使用整合 `getToken`
如何使用 `getToken`

本節說明如何使用 `getToken`操作。

AWS WAF 需要您對受保護端點的請求，以包含名為 的 Cookie `aws-waf-token`與目前字符的值。

`getToken` 操作是一種非同步 API 呼叫，會擷取 AWS WAF 字符並將其存放在目前頁面上名為 `aws-waf-token`且值設定為字符值的 Cookie 中。您可以在頁面中視需要使用此字符 Cookie。

當您呼叫 時`getToken`，它會執行下列動作：
+ 如果已可使用未過期的字符，呼叫會立即傳回它。
+ 否則，呼叫會從權杖提供者擷取新的權杖，在逾時之前等待最多 2 秒讓權杖擷取工作流程完成。如果操作逾時，它會擲回呼叫程式碼必須處理的錯誤。

`getToken` 操作具有隨附的`hasToken`操作，指出 `aws-waf-token` Cookie 目前是否擁有未過期的字符。

`AwsWafIntegration.getToken()` 會擷取有效的權杖，並將其儲存為 Cookie。大多數用戶端呼叫會自動連接此 Cookie，但有些則不會。例如，跨主機網域進行的呼叫不會連接 Cookie。在接下來的實作詳細資訊中，我們會示範如何使用這兩種類型的用戶端呼叫。

**基本`getToken`實作，適用於連接 `aws-waf-token` Cookie 的呼叫**  
下列範例清單顯示使用登入請求實作 `getToken`操作的標準程式碼。

```
const login_response = await AwsWafIntegration.getToken()
	    .catch(e => {
	        // Implement error handling logic for your use case
	    })
	    // The getToken call returns the token, and doesn't typically require special handling
	    .then(token => {
	        return loginToMyPage()
	    })
	
	async function loginToMyPage() {
	    // Your existing login code
	}
```

**僅在字符可從 取得之後才提交表單 `getToken`**  
下列清單顯示如何在有效的權杖可供使用之前，註冊事件接聽程式以攔截表單提交。

```
<body>
	  <h1>Login</h1>
	  <p></p>
	  <form id="login-form" action="/web/login" method="POST" enctype="application/x-www-form-urlencoded">
	    <label for="input_username">USERNAME</label>
	    <input type="text" name="input_username" id="input_username"><br>
	    <label for="input_password">PASSWORD</label>
	    <input type="password" name="input_password" id="input_password"><br>
	    <button type="submit">Submit<button>
	  </form>
	
	<script>
	  const form = document.querySelector("#login-form");
	
	  // Register an event listener to intercept form submissions
	  form.addEventListener("submit", (e) => {
	      // Submit the form only after a token is available 
	      if (!AwsWafIntegration.hasToken()) {
	          e.preventDefault();
	          AwsWafIntegration.getToken().then(() => {
	              e.target.submit();
	          }, (reason) => { console.log("Error:"+reason) });
	        }
	    });
	</script>
	</body>
```

**在用戶端預設不連接 `aws-waf-token` Cookie 時連接字符**  
`AwsWafIntegration.getToken()` 會擷取有效的字符並將其儲存為 Cookie，但並非所有用戶端呼叫預設會連接此 Cookie。例如，跨主機網域進行的呼叫不會連接 Cookie。

`fetch` 包裝函式會自動處理這些案例，但如果您無法使用`fetch`包裝函式，除了從 `aws-waf-token` Cookie 讀取權杖之外，您還可以使用自訂 `x-aws-waf-token` header. AWS WAF reads 權杖來處理。下列程式碼顯示設定 標頭的範例。

```
const token = await AwsWafIntegration.getToken();
const result = await fetch('/url', {
    headers: {
        'x-aws-waf-token': token,
    },
});
```

根據預設， AWS WAF 僅接受與請求的主機網域包含相同網域的權杖。任何跨網域字符都需要保護套件 (Web ACL) 字符網域清單中的對應項目。如需詳細資訊，請參閱[AWS WAF 保護套件 (Web ACL) 權杖網域清單組態](waf-tokens-domains.md#waf-tokens-domain-lists)。

如需跨網域字符使用的其他資訊，請參閱 [aws-samples/aws-waf-bot-control-api-protection-with-captcha](https://github.com/aws-samples/aws-waf-bot-control-api-protection-with-captcha)。

# 使用 CAPTCHA JavaScript API
使用 CAPTCHA JavaScript API適用於 CAPTCHA 的新 JavaScript 用戶端應用程式整合

您現在可以自訂 JavaScript 用戶端應用程式中 CAPTCHA 拼圖的位置和特性。

本節提供使用 CAPTCHA 整合 API 的說明。

CAPTCHA JavaScript API 可讓您設定 CAPTCHA 拼圖，並將其放置在用戶端應用程式中您想要的位置。此 API 利用智慧型威脅 JavaScript APIs的功能，在最終使用者成功完成 CAPTCHA 拼圖後取得並使用 AWS WAF 字符。

先在測試環境中實作 JavaScript 整合，然後在生產環境中實作。如需其他編碼指引，請參閱以下各節。

**使用 CAPTCHA 整合 API**

1. **安裝 API**

   1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

   1. 在導覽窗格中，選擇 **Application integration (應用程式整合)**。在**應用程式整合**頁面上，您可以看到標籤選項。

   1. 選取 **CAPTCHA 整合**。

   1. 複製列出的 JavaScript 整合指令碼標籤，以用於您的整合。

   1. 在應用程式頁面程式碼的 `<head>`區段中，插入您複製的指令碼標籤。此包含項目可讓 CAPTCHA 拼圖可供組態和使用。

      ```
      <head>
          <script type="text/javascript" src="integrationURL/jsapi.js" defer></script>
      </head>
      ```

      此`<script>`清單使用 `defer` 屬性設定，但如果`async`您想要為頁面採取不同的行為，您可以將設定變更為 。

      如果智慧型威脅整合指令碼尚未存在，CAPTCHA 指令碼也會自動載入。智慧型威脅整合指令碼可讓您的用戶端應用程式在頁面載入的背景中自動擷取字符，並提供您使用 CAPTCHA API 所需的其他字符管理功能。

1. **（選用） 新增用戶端字符的網域組態** – 在預設情況下，當 AWS WAF 建立字符時，它會使用與保護套件相關聯的資源的主機網域 (Web ACL)。若要提供 JavaScript APIs 的其他網域，請遵循 中的指引[提供用於字符的網域](waf-js-challenge-api-set-token-domain.md)。

1. **取得用戶端的加密 API 金鑰** – CAPTCHA API 需要加密的 API 金鑰，其中包含有效的用戶端網域清單。 AWS WAF 使用此金鑰來驗證您搭配整合使用的用戶端網域是否已核准使用 AWS WAF CAPTCHA。若要產生您的 API 金鑰，請遵循 中的指引[管理 JS CAPTCHA API 的 API 金鑰](waf-js-captcha-api-key.md)。

1. **為您的 CAPTCHA 小工具實作編寫程式碼**：在您的頁面中您想要使用它的位置實作 `renderCaptcha()` API 呼叫。如需有關設定和使用此函數的資訊，請參閱下列各節 [CAPTCHA JavaScript API 規格](waf-js-captcha-api-specification.md)和 [如何轉譯 CAPTCHA 拼圖](waf-js-captcha-api-render.md)。

   CAPTCHA 實作會與智慧威脅整合 APIs整合，以進行權杖管理，並執行使用權 AWS WAF 杖的擷取呼叫。如需使用這些 APIs的指引，請參閱 [使用智慧型威脅 JavaScript API](waf-js-challenge-api.md)。

1. 在**保護套件 (Web ACL) 中新增權杖驗證** – 將至少一個規則新增至保護套件 (Web ACL)，以檢查用戶端傳送的 Web 請求中是否有有效的 CAPTCHA 權杖。您可以使用CAPTCHA規則動作來檢查，如中所述[CAPTCHA 和 Challenge 中的 AWS WAF](waf-captcha-and-challenge.md)。

   保護套件 (Web ACL) 新增項目會驗證傳送至受保護端點的請求是否包含您在用戶端整合中取得的字符。包含有效、未過期 CAPTCHA 字符的請求會通過CAPTCHA規則動作檢查，而不會向最終使用者顯示另一個 CAPTCHA 拼圖。

實作 JavaScript API 之後，您可以檢閱 CAPTCHA 拼圖嘗試和解決方案的 CloudWatch 指標。如需指標和維度詳細資訊，請參閱 [帳戶指標和維度](waf-metrics.md#waf-metrics-account)。

**Topics**
+ [

# CAPTCHA JavaScript API 規格
](waf-js-captcha-api-specification.md)
+ [

# 如何轉譯 CAPTCHA 拼圖
](waf-js-captcha-api-render.md)
+ [

# 從 處理 CAPTCHA 回應 AWS WAF
](waf-js-captcha-api-conditional.md)
+ [

# 管理 JS CAPTCHA API 的 API 金鑰
](waf-js-captcha-api-key.md)

# CAPTCHA JavaScript API 規格
CAPTCHA JavaScript API 規格

本節列出 CAPTCHA JavaScript APIs 的方法和屬性規格。使用 CAPTCHA JavaScript APIs 在用戶端應用程式中執行自訂 CAPTCHA 拼圖。

此 API 建置在智慧型威脅 APIs上，您可用來設定和管理 AWS WAF 權杖的取得和使用。請參閱 [智慧型威脅 API 規格](waf-js-challenge-api-specification.md)。

**`AwsWafCaptcha.renderCaptcha(container, configuration)`**  
向最終使用者顯示 AWS WAF CAPTCHA 拼圖，並在成功時以 CAPTCHA 驗證更新用戶端字符。這僅適用於 CAPTCHA 整合。使用此呼叫搭配智慧型威脅 APIs 來管理權杖擷取，並在您的`fetch`呼叫中提供權杖。請參閱 的智慧型威脅 APIs[智慧型威脅 API 規格](waf-js-challenge-api-specification.md)。  
與 AWS WAF 傳送的 CAPTCHA 間質不同，此方法轉譯的 CAPTCHA 拼圖會立即顯示拼圖，無需初始標題畫面。    
**`container`**  
頁面上目標容器元素的`Element`物件。這通常透過呼叫 `document.getElementById()`或 來擷取`document.querySelector()`。  
必要：是  
類型：`Element`  
**組態**  
包含 CAPTCHA 組態設定的物件，如下所示****：    
**`apiKey`**   
啟用用戶端網域許可的加密 API 金鑰。使用 AWS WAF 主控台為您的用戶端網域產生 API 金鑰。您最多可以將一個金鑰用於五個網域。如需相關資訊，請參閱[管理 JS CAPTCHA API 的 API 金鑰](waf-js-captcha-api-key.md)。  
必要：是  
類型：`string`  
**`onSuccess: (wafToken: string) => void;`**   
當最終使用者成功完成 CAPTCHA 拼圖時，使用有效的 AWS WAF 字符呼叫。在您傳送到使用 AWS WAF 保護套件 (Web ACL) 保護之端點的請求中使用字符。字符提供最新成功拼圖完成的證明和時間戳記。  
必要：是  
**`onError?: (error: CaptchaError) => void;`**   
在 CAPTCHA 操作期間發生錯誤時呼叫錯誤物件。  
必要：否  
**`CaptchaError` 類別定義** – `onError`處理常式提供具有下列類別定義的錯誤類型。  

```
CaptchaError extends Error {
    kind: "internal_error" | "network_error" | "token_error" | "client_error";
    statusCode?: number;
}
```
+ `kind` – 傳回的錯誤類型。
+ `statusCode` – HTTP 狀態碼，如果有的話。`network_error` 如果錯誤是由於 HTTP 錯誤所造成，則 會使用此功能。  
**`onLoad?: () => void;`**   
載入新的 CAPTCHA 拼圖時呼叫。  
必要：否  
**`onPuzzleTimeout?: () => void;`**   
在 CAPTCHA 拼圖過期之前未完成時呼叫。  
必要：否  
**`onPuzzleCorrect?: () => void;`**   
將正確答案提供給 CAPTCHA 拼圖時呼叫。  
必要：否  
**`onPuzzleIncorrect?: () => void;`**   
當向 CAPTCHA 拼圖提供不正確的答案時呼叫。  
必要：否  
**`defaultLocale`**   
用於 CAPTCHA 拼圖的預設地區設定。CAPTCHA 拼圖的書面指示提供阿拉伯文 (ar-SA)、簡體中文 (zh-CN)、荷蘭文 (nl-NL)、英文 (en-US)、法文 (fr-FR)、德文 (de-DE)、義大利文 (it-IT)、日文 (ja-JP)、巴西葡萄牙文 (pt-BR)、西班牙文 (es-ES) 和土耳其文 (tr-TR)。除了預設為英文的中文和日文以外，音訊指示適用於所有書面語言。若要變更預設語言，請提供國際語言和地區設定代碼，例如 `ar-SA`。  
預設：目前在最終使用者的瀏覽器中使用的語言  
必要：否  
類型：`string`  
**`disableLanguageSelector`**   
如果設定為 `true`，CAPTCHA 拼圖會隱藏語言選擇器。  
預設：`false`  
必要：否  
類型：`boolean`  
**`dynamicWidth`**   
如果設定為 `true`，CAPTCHA 拼圖會變更寬度，以符合瀏覽器視窗寬度。  
預設：`false`  
必要：否  
類型：`boolean`  
**`skipTitle`**   
如果設定為 `true`，CAPTCHA 拼圖不會顯示拼圖標題 **解決拼圖**。  
預設：`false`  
必要：否  
類型：`boolean`

# 如何轉譯 CAPTCHA 拼圖
如何轉譯 CAPTCHA 拼圖

本節提供範例`renderCaptcha`實作。

您可以在 AWS WAF `renderCaptcha`用戶端界面中使用您想要的 呼叫。呼叫會從 擷取 CAPTCHA 拼圖 AWS WAF、轉譯它，並將結果傳送至 AWS WAF 以進行驗證。當您進行呼叫時，您會提供拼圖轉譯組態，以及在最終使用者完成拼圖時要執行的回呼。如需選項的詳細資訊，請參閱上一節：[CAPTCHA JavaScript API 規格](waf-js-captcha-api-specification.md)。

將此呼叫與智慧型威脅整合 APIs的字符管理功能搭配使用。此呼叫會為您的用戶端提供權杖，以驗證 CAPTCHA 拼圖是否成功完成。使用智慧型威脅整合 APIs 來管理字符，並在用戶端呼叫受 AWS WAF 保護套件 (Web ACLs) 保護的端點時提供字符。如需智慧型威脅 APIs的詳細資訊，請參閱 [使用智慧型威脅 JavaScript API](waf-js-challenge-api.md)。

**實作範例**  
下列範例清單顯示標準 CAPTCHA 實作，包括在 `<head>`區段中放置 AWS WAF 整合 URL。

此清單使用使用智慧型威脅整合 APIs `AwsWafIntegration.fetch`包裝函式的成功回呼來設定`renderCaptcha`函數。如需此函數的資訊，請參閱 [如何使用整合`fetch`包裝函式](waf-js-challenge-api-fetch-wrapper.md)。

```
<head>
    <script type="text/javascript" src="<Integration URL>/jsapi.js" defer></script>
</head>

<script type="text/javascript">
    function showMyCaptcha() {
        var container = document.querySelector("#my-captcha-container");
        
        AwsWafCaptcha.renderCaptcha(container, {
            apiKey: "...API key goes here...",
            onSuccess: captchaExampleSuccessFunction,
            onError: captchaExampleErrorFunction,
            ...other configuration parameters as needed...
        });
    }
    
    function captchaExampleSuccessFunction(wafToken) {
        // Captcha completed. wafToken contains a valid WAF token. Store it for
        // use later or call AwsWafIntegration.fetch() to use it easily.
        // It will expire after a time, so calling AwsWafIntegration.getToken()
        // again is advised if the token is needed later on, outside of using the
        // fetch wrapper.
        
        // Use WAF token to access protected resources
        AwsWafIntegration.fetch("...WAF-protected URL...", {
            method: "POST",
            headers: {
                "Content-Type": "application/json",
            },
            body: "{ ... }" /* body content */
        });
    }
    
    function captchaExampleErrorFunction(error) {
        /* Do something with the error */
    }
</script>

<div id="my-captcha-container">
    <!-- The contents of this container will be replaced by the captcha widget -->
</div>
```

**範例組態設定**  
下列範例清單顯示`renderCaptcha`具有寬度和標題選項非預設設定的 。

```
        AwsWafCaptcha.renderCaptcha(container, {
            apiKey: "...API key goes here...",
            onSuccess: captchaExampleSuccessFunction,
            onError: captchaExampleErrorFunction,
            dynamicWidth: true, 
            skipTitle: true
        });
```

如需組態選項的完整資訊，請參閱 [CAPTCHA JavaScript API 規格](waf-js-captcha-api-specification.md)。

# 從 處理 CAPTCHA 回應 AWS WAF
從 處理 CAPTCHA 回應 AWS WAFCAPTCHA JavaScript API 的新資訊

新章節說明如何在 以 CAPTCHA AWS WAF 回應請求時提供自訂 CAPTCHA 拼圖。

本節提供處理 CAPTCHA 回應的範例。

如果請求沒有具有有效 CAPTCHA 時間戳記的字符，則具有CAPTCHA動作的 AWS WAF 規則會終止對相符 Web 請求的評估。如果請求是`GET`文字/html 呼叫，則CAPTCHA動作會為用戶端提供具有 CAPTCHA 拼圖的間質。當您未整合 CAPTCHA JavaScript API 時，間質會執行拼圖，如果最終使用者成功解決， 會自動重新提交請求。

當您整合 CAPTCHA JavaScript API 並自訂 CAPTCHA 處理時，您需要偵測終止的 CAPTCHA 回應、提供自訂 CAPTCHA，然後如果最終使用者成功解決拼圖，請重新提交用戶端的 Web 請求。

下列程式碼範例示範其做法：

**注意**  
 AWS WAF CAPTCHA 動作回應的狀態碼為 HTTP 405，用於辨識此程式碼中的CAPTCHA回應。如果您的受保護端點使用 HTTP 405 狀態碼來通訊相同呼叫的任何其他回應類型，則此範例程式碼也會轉譯這些回應的 CAPTCHA 拼圖。

```
<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="<Integration URL>/jsapi.js" defer></script>
</head>
<body>
    <div id="my-captcha-box"></div>
    <div id="my-output-box"></div>

    <script type="text/javascript">
    async function loadData() {
        // Attempt to fetch a resource that's configured to trigger a CAPTCHA
        // action if the rule matches. The CAPTCHA response has status=HTTP 405.
        const result = await AwsWafIntegration.fetch("/protected-resource");

        // If the action was CAPTCHA, render the CAPTCHA and return

        // NOTE: If the endpoint you're calling in the fetch call responds with HTTP 405
        // as an expected response status code, then this check won't be able to tell the
        // difference between that and the CAPTCHA rule action response.

        if (result.status === 405) {
            const container = document.querySelector("#my-captcha-box");
            AwsWafCaptcha.renderCaptcha(container, {
                apiKey: "...API key goes here...",
                onSuccess() {
                    // Try loading again, now that there is a valid CAPTCHA token
                    loadData();
                },
            });
            return;
        }

        const container = document.querySelector("#my-output-box");
        const response = await result.text();
        container.innerHTML = response;
    }

    window.addEventListener("load", () => {
        loadData();
    });
    </script>
</body>
</html>
```

# 管理 JS CAPTCHA API 的 API 金鑰
管理 JS CAPTCHA API 金鑰JavaScript CAPTCHA API 金鑰管理

您現在可以透過 API 刪除 CAPTCHA JS AWS WAF APIs 金鑰。

本節提供產生和刪除 API 金鑰的指示。

若要將 AWS WAF CAPTCHA 與 JavaScript API 整合到用戶端應用程式，您需要要執行 CAPTCHA 拼圖之用戶端網域的 JavaScript API 整合標籤和加密的 API 金鑰。

JavaScript 的 CAPTCHA 應用程式整合 JavaScript 使用加密的 API 金鑰來驗證用戶端應用程式網域是否具有使用 AWS WAF CAPTCHA API 的許可。當您從 JavaScript 用戶端呼叫 CAPTCHA API 時，您會提供具有網域清單的 API 金鑰，其中包含目前用戶端的網域。您可以在單一加密金鑰中列出最多 5 個網域。

**API 金鑰需求**  
您在 CAPTCHA 整合中使用的 API 金鑰必須包含套用至您使用金鑰之用戶端的網域。
+ 如果您在用戶端的智慧型威脅整合`window.awsWafCookieDomainList`中指定 ，則 API 金鑰中的至少一個網域必須完全符合 中的其中一個字符網域，`window.awsWafCookieDomainList`或者必須是其中一個字符網域的頂點網域。

  例如，對於字符網域 `mySubdomain.myApex.com`，API 金鑰`mySubdomain.myApex.com`是完全相符的，API 金鑰`myApex.com`是頂點網域。任一金鑰都符合字符網域。

  如需設定字符網域清單的相關資訊，請參閱 [提供用於字符的網域](waf-js-challenge-api-set-token-domain.md)。
+ 否則，目前的網域必須包含在 API 金鑰中。目前的網域是您可以在瀏覽器地址列中看到的網域。

您使用的網域必須是 AWS WAF 根據受保護的主機網域和為 Web ACL 設定的字符網域清單而接受的網域。如需詳細資訊，請參閱[AWS WAF 保護套件 (Web ACL) 權杖網域清單組態](waf-tokens-domains.md#waf-tokens-domain-lists)。

**如何選擇 API 金鑰的區域**  
AWS WAF 可以在可使用 的任何區域中產生 CAPTCHA API AWS WAF 金鑰。

一般而言，您應該使用與保護套件 (Web ACL) 相同的 CAPTCHA API 金鑰區域。不過，如果您預期全球受眾使用區域保護套件 (Web ACL)，您可以取得範圍為 CloudFront 的 CAPTCHA JavaScript 整合標籤，以及範圍為 CloudFront 的 API 金鑰，並將其與區域保護套件 (Web ACL) 搭配使用。此方法可讓用戶端從最接近它們的區域載入 CAPTCHA 拼圖，從而減少延遲。

範圍限定在 CloudFront 以外區域的 CAPTCHA API 金鑰不支援跨多個區域使用。它們只能在其範圍範圍內的區域中使用。

**為您的用戶端網域產生 API 金鑰**  
取得整合 URL，並透過主控台產生和擷取 API 金鑰。

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇 **Application integration (應用程式整合)**。

1. 在**已啟用應用程式整合的保護套件 (Web ACLs)** 窗格中，選取您要用於 API 金鑰的區域。您也可以在 **CAPTCHA 整合**索引標籤的 **API 金鑰**窗格中選取區域。

1. 選擇 **CAPTCHA 整合**索引標籤。此索引標籤提供 CAPTCHA JavaScript 整合標籤，您可以在整合中使用，以及 API 金鑰清單。兩者的範圍都限定為選取的區域。

1. 在 **API 金鑰**窗格中，選擇**產生金鑰**。金鑰產生對話隨即出現。

1. 輸入您要包含在金鑰中的用戶端網域。您最多可以輸入 5 個。完成後，請選擇**產生金鑰**。界面會返回列出新金鑰的 CAPTCHA 整合索引標籤。

   建立後，API 金鑰是不可變的。如果您需要變更金鑰，請產生新的金鑰並改用該金鑰。

1. （選用） 複製新產生的金鑰以用於整合。

您也可以為此工作使用 REST APIs 或其中一種特定語言 AWS SDKs。REST API 呼叫是 [CreateAPIKey](https://docs.aws.amazon.com/waf/latest/APIReference/API_CreateAPIKey.html) 和 [ListAPIKeys](https://docs.aws.amazon.com/waf/latest/APIReference/API_ListAPIKeys.html)。

**刪除 API 金鑰**  
若要刪除 API 金鑰，您必須使用 REST API 或其中一種語言 AWS SDKs。REST API 呼叫是 [DeleteAPIKey](https://docs.aws.amazon.com/waf/latest/APIReference/API_DeleteAPIKey.html)。您無法使用 主控台刪除金鑰。

刪除金鑰後， 最多可能需要 24 小時 AWS WAF 才能禁止在所有區域中使用金鑰。

# AWS WAF 行動應用程式整合
行動應用程式整合應用程式整合 SDKs 新增電視應用程式

您可以使用適用於電視應用程式和行動應用程式的 Android 和 iOS 整合 SDKs。

本節介紹使用 AWS WAF 行動 SDKs實作適用於 Android 和 iOS 行動和電視應用程式的 AWS WAF 智慧型威脅整合 SDKs 的主題。對於電視應用程式，SDKs與主要智慧型電視平台相容，包括 Android TV 和 Apple TV。
+ 對於 Android 行動和電視應用程式，SDKs適用於 Android API 第 23 版 (Android 第 6 版） 和更新版本。如需 Android 版本的資訊，請參閱 [SDK 平台版本備註](https://developer.android.com/tools/releases/platforms)。
+ 對於 iOS 行動應用程式，SDKs適用於 iOS 版本 13 和更新版本。如需 iOS 版本的資訊，請參閱 [iOS & iPadOS 版本備註](https://developer.apple.com/documentation/ios-ipados-release-notes)。
+ 對於 Apple TV 應用程式，SDKs適用於 tvOS 第 14 版或更新版本。如需 tvOS 版本的資訊，請參閱 [tvOS 版本備註](https://developer.apple.com/documentation/tvos-release-notes)。

透過行動 AWS WAF 開發套件，您可以管理權杖授權，並將權杖包含在傳送至受保護資源的請求中。透過使用 SDKs，您可以確保用戶端進行的這些遠端程序呼叫包含有效的字符。此外，當您的應用程式頁面上有此整合時，您可以在保護套件 (Web ACL) 中實作緩解規則，例如封鎖不包含有效字符的請求。

如需存取行動SDKs，請聯絡 [Contact AWS](https://aws.amazon.com/contact-us) 的支援。

**注意**  
 AWS WAF 行動 SDKs 不適用於 CAPTCHA 自訂。

使用 SDK 的基本方法是使用組態物件建立權杖提供者，然後使用權杖提供者從中擷取權杖 AWS WAF。根據預設，權杖提供者會在對受保護資源的 Web 請求中包含擷取的權杖。

以下是 SDK 實作的部分清單，其中顯示主要元件。如需更詳細的範例，請參閱[AWS WAF 行動 SDK 的程式碼範例](waf-mobile-sdk-coding-examples.md)。

------
#### [ iOS ]

```
let url: URL = URL(string: "protection pack (web ACL) integration URL")!
	let configuration = WAFConfiguration(applicationIntegrationUrl: url, domainName: "Domain name")
	let tokenProvider = WAFTokenProvider(configuration)
	let token = tokenProvider.getToken()
```

------
#### [ Android ]

```
URL applicationIntegrationURL = new URL("protection pack (web ACL) integration URL");
	String domainName = "Domain name";
	WAFConfiguration configuration = WAFConfiguration.builder().applicationIntegrationURL(applicationIntegrationURL).domainName(domainName).build();
	WAFTokenProvider tokenProvider = new WAFTokenProvider(Application context, configuration);
	WAFToken token = tokenProvider.getToken();
```

------

# 安裝 AWS WAF 行動 SDK
安裝行動 SDK

本節提供安裝 AWS WAF 行動 SDK 的說明。

如需存取行動SDKs，請聯絡 [Contact AWS](https://aws.amazon.com/contact-us) 的支援。

先在測試環境中實作行動 SDK，然後在生產環境中實作。

**安裝 AWS WAF 行動 SDK**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇 **Application integration (應用程式整合)**。

1. 在**智慧型威脅整合**索引標籤中，執行下列動作：

   1. 在**已啟用應用程式整合的窗格保護套件 (Web ACLs)** 中，找到您要整合的保護套件 (Web ACL)。複製並儲存保護套件 (Web ACL) 整合 URL 以用於您的實作。您也可以透過 API 呼叫 取得此 URL`GetWebACL`。

   1. 選擇行動裝置類型和版本，然後選擇**下載**。您可以選擇任何您喜歡的版本，但我們建議您使用最新版本。 會將您裝置的 `zip` 檔案 AWS WAF 下載到您的標準下載位置。

1. 在您的應用程式開發環境中，將檔案解壓縮到您選擇的工作位置。在 zip 檔案的最上層目錄中，找到並開啟 `README`。依照 `README` 檔案中的指示，安裝 AWS WAF 行動 SDK 以用於您的行動應用程式程式碼。

1. 根據以下章節中的指引來設定您的應用程式。

# AWS WAF 行動 SDK 規格
行動 SDK 規格AWS WAF 行動 SDK 規格的更新

已將 `loadTokenIntoProvider`操作新增至 `WAFTokenProvider`。AWS WAF 行動 SDK 規格的更新

已將 `storeTokenInCookieStorage`操作新增至 `WAFTokenProvider`。AWS WAF 行動 SDK 規格的更新

將 的最小值、最大值和預設值`tokenRefreshDelaySec`從最小值 300、最大值 600，以及預設值 300 降至最小值 88、最大值 300，以及預設值 88。AWS WAF 行動 SDK 規格的更新

將 的預設值`tokenRefreshDelaySec`從 600 (10 分鐘） 降至 300 (5 分鐘）。

本節列出 AWS WAF 行動 SDK 最新可用版本的 SDK 物件、操作和組態設定。如需字符提供者和操作如何針對各種組態設定組合運作的詳細資訊，請參閱 [AWS WAF 行動開發套件的運作方式](waf-mobile-sdk-how-it-works.md)。

**`WAFToken`**  
保留權 AWS WAF 杖。    
**`getValue()`**  
擷取 的`String`表示法`WAFToken`。

**`WAFTokenProvider`**  
管理行動應用程式中的字符。使用 `WAFConfiguration` 物件實作此項目。    
**`getToken()`**  
如果已啟用背景重新整理，這會傳回快取的字符。如果停用背景重新整理，這會導致同步，封鎖呼叫 AWS WAF 以擷取新的字符。  
**`loadTokenIntoProvider(WAFToken)`**  
將指定的權杖載入 `WAFTokenProvider`，取代提供者管理的任何權杖。權杖提供者會取得新權杖的所有權，並在未來處理重新整理權杖。如果在 中`setTokenCookie`啟用 ，此操作也會更新 Cookie 存放區中的字符`WAFConfiguration`。  
**`onTokenReady(WAFTokenResultCallback)`**  
指示權杖提供者重新整理權杖，並在作用中權杖就緒時叫用提供的回呼。當字符快取並就緒時，字符提供者會在背景執行緒中叫用您的回呼。當您的應用程式第一次載入時，以及它回到作用中狀態時，請呼叫此選項。如需返回作用中狀態的詳細資訊，請參閱 [在應用程式閒置後擷取字符](waf-mobile-sdk-how-it-works.md#waf-mobile-sdk-how-back-from-inactive)。  
對於 Android 或 iOS 應用程式，您可以將 `WAFTokenResultCallback` 設定為您希望權杖提供者在請求權杖就緒時叫用的操作。您的 實作`WAFTokenResultCallback`必須採用參數 `WAFToken`、`SdkError`。對於 iOS 應用程式，您可以交替建立內嵌函數。  
**`storeTokenInCookieStorage(WAFToken)`**  
指示 將指定的 AWS WAF 字符`WAFTokenProvider`存放到開發套件的 Cookie 管理員。根據預設，字符只會在第一次取得和重新整理時新增至 Cookie 存放區。如果應用程式因任何原因清除共用的 Cookie 存放區，軟體開發套件不會自動新增 AWS WAF 字符，直到下一次重新整理為止。

**`WAFConfiguration`**  
保留 實作的組態`WAFTokenProvider`。當您實作此項目時，您會提供保護套件 (Web ACL) 的整合 URL、要在字符中使用的網域名稱，以及您希望字符提供者使用的任何非預設設定。  
下列清單指定您可以在 `WAFConfiguration` 物件中管理的組態設定。    
**`applicationIntegrationUrl`**   
應用程式整合 URL。從 AWS WAF 主控台或透過 `getWebACL` API 呼叫取得。  
必要：是  
類型：應用程式特定的 URL。對於 iOS，請參閱 [iOS URL](https://developer.apple.com/documentation/foundation/url)。對於 Android，請參閱 [java.net URL](https://docs.oracle.com/javase/7/docs/api/java/net/URL.html)。  
**`backgroundRefreshEnabled`**   
指出您是否希望權杖提供者在背景重新整理權杖。如果您設定此項目，權杖提供者會根據管理自動權杖重新整理活動的組態設定，在背景重新整理權杖。  
必要：否  
類型：`Boolean`  
預設值：`TRUE`  
**`domainName`**   
要在字符中使用的網域，用於字符獲取和 Cookie 儲存。例如 `example.com` 或 `aws.amazon.com`。這通常是與保護套件 (Web ACL) 相關聯的 資源的主機網域，您將在其中傳送 Web 請求。對於 ACFP 受管規則群組 `AWSManagedRulesACFPRuleSet`，這通常是與您在規則群組組態中提供的帳戶建立路徑中的網域相符的單一網域。對於 ATP 受管規則群組 `AWSManagedRulesATPRuleSet`，這通常是與您在規則群組組態中提供的登入路徑中的網域相符的單一網域。  
不允許公有尾碼。例如，您無法使用 `gov.au`或 `co.uk`做為字符網域。  
根據受保護的主機網域和保護套件 (Web ACL) 的字符網域清單，網域必須是 AWS WAF 將接受的網域。如需詳細資訊，請參閱[AWS WAF 保護套件 (Web ACL) 權杖網域清單組態](waf-tokens-domains.md#waf-tokens-domain-lists)。  
必要：是  
類型：`String`  
**`maxErrorTokenRefreshDelayMsec`**   
嘗試失敗後重複權杖重新整理之前等待的時間上限，以毫秒為單位。對於失敗嘗試的每個自動重試，它會新增指數退避，直到指定的輸入延遲時間為止。此值會在字符擷取失敗並重試`maxRetryCount`時間後使用。  
必要：否  
類型：`Integer`  
預設值：`5000`(5 秒）  
允許的最小值： `1` (1 毫秒）  
允許的最大值：`30000`(30 秒）  
**`maxRetryCount`**   
請求權杖時，以指數退避執行的重試次數上限。  
必要：否  
類型：`Integer`  
預設值：`Infinity`  
允許的最小值： `0`  
允許的最大值： `100`  
**`setTokenCookie`**   
指出您是否希望開發套件的 Cookie 管理員將權杖 Cookie 新增至請求和其他區域。  
使用 `TRUE`值：  
+ Cookie 管理員會將權杖 Cookie 新增至路徑位於 中指定路徑下的所有請求`tokenCookiePath`。
+ 除了將權杖載入權杖提供者之外， `WAFTokenProvider`操作還會`loadTokenIntoProvider()`更新 Cookie 存放區中的權杖。
必要：否  
類型：`Boolean`  
預設值：`TRUE`  
**`tokenCookiePath`**   
當 `setTokenCookie`為 時使用`TRUE`。指出您希望開發套件的 Cookie 管理員新增字符 Cookie 的頂層路徑。管理員會將權杖 Cookie 新增至您傳送至此路徑和所有子路徑的所有請求。  
例如，如果您將此設定為 `/web/login`，則管理員會包含傳送至 的所有項目`/web/login`及其任何子路徑的字符 Cookie，例如 `/web/login/help`。它不包含傳送至其他路徑之請求的字符，例如 `/`、 `/web`或 `/web/order`。  
必要：否  
類型：`String`  
預設值：`/`  
**`tokenRefreshDelaySec`**   
用於背景重新整理。背景權杖重新整理之間的秒數上限。  
必要：否  
類型：`Integer`  
預設值：`88`  
允許的最小值： `88`  
允許的最大值：`300`(5 分鐘）

## AWS WAF 行動 SDK 錯誤


本節列出目前 AWS WAF 行動 SDK 版本的可能錯誤。

**`SdkError`**  
無法擷取字符時傳回的錯誤類型。Android 和 iOS 開發套件具有相同的錯誤類型。  
 AWS WAF 行動開發套件具有下列錯誤類型：    
**`invalidChallenge`**  
當字符伺服器傳回無效的挑戰資料，或攻擊者變更回應 Blob 時，會傳回此錯誤。  
**`errorInvokingGetChallengeEndpoint`**  
當字符伺服器傳送不成功的回應碼回用戶端或發生網路錯誤時，會傳回此錯誤。  
**`invalidVerifyChallengeResponse`**  
當`aws-waf-token`從 AWS WAF 伺服器的驗證回應擷取 時發生錯誤，或伺服器回應遭到竄改時，就會傳回此錯誤。  
**`errorInvokingVerifyEndpoint`**  
當用戶端在驗證已解決的挑戰時收到 AWS WAF 伺服器或網路錯誤的回應時，會傳回此錯誤。  
**`internalError`**  
此錯誤會在 SDK 本身可能發生的所有其他錯誤上傳回。

**`socketTimeoutException`**  
在權杖擷取期間遇到網路錯誤時，通常會傳回此錯誤。  
此錯誤可能由下列原因造成：  
+ 低網路頻寬：確認您的網路連線設定
+ 變動的應用程式整合 URL：確認整合 URL 未從 AWS WAF 主控台上顯示的內容修改

# AWS WAF 行動開發套件的運作方式
Mobile SDK 的運作方式

本節說明 AWS WAF 行動 SDK 類別、屬性和操作如何一起運作。

行動SDKs為您提供可設定的字符提供者，可用於字符擷取和使用。字符提供者會驗證您允許的請求是否來自合法客戶。當您將請求傳送至 AWS 您保護的資源時 AWS WAF，您會在 Cookie 中包含權杖，以驗證請求。您可以手動處理權杖 Cookie，或讓權杖提供者為您處理權杖 Cookie。

本節涵蓋行動 SDK 中包含的類別、屬性和方法之間的互動。如需 SDK 規格，請參閱 [AWS WAF 行動 SDK 規格](waf-mobile-sdk-specification.md)。

## 權杖擷取和快取
權杖擷取和快取

當您在行動應用程式中建立權杖提供者執行個體時，您可以設定其管理權杖和權杖擷取的方式。您的主要選擇是如何維護有效、未過期的字符，以便在應用程式的 Web 請求中使用：
+ **已啟用背景重新整理** – 這是預設值。權杖提供者會在背景自動重新整理權杖並快取權杖。啟用背景重新整理後，當您呼叫 時`getToken()`，操作會擷取快取的字符。

  權杖提供者會以可設定的間隔執行權杖重新整理，讓未過期的權杖在應用程式作用中時一律可在快取中使用。當您的應用程式處於非作用中狀態時，背景重新整理會暫停。如需詳細資訊，請參閱 [在應用程式閒置後擷取字符](#waf-mobile-sdk-how-back-from-inactive)。
+ **背景重新整理已停用** – 您可以停用背景字符重新整理，然後僅隨需擷取字符。隨需擷取的權杖不會快取，您可以視需要擷取多個權杖。每個字符與您擷取的任何其他字符無關，每個字符都有自己的時間戳記，用於計算過期。

  停用背景重新整理時，您有下列權杖擷取選項：
  + **`getToken()`** – 當您呼叫`getToken()`時停用背景重新整理，呼叫會從中同步擷取新的字符 AWS WAF。如果您在主執行緒上調用應用程式回應能力，這可能會封鎖呼叫。
  + **`onTokenReady(WAFTokenResultCallback)`** – 此呼叫會以非同步方式擷取新的權杖，然後在權杖就緒時，在背景執行緒中調用提供的結果回呼。

### 字符提供者如何重試失敗的字符擷取
失敗的字符擷取重試

當擷取失敗時，字符提供者會自動重試字符擷取。一開始會使用指數退避執行重試，起始重試等待時間為 100 毫秒。如需指數重試的相關資訊，請參閱[錯誤重試和指數退避 AWS](https://docs.aws.amazon.com/general/latest/gr/api-retries.html)。

當重試次數達到設定的 時`maxRetryCount`，字符提供者會停止嘗試或切換為每`maxErrorTokenRefreshDelayMsec`毫秒嘗試一次，取決於字符擷取的類型：
+ **`onTokenReady()`** – 權杖提供者會在嘗試之間切換到等待`maxErrorTokenRefreshDelayMsec`毫秒，並繼續嘗試擷取權杖。
+ **背景重新整理** – 權杖提供者會在嘗試之間切換到等待`maxErrorTokenRefreshDelayMsec`毫秒，並繼續嘗試擷取權杖。
+ **停用背景重新整理時的隨需`getToken()`呼叫** – 權杖提供者會停止嘗試擷取權杖，並傳回先前的權杖值，如果沒有先前的權杖，則會傳回 null 值。

## 字符擷取重試案例
字符擷取重試案例

當字符提供者嘗試擷取字符時，根據字符擷取在字符擷取流程中失敗的位置，可能會導致自動重試。本節列出您可能會看到自動重試的可能位置。
+ **透過 /inputs 或 /verify 取得或驗證 AWS WAF 挑戰：**
  + 當取得和驗證 AWS WAF 挑戰的請求提出且失敗時，可能會導致自動重試。
  + 您可能會看到自動重試與`socketTimeoutException`錯誤一起發生。這可能有多個原因，包括：
    + 低網路頻寬：確認您的網路連線設定
    + 變動的應用程式整合 URL：確認整合 URL 未從 AWS WAF 主控台上顯示的內容修改
  + 可使用 `maxRetryCount()`函數設定自動重試計數
+ **重新整理權杖：**
  + 透過權杖處理常式提出重新整理權杖的請求時，可能會導致自動重試。
  + 此處的自動重試計數可透過 `maxRetryCount()`函數設定。

設定 可進行沒有自動重試的組態`maxRetryCount(0)`。

## 字符抑制時間和背景重新整理
權杖防禦和重新整理

您在 Web ACL 中設定的字符抗擾性時間與您在 AWS WAF 行動 SDK 中設定的字符重新整理間隔無關。當您啟用背景重新整理時，軟體開發套件會在您使用 指定的間隔重新整理字符`tokenRefreshDelaySec()`。這可能會導致多個有效的字符同時存在，取決於您設定的抗擾性時間。

若要防止多個有效字符，您可以停用背景重新整理，並使用 `getToken()`函數來管理行動應用程式中的字符生命週期。

## 在應用程式閒置後擷取字符
在應用程式閒置後擷取字符

只有在您的應用程式視為應用程式類型的作用中時，才會執行背景重新整理：
+ **iOS** – 背景重新整理會在應用程式位於前景時執行。
+ **Android** – 背景重新整理會在應用程式未關閉時執行，無論是在前景或背景中。

如果您的應用程式保持在不支援背景重新整理的任何狀態超過設定的`tokenRefreshDelaySec`秒數，字符提供者會暫停背景重新整理。例如，對於 iOS 應用程式，如果 `tokenRefreshDelaySec`是 300 且應用程式關閉或進入背景超過 300 秒，字符提供者會停止重新整理字符。當應用程式返回作用中狀態時，字符提供者會自動重新啟動背景重新整理。

當您的應用程式回到作用中狀態時，請呼叫 `onTokenReady()`，以便在權杖提供者擷取和快取新的權杖時收到通知。不要只呼叫 `getToken()`，因為快取可能尚未包含目前有效的字符。

## 應用程式整合 URL
應用程式整合 URL

 AWS WAF 行動 SDK 應用程式整合 URL 指向您已啟用的應用程式整合的 Web ACL。此 URL 會將請求路由至正確的後端伺服器，並將其與您的客戶建立關聯。它不做為硬式安全控制，因此公開整合 URL 不會帶來安全風險。

您可以在技術上修改提供的整合 URL，但仍取得權杖。不過，我們不建議這麼做，因為您可能會失去對挑戰解決率的可見性，或遇到字符擷取失敗並`socketTimeoutException`發生錯誤。

## 相依性
相依性

每個可下載 AWS WAF 的行動 SDK 都包含一個 README 檔案，列出其特定版本 SDK 的相依性。如需行動 SDK 版本的相依性，請參閱 README。

## Obfuscation/ProGuard （僅限 Android 開發套件）
混淆/ProGuard

如果您使用 ProGuard 之類的混淆或縮小產品，您可能需要排除某些命名空間，以確保行動 SDK 正常運作。檢查行動開發套件版本的 README，以尋找命名空間和排除規則的清單。

# AWS WAF 行動 SDK 的程式碼範例
Mobile SDK 的程式碼範例AWS WAF Mobile SDK Android Kotlin 程式碼範例

新增以 Kotlin 為基礎的 Android 整合的範例程式碼。

本節提供使用行動 SDK 的程式碼範例。

## 初始化權杖提供者並取得權杖
初始化權杖提供者並取得權杖

您可以使用組態物件啟動權杖提供者執行個體。然後，您可以使用可用的操作擷取權杖。以下顯示必要程式碼的基本元件。

------
#### [ iOS ]

```
let url: URL = URL(string: "protection pack (web ACL) integration URL")!
let configuration = WAFConfiguration(applicationIntegrationUrl: url, domainName: "Domain name")
let tokenProvider = WAFTokenProvider(configuration)

//onTokenReady can be add as an observer for UIApplication.willEnterForegroundNotification
self.tokenProvider.onTokenReady() { token, error in
	if let token = token {
	//token available
	}

	if let error = error {
	//error occurred after exhausting all retries
	}
}

//getToken()
let token = tokenProvider.getToken()
```

------
#### [ Android ]

Java 範例：

```
String applicationIntegrationURL = "protection pack (web ACL) integration URL";
//Or
URL applicationIntegrationURL = new URL("protection pack (web ACL) integration URL");

String domainName = "Domain name";

WAFConfiguration configuration = WAFConfiguration.builder().applicationIntegrationURL(applicationIntegrationURL).domainName(domainName).build();
WAFTokenProvider tokenProvider = new WAFTokenProvider(Application context, configuration);

// implement a token result callback
WAFTokenResultCallback callback = (wafToken, error) -> {
	if (wafToken != null) {
	// token available
	} else {  
	// error occurred in token refresh  
	}
};

// Add this callback to application creation or activity creation where token will be used
tokenProvider.onTokenReady(callback);

// Once you have token in token result callback
// if background refresh is enabled you can call getToken() from same tokenprovider object
// if background refresh is disabled you can directly call getToken()(blocking call) for new token
WAFToken token = tokenProvider.getToken();
```

Kotlin 範例：

```
import com.amazonaws.waf.mobilesdk.token.WAFConfiguration
import com.amazonaws.waf.mobilesdk.token.WAFTokenProvider

private lateinit var wafConfiguration: WAFConfiguration
private lateinit var wafTokenProvider: WAFTokenProvider

private val WAF_INTEGRATION_URL = "protection pack (web ACL) integration URL"
private val WAF_DOMAIN_NAME = "Domain name"

fun initWaf() {
	// Initialize the tokenprovider instance
	val applicationIntegrationURL = URL(WAF_INTEGRATION_URL)
	wafConfiguration =
		WAFConfiguration.builder().applicationIntegrationURL(applicationIntegrationURL)
			.domainName(WAF_DOMAIN_NAME).backgroundRefreshEnabled(true).build()
	wafTokenProvider = WAFTokenProvider(getApplication(), wafConfiguration)
	
		// getToken from tokenprovider object
		println("WAF: "+ wafTokenProvider.token.value)
	
		// implement callback for where token will be used
		wafTokenProvider.onTokenReady {
			wafToken, sdkError ->
		run {
			println("WAF Token:" + wafToken.value)
		}
	}
}
```

------

## 允許 SDK 在 HTTP 請求中提供字符 Cookie
允許 SDK 提供字符 Cookie

如果 `setTokenCookie`是 `TRUE`，權杖提供者會在 Web 請求中，將權杖 Cookie 包含到 中指定路徑下的所有位置`tokenCookiePath`。根據預設，`setTokenCookie` 為 `TRUE`，而 `tokenCookiePath`為 `/`。

您可以透過指定字符 Cookie 路徑來縮小包含字符 Cookie 的請求範圍，例如 `/web/login`。如果您這樣做，請檢查您的 AWS WAF 規則是否在您傳送至其他路徑的請求中檢查字符。使用`AWSManagedRulesACFPRuleSet`規則群組時，您可以設定帳戶註冊和建立路徑，而規則群組會檢查傳送至這些路徑之請求中的字符。如需詳細資訊，請參閱[將 ACFP 受管規則群組新增至 Web ACL](waf-acfp-rg-using.md)。同樣地，當您使用`AWSManagedRulesATPRuleSet`規則群組時，您可以設定登入路徑，而規則群組會檢查傳送至該路徑之請求中的字符。如需詳細資訊，請參閱[將 ATP 受管規則群組新增至保護套件 (Web ACL)](waf-atp-rg-using.md)。

------
#### [ iOS ]

當 `setTokenCookie`為 時`TRUE`，字符提供者會將 AWS WAF 字符存放在 中，`HTTPCookieStorage.shared`並在對您在 中指定的網域的請求中自動包含 Cookie`WAFConfiguration`。

```
let request = URLRequest(url: URL(string: domainEndpointUrl)!)
//The token cookie is set automatically as cookie header
let task = URLSession.shared.dataTask(with: request) { data, urlResponse, error  in
}.resume()
```

------
#### [ Android ]

當 `setTokenCookie`為 時`TRUE`，字符提供者會將 AWS WAF 字符存放在整個共用應用程式的`CookieHandler`執行個體中。權杖提供者會自動將 Cookie 包含在對您在 中指定之網域的請求中`WAFConfiguration`。

Java 範例：

```
URL url = new URL("Domain name");
//The token cookie is set automatically as cookie header
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.getResponseCode();
```

Kotlin 範例：

```
val url = URL("Domain name")
//The token cookie is set automatically as cookie header
val connection = (url.openConnection() as HttpsURLConnection)
connection.responseCode
```

如果您已初始化`CookieHandler`預設執行個體，字符提供者將使用它來管理 Cookie。如果沒有，字符提供者將使用 AWS WAF 字符初始化新的`CookieManager`執行個體，`CookiePolicy.ACCEPT_ORIGINAL_SERVER`然後將此新執行個體設定為 中的預設執行個體`CookieHandler`。

下列程式碼顯示 SDK 如何在您的應用程式中無法使用 Cookie 管理員和 Cookie 處理常式時初始化 Cookie 管理員和 Cookie 處理常式。

Java 範例：

```
CookieManager cookieManager = (CookieManager) CookieHandler.getDefault();
if (cookieManager == null) {
	// Cookie manager is initialized with CookiePolicy.ACCEPT_ORIGINAL_SERVER
	cookieManager = new CookieManager();
	CookieHandler.setDefault(cookieManager);
}
```

Kotlin 範例：

```
var cookieManager = CookieHandler.getDefault() as? CookieManager
if (cookieManager == null) {
	// Cookie manager is initialized with CookiePolicy.ACCEPT_ORIGINAL_SERVER
	cookieManager = CookieManager()
	CookieHandler.setDefault(cookieManager)
}
```

------

## 在 HTTP 請求中手動提供字符 Cookie
手動提供字符 Cookie

如果您將 `setTokenCookie`設定為 `FALSE`，則需要在對受保護端點的請求中，以 Cookie HTTP 請求標頭的形式手動提供字符 Cookie。下列程式碼示範如何執行此操作。

------
#### [ iOS ]

```
var request = URLRequest(url: wafProtectedEndpoint)
request.setValue("aws-waf-token=token from token provider", forHTTPHeaderField: "Cookie")
request.httpShouldHandleCookies = true
URLSession.shared.dataTask(with: request) { data, response, error in }
```

------
#### [ Android ]

Java 範例：

```
URL url = new URL("Domain name");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
String wafTokenCookie = "aws-waf-token=token from token provider";
connection.setRequestProperty("Cookie", wafTokenCookie);
connection.getInputStream();
```

Kotlin 範例：

```
val url = URL("Domain name")
val connection = (url.openConnection() as HttpsURLConnection)
val wafTokenCookie = "aws-waf-token=token from token provider"
connection.setRequestProperty("Cookie", wafTokenCookie)
connection.inputStream
```

------

# CAPTCHA 和 Challenge 中的 AWS WAF
CAPTCHA 和 ChallengeAWS WAF 新Challenge規則動作選項

您可以設定規則來使用 Challenge，以確認瀏覽器正在傳送請求。AWS WAF 新CAPTCHA規則動作選項

您可以設定規則，針對 Web 請求執行 CAPTCHA，並視需要將 CAPTCHA 問題傳送至用戶端。CAPTCHA 和 Challenge動作

新增說明，說明瀏覽器用戶端需要 HTTPS 來執行 CAPTCHA 拼圖和靜音挑戰。

本節說明如何Challenge使用 CAPTCHA和 AWS WAF。

您可以設定 AWS WAF 規則，針對符合規則檢查條件的 Web 請求執行 CAPTCHA或 Challenge動作。您也可以編寫 JavaScript 用戶端應用程式程式，以在本機執行 CAPTCHA 拼圖和瀏覽器挑戰。

CAPTCHA 拼圖和無提示挑戰只能在瀏覽器存取 HTTPS 端點時執行。瀏覽器用戶端必須在安全的內容中執行，才能取得字符。
+ **CAPTCHA** – 要求最終使用者解決 CAPTCHA 拼圖，以證明人類正在傳送請求。CAPTCHA 拼圖旨在讓人類能夠輕鬆快速地順利完成，讓電腦能夠順利完成，或隨機地完成任何有意義的成功率。

  在保護套件 (Web ACL) 規則中，當Block動作停止太多合法請求時，通常會使用 CAPTCHA，但讓所有流量通過 會導致無法接受的高度不需要的請求，例如來自機器人的請求。如需規則動作行為的資訊，請參閱 [和 AWS WAF CAPTCHAChallenge規則動作的運作方式](waf-captcha-and-challenge-how-it-works.md)。

  您也可以在用戶端應用程式整合 APIs 中編寫 CAPTCHA 拼圖實作的程式。執行此操作時，您可以自訂用戶端應用程式中拼圖的行為和位置。如需詳細資訊，請參閱[中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)。
+ **Challenge** – 執行靜音挑戰，要求用戶端工作階段驗證其是否為瀏覽器，而非機器人。驗證會在背景執行，而不涉及最終使用者。這是驗證您懷疑是無效的用戶端的好選項，而不會對 CAPTCHA 拼圖的最終使用者體驗產生負面影響。如需規則動作行為的資訊，請參閱 [和 AWS WAF CAPTCHAChallenge規則動作的運作方式](waf-captcha-and-challenge-how-it-works.md)。

  Challenge 規則動作類似於用戶端智慧型威脅整合 APIs執行的挑戰，如 中所述[中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)。

**注意**  
當您在其中一個規則中使用 CAPTCHA或 Challenge 規則動作，或做為規則群組中的規則動作覆寫時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

如需所有規則動作選項的說明，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)。

**Topics**
+ [

# AWS WAF CAPTCHA 拼圖
](waf-captcha-puzzle.md)
+ [

# 和 AWS WAF CAPTCHAChallenge規則動作的運作方式
](waf-captcha-and-challenge-how-it-works.md)
+ [

# 使用 CAPTCHA和 Challenge動作的最佳實務
](waf-captcha-and-challenge-best-practices.md)

# AWS WAF CAPTCHA 拼圖
CAPTCHA 拼圖擴展 AWS WAF CAPTCHA 拼圖的語言選項

CAPTCHA 拼圖現在以多種語言提供其書面指示。每個音訊拼圖內的指示仍僅以英文提供。

本節說明 AWS WAF CAPTCHA 拼圖的特徵和功能。

AWS WAF 提供標準 CAPTCHA 功能，可挑戰使用者確認他們是人類。CAPTCHA 代表完全自動化公有 Turing 測試，以告知電腦和人類。CAPTCHA 拼圖旨在驗證人類是否正在傳送請求，並防止 Web 抓取、登入資料填充和垃圾郵件等活動。CAPTCHA 拼圖無法除去所有不需要的請求。許多拼圖已使用機器學習和人工智慧解決。為了避免 CAPTCHA，某些組織使用人工介入來補充自動化技術。儘管如此，CAPTCHA 仍然是一個有用的工具，可防止較不複雜的機器人流量，並增加大規模操作所需的資源。

AWS WAF 會隨機產生其 CAPTCHA 拼圖並輪換它們，以確保使用者遇到獨特的挑戰。 會 AWS WAF 定期新增新的拼圖類型和樣式，以保持對自動化技術的有效。除了拼圖之外， AWS WAF CAPTCHA 指令碼還會收集有關用戶端的資料，以確保任務是由人類完成，並防止重播攻擊。

每個 CAPTCHA 拼圖都包含一組標準控制項，供最終使用者請求新的拼圖、切換音訊和視覺拼圖、存取其他指示，以及提交拼圖解決方案。所有拼圖都支援螢幕閱讀器、鍵盤控制和對比顏色。

 AWS WAF CAPTCHA 拼圖符合 Web Content Accessibility Guidelines (WCAG) 的要求。如需詳細資訊，請參閱 全球[資訊網協會 (W3C) 網站上的 Web 內容存取指導方針 (WCAG) 概觀](https://www.w3.org/WAI/standards-guidelines/wcag/)。

**Topics**
+ [

# CAPTCHA 拼圖語言支援
](waf-captcha-puzzle-language-support.md)
+ [

# CAPTCHA 拼圖範例
](waf-captcha-puzzle-examples.md)

# CAPTCHA 拼圖語言支援
語言支援AWS WAF CAPTCHA 拼圖音訊

CAPTCHA 拼圖的音訊版本現在支援多種語言。

本節列出 AWS WAF CAPTCHA 拼圖支援的語言。

CAPTCHA 拼圖以用戶端瀏覽器語言或不支援瀏覽器語言的英文撰寫指示開始。拼圖透過下拉式選單提供替代語言選項。

使用者可以透過選取頁面底部的耳機圖示來切換到音訊指示。拼圖的音訊版本提供有關使用者應在文字方塊中輸入的文字的口語說明，被背景雜訊覆蓋。

下表列出您可以在 CAPTCHA 拼圖中為撰寫指示選擇的語言，以及每個選擇的音訊支援。


**AWS WAF CAPTCHA 拼圖支援的語言**  

| 支援書面指示 | 地區設定程式碼 | 音訊指示支援 | 
| --- | --- | --- | 
|  Arabic  |  ar-SA  |  Arabic  | 
|  簡體中文  |  zh-CN  |  英文音訊  | 
|  荷蘭文  |  nl-NL  |  荷蘭文  | 
|  英文  |  zh-TW  |  英文  | 
|  法文  |  fr-FR  |  法文  | 
|  德文  |  de-DE  |  德文  | 
|  義大利文  |  it-IT  |  義大利文  | 
|  日文  |  ja-JP  |  英文音訊  | 
|  巴西葡萄牙文  |  pt-BR  |  巴西葡萄牙文  | 
|  西班牙文  |  es-ES  |  西班牙文  | 
|  Turkish  |  tr-TR  |  Turkish  | 

# CAPTCHA 拼圖範例
拼圖範例

典型的視覺化 CAPTCHA 拼圖需要互動，以顯示使用者可以理解並與一或多個影像互動。

下列螢幕擷取畫面顯示圖片網格拼圖的範例。此拼圖要求您選取網格中包含特定類型物件的所有圖片。

![\[螢幕包含標題「讓我們確認您是人類」和文字「選擇所有椅子」。文字下方是 3x3 的影像網格，其中一些包含椅子和其他包含非椅子物件的物體，例如床和窗戶。在畫面底部是載入不同拼圖的選項、將資訊方塊切換到檢視和不檢視、切換到音訊拼圖，以及變更語言。底部還有「確認」按鈕。\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/images/CAPTCHAPuzzleGrid.png)


音訊拼圖提供背景雜訊，加上有關使用者應在文字方塊中輸入之文字的語音指示。

下列螢幕擷取畫面顯示音訊拼圖選項的顯示。

![\[畫面包含標題「解決拼圖」和文字「按一下播放以聆聽指示」。文字下方是顯示播放按鈕的影像。影像下方是文字「鍵盤音訊切換：alt + space」。以下是標題「輸入您的回應」及其下方的文字輸入方塊。開啟的資訊方塊具有文字「透過聆聽錄音並在文字方塊中輸入您的答案來解決。」 在畫面底部是載入不同拼圖的選項，將資訊方塊切換到檢視和不檢視，然後切換到視覺拼圖。底部還有「提交」按鈕。\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/images/CAPTCHAPuzzleAudio.png)




# 和 AWS WAF CAPTCHAChallenge規則動作的運作方式
規則動作的運作方式

本節說明 CAPTCHA和 Challenge 的運作方式。

AWS WAF CAPTCHA 和 Challenge是標準規則動作，因此相對容易實作。若要使用其中一個規則，您可以建立規則的檢查條件，以識別您要檢查的請求，然後指定兩個規則動作之一。如需規則動作選項的一般資訊，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)。

除了從伺服器端實作無提示挑戰和 CAPTCHA 拼圖之外，您還可以在 JavaScript 和 iOS 和 Android 用戶端應用程式中整合無提示挑戰，並在 JavaScript 用戶端中轉譯 CAPTCHA 拼圖。這些整合可讓您為最終使用者提供更好的效能和 CAPTCHA 拼圖體驗，並可降低使用規則動作和智慧型威脅緩解規則群組的相關成本。如需關於這些選項的詳細資訊，請參閱 [中的用戶端應用程式整合 AWS WAF](waf-application-integration.md)。如需定價資訊，請參閱 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

**Topics**
+ [

# CAPTCHA 和 Challenge動作行為
](waf-captcha-and-challenge-actions.md)
+ [

# CAPTCHA 日誌和指標中的 和 Challenge動作
](waf-captcha-and-challenge-logs-metrics.md)

# CAPTCHA 和 Challenge動作行為
動作行為

本節說明 CAPTCHA和 Challenge動作的功能。

當 Web 請求符合具有 CAPTCHA或 Challenge動作之規則的檢查條件時， 會根據其權杖和豁免時間組態的狀態， AWS WAF 決定如何處理請求。 AWS WAF 也會考慮請求是否可以處理 CAPTCHA 拼圖或挑戰指令碼間質。指令碼設計成以 HTML 內容處理，而且只能由預期使用 HTML 內容的用戶端正確處理。

**注意**  
當您在其中一個規則中使用 CAPTCHA或 Challenge 規則動作，或做為規則群組中的規則動作覆寫時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

**動作如何處理 Web 請求**  
AWS WAF 會將 CAPTCHA或 Challenge動作套用至 Web 請求，如下所示：
+ **有效的字符** – AWS WAF 處理類似 Count動作。 AWS WAF 會套用您為規則動作設定的任何標籤和請求自訂，然後繼續使用保護套件 (Web ACL) 中的其餘規則來評估請求。
+ **缺少、無效或過期的權杖** – AWS WAF 停止請求的保護套件 (Web ACL) 評估，並阻止它前往其預期目的地。

  AWS WAF 會根據規則動作類型，產生傳回用戶端的回應：
  + **Challenge** – AWS WAF 在回應中包含下列項目：
    + 具有 `challenge` 值的標頭 `x-amzn-waf-action`。
**注意**  
對於在用戶端瀏覽器中執行的 Javascript 應用程式，此標頭僅適用於應用程式的網域。標頭不適用於跨網域擷取。如需詳細資訊，請參閱以下章節。
    + HTTP 狀態碼 `202 Request Accepted`。
    + 如果請求包含具有 `text/html` 值的 `Accept` 標頭，回應將包含 JavaScript 插入式頁面和挑戰指令碼。
  + **CAPTCHA** –在回應中 AWS WAF 包含下列項目：
    + 具有 `captcha` 值的標頭 `x-amzn-waf-action`。
**注意**  
對於在用戶端瀏覽器中執行的 Javascript 應用程式，此標頭僅適用於應用程式的網域。標頭不適用於跨網域擷取。如需詳細資訊，請參閱以下章節。
    + HTTP 狀態碼 `405 Method Not Allowed`。
    + 如果請求包含值為 的 `Accept` 標頭`text/html`，回應會包含 JavaScript 頁面與 CAPTCHA 指令碼的間質。

若要在保護套件 (Web ACL) 或規則層級設定權杖過期的時間，請參閱 [在 中設定時間戳記過期和字符豁免時間 AWS WAF](waf-tokens-immunity-times.md)。

**在用戶端瀏覽器中執行的 JavaScript 應用程式無法使用標頭**  
當 AWS WAF 使用 CAPTCHA 或挑戰回應回應用戶端請求時，它不包含跨來源資源共用 (CORS) 標頭。CORS 標頭是一組存取控制標頭，可告知用戶端 Web 瀏覽器哪些網域、HTTP 方法和 HTTP 標頭可供 JavaScript 應用程式使用。如果沒有 CORS 標頭，在用戶端瀏覽器中執行的 JavaScript 應用程式不會獲得 HTTP 標頭的存取權，因此 無法讀取 CAPTCHA和 Challenge回應中提供的`x-amzn-waf-action`標頭。

**挑戰和 CAPTCHA 中介裝置的作用**  
當挑戰間質執行時，在用戶端成功回應之後，如果它還沒有權杖，則間質會為其初始化一個權杖。然後，它會使用挑戰求解時間戳記來更新權杖。

當 CAPTCHA 執行個體執行時，如果用戶端還沒有權杖，CAPTCHA 執行個體會先叫用挑戰指令碼來挑戰瀏覽器並初始化權杖。然後，間質會執行其 CAPTCHA 拼圖。當最終使用者成功完成拼圖時，間質會使用 CAPTCHA 求解時間戳記更新字符。

在這兩種情況下，在用戶端成功回應且指令碼更新字符之後，指令碼會使用更新的字符重新提交原始 Web 請求。

您可以設定 AWS WAF 如何處理字符。如需相關資訊，請參閱[用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。

# CAPTCHA 日誌和指標中的 和 Challenge動作
日誌和指標

本節說明 AWS WAF 如何處理 和 Challenge動作的記錄CAPTCHA和指標。

CAPTCHA 和 Challenge動作可以是非終止的，例如 Count，或是終止的，例如 Block。結果取決於請求是否具有動作類型具有未過期時間戳記的有效權杖。
+ **有效字符** – 當動作找到有效的字符且未封鎖請求時， 會 AWS WAF 擷取指標和日誌，如下所示：
  + 遞增 `CaptchaRequests`和 `RequestsWithValidCaptchaToken`或 `ChallengeRequests`和 的指標`RequestsWithValidChallengeToken`。
  + 將相符項目記錄為具有 CAPTCHA或 動作`nonTerminatingMatchingRules`的項目Challenge。下列清單顯示此類型符合 CAPTCHA動作之日誌的 區段。

    ```
        "nonTerminatingMatchingRules": [
        {
          "ruleId": "captcha-rule",
          "action": "CAPTCHA",
          "ruleMatchDetails": [],
          "captchaResponse": {
            "responseCode": 0,
            "solveTimestamp": 1632420429
          }
        }
      ]
    ```
+ 權**杖遺失、無效或過期** – 當動作因權杖遺失或無效而封鎖請求時， 會 AWS WAF 擷取指標和日誌，如下所示：
  + 遞增 `CaptchaRequests`或 的指標`ChallengeRequests`。
  + 將相符項目記錄為具有 HTTP `405` 狀態碼`CaptchaResponse`的項目，或記錄為具有 HTTP `202` 狀態碼`ChallengeResponse`的項目。日誌指出請求是否缺少字符或時間戳記已過期。日誌也會指出是 AWS WAF 將 CAPTCHA 間質頁面傳送至用戶端，還是將無提示挑戰傳送至用戶端瀏覽器。下列清單顯示此類型符合 CAPTCHA動作之日誌的區段。

    ```
        "terminatingRuleId": "captcha-rule",
        "terminatingRuleType": "REGULAR",
        "action": "CAPTCHA",
        "terminatingRuleMatchDetails": [],
        ...
        "responseCodeSent": 405,
        ...
        "captchaResponse": {
          "responseCode": 405,
          "solveTimestamp": 0,
          "failureReason": "TOKEN_MISSING"
        }
    ```

如需 AWS WAF 日誌的相關資訊，請參閱 [記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。

如需 AWS WAF 指標的資訊，請參閱 [AWS WAF 指標和維度](waf-metrics.md)。

如需規則動作選項的一般資訊，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)。

**沒有字符的請求似乎在日誌和指標中顯示兩次**  
根據本節所述的 [CAPTCHA 和 Challenge動作行為](waf-captcha-and-challenge-actions.md)和記錄和指標，沒有字符的請求通常會在日誌和指標中表示兩次。這是因為用戶端實際上傳送了兩次預期的請求。
+ 第一個沒有字符的請求會收到上述針對字符遺失、無效或過期的記錄和指標處理。CAPTCHA 或 Challenge動作會終止此第一個請求，然後以無提示挑戰或 CAPTCHA 拼圖回應用戶端。
+ 用戶端會評估挑戰或拼圖，如果用戶端瀏覽器或最終使用者成功回應， 會使用新取得的字符再次傳送請求。對於具有有效字符的請求，第二個請求會收到上述的記錄和指標處理。

# 使用 CAPTCHA和 Challenge動作的最佳實務
CAPTCHA 和Challenge最佳實務

遵循本節中的指引來規劃和實作 AWS WAF CAPTCHA 或挑戰。

**規劃 CAPTCHA 和挑戰實作**  
根據您的網站使用情況、您要保護之資料的敏感度，以及請求類型，決定放置 CAPTCHA 拼圖或無提示挑戰的位置。選取您將套用 CAPTCHA 的請求，以便您視需要呈現拼圖，但避免在沒有用的地方呈現它們，並可能降低使用者體驗。使用 Challenge動作來執行對最終使用者影響較小的無提示挑戰，但仍有助於驗證請求是否來自啟用 JavaScript 的瀏覽器。

CAPTCHA 拼圖和無提示挑戰只能在瀏覽器存取 HTTPS 端點時執行。瀏覽器用戶端必須在安全的內容中執行，才能取得字符。

**決定在用戶端上執行 CAPTCHA 拼圖和靜音挑戰的位置**  
識別您不想受到 CAPTCHA 影響的請求，例如 CSS 或映像的請求。僅在必要時使用 CAPTCHA。例如，如果您計劃在登入時進行 CAPTCHA 檢查，且使用者一律直接從登入另一個畫面取得，則可能不需要在第二個畫面中進行 CAPTCHA 檢查，而且可能會降低您的最終使用者體驗。

設定 Challenge和 CAPTCHA 使用 ，以便 AWS WAF 只會傳送 CAPTCHA 拼圖和靜音挑戰以回應`GET``text/html`請求。您無法執行拼圖或挑戰來回應`POST`請求、跨來源資源共享 (CORS) 預檢`OPTIONS`請求或任何其他非`GET`請求類型。其他請求類型的瀏覽器行為可能會有所不同，且可能無法正確處理間質。

用戶端可以接受 HTML，但仍無法處理 CAPTCHA 或挑戰間質。例如，具有小型 iFrame 的網頁上的小工具可能接受 HTML，但無法顯示 CAPTCHA 或處理它。避免為這些類型的請求放置規則動作，與不接受 HTML 的請求相同。

**使用 CAPTCHA或 Challenge來驗證先前的權杖取得**  
您只能在合法使用者應一律擁有有效權杖的位置，使用規則動作來驗證有效權杖是否存在。在這些情況下，請求是否可以處理間質並不重要。

例如，如果您實作 JavaScript 用戶端應用程式 CAPTCHA API，並在將第一個請求傳送到受保護的端點之前立即在用戶端上執行 CAPTCHA 拼圖，您的第一個請求應一律包含對挑戰和 CAPTCHA 有效的字符。如需 JavaScript 用戶端應用程式整合的資訊，請參閱 [AWS WAF JavaScript 整合](waf-javascript-api.md)。

在這種情況下，您可以在保護套件 (Web ACL) 中新增與此第一次呼叫相符的規則，並使用 Challenge或 CAPTCHA規則動作進行設定。當規則符合合法最終使用者和瀏覽器時，動作會找到有效的字符，因此不會封鎖請求或傳送挑戰或 CAPTCHA 拼圖以回應。如需規則動作如何運作的詳細資訊，請參閱 [CAPTCHA 和 Challenge動作行為](waf-captcha-and-challenge-actions.md)。

**使用 CAPTCHA和 保護您的敏感非 HTML 資料 Challenge**  
您可以使用 CAPTCHA 和 Challenge保護來保護敏感的非 HTML 資料，例如 APIs，方法如下。

1. 識別接受 HTML 回應的請求，以及在您敏感、非 HTML 資料請求附近執行的請求。

1. 撰寫符合 HTML 請求的 CAPTCHA或 Challenge規則，以及符合敏感資料請求的 或 規則。

1. 調校您的 CAPTCHA和 Challenge 抗擾性時間設定，以便對於一般使用者互動，用戶端從 HTML 請求取得的權杖可在其對敏感資料的請求中使用且未過期。如需調校資訊，請參閱 [在 中設定時間戳記過期和字符豁免時間 AWS WAF](waf-tokens-immunity-times.md)。

當您的敏感資料請求符合 CAPTCHA或 Challenge規則時，如果用戶端仍具有先前拼圖或挑戰中的有效權杖，則不會將其封鎖。如果字符不可用或時間戳記已過期，存取敏感資料的請求將會失敗。如需規則動作如何運作的詳細資訊，請參閱 [CAPTCHA 和 Challenge動作行為](waf-captcha-and-challenge-actions.md)。

**使用 CAPTCHA 和 Challenge來調整現有的規則**  
檢閱現有的規則，查看您是否要更改或新增規則。以下是一些需要考慮的常見案例。
+ 如果您有封鎖流量的速率型規則，但速率限制相對較高，以避免封鎖合法使用者，請考慮在封鎖規則之後新增第二個速率型規則。為第二個規則提供比封鎖規則更低的限制，並將規則動作設定為 CAPTCHA或 Challenge。封鎖規則仍會封鎖速率太高的請求，而新規則會以更低的速率封鎖大多數自動化流量。如需速率型規則的相關資訊，請參閱 [在 中使用以速率為基礎的規則陳述式 AWS WAF](waf-rule-statement-type-rate-based.md)。
+ 如果您有封鎖請求的受管規則群組，您可以將部分或全部規則的行為從 切換Block到 CAPTCHA或 Challenge。若要這樣做，請在受管規則群組組態中覆寫規則動作設定。如需覆寫規則動作的詳細資訊，請參閱 [規則群組規則動作覆寫](web-acl-rule-group-override-options.md#web-acl-rule-group-override-options-rules)。

**在部署 CAPTCHA 之前測試 CAPTCHA 並挑戰實作**  
至於所有新功能，請遵循 中的指引[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

在測試期間，請檢閱您的字符時間戳記過期要求，並設定您的 Web ACL 和規則層級豁免時間組態，以便在控制網站存取和為客戶提供良好的體驗之間取得良好的平衡。如需相關資訊，請參閱[在 中設定時間戳記過期和字符豁免時間 AWS WAF](waf-tokens-immunity-times.md)。

# 保護 AWS WAF 套件 (Web ACL) 流量的資料保護和記錄
Web 流量的資料保護和記錄與 Amazon Security Lake 整合

您現在可以使用 Security Lake 收集保護套件 (Web ACL) 流量資料。如需詳細資訊，請參閱《*Amazon Security Lake 使用者指南*》中的[從 AWS 服務收集資料](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)。

本節說明您可以搭配 使用的資料記錄、收集和保護選項 AWS WAF。以下為可用選項：
+ **記錄** – 您可以設定保護套件 (Web ACL)，將 Web 請求流量的日誌傳送至您選擇的記錄目的地。您可以為此選項設定欄位修訂和篩選。記錄會使用套用任何資料保護設定後可用的資料。

  如需此選項的詳細資訊，請參閱[記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。
+ **請求取樣** – 您可以設定保護套件 (Web ACL) 來取樣其評估的 Web 請求，以了解應用程式正在接收的流量類型。請求取樣會使用套用任何資料保護設定後可用的資料。

  如需此選項的詳細資訊，請參閱[檢視 Web 請求的範例](web-acl-testing-view-sample.md)。
+ **Amazon Security Lake** – 您可以設定 Security Lake 來收集保護套件 (Web ACL) 資料。Security Lake 會從各種 AWS 來源收集日誌和事件資料，以進行標準化、分析和管理。Security Lake 從套用任何資料保護設定後可用的資料中收集。

  如需此選項的相關資訊，請參閱《[Amazon Security Lake 使用者指南》中的什麼是 Amazon Security Lake？](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html)以及[從 AWS 服務收集資料](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)。 **

  AWS WAF 不會向您收取使用此選項的費用。如需定價資訊，請參閱《Amazon [Security Lake 使用者指南》中的 Security Lake 定價](https://aws.amazon.com/security-lake/pricing/)和 [Security Lake 定價的判斷方式](https://docs.aws.amazon.com/security-lake/latest/userguide/estimating-costs.html)。 **
+ **資料保護** – 您可以在兩個層級設定 Web 流量資料的資料保護：
  + **保護套件 (Web ACL) 的資料保護** – 您可以為每個保護套件 (Web ACL) 設定資料保護，這可讓您以靜態字串或密碼編譯雜湊取代特定 Web 流量資料。此層級的資料保護可以集中設定，並套用於所有記錄和資料收集選項。

    如需此選項的詳細資訊，請參閱[資料保護](data-protection-masking.md)。
  + **記錄修訂和篩選** – 僅記錄時，您可以從日誌中設定一些 Web 流量資料進行編輯，也可以篩選您記錄的資料。除了您已設定的任何資料保護設定之外，此選項還會影響 AWS WAF 傳送到已設定記錄目的地的資料。

**Topics**
+ [

# 記錄 AWS WAF 保護套件 (Web ACL) 流量
](logging.md)
+ [

# 資料保護
](data-protection-masking.md)

# 記錄 AWS WAF 保護套件 (Web ACL) 流量
日誌日誌比對詳細資訊中的 URI 片段

日誌中的規則比對詳細資訊現在包含來自 Web 請求的 URI 片段。您可以將記錄設定為從日誌中修訂此欄位。與 Amazon Security Lake 整合

您現在可以使用 Security Lake 收集保護套件 (Web ACL) 流量資料。如需詳細資訊，請參閱《*Amazon Security Lake 使用者指南*》中的[從 AWS 服務收集資料](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)。擴展 的記錄選項 AWS WAF

您現在可以記錄 Amazon CloudWatch Logs 日誌群組或 Amazon Simple Storage Service (Amazon S3) 儲存貯體的保護套件 (Web ACL) 流量。這些選項是記錄到 Amazon Data Firehose 交付串流的現有選項以外的其他選項。日誌篩選

您現在可以根據規則動作和標籤來篩選所記錄的保護套件 (Web ACL) 流量。

本節說明 AWS WAF 保護套件 (Web ACLs的記錄選項。

您可以啟用日誌記錄取得您 Web ACL 分析流量的詳細資訊。記錄的資訊包括從您的 AWS 資源 AWS WAF 接收 Web 請求的時間、請求的詳細資訊，以及請求相符規則的詳細資訊。您可以將保護套件 (Web ACL) 日誌傳送至 Amazon CloudWatch Logs 日誌群組、Amazon Simple Storage Service (Amazon S3) 儲存貯體或 Amazon Data Firehose 交付串流。

除了您可以為保護套件 (Web ACLs) 啟用的日誌之外， AWS 也會使用 處理之網站或應用程式流量的服務日誌 AWS WAF ，來提供支援和保護 AWS 客戶和服務的安全性。

**注意**  
保護套件 (Web ACL) 記錄組態只會影響 AWS WAF 日誌。特別是，用於記錄的修訂欄位組態不會影響請求抽樣或 Security Lake 資料收集。您可以透過設定保護套件 (Web ACL) 資料保護，將欄位排除在收集或取樣之外。除了資料保護之外，Security Lake 資料收集是透過 Security Lake 服務完全設定。

**Topics**
+ [

# 記錄保護套件 (Web ACL) 流量資訊的定價
](logging-pricing.md)
+ [

# AWS WAF 記錄目的地
](logging-destinations.md)
+ [

# 設定保護套件的記錄 (Web ACL)
](logging-management-configure.md)
+ [

# 尋找您的保護套件 (Web ACL) 記錄
](logging-management.md)
+ [

# 保護套件 (Web ACL) 流量的日誌欄位
](logging-fields.md)
+ [

# 保護套件 (Web ACL) 流量的日誌範例
](logging-examples.md)

**其他資料收集和分析選項**  
除了記錄之外，您還可以為資料收集和分析啟用下列選項：
+ **Amazon Security Lake** – 您可以設定 Security Lake 來收集保護套件 (Web ACL) 資料。Security Lake 會從各種來源收集日誌和事件資料，以進行標準化、分析和管理。如需此選項的相關資訊，請參閱《[Amazon Security Lake 使用者指南》中的什麼是 Amazon Security Lake？](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html)以及[從 AWS 服務收集資料](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)。 **

  AWS WAF 不會向您收取使用此選項的費用。如需定價資訊，請參閱《Amazon [Security Lake 使用者指南》中的 Security Lake 定價](https://aws.amazon.com/security-lake/pricing/)和 [Security Lake 定價的判斷方式](https://docs.aws.amazon.com/security-lake/latest/userguide/estimating-costs.html)。 **
+ **請求取樣** – 您可以設定保護套件 (Web ACL) 來取樣其評估的 Web 請求，以了解應用程式正在接收的流量類型。如需此選項的詳細資訊，請參閱[檢視 Web 請求的範例](web-acl-testing-view-sample.md)。

# 記錄保護套件 (Web ACL) 流量資訊的定價
記錄的定價

本節說明使用 保護套件 (Web ACL) 流量日誌的定價考量。

您需要根據與每個日誌目的地類型相關聯的成本，支付日誌保護套件 (Web ACL) 流量資訊的費用。這些費用是使用 的附加費用 AWS WAF。您的成本可能會因您選擇的目的地類型和記錄的資料量等因素而有所不同。

下列提供每個記錄目的地類型的定價資訊連結：
+ **CloudWatch Logs** – 費用適用於付費日誌交付。請參閱 [Amazon CloudWatch Logs 定價](https://aws.amazon.com/cloudwatch/pricing/)。在**付費方案**下，選擇**日誌**索引標籤，然後在**已取代的日誌**下，請參閱**交付至 CloudWatch Logs** 的資訊。
+ **Amazon S3 儲存貯體** – Amazon S3 費用是 CloudWatch Logs 將日誌交付至 Amazon S3 儲存貯體和使用 Amazon S3 的合併費用。
  + 對於 Amazon S3，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)。
  + 如需 CloudWatch Logs 將日誌交付至 Amazon S3，請參閱 [Amazon CloudWatch Logs 定價](https://aws.amazon.com/cloudwatch/pricing/)。在**付費方案**下，選擇**日誌**索引標籤，然後在**已取代的日誌**下，請參閱**交付至 S3** 的資訊
+ **Firehose** – 請參閱 [Amazon Data Firehose 定價](https://aws.amazon.com/kinesis/data-firehose/pricing/)。

如需 AWS WAF 定價的資訊，請參閱 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

# AWS WAF 記錄目的地
AWS WAF 記錄目的地

本節說明您可以從日誌中選擇的記錄選項 AWS WAF 。每個區段都提供設定記錄的指導，包括有關目的地類型特定之任何行為的資訊。設定記錄目的地之後，您可以將其規格提供給保護套件 (Web ACL) 記錄組態，以開始記錄。

**Topics**
+ [CloudWatch Logs](logging-cw-logs.md)
+ [Amazon S3](logging-s3.md)
+ [Firehose](logging-kinesis.md)

# 將保護套件 (Web ACL) 流量日誌傳送至 Amazon CloudWatch Logs 日誌群組
CloudWatch Logs

本主題提供將保護套件 (Web ACL) 流量日誌傳送至 CloudWatch Logs 日誌群組的資訊。

**注意**  
除了使用 的費用之外，您還需要支付記錄費用 AWS WAF。如需相關資訊，請參閱[記錄保護套件 (Web ACL) 流量資訊的定價](logging-pricing.md)。

若要將日誌傳送至 Amazon CloudWatch Logs，您可以建立 CloudWatch Logs 日誌群組。啟用登入時 AWS WAF，您會提供日誌群組 ARN。啟用保護套件 (Web ACL) 的記錄後， 會將日誌 AWS WAF 傳遞至日誌串流中的 CloudWatch Logs 日誌群組。

當您使用 CloudWatch Logs 時，您可以在 主控台中探索保護套件 (Web ACL) 的 AWS WAF 日誌。在保護套件 (Web ACL) 頁面中，選取**記錄洞見**索引標籤。此選項是除了透過 CloudWatch 主控台為 CloudWatch Logs CloudWatch 提供的記錄洞見之外的。

在與 AWS WAF 保護套件 (Web ACL) 相同的區域中設定保護套件 (Web ACL) 日誌的日誌群組，並使用與用來管理保護套件 (Web ACL) 相同的帳戶。如需有關設定 CloudWatch Logs 日誌群組的資訊，請參閱[使用日誌群組和日誌串流](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)。

## CloudWatch Logs 日誌群組的配額


CloudWatch Logs 具有輸送量的預設最大配額，可在區域內所有日誌群組之間共用，您可以請求增加。如果您的記錄需求對於目前的輸送量設定而言太高，您會看到`PutLogEvents`帳戶的 限流指標。若要在 Service Quotas 主控台中檢視限制並請求提高，請參閱 [CloudWatch Logs PutLogEvents 配額](https://console.aws.amazon.com/servicequotas/home/services/logs/quotas/L-7E1FAE88)。

## 日誌群組命名


您的日誌群組名稱必須以 開頭`aws-waf-logs-`，並以您喜歡的任何尾碼結尾，例如 `aws-waf-logs-testLogGroup2`。

產生的 ARN 格式如下：

```
arn:aws:logs:Region:account-id:log-group:aws-waf-logs-log-group-suffix
```

日誌串流具有下列命名格式：

```
Region_web-acl-name_log-stream-number
```

以下顯示區域 `TestWebACL`中保護套件 (Web ACL) 的日誌串流範例`us-east-1`。

```
us-east-1_TestWebACL_0
```

## 將日誌發佈至 CloudWatch Logs 所需的許可
記錄的許可

為 CloudWatch Logs 日誌群組設定保護套件 (Web ACL) 流量記錄需要本節所述的許可設定。當您使用其中一個 AWS WAF 完整存取受管政策 `AWSWAFConsoleFullAccess`或 時，會為您設定許可`AWSWAFFullAccess`。如果您想要管理對記錄 AWS WAF 和資源的更精細存取，您可以自行設定許可。如需有關管理許可的資訊，請參閱《*IAM 使用者指南*》中的[存取 AWS 資源的管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)。如需 受管 AWS WAF 政策的相關資訊，請參閱 [AWS 的 受管政策 AWS WAF](security-iam-awsmanpol.md)。

這些許可可讓您變更保護套件 (Web ACL) 記錄組態、設定 CloudWatch Logs 的日誌交付，以及擷取日誌群組的相關資訊。這些許可必須連接到您用來管理 的使用者 AWS WAF。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "wafv2:PutLoggingConfiguration",
                "wafv2:DeleteLoggingConfiguration"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow",
            "Sid": "LoggingConfigurationAPI"
        },
        {
            "Sid": "WebACLLoggingCWL",
            "Action": [
                "logs:CreateLogDelivery",
                "logs:DeleteLogDelivery",
                "logs:PutResourcePolicy",
                "logs:DescribeResourcePolicies",
                "logs:DescribeLogGroups"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

允許對所有 AWS 資源執行動作時，政策中會指出動作，其`"Resource"`設定為 `"*"`。這表示每個動作支援的所有 AWS 資源都允許這些動作。 **例如， 動作僅`wafv2:PutLoggingConfiguration`支援`wafv2`記錄組態資源。

# 將保護套件 (Web ACL) 流量日誌傳送至 Amazon Simple Storage Service 儲存貯體
Amazon S3AWS WAF Amazon S3 日誌政策變更

已更新 Amazon S3 日誌許可政策和範例。

本主題提供將保護套件 (Web ACL) 流量日誌傳送至 Amazon S3 儲存貯體的資訊。

**注意**  
除了使用 的費用之外，您還需要支付記錄費用 AWS WAF。如需相關資訊，請參閱[記錄保護套件 (Web ACL) 流量資訊的定價](logging-pricing.md)。

若要將保護套件 (Web ACL) 流量日誌傳送至 Amazon S3，您可以從用來管理保護套件 (Web ACL) 的相同帳戶設定 Amazon S3 儲存貯體，並以 開頭命名儲存貯體`aws-waf-logs-`。當您啟用登入時 AWS WAF，請提供儲存貯體名稱。如需有關建立記錄儲存貯體的資訊，請參閱《*Amazon Simple Storage Service 使用者指南*》中的[建立儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html)。

您可以使用 Amazon Athena 互動式查詢服務存取和分析 Amazon S3 日誌。 Amazon Athena Athena 可讓您使用標準 SQL 直接在 Amazon S3 中分析資料。透過 中的幾個動作 AWS 管理主控台，您可以將 Athena 指向存放在 Amazon S3 中的資料，並快速開始使用標準 SQL 來執行臨機操作查詢並取得結果。如需詳細資訊，請參閱《*Amazon Athena 使用者指南*》中的[查詢 AWS WAF 日誌](https://docs.aws.amazon.com/athena/latest/ug/waf-logs.html)。如需其他範例 Amazon Athena 查詢，請參閱 GitHub 網站上的 [aws-samples/waf-log-sample-athena-queries](https://github.com/aws-samples/waf-log-sample-athena-queries)。

**注意**  
AWS WAF 支援對 Amazon S3 金鑰類型 (SSE-S3) 和 for AWS Key Management Service (SSE-KMS) 使用 Amazon S3 儲存貯體進行加密 AWS KMS keys。 AWS WAF 不支援對 管理的 AWS Key Management Service 金鑰進行加密 AWS。

來自保護套件 (Web ACL) 的日誌檔案會以 5 分鐘的間隔發佈至 Amazon S3 儲存貯體。每個日誌檔案都包含過去 5 分鐘內記錄之流量的日誌記錄。

日誌檔的大小上限為 75 MB。如果日誌檔案在 5 分鐘內達到檔案大小限制，日誌會停止新增記錄，將其發佈到 Amazon S3 儲存貯體，然後建立新的日誌檔案。

日誌檔案已壓縮。如果您使用 Amazon S3 主控台開啟檔案，Amazon S3 會解壓縮日誌記錄並顯示它們。如果您下載日誌檔案，則必須解壓縮它們才能檢視記錄。

單一日誌檔案包含具有多個記錄的交錯項目。若要查看保護套件 (Web ACL) 的所有日誌檔案，請尋找依保護套件 (Web ACL) 名稱、區域和您的帳戶 ID 彙總的項目。

## 命名要求和語法
字首為 的AWS WAF Amazon S3 日誌儲存貯體位置

AWS WAF 現在允許 Amazon S3 日誌儲存貯體名稱中的字首。

用於 AWS WAF 記錄的儲存貯體名稱必須以 開頭`aws-waf-logs-`，並以您想要的任何尾碼結尾。例如 `aws-waf-logs-LOGGING-BUCKET-SUFFIX`。

**儲存貯體位置**  
儲存貯體位置使用以下語法：

```
s3://aws-waf-logs-LOGGING-BUCKET-SUFFIX/
```

**儲存貯體 ARN**  
儲存貯體 Amazon Resource Name (ARN) 的格式如下：

```
arn:aws:s3:::aws-waf-logs-LOGGING-BUCKET-SUFFIX
```

**具有字首的儲存貯體位置**  
如果您在物件金鑰名稱中使用字首來組織存放在儲存貯體中的資料，您可以在記錄儲存貯體名稱中提供字首。

**注意**  
此選項無法透過 主控台使用。使用 AWS WAF APIs、CLI 或 AWS CloudFormation。

如需在 Amazon S3 中使用字首的資訊，請參閱《*Amazon Simple Storage Service 使用者指南*》中的[使用字首組織物件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html)。

具有字首 的儲存貯體位置使用以下語法：

```
s3://aws-waf-logs-LOGGING-BUCKET-SUFFIX/KEY-NAME-PREFIX/
```

**儲存貯體資料夾和檔案名稱**  
在您的儲存貯體中，並遵循您提供的任何字首，您的 AWS WAF 日誌會以由您的帳戶 ID、區域、保護套件 (Web ACL) 名稱以及日期和時間決定的資料夾結構撰寫。

```
AWSLogs/account-id/WAFLogs/Region/web-acl-name/YYYY/MM/dd/HH/mm
```

在資料夾中，日誌檔案名稱遵循類似的格式：

```
account-id_waflogs_Region_web-acl-name_timestamp_hash.log.gz
```

資料夾結構和日誌檔案名稱中使用的時間規格符合時間戳記格式規格 `YYYYMMddTHHmmZ`。

以下顯示名為 之儲存貯體的 Amazon S3 儲存貯體中的範例日誌檔案`aws-waf-logs-LOGGING-BUCKET-SUFFIX`。 AWS 帳戶 是 `11111111111`。保護套件 (Web ACL) 是 ，`TEST-WEBACL`區域是 `us-east-1`。

```
s3://aws-waf-logs-LOGGING-BUCKET-SUFFIX/AWSLogs/11111111111/WAFLogs/us-east-1/TEST-WEBACL/2021/10/28/19/50/11111111111_waflogs_us-east-1_TEST-WEBACL_20211028T1950Z_e0ca43b5.log.gz
```

**注意**  
用於 AWS WAF 記錄的儲存貯體名稱必須以 開頭`aws-waf-logs-`，並以您想要的任何尾碼結尾。

## 將日誌發佈至 Amazon S3 所需的許可
記錄的許可

為 Amazon S3 儲存貯體設定保護套件 (Web ACL) 流量記錄需要下列許可設定。當您使用其中一個 AWS WAF 完整存取受管政策 `AWSWAFConsoleFullAccess`或 時，會為您設定這些許可`AWSWAFFullAccess`。如果您想要進一步管理對日誌記錄 AWS WAF 和資源的存取，您可以自行設定這些許可。如需有關管理許可的資訊，請參閱《*IAM 使用者指南*》中的[存取資源的 AWS 管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html)。如需 AWS WAF 受管政策的相關資訊，請參閱 [AWS 的 受管政策 AWS WAF](security-iam-awsmanpol.md)。

下列許可可讓您變更保護套件 (Web ACL) 記錄組態，以及設定將日誌交付至 Amazon S3 儲存貯體。這些許可必須連接到您用來管理的使用者 AWS WAF。

**注意**  
當您設定下列許可時，您可能會在 AWS CloudTrail 日誌中看到錯誤，指出存取遭拒，但許可適用於 AWS WAF 記錄。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Action":[
            "wafv2:PutLoggingConfiguration",
            "wafv2:DeleteLoggingConfiguration"
         ],
         "Resource":[
            "*"
         ],
         "Effect":"Allow",
         "Sid":"LoggingConfigurationAPI"
      },
    {                                                                                                                                                                
       "Sid":"WebACLLogDelivery",                                                                                                                                    
       "Action":[                                                                                                                                                    
          "logs:CreateLogDelivery",                                                                                                                                  
          "logs:DeleteLogDelivery"                                                                                                                                   
       ],                                                                                                                                                            
       "Resource": "*",                                                                                                                                              
       "Effect":"Allow"                                                                                                                                              
    },  
      {
         "Sid":"WebACLLoggingS3",
         "Action":[
            "s3:PutBucketPolicy",
            "s3:GetBucketPolicy"
         ],
         "Resource": [
         "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix"
         ],
         "Effect":"Allow"
      }
   ]
}
```

------

允許對所有 AWS 資源執行動作時，政策中會指出動作，其`"Resource"`設定為 `"*"`。這表示每個動作支援的所有 AWS 資源都允許這些動作。 **例如， 動作僅`wafv2:PutLoggingConfiguration`支援`wafv2`記錄組態資源。

根據預設，Amazon S3 儲存貯體及其包含的物件皆為私有。只有儲存貯體擁有者可存取儲存貯體及存放於其中的物件。不過，儲存貯體擁有者可以透過撰寫存取政策，將存取權授予其他資源和使用者。

如果建立日誌的使用者擁有 儲存貯體，服務會自動將下列政策連接至儲存貯體，以授予日誌將日誌發佈至其中的許可：

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AWSLogDeliveryWrite",
      "Effect": "Allow",
      "Principal": {
        "Service": "delivery.logs.amazonaws.com"
      },
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix/AWSLogs/123456789012/*",
      "Condition": {
        "StringEquals": {
          "s3:x-amz-acl": "bucket-owner-full-control",
          "aws:SourceAccount": ["123456789012"]
        },
        "ArnLike": {
        "aws:SourceArn": ["arn:aws:logs:us-east-2:123456789012:*"]
        }
      }
    },
    {
      "Sid": "AWSLogDeliveryAclCheck",
      "Effect": "Allow",
      "Principal": {
        "Service": "delivery.logs.amazonaws.com"
      },
      "Action": "s3:GetBucketAcl",
      "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix",
      "Condition": {
        "StringEquals": {
        "aws:SourceAccount": ["123456789012"]
        },
        "ArnLike": {
        "aws:SourceArn": ["arn:aws:logs:us-east-2:123456789012:*"]
        }
      }
    }
  ]
}
```

------

**注意**  
用於 AWS WAF 記錄的儲存貯體名稱必須以 開頭`aws-waf-logs-`，並以您想要的任何尾碼結尾。

如果建立日誌的使用者沒有儲存貯體，或沒有儲存貯體的 `GetBucketPolicy`和 `PutBucketPolicy`許可，則日誌建立會失敗。在此情況下，儲存貯體擁有者必須手動將上述政策新增至儲存貯體，並指定日誌建立者的 AWS 帳戶 ID。如需詳細資訊，請參閱 *Amazon Simple Storage Service 使用者指南*中的[我該如何新增 S3 儲存貯體政策？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)。如果儲存貯體收到來自多個帳戶的日誌，請將`Resource`元素項目新增至每個帳戶`AWSLogDeliveryWrite`的政策陳述式。

例如，下列儲存貯體政策允許 AWS 帳戶 `111122223333`將日誌發佈至名為 的儲存貯體`aws-waf-logs-LOGGING-BUCKET-SUFFIX`：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "AWSLogDeliveryWrite20150319",
    "Statement": [
        {
            "Sid": "AWSLogDeliveryWrite",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix/AWSLogs/111122223333/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control",
                    "aws:SourceAccount": ["111122223333"]
                },
                "ArnLike": {
                    "aws:SourceArn": ["arn:aws:logs:us-east-1:111122223333:*"]
                }
            }
        },
        {
            "Sid": "AWSLogDeliveryAclCheck",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-destination-bucket-suffix",
            "Condition": {
                "StringEquals": {
                "aws:SourceAccount": ["111122223333"]
                },
                "ArnLike": {
                "aws:SourceArn": ["arn:aws:logs:us-east-1:111122223333:*"]
                }
            }
        }
    ]
}
```

------

**注意**  
在某些情況下，如果未將 `s3:ListBucket` 許可授予 `delivery.logs.amazonaws.com`，則可能會在 AWS CloudTrail 中看到 `AccessDenied` 錯誤。若要避免 CloudTrail 日誌中出現這些錯誤，您必須將 `s3:ListBucket` 許可授予 `delivery.logs.amazonaws.com`，且必須包含與先前儲存貯體政策中設定的 `s3:GetBucketAcl ` 許可一起顯示的 `Condition` 參數。若要簡化此作業，您可以直接將 更新`AWSLogDeliveryAclCheck`為 `Statement`，而不是建立新的 `“Action”: [“s3:GetBucketAcl”, “s3:ListBucket”]`。

## AWS Key Management Service 搭配 KMS 金鑰使用 的許可
AWS Key Management Service 搭配 KMS 金鑰使用 的許可

如果您的記錄目的地使用伺服器端加密搭配存放在 AWS Key Management Service (SSE-KMS) 中的金鑰，而且您使用客戶受管金鑰 (KMS 金鑰），您必須授予許可 AWS WAF 才能使用 KMS 金鑰。若要這樣做，請將金鑰政策新增至所選目的地的 KMS 金鑰。這允許 AWS WAF 記錄將日誌檔案寫入目的地。

將下列金鑰政策新增至您的 KMS 金鑰， AWS WAF 以允許 記錄到您的 Amazon S3 儲存貯體。

```
{
    "Sid": "Allow AWS WAF to use the key",
    "Effect": "Allow",
    "Principal": {
        "Service": [
            "delivery.logs.amazonaws.com"
        ]
    },
    "Action": "kms:GenerateDataKey*",
    "Resource": "*"
}
```

## 存取 Amazon S3 日誌檔案所需的許可
存取日誌的許可

Amazon S3 使用存取控制清單 (ACLs) 來管理對 日誌所建立日誌檔案的 AWS WAF 存取。根據預設，儲存貯體擁有者擁有各個日誌檔案的 `FULL_CONTROL` 許可。日誌交付擁有者與儲存貯體擁有者不同時，就沒有任何許可。日誌交付帳戶擁有 `READ` 與 `WRITE` 許可。如需詳細資訊，請參閱《*Amazon Simple Storage Service 使用者指南*》中的[存取控制清單 (ACL) 概觀](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html)。

# 將保護套件 (Web ACL) 流量日誌傳送至 Amazon Data Firehose 交付串流
Firehose

本節提供將保護套件 (Web ACL) 流量日誌傳送至 Amazon Data Firehose 交付串流的資訊。

**注意**  
除了使用 的費用之外，您還需要支付記錄費用 AWS WAF。如需相關資訊，請參閱[記錄保護套件 (Web ACL) 流量資訊的定價](logging-pricing.md)。

若要將日誌傳送至 Amazon Data Firehose，請將日誌從保護套件 (Web ACL) 傳送至您在 Firehose 中設定的 Amazon Data Firehose 交付串流。啟用記錄後， 會透過 Firehose 的 HTTPS 端點將日誌 AWS WAF 傳送至您的儲存目的地。

一個 AWS WAF 日誌等同於一個 Firehose 記錄。如果您通常每秒收到 10，000 個請求並啟用完整日誌，您應該在 Firehose 中具有每秒 10，000 個記錄設定。如果您未正確設定 Firehose， AWS WAF 則不會記錄所有日誌。如需詳細資訊，請參閱 [Amazon Kinesis Data Firehose 配額](https://docs.aws.amazon.com/firehose/latest/dev/limits.html)。

如需有關如何建立 Amazon Data Firehose 交付串流和檢閱儲存日誌的資訊，請參閱[什麼是 Amazon Data Firehose？](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) 

如需建立交付串流的相關資訊，請參閱[建立 Amazon Data Firehose 交付串流](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html)。

## 為您的保護套件設定 Amazon Data Firehose 交付串流 (Web ACL)
組態準則

為您的保護套件 (Web ACL) 設定 Amazon Data Firehose 交付串流，如下所示。
+ 使用您用來管理保護套件 (Web ACL) 的相同帳戶來建立它。
+ 在與保護套件 (Web ACL) 相同的區域中建立它。如果您要擷取 Amazon CloudFront 的日誌，請在美國東部 （維吉尼亞北部） 區域 建立 firehose`us-east-1`。
+ 為資料提供開頭為字首 的名稱`aws-waf-logs-`。例如 `aws-waf-logs-us-east-2-analytics`。
+ 將其設定為直接放置，允許應用程式直接存取交付串流。在 [Amazon Data Firehose 主控台](https://console.aws.amazon.com/firehose)中，針對交付串流**來源**設定，選擇**直接 PUT 或其他來源**。透過 API，將交付串流屬性`DeliveryStreamType`設定為 `DirectPut`。
**注意**  
請勿使用 `Kinesis stream`做為來源。

## 將日誌發佈至 Amazon Data Firehose 交付串流所需的許可
記錄的許可

若要了解 Kinesis Data Firehose 組態所需的許可，請參閱[使用 Amazon Kinesis Data Firehose 控制存取](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html)。

您必須擁有下列許可，才能使用 Amazon Data Firehose 交付串流成功啟用保護套件 (Web ACL) 記錄。
+ `iam:CreateServiceLinkedRole`
+ `firehose:ListDeliveryStreams`
+ `wafv2:PutLoggingConfiguration`

如需服務連結角色和 `iam:CreateServiceLinkedRole` 許可的相關資訊，請參閱 [使用 的服務連結角色 AWS WAF](using-service-linked-roles.md)。

# 設定保護套件的記錄 (Web ACL)
設定 記錄

本節提供設定保護套件 (Web ACL) 資料保護的說明。

**注意**  
除了使用 的費用之外，您還需要支付記錄費用 AWS WAF。如需相關資訊，請參閱[記錄保護套件 (Web ACL) 流量資訊的定價](logging-pricing.md)。

若要啟用保護套件 (Web ACL) 的記錄，您必須已設定要使用的記錄目的地。如需目的地選項和每個選項需求的相關資訊，請參閱 [AWS WAF 記錄目的地](logging-destinations.md)。

**設定保護套件的記錄 (Web ACL)**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇**保護套件 (Web ACLs)**。

1. 選擇您要啟用記錄的保護套件 (Web ACL) 名稱。主控台會帶您前往保護套件 (Web ACL) 的描述，您可以在其中進行編輯。

1. 在**記錄和指標**索引標籤上，選擇**啟用記錄**。

1. 選擇記錄目的地類型，然後選擇您設定的記錄目的地。您必須選擇名稱開頭為 的記錄目的地`aws-waf-logs-`。

1. （選用） 如果您不希望日誌中包含一些欄位，請對其進行修訂。選擇要編寫的欄位，然後選擇**新增**。重複其他需要編寫的欄位。修改的欄位會在日誌中顯示為 `xxx`。
**注意**  
此設定不會影響請求取樣。您可以透過設定保護套件 (Web ACL) 資料保護或停用保護套件 (Web ACL) 的取樣，將欄位排除在請求取樣之外。

1. （選用） 如果您不想將所有請求傳送到日誌，請新增您的篩選條件和行為。在**篩選日誌**下，針對您要套用的每個篩選條件，選擇**新增篩選條件**，然後選擇篩選條件，並指定是否要保留或捨棄符合條件的請求。當您完成新增篩選條件時，如有需要，請修改**預設記錄行為**。
**注意**  
如果您新增多個篩選條件， 會從頂端開始 AWS WAF 評估它們。

1. 選擇 **Enable Logging (啟用記錄日誌)**。
**注意**  
當您成功啟用記錄時， AWS WAF 將建立一個服務連結角色，具有將日誌寫入記錄目的地的必要許可。如需詳細資訊，請參閱[使用 的服務連結角色 AWS WAF](using-service-linked-roles.md)。

# 尋找您的保護套件 (Web ACL) 記錄
尋找您的保護套件 (Web ACL) 記錄

本節說明如何尋找您的保護套件 (Web ACL) 記錄。

**注意**  
除了使用 的費用之外，您還需要支付記錄費用 AWS WAF。如需相關資訊，請參閱[記錄保護套件 (Web ACL) 流量資訊的定價](logging-pricing.md)。

**如果您在日誌中找不到日誌記錄**  
在極少數情況下， AWS WAF 日誌交付可能會低於 100%，日誌會盡最大努力交付。 AWS WAF 架構會將應用程式的安全性優先於所有其他考量。在某些情況下，例如記錄流程遇到流量調節時，這可能會導致記錄遭到捨棄。這不應影響多個記錄。如果您發現許多日誌項目遺失，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

在保護套件 (Web ACL) 的記錄組態中，您可以自訂 AWS WAF 傳送至日誌的內容。
+ **欄位修訂** – 對於使用對應比對設定的規則，您可以從日誌記錄中修訂下列欄位：**URI 路徑**、**查詢字串**、**單一標頭**和 **HTTP 方法**。已修訂的欄位會在日誌`REDACTED`中顯示為 。例如，如果您修訂**查詢字串**欄位，在日誌中，`REDACTED`對於使用**查詢字串**比對元件設定的所有規則，它會列為 。修訂僅適用於您在規則中指定用於比對的請求元件，因此**單一標頭**元件的修訂不適用於**標頭**上相符的規則。如需日誌欄位的清單，請參閱 [保護套件 (Web ACL) 流量的日誌欄位](logging-fields.md)。
**注意**  
此設定不會影響請求取樣。您可以透過設定保護套件 (Web ACL) 資料保護或停用保護套件 (Web ACL) 的取樣，將欄位排除在請求取樣之外。
+ **日誌篩選** – 您可以新增篩選，以指定哪些 Web 請求保留在日誌中，以及哪些 Web 請求遭到捨棄。您可以篩選 Web 請求評估期間 AWS WAF 套用的設定。您可以依下列設定進行篩選：
  + **完整標籤** – 完整標籤具有字首、選用命名空間和標籤名稱。字首識別新增標籤之規則的規則群組或保護套件 (Web ACL) 內容。如需標籤的資訊，請參閱 [中的 Web 請求標籤 AWS WAF](waf-labels.md)。
  + **規則動作** – 您可以篩選任何正常規則動作設定，也可以篩選規則群組規則的舊版`EXCLUDED_AS_COUNT`覆寫選項。如需規則動作設定的資訊，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)。如需規則群組規則目前和舊版規則動作覆寫的相關資訊，請參閱 [在 中覆寫規則群組動作 AWS WAF](web-acl-rule-group-override-options.md)。
    + 一般規則動作篩選條件適用於規則中設定的動作，也適用於使用目前選項來覆寫規則群組規則動作所設定的動作。
    + `EXCLUDED_AS_COUNT` 日誌篩選條件與`Count`動作日誌篩選條件重疊。 會`EXCLUDED_AS_COUNT`同時篩選目前和舊版選項，以將規則群組規則動作覆寫至 Count。

# 保護套件 (Web ACL) 流量的日誌欄位
日誌欄位擴展 CAPTCHA和 的記錄資訊 Challenge

最上層`captchaResponse`和`challengeResponse`欄位現在會填入要套用至請求的最後一個動作，無論終止或未終止。在此之前，只會針對終止動作填入這些欄位。

下列清單說明可能的日誌欄位。

**動作**  
 AWS WAF 套用至請求的終止動作。這表示允許、封鎖、CAPTCHA 或挑戰。當 Web 請求不包含有效的字符時， CAPTCHA和 Challenge動作正在終止。

**args**  
查詢字串。

**captchaResponse**  
請求的 CAPTCHA 動作狀態，會在CAPTCHA動作套用至請求時填入。此欄位會填入任何CAPTCHA動作，無論是否終止。如果請求多次套用CAPTCHA動作，此欄位會從上次套用動作之後填入。  
當請求不包含字符或字符無效或過期時，CAPTCHA動作會終止 Web 請求檢查。如果CAPTCHA動作正在終止，此欄位會包含回應代碼和失敗原因。如果動作為非終止，此欄位會包含求解時間戳記。若要區分終止和非終止動作，您可以在此欄位中篩選非空白`failureReason`屬性。

**cfDistributionTenantId**  
與 Web 請求相關聯之 CloudFront 分佈租用戶的識別符。此欄位是選用的，僅適用於與 CloudFront 分佈租用戶相關聯的保護套件 (Web ACLs)。

**challengeResponse**  
請求的挑戰動作狀態，Challenge會在動作套用至請求時填入。此欄位會填入任何Challenge動作，無論是否終止。如果請求多次套用Challenge動作，此欄位會從上次套用動作之後填入。  
當請求不包含字符或字符無效或過期時，Challenge動作會終止 Web 請求檢查。如果Challenge動作正在終止，此欄位會包含回應代碼和失敗原因。如果動作為非終止，此欄位會包含求解時間戳記。若要區分終止和非終止動作，您可以在此欄位中篩選非空白`failureReason`屬性。

**clientAsn**  
與 Web 請求原始伺服器 IP 地址相關聯的自治系統編號 (ASN)。  
**clientAsn** 只有在使用 ASN 比對陳述式時才會登入 AWS WAF 日誌。否則不會記錄此欄位。

**clientIp**  
傳送請求的用戶端 IP 地址。

**國家/地區**  
請求來源的國家/地區。如果 AWS WAF 無法判斷原始國家/地區，則會將此欄位設定為 `-`。

**國家/地區**  
請求來源的國家/地區。如果 AWS WAF 無法判斷原始國家/地區，則會將此欄位設定為 `-`。

**excludedRules**  
僅用於規則群組規則。規則群組中已排除的規則清單。這些規則的動作設定為 Count。  
如果您使用覆寫規則動作選項覆寫規則以計數，則相符項目不會在此處列出。它們會列為動作對 `action`和 `overriddenAction`。    
exclusionType  
表示排除規則具有動作 的類型Count。  
ruleId  
在規則群組中被排除的規則 ID。

**formatVersion**  
日誌的格式版本。

**forwardedAsn**  
與轉送 Web 請求之實體的 IP 地址 相關聯的自治系統編號 (ASN)。

**標頭**  
標題清單。

**httpMethod**  
請求的 HTTP 方法。

**httpRequest**  
請求的中繼資料。

**httpSourceId**  
相關聯資源的 ID：  
+ 對於 Amazon CloudFront 分佈，ID 是 ARN 語法`distribution-id`中的 ：

  `arn:partitioncloudfront::account-id:distribution/distribution-id` 
+ 對於 Application Load Balancer，ID 是 ARN 語法`load-balancer-id`中的 ：

  `arn:partition:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id`
+ 對於 Amazon API Gateway REST API，ID 是 ARN 語法`api-id`中的 ：

  `arn:partition:apigateway:region::/restapis/api-id/stages/stage-name`
+ 對於 an AWS AppSync GraphQL API，ID 是 ARN 語法`GraphQLApiId`中的 ：

  `arn:partition:appsync:region:account-id:apis/GraphQLApiId`
+ 對於 Amazon Cognito 使用者集區，ID 是 ARN 語法`user-pool-id`中的 ：

  `arn:partition:cognito-idp:region:account-id:userpool/user-pool-id`
+ 對於 AWS App Runner 服務，ID 是 ARN 語法`apprunner-service-id`中的 ：

  `arn:partition:apprunner:region:account-id:service/apprunner-service-name/apprunner-service-id`

**httpSourceName**  
請求的來源。可能的值：`CF`Amazon CloudFront、`APIGW`Amazon API Gateway、`ALB`Application Load Balancer、`APPSYNC` AWS AppSync`COGNITOIDP`Amazon Cognito、`APPRUNNER`App Runner 和 `VERIFIED_ACCESS` Verified Access。

**httpVersion**  
HTTP 版本。

**ja3Fingerprint**  
請求的 JA3 指紋。  
JA3 指紋檢查僅適用於 Amazon CloudFront 分佈和 Application Load Balancer。
JA3 指紋是從傳入請求的 TLS Client Hello 衍生的 32 個字元雜湊。此指紋可做為用戶端 TLS 組態的唯一識別符。 會針對具有足夠 TLS Client Hello 資訊以進行計算的每個請求 AWS WAF ，計算並記錄此指紋。  
當您在保護套件 (Web ACL) 規則中設定 JA3 指紋比對時，請提供此值。如需建立與 JA3 指紋相符項目的詳細資訊，請參閱 [JA3 指紋](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja3-fingerprint) 中的 [在 中請求元件 AWS WAF](waf-rule-statement-fields-list.md) 以取得規則陳述式。

**ja4Fingerprint**  
請求的 JA4 指紋。  
JA4 指紋檢查僅適用於 Amazon CloudFront 分佈和 Application Load Balancer。
JA4 指紋是從傳入請求的 TLS Client Hello 衍生的 36 個字元雜湊。此指紋可做為用戶端 TLS 組態的唯一識別符。 會針對具有足夠 TLS Client Hello 資訊以進行計算的每個請求 AWS WAF ，計算並記錄此指紋。  
當您在保護套件 (Web ACL) 規則中設定 JA4 指紋比對時，請提供此值。如需建立與 JA4 指紋相符項目的詳細資訊，請參閱 [JA4 指紋](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja4-fingerprint) 中的 [在 中請求元件 AWS WAF](waf-rule-statement-fields-list.md) 以取得規則陳述式。

**labels**  
Web 請求上的標籤。這些標籤是由用來評估 request. AWS WAF logs 前 100 個標籤的規則所套用。

**nonTerminatingMatchingRules**  
符合請求的非終止規則清單。清單中的每個項目都包含下列資訊。    
動作  
 AWS WAF 套用至請求的動作。這表示計數、CAPTCHA 或挑戰。當 Web 請求包含有效的字符時， CAPTCHA和 Challenge 不會終止。  
ruleId  
符合請求且未終止的規則 ID。  
ruleMatchDetails  
符合請求之規則的詳細資訊。此欄位只會填入 SQL Injection 和跨網站指令碼 (XSS) 比對規則陳述式。比對規則可能需要符合多個檢查條件，因此這些比對詳細資訊會以比對條件陣列的形式提供。
每個規則提供的任何其他資訊會根據規則組態、規則比對類型和比對的詳細資訊等因素而有所不同。例如，對於具有 CAPTCHA或 Challenge動作的規則，`challengeResponse`將列出 `captchaResponse`或 。如果比對規則位於規則群組中，且您已覆寫其設定的規則動作，則設定的 動作將在 中提供`overriddenAction`。

**oversizeFields**  
Web 請求中由保護套件 (Web ACL) 檢查的欄位清單，以及超過 AWS WAF 檢查限制的欄位清單。如果欄位過大，但保護套件 (Web ACL) 未檢查，則不會在此處列出。  
此清單可包含下列零個或多個值：`REQUEST_BODY`、`REQUEST_HEADERS`、 `REQUEST_JSON_BODY`和 `REQUEST_COOKIES`。如需超大欄位的詳細資訊，請參閱 [在 中過大 Web 請求元件 AWS WAF](waf-oversize-request-components.md)。

**rateBasedRuleList**  
處理請求的以速率為基礎的規則名單。如需速率型規則的相關資訊，請參閱 [在 中使用以速率為基礎的規則陳述式 AWS WAF](waf-rule-statement-type-rate-based.md)。    
rateBasedRuleId  
處理請求的速率規則 ID。若此項目已終止請求，則 `rateBasedRuleId` 的 ID 將與 `terminatingRuleId` 的 ID 相同。  
rateBasedRuleName  
對請求採取動作的以速率為基礎的規則名稱。  
limitKey  
規則正在使用的彙總類型。可能的值`IP`適用於 Web 請求原始伺服器、`FORWARDED_IP`在請求的標頭中轉送的 IP、`CUSTOMKEYS`自訂彙總金鑰設定。 和 `CONSTANT`用於將所有請求計數在一起，無需彙總。  
limitValue  
僅在單一 IP 地址類型的速率限制時使用。如果請求包含無效的 IP 地址，則 `limitvalue`為 `INVALID`。  
maxRateAllowed  
特定彙總執行個體在指定時段內允許的請求數目上限。彙總執行個體是由 加上您在以速率為基礎的規則組態中提供`limitKey`的任何其他金鑰規格所定義。  
evaluationWindowSec  
 AWS WAF 包含在請求中的時間，以秒為單位。  
customValues  
請求中以速率為基礎的規則識別的唯一值。對於字串值，日誌會列印字串值的前 32 個字元。根據金鑰類型，這些值可能僅適用於金鑰，例如 HTTP 方法或查詢字串，也可能適用於金鑰和名稱，例如標頭和標頭名稱。

**requestHeadersInserted**  
插入以進行自訂請求處理的標頭清單。

**requestId**  
請求的 ID，由基礎主機服務產生。對於 Application Load Balancer，這是追蹤 ID。對於所有其他 ，這是請求 ID。

**responseCodeSent**  
與自訂回應一起傳送的回應碼。

**ruleGroupId**  
規則群組的 ID。若規則封鎖請求，則 `ruleGroupID` 的 ID 將與 `terminatingRuleId` 的 ID 相同。

**ruleGroupList**  
對此請求採取動作的規則群組清單，其中包含相符資訊。

**terminatingRule**  
終止請求的規則。如果存在，則會包含下列資訊。    
動作  
 AWS WAF 套用至請求的終止動作。這表示允許、封鎖、CAPTCHA 或挑戰。當 Web 請求不包含有效的字符時， CAPTCHA和 Challenge動作正在終止。  
ruleId  
符合請求的規則 ID。  
ruleMatchDetails  
符合請求之規則的詳細資訊。此欄位只會填入 SQL Injection 和跨網站指令碼 (XSS) 比對規則陳述式。比對規則可能需要符合多個檢查條件，因此這些比對詳細資訊會以比對條件陣列的形式提供。
每個規則提供的任何其他資訊會根據規則組態、規則比對類型和相符的詳細資訊等因素而有所不同。例如，對於具有 CAPTCHA或 Challenge動作的規則，`challengeResponse`將列出 `captchaResponse`或 。如果相符規則位於規則群組中，且您已覆寫其設定的規則動作，則設定的 動作將在 中提供`overriddenAction`。

**terminatingRuleId**  
終止請求的規則 ID。如果無法終止請求，則值為 `Default_Action`。

**terminatingRuleMatchDetails**  
符合請求之終止規則的詳細資訊。終止規則對 Web 請求具有結束檢查程序的動作。終止規則的可能動作包括 Allow、CAPTCHA、 Block和 Challenge。在檢查 Web 請求期間，在第一個符合請求且具有終止動作的規則中， 會 AWS WAF 停止檢查並套用動作。除了日誌中針對相符終止規則所回報的威脅之外，Web 請求還可能包含其他威脅。  
這只會為 SQL Injection 和跨網站指令碼 (XSS) 符合規則陳述式填入。比對規則可能需要多個檢查條件的比對，因此這些比對詳細資訊會以比對條件陣列的形式提供。

**terminatingRuleType**  
終止請求的規則類型。可能的值：RATE\$1BASED、REGULAR、GROUP 和 MANAGED\$1RULE\$1GROUP。

**timestamp**  
時間戳記，以毫秒為單位。

**uri**  
URI 請求。

**fragment**  
遵循 "\$1" 符號的 URL 部分，提供有關資源的其他資訊，例如 \$1section2。

**webaclId**  
保護套件的 GUID (Web ACL)。

# 保護套件 (Web ACL) 流量的日誌範例
日誌範例

本節提供記錄保護套件 (Web ACL) 流量的範例。

**Example 以速率為基礎的規則 1：使用一個索引鍵的規則組態，設定為 `Header:dogname`**  

```
    {
      "Name": "RateBasedRule",
      "Priority": 1,
      "Statement": {
        "RateBasedStatement": {
          "Limit": 100,
          "AggregateKeyType": "CUSTOM_KEYS",
          "CustomKeys": [
            {
              "Header": {
                "Name": "dogname",
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                  }
                ]
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "RateBasedRule"
      }
    }
```

**Example 以速率為基礎的規則 1：以速率為基礎的規則封鎖請求的日誌項目**  

```
{
   "timestamp":1683355579981,
   "formatVersion":1,
   "webaclId": ...,
   "terminatingRuleId":"RateBasedRule",
   "terminatingRuleType":"RATE_BASED",
   "action":"BLOCK",
   "terminatingRuleMatchDetails":[
      
   ],
   "httpSourceName":"APIGW",
   "httpSourceId":"EXAMPLE11:rjvegx5guh:CanaryTest",
   "ruleGroupList":[
      
   ],
   "rateBasedRuleList":[
      {
         "rateBasedRuleId": ...,
         "rateBasedRuleName":"RateBasedRule",
         "limitKey":"CUSTOMKEYS",
         "maxRateAllowed":100,
         "evaluationWindowSec":"120",
         "customValues":[
            {
               "key":"HEADER",
               "name":"dogname",
               "value":"ella"
            }
         ]
      }
   ],
   "nonTerminatingMatchingRules":[
      
   ],
   "requestHeadersInserted":null,
   "responseCodeSent":null,
   "httpRequest":{
      "clientIp":"52.46.82.45",
      "country":"FR",
      "headers":[
         {
            "name":"X-Forwarded-For",
            "value":"52.46.82.45"
         },
         {
            "name":"X-Forwarded-Proto",
            "value":"https"
         },
         {
            "name":"X-Forwarded-Port",
            "value":"443"
         },
         {
            "name":"Host",
            "value":"rjvegx5guh.execute-api.eu-west-3.amazonaws.com"
         },
         {
            "name":"X-Amzn-Trace-Id",
            "value":"Root=1-645566cf-7cb058b04d9bb3ee01dc4036"
         },
         {
            "name":"dogname",
            "value":"ella"
         },
         {
            "name":"User-Agent",
            "value":"RateBasedRuleTestKoipOneKeyModulePV2"
         },
         {
            "name":"Accept-Encoding",
            "value":"gzip,deflate"
         }
      ],
      "uri":"/CanaryTest",
      "args":"",
      "httpVersion":"HTTP/1.1",
      "httpMethod":"GET",
      "requestId":"Ed0AiHF_CGYF-DA="
   }
}
```

**Example 以速率為基礎的規則 2：具有兩個索引鍵的規則組態，設定為 `Header:dogname`和 `Header:catname`**  

```
    {
      "Name": "RateBasedRule",
      "Priority": 1,
      "Statement": {
        "RateBasedStatement": {
          "Limit": 100,
          "AggregateKeyType": "CUSTOM_KEYS",
          "CustomKeys": [
            {
              "Header": {
                "Name": "dogname",
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                  }
                ]
              }
            },
            {
              "Header": {
                "Name": "catname",
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                  }
                ]
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "RateBasedRule"
      }
    }
```

**Example 以速率為基礎的規則 2：以速率為基礎的規則封鎖請求的日誌項目**  

```
{
   "timestamp":1633322211194,
   "formatVersion":1,
   "webaclId":...,
   "terminatingRuleId":"RateBasedRule",
   "terminatingRuleType":"RATE_BASED",
   "action":"BLOCK",
   "terminatingRuleMatchDetails":[
      
   ],
   "httpSourceName":"APIGW",
   "httpSourceId":"EXAMPLE11:rjvegx5guh:CanaryTest",
   "ruleGroupList":[
      
   ],
   "rateBasedRuleList":[
      {
         "rateBasedRuleId":...,
         "rateBasedRuleName":"RateBasedRule",
         "limitKey":"CUSTOMKEYS",
         "maxRateAllowed":100,
         "evaluationWindowSec":"120",
         "customValues":[
            {
               "key":"HEADER",
               "name":"dogname",
               "value":"ella"
            },
            {
               "key":"HEADER",
               "name":"catname",
               "value":"goofie"
            }
         ]
      }
   ],
   "nonTerminatingMatchingRules":[
      
   ],
   "requestHeadersInserted":null,
   "responseCodeSent":null,
   "httpRequest":{
      "clientIp":"52.46.82.35",
      "country":"FR",
      "headers":[
         {
            "name":"X-Forwarded-For",
            "value":"52.46.82.35"
         },
         {
            "name":"X-Forwarded-Proto",
            "value":"https"
         },
         {
            "name":"X-Forwarded-Port",
            "value":"443"
         },
         {
            "name":"Host",
            "value":"23llbyn8v3.execute-api.eu-west-3.amazonaws.com"
         },
         {
            "name":"X-Amzn-Trace-Id",
            "value":"Root=1-64556629-17ac754c2ed9f0620e0f2a0c"
         },
         {
            "name":"catname",
            "value":"goofie"
         },
         {
            "name":"dogname",
            "value":"ella"
         },
         {
            "name":"User-Agent",
            "value":"Apache-HttpClient/UNAVAILABLE (Java/11.0.19)"
         },
         {
            "name":"Accept-Encoding",
            "value":"gzip,deflate"
         }
      ],
      "uri":"/CanaryTest",
      "args":"",
      "httpVersion":"HTTP/1.1",
      "httpMethod":"GET",
      "requestId":"EdzmlH5OCGYF1vQ="
   }
}
```

**Example SQLi 偵測時觸發之規則的日誌輸出 （終止）**  

```
{
    "timestamp": 1576280412771,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:ap-southeast-2:111122223333:regional/webacl/STMTest/1EXAMPLE-2ARN-3ARN-4ARN-123456EXAMPLE",
    "terminatingRuleId": "STMTest_SQLi_XSS",
    "terminatingRuleType": "REGULAR",
    "action": "BLOCK",
    "terminatingRuleMatchDetails": [
        {
            "conditionType": "SQL_INJECTION",
            "sensitivityLevel": "HIGH",
            "location": "HEADER",
            "matchedData": [
                "10",
                "AND",
                "1"
            ]
        }
    ],
    "httpSourceName": "-",
    "httpSourceId": "-",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [],
    "httpRequest": {
        "clientIp": "1.1.1.1",
        "country": "AU",
        "headers": [
            {
                "name": "Host",
                "value": "localhost:1989"
            },
            {
                "name": "User-Agent",
                "value": "curl/7.61.1"
            },
            {
                "name": "Accept",
                "value": "*/*"
            },
            {
                "name": "x-stm-test",
                "value": "10 AND 1=1"
            }
        ],
        "uri": "/myUri",
        "args": "",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "GET",
        "requestId": "rid"
    },
    "labels": [
        {
            "name": "value"
        }
    ]
}
```

**Example SQLi 偵測時觸發之規則的日誌輸出 （非終止）**  

```
{
    "timestamp":1592357192516
    ,"formatVersion":1
    ,"webaclId":"arn:aws:wafv2:us-east-1:123456789012:global/webacl/hello-world/5933d6d9-9dde-js82-v8aw-9ck28nv9"
    ,"terminatingRuleId":"Default_Action"
    ,"terminatingRuleType":"REGULAR"
    ,"action":"ALLOW"
    ,"terminatingRuleMatchDetails":[]
    ,"httpSourceName":"-"
    ,"httpSourceId":"-"
    ,"ruleGroupList":[]
    ,"rateBasedRuleList":[]
    ,"nonTerminatingMatchingRules":
    [{
        "ruleId":"TestRule"
        ,"action":"COUNT"
        ,"ruleMatchDetails":
        [{
            "conditionType":"SQL_INJECTION"
            ,"sensitivityLevel": "HIGH"
            ,"location":"HEADER"
            ,"matchedData":[
                "10"
                ,"and"
                ,"1"]
            }]
    }]
    ,"httpRequest":{
        "clientIp":"3.3.3.3"
        ,"country":"US"
        ,"headers":[
            {"name":"Host","value":"localhost:1989"}
            ,{"name":"User-Agent","value":"curl/7.61.1"}
            ,{"name":"Accept","value":"*/*"}
            ,{"name":"myHeader","myValue":"10 AND 1=1"}
            ]
            ,"uri":"/myUri","args":""
            ,"httpVersion":"HTTP/1.1"
            ,"httpMethod":"GET"
            ,"requestId":"rid"
    },
    "labels": [
        {
            "name": "value"
        }
    ]
}
```

**Example 在規則群組內觸發的多個規則的日誌輸出 (RuleA-XSS 正在終止，而 Rule-B 正在非終止）**  

```
{
    "timestamp":1592361810888,
    "formatVersion":1,
    "webaclId":"arn:aws:wafv2:us-east-1:123456789012:global/webacl/hello-world/5933d6d9-9dde-js82-v8aw-9ck28nv9"
    ,"terminatingRuleId":"RG-Reference"
    ,"terminatingRuleType":"GROUP"
    ,"action":"BLOCK",
    "terminatingRuleMatchDetails":
    [{
        "conditionType":"XSS"
        ,"location":"HEADER"
        ,"matchedData":["<","frameset"]
    }]
    ,"httpSourceName":"-"
    ,"httpSourceId":"-"
    ,"ruleGroupList":
    [{
        "ruleGroupId":"arn:aws:wafv2:us-east-1:123456789012:global/rulegroup/hello-world/c05lb698-1f11-4m41-aef4-99a506d53f4b"
        ,"terminatingRule":{
            "ruleId":"RuleA-XSS"
            ,"action":"BLOCK"
            ,"ruleMatchDetails":null
            }
        ,"nonTerminatingMatchingRules":
        [{
            "ruleId":"RuleB-SQLi"
            ,"action":"COUNT"
            ,"ruleMatchDetails":
            [{
                "conditionType":"SQL_INJECTION"
                ,"sensitivityLevel": "LOW"
                ,"location":"HEADER"
                ,"matchedData":[
                    "10"
                    ,"and"
                    ,"1"]
            }]
        }]
        ,"excludedRules":null
    }]
    ,"rateBasedRuleList":[]
    ,"nonTerminatingMatchingRules":[]
    ,"httpRequest":{
        "clientIp":"3.3.3.3"
        ,"country":"US"
        ,"headers":
        [
            {"name":"Host","value":"localhost:1989"}
            ,{"name":"User-Agent","value":"curl/7.61.1"}
            ,{"name":"Accept","value":"*/*"}
            ,{"name":"myHeader1","value":"<frameset onload=alert(1)>"}
            ,{"name":"myHeader2","value":"10 AND 1=1"}
            ]
        ,"uri":"/myUri"
        ,"args":""
        ,"httpVersion":"HTTP/1.1"
        ,"httpMethod":"GET"
        ,"requestId":"rid"
    },
    "labels": [
        {
            "name": "value"
        }
    ]
}
```

**Example 為檢查具有內容類型 JSON 的請求內文而觸發的規則的日誌輸出**  
AWS WAF 目前會將 JSON 內文檢查的位置報告為 `UNKNOWN`。  

```
{
    "timestamp": 1576280412771,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:ap-southeast-2:123456789012:regional/webacl/test/111",
    "terminatingRuleId": "STMTest_SQLi_XSS",
    "terminatingRuleType": "REGULAR",
    "action": "BLOCK",
    "terminatingRuleMatchDetails": [
        {
            "conditionType": "SQL_INJECTION",
            "sensitivityLevel": "LOW",
            "location": "UNKNOWN",
            "matchedData": [
                "10",
                "AND",
                "1"
            ]
        }
    ],
    "httpSourceName": "ALB",
    "httpSourceId": "alb",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [],
    "requestHeadersInserted":null,
    "responseCodeSent":null,
    "httpRequest": {
        "clientIp": "1.1.1.1",
        "country": "AU",
        "headers": [],
        "uri": "",
        "args": "",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "POST",
        "requestId": "null"
    },
    "labels": [
        {
            "name": "value"
        }
    ]
}
```

**Example 針對具有有效、未過期 CAPTCHA 字符之 Web 請求的 CAPTCHA 規則的日誌輸出**  
下列日誌清單適用於符合規則與 CAPTCHA動作的 Web 請求。Web 請求具有有效和未過期的 CAPTCHA 字符，並且僅被標註為 CAPTCHA 比對者 AWS WAF，類似於Count動作的行為。此 CAPTCHA 比對會記錄在 下`nonTerminatingMatchingRules`。  

```
{
  "timestamp": 1632420429309,
  "formatVersion": 1,
  "webaclId": "arn:aws:wafv2:us-east-1:123456789012:regional/webacl/captcha-web-acl/585e38b5-afce-4d2a-b417-14fb08b66c67",
  "terminatingRuleId": "Default_Action",
  "terminatingRuleType": "REGULAR",
  "action": "ALLOW",
  "terminatingRuleMatchDetails": [],
  "httpSourceName": "APIGW",
  "httpSourceId": "123456789012:b34myvfw0b:pen-test",
  "ruleGroupList": [],
  "rateBasedRuleList": [],
  "nonTerminatingMatchingRules": [
    {
      "ruleId": "captcha-rule",
      "action": "CAPTCHA",
      "ruleMatchDetails": [],
      "captchaResponse": {
        "responseCode": 0,
        "solveTimestamp": 1632420429
      }
    }
  ],
  "requestHeadersInserted": [
    {
      "name": "x-amzn-waf-test-header-name",
      "value": "test-header-value"
    }
  ],
  "responseCodeSent": null,
  "httpRequest": {
    "clientIp": "72.21.198.65",
    "country": "US",
    "headers": [
      {
        "name": "X-Forwarded-For",
        "value": "72.21.198.65"
      },
      {
        "name": "X-Forwarded-Proto",
        "value": "https"
      },
      {
        "name": "X-Forwarded-Port",
        "value": "443"
      },
      {
        "name": "Host",
        "value": "b34myvfw0b.gamma.execute-api.us-east-1.amazonaws.com"
      },
      {
        "name": "X-Amzn-Trace-Id",
        "value": "Root=1-614cc24d-5ad89a09181910c43917a888"
      },
      {
        "name": "cache-control",
        "value": "max-age=0"
      },
      {
        "name": "sec-ch-ua",
        "value": "\"Chromium\";v=\"94\", \"Google Chrome\";v=\"94\", \";Not A Brand\";v=\"99\""
      },
      {
        "name": "sec-ch-ua-mobile",
        "value": "?0"
      },
      {
        "name": "sec-ch-ua-platform",
        "value": "\"Windows\""
      },
      {
        "name": "upgrade-insecure-requests",
        "value": "1"
      },
      {
        "name": "user-agent",
        "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36"
      },
      {
        "name": "accept",
        "value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
      },
      {
        "name": "sec-fetch-site",
        "value": "same-origin"
      },
      {
        "name": "sec-fetch-mode",
        "value": "navigate"
      },
      {
        "name": "sec-fetch-user",
        "value": "?1"
      },
      {
        "name": "sec-fetch-dest",
        "value": "document"
      },
      {
        "name": "referer",
        "value": "https://b34myvfw0b.gamma.execute-api.us-east-1.amazonaws.com/pen-test/pets"
      },
      {
        "name": "accept-encoding",
        "value": "gzip, deflate, br"
      },
      {
        "name": "accept-language",
        "value": "en-US,en;q=0.9"
      },
      {
        "name": "cookie",
        "value": "aws-waf-token=51c71352-41f5-4f6d-b676-c24907bdf819:EQoAZ/J+AAQAAAAA:t9wvxbw042wva7E2Y6lgud/bS6YG0CJKVAJqaRqDZ140ythKW0Zj9wKB2O8lSkYDRqf1yONcVBFo5u0eYi0tvT4rtQCXsu+KanAardW8go4QSLw4yoED59lgV7oAhGyCalAzE7ra29j+RvvZPsQyoQuDCrtoY/TvQyMTXIXzGPDC/rKBbg=="
      }
    ],
    "uri": "/pen-test/pets",
    "args": "",
    "httpVersion": "HTTP/1.1",
    "httpMethod": "GET",
    "requestId": "GINMHHUgoAMFxug="
  }
}
```

**Example 針對沒有 CAPTCHA 字符的 Web 請求記錄 CAPTCHA 規則的輸出**  
下列日誌清單適用於符合規則與 CAPTCHA動作的 Web 請求。Web 請求沒有 CAPTCHA 字符，已被 封鎖 AWS WAF。  

```
{
  "timestamp": 1632420416512,
  "formatVersion": 1,
  "webaclId": "arn:aws:wafv2:us-east-1:123456789012:regional/webacl/captcha-web-acl/585e38b5-afce-4d2a-b417-14fb08b66c67",
  "terminatingRuleId": "captcha-rule",
  "terminatingRuleType": "REGULAR",
  "action": "CAPTCHA",
  "terminatingRuleMatchDetails": [],
  "httpSourceName": "APIGW",
  "httpSourceId": "123456789012:b34myvfw0b:pen-test",
  "ruleGroupList": [],
  "rateBasedRuleList": [],
  "nonTerminatingMatchingRules": [],
  "requestHeadersInserted": null,
  "responseCodeSent": 405,
  "httpRequest": {
    "clientIp": "72.21.198.65",
    "country": "US",
    "headers": [
      {
        "name": "X-Forwarded-For",
        "value": "72.21.198.65"
      },
      {
        "name": "X-Forwarded-Proto",
        "value": "https"
      },
      {
        "name": "X-Forwarded-Port",
        "value": "443"
      },
      {
        "name": "Host",
        "value": "b34myvfw0b.gamma.execute-api.us-east-1.amazonaws.com"
      },
      {
        "name": "X-Amzn-Trace-Id",
        "value": "Root=1-614cc240-18b57ff33c10e5c016b508c5"
      },
      {
        "name": "sec-ch-ua",
        "value": "\"Chromium\";v=\"94\", \"Google Chrome\";v=\"94\", \";Not A Brand\";v=\"99\""
      },
      {
        "name": "sec-ch-ua-mobile",
        "value": "?0"
      },
      {
        "name": "sec-ch-ua-platform",
        "value": "\"Windows\""
      },
      {
        "name": "upgrade-insecure-requests",
        "value": "1"
      },
      {
        "name": "user-agent",
        "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36"
      },
      {
        "name": "accept",
        "value": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
      },
      {
        "name": "sec-fetch-site",
        "value": "cross-site"
      },
      {
        "name": "sec-fetch-mode",
        "value": "navigate"
      },
      {
        "name": "sec-fetch-user",
        "value": "?1"
      },
      {
        "name": "sec-fetch-dest",
        "value": "document"
      },
      {
        "name": "accept-encoding",
        "value": "gzip, deflate, br"
      },
      {
        "name": "accept-language",
        "value": "en-US,en;q=0.9"
      }
    ],
    "uri": "/pen-test/pets",
    "args": "",
    "httpVersion": "HTTP/1.1",
    "httpMethod": "GET",
    "requestId": "GINKHEssoAMFsrg="
  },
  "captchaResponse": {
    "responseCode": 405,
    "solveTimestamp": 0,
    "failureReason": "TOKEN_MISSING"
  }
}
```

# 資料保護
AWS WAF 新增資料保護選項

AWS WAF 現在可讓您在保護套件 (Web ACL) 層級或僅記錄層級設定資料保護。

AWS WAF 資料保護設定可讓您在特定資料欄位實作自訂且精細的敏感資訊保護 （密碼、API 金鑰、身分驗證字符和其他機密資料），例如標頭、參數和內文內容。

您可以在下列位置設定資料保護：
+ 套用於所有輸出目的地的保護套件 (Web ACL) 層級。
+ 僅記錄，這只會影響 AWS WAF 傳送至已設定記錄目的地的資料。

資料保護可以指定為替代或雜湊。

替代是指以單字 取代內容`REDACTED`。

 雜湊是指取代內容，從字串到 SHA-256 二進位檔再到 Base64：

1. 首先，演算法會從 account\$1number 和內容建置字串。

1. 然後，它會套用 SHA-256 來產生二進位雜湊。

1. 最後，它會使用 Base64 編碼這些位元組。

**提示**  
 您應該檢閱 SHA-256 雜湊的特性，以判斷是否符合您的需求，再選取適當的資料保護方法。如果您想要達到相當於加密或字符化的結果，我們不建議依賴 SHA-256 雜湊。

**Topics**
+ [

# 啟用資料保護
](enable-protection.md)
+ [

# 資料保護例外狀況
](data-protection-exceptions.md)
+ [

# 資料保護限制
](data-protection-limitations.md)
+ [

# 資料保護的範例
](data-protection-examples.md)
+ [

# 設定保護套件的資料保護 (Web ACL)
](data-protection-configure.md)

# 啟用資料保護
啟用資料保護

本節說明您可以從 主控台選取的資料保護和日誌組態選項。您可以啟用特定欄位的資料保護，以保護日誌中顯示的資料。資料保護可以套用來轉換各種輸出類型的敏感資訊，包括完整日誌、範例請求和 Security Lake。

**在 AWS WAF 主控台中啟用資料保護**

導覽至 主控台中的**保護套件 (Web ACLs**頁面，以**啟用保護設定**。若要啟用日誌的資料保護，請選擇是否將其套用至所有日誌或特定日誌目的地。如需相關資訊，請參閱[保護套件 (Web ACL) 流量的日誌欄位](logging-fields.md)。

**注意**  
您不需要啟用記錄功能，即可在所有記錄上套用資料保護。無論是否啟用記錄，資料保護都會套用至所有輸出目的地。

在**啟用保護設定**頁面底部，選取資料保護**欄位面板上的新增**欄位按鈕。 ****從下拉式選單中選取欄位類型。如需有關如何以資料保護保護每個欄位資料的資訊，請參閱下表。


| 欄位類型 | 詳細資訊 | 
| --- | --- | 
|  `Single header`  |  根據指定的選項 （雜湊或子位置） 永久轉換指定的標頭索引鍵值。轉換的值也會反映在完整的日誌中。  | 
|  `Body`  |  永久轉換內文值。僅適用於 日誌`RuleMatchDetails`中的 。  | 
|  `Query string`  |  根據指定的選項 （雜湊或子位置） 永久轉換查詢字串。轉換的值也會反映在完整的日誌中。  | 
|  `Single query argument`  |  根據指定的選項 （雜湊或子位置） 永久轉換指定的查詢 arg 值。轉換的值也會反映在完整的日誌中。  | 
|  `Single cookie`  |  根據指定的選項 （雜湊或子位置） 永久轉換 Cookie 值。轉換的值也會反映在完整的日誌中。  | 

# 資料保護例外狀況
資料保護例外狀況

啟用時，資料保護將套用至其啟用的欄位，包括 `RuleMatchDetails`和 `rateBasedRuleList`。不過，有些執行個體可能想要在 和 中包含受保護的資料`RuleMatchDetails`和內容，`rateBasedRuleList`以用於疑難排解和可見性目的。在這些情況下，您可以指定該欄位資料保護的例外狀況。
+ **`ExcludeRuleMatchDetails`**：如果您為特定欄位指定此例外狀況， `RuleMatchDetails` 會顯示欄位的值，且不會在資料保護的範圍內。
+ **`ExcludeRateBasedDetails`**：如果您為特定欄位指定此例外狀況， `rateBasedRuleList` 會顯示欄位的值，且不會在資料保護的範圍內。

  範例：`ExcludeRateBasedDetails`規則在 **SINGLE\$1HEADER** 和 "dogname" 的 **HEADER\$1NAME** 上啟用。

  如果例外狀況未套用至規則，則 "dogname" 的值會顯示為 `REDACTED`。

  ```
  "rateBasedRuleList":[ {"rateBasedRuleId": ...,
                          "rateBasedRuleName":"RateBasedRule", "limitKey":"CUSTOMKEYS",
                          "maxRateAllowed":100, "evaluationWindowSec":"120", "customValues":[
                          {"key":"HEADER", "name":"dogname", "value":"REDACTED" } ] } ]
  ```

  如果規則已啟用例外狀況，則日誌中會顯示 "dogname" 值。

  ```
   "rateBasedRuleList":[ {"rateBasedRuleId": ...,
                          "rateBasedRuleName":"RateBasedRule", "limitKey":"CUSTOMKEYS",
                          "maxRateAllowed":100, "evaluationWindowSec":"120", "customValues":[
                          {"key":"HEADER", "name":"dogname", "value":"ELLA" } ] } ]
  ```

**警告**  
資料保護功能可能會影響故障診斷 AWS WAF 功能。這些設定可能會導致非預期的偵測和緩解行為。將特定參數的資料保護限制為僅絕對必要的參數。

# 資料保護限制
資料保護限制

以下是使用資料保護時應考慮的限制。

## QueryString 和 SingleQueryArg


**QueryString 保護**
+ 上的資料保護`QueryString`適用於所有查詢引數，並根據指定的設定替換/雜湊索引鍵和值。

**`RuleMatch`詳細資訊和`RateBased`規則清單中的 QueryString **
+ 如果將資料保護套用至單一查詢引數，則會在完整日誌的 `RuleMatchDetails`和 `RateBasedRule`區段中取代/雜湊整個查詢字串。
+ 如果在多個單一查詢引數中指定了不同的保護方法 （替換和雜湊），則更嚴格的方法替換將套用至完整日誌中 `RuleMatchDetails`和 `RateBasedRule`區段中的整個查詢字串。

## Cookie


**注意**  
 資料保護只有在單一標頭 Cookie 受到保護時，才會套用至 Cookie 的值。

**`RuleMatchDetails`和 `RateBasedRule` 清單中的單一 Cookie**
+ 如果將資料保護套用至單一 Cookie，則完整日誌中 `RuleMatchDetails`和 `RateBasedRule`區段中的整個 Cookie 標頭將會取代/雜湊。
+ 如果指定不同的保護方法 （替代和雜湊），更嚴格的方法、替代將套用至完整日誌中 `RuleMatchDetails`和 `RateBasedRule`區段中的整個 Cookie。

# 資料保護的範例
資料保護的範例

本節提供保護套件 (Web ACL) 流量的資料保護記錄日誌範例。

## DataProtection 雜湊


Webacl 組態

```
"data_protection_config": {
            "data_protections": [
                {
                    "field": {
                        "field_type": "SINGLE_QUERY_ARGUMENT",
                        "field_keys": [
                            "hoppy"
                        ]
                    },
                    "action": "HASH",
                    "exclude_rule_match_details": false,
                    "exclude_rate_based_details": false
                }
             ]
           }
```

範例 DataProtection 雜湊：受 SingleQuery 引數 "hoppy" 保護的日誌項目。

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionhashACL/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [{
        "ruleId": "ProtectedSQLIHeadersVisibleInSTM",
        "action": "COUNT",
        "ruleMatchDetails": [{
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "SINGLE_QUERY_ARG",
                "matchedData": [ "z6hpYAFaMYdtiTeHhxnN5ydgRE5E1WgyVIdgqH0D3iM=" ],
                "matchedFieldName": "hoppy"
        }]
    }],
"requestHeadersInserted": null,
"responseCodeSent": null,
"httpRequest": {
    "clientIp": "54.239.98.137",
    "country": "US",
    "headers": [{
        "name": "X-Forwarded-For",
        "value": "54.239.98.137"
    }, {
        "name": "X-Forwarded-Proto",
        "value": "https"
    }, {
        "name": "X-Forwarded-Port",
        "value": "443"
    }, {
        "name": "Host",
        "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
    }, {
        "name": "X-Amzn-Trace-Id",
        "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
    }, {
        "name": "Accept-Encoding",
        "value": "gzip"
    }, {
        "name": "User-Agent",
        "value": "okhttp/3.12.1"
    }],
    "uri": "/CanaryTest",
    "args": "hoppy=z6hpYAFaMYdtiTeHhxnN5ydgRE5E1WgyVIdgqH0D3iM=&yellow=hello&x-hoppy-extra=generic-%3Cwords%3E-in-angle-brackets",
    "httpVersion": "HTTP/1.1",
    "httpMethod": "GET",
    "requestId": "FepO0F8fIAMEqoQ="
},
"labels": [{
    "name": "awswaf:forwardedip:geo:country:US"
}, {
    "name": "awswaf:forwardedip:geo:region:US-VA"
}]
}
```

## DataProtection 替換


Webacl Config

```
"data_protection_config": {
            "data_protections": [
                {
                    "field": {
                        "field_type": "SINGLE_QUERY_ARGUMENT",
                        "field_keys": [
                            "hoppy"
                        ]
                    },
                    "action": "SUBSTITUTION",
                    "exclude_rule_match_details": false,
                    "exclude_rate_based_details": false
                }
             ]
           }
```

範例 DataProtection 替換：具有單一查詢引數 "hoppy" 保護的日誌項目

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionhashACL/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": []
"requestHeadersInserted": null,
"responseCodeSent": null,
"httpRequest": {
    "clientIp": "54.239.98.137",
    "country": "US",
    "headers": [{
        "name": "X-Forwarded-For",
        "value": "54.239.98.137"
    }, {
        "name": "X-Forwarded-Proto",
        "value": "https"
    }, {
        "name": "X-Forwarded-Port",
        "value": "443"
    }, {
        "name": "Host",
        "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
    }, {
        "name": "X-Amzn-Trace-Id",
        "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
    }, {
        "name": "Accept-Encoding",
        "value": "gzip"
    }, {
        "name": "User-Agent",
        "value": "okhttp/3.12.1"
    }],
    "uri": "/CanaryTest",
    "args": "hoppy=REDACTED&yellow=hello&x-hoppy-extra=generic-%3Cwords%3E-in-angle-brackets",
    "httpVersion": "HTTP/1.1",
    "httpMethod": "GET",
    "requestId": "FepO0F8fIAMEqoQ="
},
"labels": [{
    "name": "awswaf:forwardedip:geo:country:US"
}, {
    "name": "awswaf:forwardedip:geo:region:US-VA"
}]
}
```

## 在 RuleMatchDetails 中保留資料


Webacl 組態

```
"data_protection_config": {
            "data_protections": [
                {
                    "field": {
                        "field_type": "SINGLE_HEADER",
                        "field_keys": [
                            "hoppy"
                        ]
                    },
                    "action": "HASH",
                    "exclude_rule_match_details": true,
                    "exclude_rate_based_details": false
                }
             ]
           }
```

在 RuleMatchDetails 中保留資料的範例：日誌項目具有單一`Header`「躍點」保護，但值只會保留在 中`RuleMatchDetails`。

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionhashACL/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [{
        "ruleId": "ProtectedSQLIHeadersVisibleInSTM",
        "action": "COUNT",
        "ruleMatchDetails": [{
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "HEADER",
                "matchedData": [ "10", "AND", "1" ],
                "matchedFieldName": "hoppy"
        }]
    }],
"requestHeadersInserted": null,
"responseCodeSent": null,
"httpRequest": {
    "clientIp": "54.239.98.137",
    "country": "US",
    "headers": [{
        "name": "X-Forwarded-For",
        "value": "54.239.98.137"
    }, {
        "name": "X-Forwarded-Proto",
        "value": "https"
    }, {
        "name": "X-Forwarded-Port",
        "value": "443"
    }, {
        "name": "Host",
        "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
    }, {
        "name": "X-Amzn-Trace-Id",
        "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
    }, {
        "name": "hoppy",
        "value": "zuomr2mxQxofg6EI6f7hMNGaJhhPxt0rFVAXog6FLxE="
    }, {
        "name": "Accept-Encoding",
        "value": "gzip"
    }, {
        "name": "User-Agent",
        "value": "okhttp/3.12.1"
    }, {
        "name": "hoppy",
        "value": "z6hpYAFaMYdtiTeHhxnN5ydgRE5E1WgyVIdgqH0D3iM="
    }],
    "uri": "/CanaryTest",
    "args": "happy=true",
    "httpVersion": "HTTP/1.1",
    "httpMethod": "GET",
    "requestId": "FepO0F8fIAMEqoQ="
},
"labels": [{
    "name": "awswaf:forwardedip:geo:country:US"
}, {
    "name": "awswaf:forwardedip:geo:region:US-VA"
}]
}
```

## 在 rateBasedRule 中保留資料


```
 "data_protection_config": {
            "data_protections": [
                {
                    "field": {
                        "field_type": "SINGLE_HEADER",
                        "field_keys": [
                            "hoppy"
                        ]
                    },
                    "action": "HASH",
                    "exclude_rule_match_details": false,
                    "exclude_rate_based_details": true
                }
             ]
           }
```

RateBasedRuleList 中的範例保留資料：受單一`Header`「躍點」保護的日誌項目，但值只會保留在 `rateBasedRuleList`

```
{
    "timestamp": 1683355579981,
    "formatVersion": 1,
    "webaclId": ...,
    "terminatingRuleId": "RateBasedRule",
    "terminatingRuleType": "RATE_BASED",
    "action": "BLOCK",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "EXAMPLE11:rjvegx5guh:CanaryTest",
    "ruleGroupList": [],
    "rateBasedRuleList": [{
        "rateBasedRuleId": ...,
        "rateBasedRuleName": "RateBasedRule",
        "limitKey": "CUSTOMKEYS",
        "maxRateAllowed": 100,
        "evaluationWindowSec": "120",
        "customValues": [{
            "key": "HEADER",
            "name": "hoppy",
            "value": "ella"
        }]
    }],
    "nonTerminatingMatchingRules": [],
    "requestHeadersInserted": null,
    "responseCodeSent": null,
    "httpRequest": {
        "clientIp": "52.46.82.45",
        "country": "FR",
        "headers": [{
            "name": "X-Forwarded-For",
            "value": "52.46.82.45"
        }, {
            "name": "X-Forwarded-Proto",
            "value": "https"
        }, {
            "name": "X-Forwarded-Port",
            "value": "443"
        }, {
            "name": "Host",
            "value": "rjvegx5guh.execute-api.eu-west-3.amazonaws.com"
        }, {
            "name": "X-Amzn-Trace-Id",
            "value": "Root=1-645566cf-7cb058b04d9bb3ee01dc4036"
        }, {
            "name": "hoppy",
            "value": "zuomr2mxQxofg6EI6f7hMNGaJhhPxt0rFVAXog6FLxE="
        }, {
            "name": "User-Agent",
            "value": "RateBasedRuleTestKoipOneKeyModulePV2"
        }, {
            "name": "Accept-Encoding",
            "value": "gzip,deflate"
        }],
        "uri": "/CanaryTest",
        "args": "",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "GET",
        "requestId": "Ed0AiHF_CGYF-DA="
    }
}
```

## 內文的資料保護


AWS WAF 只會記錄 中內文的子集`RuleMatchDetails`。

Webacl 組態

```
 "data_protection_config": {
            "data_protections": [
                {
                    "field": {
                        "field_type": "BODY"
                    },
                    "action": "SUBSTITUTE",
                    "exclude_rule_match_details": false,
                    "exclude_rate_based_details": false
                }
             ]
           }
```

內文DataProtection範例：內文位於 中的日誌項目`ruleMatchDetails`。

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionhashACL/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [{
        "ruleId": "ProtectedSQLIBody",
        "action": "COUNT",
        "ruleMatchDetails": [{
            "conditionType": "SQL_INJECTION",
            "sensitivityLevel": "HIGH",
            "location": "BODY",
            "matchedData": ["REDACTED"]
        }]
    }],
    "requestHeadersInserted": null,
    "responseCodeSent": null,
    "httpRequest": {
        "clientIp": "54.239.98.137",
        "country": "US",
        "headers": [{
            "name": "X-Forwarded-For",
            "value": "54.239.98.137"
        }, {
            "name": "X-Forwarded-Proto",
            "value": "https"
        }, {
            "name": "X-Forwarded-Port",
            "value": "443"
        }, {
            "name": "Host",
            "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
        }, {
            "name": "X-Amzn-Trace-Id",
            "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
        }, {
            "name": "Accept-Encoding",
            "value": "gzip"
        }, {
            "name": "User-Agent",
            "value": "okhttp/3.12.1"
        }, {
            "name": "cookie",
            "value": "hoppy=dog;"
        }],
        "uri": "/CanaryTest",
        "args": "baloo=abc&hoppy-query=xyz&x-hoppy-extra=generic-%3Cwords%3E-in-angle-brackets",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "GET",
        "requestId": "FepO0F8fIAMEqoQ="
    },
    "labels": [{
        "name": "awswaf:forwardedip:geo:country:US"
    }, {
        "name": "awswaf:forwardedip:geo:region:US-VA"
    }]
}
```

## `SINGLE_COOKIE` 的資料保護


Webacl 組態

```
 "data_protection_config": {
            "data_protections": [
                {
                    "field": {
                        "field_type": "SINGLE_COOKIE",
                        "field_keys": [
                            "MILO"
                        ]
                    },
                    "action": "HASH",
                    "exclude_rule_match_details": false,
                    "exclude_rate_based_details": false
                }
             ]
           }
```

的範例 DataProtection for `SINGLE_COOKIE`：具有`SINGLE_COOKIE`名為 "MILO" 保護的日誌項目。

完整日誌顯示名為 MILO 的 Cookie 在 `ruleMatchDetails`和 Cookie 標頭中受到保護。只會保護 Cookie 值，並排除金鑰名稱。

**注意**  
所有受保護的欄位 （單一標頭、Cookie、查詢 arg) 不區分大小寫。因此，在此範例中，「MILO」符合「milo」。

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionhashACL/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [{
        "ruleId": "ProtectedSQLIHeadersVisibleInSTM",
        "action": "COUNT",
        "ruleMatchDetails": [{
            "conditionType": "SQL_INJECTION",
            "sensitivityLevel": "HIGH",
            "location": "COOKIE",
            "matchedData": ["zuomr2mxQxofg6EI6f7hMNGaJhhPxt0rFVAXog6FLxE="],
            "matchedFieldName": "milo"
        }]
    }],
    "requestHeadersInserted": null,
    "responseCodeSent": null,
    "httpRequest": {
        "clientIp": "54.239.98.137",
        "country": "US",
        "headers": [{
            "name": "X-Forwarded-For",
            "value": "54.239.98.137"
        }, {
            "name": "X-Forwarded-Proto",
            "value": "https"
        }, {
            "name": "X-Forwarded-Port",
            "value": "443"
        }, {
            "name": "Host",
            "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
        }, {
            "name": "X-Amzn-Trace-Id",
            "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
        }, {
            "name": "Accept-Encoding",
            "value": "gzip"
        }, {
            "name": "User-Agent",
            "value": "okhttp/3.12.1"
        }, {
            "name": "cookie",
            "value": "hoppy=dog;milo=zuomr2mxQxofg6EI6f7hMNGaJhhPxt0rFVAXog6FLxE=;aws-waf-token=51c71352-41f5-4f6d-b676-c24907bdf819:EQoAZ/J+AAQAAAAA:t9wvxbw042wva7E2Y6lgud/bS6YG0CJKVAJqaRqDZ140ythKW0Zj9wKB2O8lSkYDRqf1yONcVBFo5u0eYi0tvT4rtQCXsu+KanAardW8go4QSLw4yoED59lgV7oAhGyCalAzE7ra29j+RvvZPsQyoQuDCrtoY/TvQyMTXIXzGPDC/rKBbg=="
        }],
        "uri": "/CanaryTest",
        "args": "baloo=abc&hoppy-query=xyz&x-hoppy-extra=generic-%3Cwords%3E-in-angle-brackets",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "GET",
        "requestId": "FepO0F8fIAMEqoQ="
    },
    "labels": [{
        "name": "awswaf:forwardedip:geo:country:US"
    }, {
        "name": "awswaf:forwardedip:geo:region:US-VA"
    }]
}
```

## 所有 Cookie 的資料保護


您可以使用 設定 Cookie 的資料保護`SINGLE_HEADER`。只會保護 Cookie 值，並排除金鑰名稱。

```
"DataProtectionConfig": {
    "DataProtections": [
        {
            "Field": {
                "FieldType": "SINGLE_HEADER",
                "FieldKeys": ["cookie"]
            },
            "Action": "SUBSTITUTION",
            "ExcludeRuleMatchDetails": false,
            "ExcludeRateBasedDetails": false
        }
    ]
}
```

`header ` "COOKIE" 的範例 DataProtection：日誌項目與 Cookie 標頭受保護。

**注意**  
Cookie 名稱`AWS-WAF-TOKEN`超出資料保護的範圍。

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionhashACL/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [],
    "requestHeadersInserted": null,
    "responseCodeSent": null,
    "httpRequest": {
        "clientIp": "54.239.98.137",
        "country": "US",
        "headers": [{
            "name": "X-Forwarded-For",
            "value": "54.239.98.137"
        }, {
            "name": "X-Forwarded-Proto",
            "value": "https"
        }, {
            "name": "X-Forwarded-Port",
            "value": "443"
        }, {
            "name": "Host",
            "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
        }, {
            "name": "X-Amzn-Trace-Id",
            "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
        }, {
            "name": "Accept-Encoding",
            "value": "gzip"
        }, {
            "name": "User-Agent",
            "value": "okhttp/3.12.1"
        }, {
            "name": "cookie",
            "value": "hoppy=REDACTED;milo=REDACTED;aws-waf-token=51c71352-41f5-4f6d-b676-c24907bdf819:EQoAZ/J+AAQAAAAA:t9wvxbw042wva7E2Y6lgud/bS6YG0CJKVAJqaRqDZ140ythKW0Zj9wKB2O8lSkYDRqf1yONcVBFo5u0eYi0tvT4rtQCXsu+KanAardW8go4QSLw4yoED59lgV7oAhGyCalAzE7ra29j+RvvZPsQyoQuDCrtoY/TvQyMTXIXzGPDC/rKBbg=="
        }],
        "uri": "/CanaryTest",
        "args": "baloo=xyz=&hoppy-query=abc&x-hoppy-extra=abc",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "GET",
        "requestId": "FepO0F8fIAMEqoQ="
    },
    "labels": [{
        "name": "awswaf:forwardedip:geo:country:US"
    }, {
        "name": "awswaf:forwardedip:geo:region:US-VA"
    }]
}
```

## 單一查詢引數的資料保護


您可以使用 設定查詢字串的資料保護`SINGLE_QUERY_ARGUMENT`。這會影響所有查詢 args 的索引鍵和值。對於下列範例，原始查詢字串為 `baloo=10 AND 1=1&hoppy=10 AND 1=1&x-hoppy-extra=generic-%3Cwords`。

Webacl 組態

```
"DataProtectionConfig": {
   "DataProtections": [
        {
            "Field": {
                "FieldType": "SINGLE_QUERY_ARGUMENT",
                "FieldKeys": ["hoppy"]
            },
            "Action": "SUBSTITUTION",
            "ExcludeRuleMatchDetails": false,
            "ExcludeRateBasedDetails": false
        }
    ]
}
```

適用於 的範例 DataProtection`SINGLE_QUERY_ARGUEMENT`：具有「跳躍」查詢字串的日誌項目，以替換保護。

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionSubstituteQueryString/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [
      {
        "ruleId": "ProtectedHoppyQueryArg",
        "action": "COUNT",
        "ruleMatchDetails": [
            {
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "SINGLE_QUERY_ARG",
                "matchedData": ["REDACTED"],
                "matchedFieldName": "hoppy"
            }]
      },
      {
        "ruleId": "FullQueryStringInspectionWhichDetectsTheFirstFieldWithSQLi_Baloo_IsAlsoMaskedMasked",
        "action": "COUNT",
        "ruleMatchDetails": [
            {
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "QUERY_ARGS",
                "matchedData": ["REDACTED"],
            }]
      },
      {
        "ruleId": "ProtectedBalooQueryArg",
        "action": "COUNT",
        "ruleMatchDetails": [
            {
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "SINGLE_QUERY_ARG",
                "matchedData": [ "10", "AND", "1" ],
                "matchedFieldName": "baloo"
            }]
      }
    ],
    "requestHeadersInserted": null,
    "responseCodeSent": null,
    "httpRequest": {
        "clientIp": "54.239.98.137",
        "country": "US",
        "headers": [{
            "name": "X-Forwarded-For",
            "value": "54.239.98.137"
        }, {
            "name": "X-Forwarded-Proto",
            "value": "https"
        }, {
            "name": "X-Forwarded-Port",
            "value": "443"
        }, {
            "name": "Host",
            "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
        }, {
            "name": "X-Amzn-Trace-Id",
            "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
        }, {
            "name": "Accept-Encoding",
            "value": "gzip"
        }, {
            "name": "User-Agent",
            "value": "okhttp/3.12.1"
        }],
        "uri": "/CanaryTest",
        "args": "baloo=10 AND 1=1&hoppy=REDACTED&x-hoppy-extra=generic-%3Cwords",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "GET",
        "requestId": "FepO0F8fIAMEqoQ="
    },
    "labels": [{
        "name": "awswaf:forwardedip:geo:country:US"
    }, {
        "name": "awswaf:forwardedip:geo:region:US-VA"
    }]
}
```

## 查詢字串的資料保護


您可以使用 設定查詢字串的資料保護`QUERY_STRING`。這會影響所有查詢 args 的索引鍵和值。對於下列範例，原始查詢字串為 `baloo=10 AND 1=1&hoppy-query=10 AND 1=1&x-hoppy-extra=generic-%3Cwords`。

Webacl 組態

```
"DataProtectionConfig": {
 "DataProtections": [
 {
 "Field": {
 "FieldType": "QUERY_STRING"
 },
 "Action": "SUBSTITUTION",
 "ExcludeRuleMatchDetails": false,
 "ExcludeRateBasedDetails": false
 }
 ]
}
```

的範例 DataProtection for `QUERY_STRING`：具有以替換保護之查詢字串的日誌項目。

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionSubstituteQueryString/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [
      {
        "ruleId": "ProtectedHoppyQueryArg",
        "action": "COUNT",
        "ruleMatchDetails": [
            {
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "QUERY_STRING",
                "matchedData": ["REDACTED"]
            }]
      },
      {
        "ruleId": "ProtectedBalooQueryArg",
        "action": "COUNT",
        "ruleMatchDetails": [
            {
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "SINGLE_QUERY_ARG",
                "matchedData": [ "REDACTED" ],
                "matchedFieldName": "REDACTED"
            }]
      }
    ],
    "requestHeadersInserted": null,
    "responseCodeSent": null,
    "httpRequest": {
        "clientIp": "54.239.98.137",
        "country": "US",
        "headers": [{
            "name": "X-Forwarded-For",
            "value": "54.239.98.137"
        }, {
            "name": "X-Forwarded-Proto",
            "value": "https"
        }, {
            "name": "X-Forwarded-Port",
            "value": "443"
        }, {
            "name": "Host",
            "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
        }, {
            "name": "X-Amzn-Trace-Id",
            "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
        }, {
            "name": "Accept-Encoding",
            "value": "gzip"
        }, {
            "name": "User-Agent",
            "value": "okhttp/3.12.1"
        }],
        "uri": "/CanaryTest",
        "args": "REDACTED",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "GET",
        "requestId": "FepO0F8fIAMEqoQ="
    },
    "labels": [{
        "name": "awswaf:forwardedip:geo:country:US"
    }, {
        "name": "awswaf:forwardedip:geo:region:US-VA"
    }]
}
```

## 多個查詢引數的資料保護


您可以使用 設定個別查詢 args 的資料保護`SINGLE_QUERY_ARGUMENT`。報告本機資訊時，我們使用本機保護。不過，查詢字串和 Cookie 標頭中相符的字串有許多可能套用的保護組態。為了簡化，`RuleMatchDetails`會套用最嚴格的 保護，即使它未與符合的特定資料範圍重疊。

對於下列範例，原始查詢字串為 `baloo=is_a_good_boy&hoppy=likes_to_sleep&x-hoppy-extra=10 AND 1=1`。

```
"DataProtectionConfig": {
    "DataProtections": [
        {
            "Field": {
                "FieldType": "SINGLE_QUERY_ARGUMENT",
                "FieldKeys": ["hoppy"]
            },
            "Action": "SUBSTITUTION",
            "ExcludeRuleMatchDetails": false,
            "ExcludeRateBasedDetails": false
        },
        {
            "Field": {
                "FieldType": "SINGLE_QUERY_ARGUMENT",
                "FieldKeys": ["baloo"]
            },
            "Action": "HASH",
            "ExcludeRuleMatchDetails": false,
            "ExcludeRateBasedDetails": false
        }
    ]
}
```

多個查詢引數的範例 DataProtection。

```
{
    "timestamp": 1738705092889,
    "formatVersion": 1,
    "webaclId": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/DataProtectionSubstituteQueryString/4eede063-e611-44f5-b357-ffc9d7b7fed5",
    "terminatingRuleId": "Default_Action",
    "terminatingRuleType": "REGULAR",
    "action": "ALLOW",
    "terminatingRuleMatchDetails": [],
    "httpSourceName": "APIGW",
    "httpSourceId": "746533260405:xt7v59bhn7:ABC",
    "ruleGroupList": [],
    "rateBasedRuleList": [],
    "nonTerminatingMatchingRules": [
      {
        "ruleId": "ProtectedHoppyQueryArg",
        "action": "COUNT",
        "ruleMatchDetails": [
            {
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "SINGLE_QUERY_ARG",
                "matchedData": ["REDACTED"],
                "matchedFieldName": "hoppy"
            }]
      },
      {
        "ruleId": "ProtectedBalooQueryArg",
        "action": "COUNT",
        "ruleMatchDetails": [
            {
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "SINGLE_QUERY_ARG",
                "matchedData": ["zuomr2mxQxofg6EI6f7hMNGaJhhPxt0rFVAXog6FLxE="],
                "matchedFieldName": "baloo"
            }]
      },
      {
        "ruleId": "FullQueryStringDetects_x-hoppy-extra_IsSubstituted",
        "action": "COUNT",
        "ruleMatchDetails": [
            {
                "conditionType": "SQL_INJECTION",
                "sensitivityLevel": "HIGH",
                "location": "QUERY_ARGS",
                "matchedData": ["REDACTED"],  // Harshest of Protection Config
            }]
      }
    ],
    "requestHeadersInserted": null,
    "responseCodeSent": null,
    "httpRequest": {
        "clientIp": "54.239.98.137",
        "country": "US",
        "headers": [{
            "name": "X-Forwarded-For",
            "value": "54.239.98.137"
        }, {
            "name": "X-Forwarded-Proto",
            "value": "https"
        }, {
            "name": "X-Forwarded-Port",
            "value": "443"
        }, {
            "name": "Host",
            "value": "xt7xxx9bhn7.gamma.execute-api.us-east-1.amazonaws.com"
        }, {
            "name": "X-Amzn-Trace-Id",
            "value": "Root=1-67a288c4-27acb3cd5795dd8456b7e3c3"
        }, {
            "name": "Accept-Encoding",
            "value": "gzip"
        }, {
            "name": "User-Agent",
            "value": "okhttp/3.12.1"
        }],
        "uri": "/CanaryTest",
        "args": "baloo=zuomr2mxQxofg6EI6f7hMNGaJhhPxt0rFVAXog6FLxE=&hoppy=REDACTED&x-hoppy-extra=10 AND 1=1",
        "httpVersion": "HTTP/1.1",
        "httpMethod": "GET",
        "requestId": "FepO0F8fIAMEqoQ="
    },
    "labels": [{
        "name": "awswaf:forwardedip:geo:country:US"
    }, {
        "name": "awswaf:forwardedip:geo:region:US-VA"
    }]
}
```

**注意**  
您無法在相同的 webACL 中同時指定 **QueryString 遮罩**和**單一查詢 Arg 遮罩**。

# 設定保護套件的資料保護 (Web ACL)
設定保護套件的資料保護 (Web ACL)

本節提供設定保護套件 (Web ACL) 資料保護的說明。

**設定保護套件的資料保護 (Web ACL)**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇**保護套件 (Web ACLs)**。

1. 選擇您要為其啟用資料保護的保護套件 (Web ACL) 名稱。主控台會將您帶到保護套件 (Web ACL) 的描述，您可以在其中編輯它。

1. 在**記錄和指標**索引標籤的**資料保護設定**窗格中，選擇**啟用或停用******。

1. 選擇範圍**全域**，然後進行欄位資料保護選擇。對於每個欄位資料保護組態，您也可以指定要從保護行為中排除的例外狀況。

1. 完成選擇後，請選擇**儲存**。界面會返回**記錄和指標**索引標籤，其中會摘要您的選擇。

# 測試和調校您的 AWS WAF 保護
測試和調整您的 防護更新測試和調校 AWS WAF 保護的指引

測試和調校的一般指引 AWS WAF 已更新，現在是頂層主題。

本節提供測試和調校 AWS WAF 保護套件 (Web ACLs)、規則、規則群組、IP 集和 regex 模式集的指引。

建議您先測試和調校 AWS WAF 保護套件 (Web ACL) 的任何變更，再將其套用至網站或 Web 應用程式流量。

**生產流量風險**  
在部署生產流量的保護套件 (Web ACL) 實作之前，請在預備或測試環境中進行測試和調校，直到您對流量的潛在影響感到滿意為止。然後，使用生產流量在計數模式中測試和調校規則，然後再啟用它們。

本節也提供一般指引，以測試您使用由其他人管理的規則群組。其中包括 AWS 受管規則規則群組、 AWS Marketplace 受管規則群組，以及另一個帳戶與您共用的規則群組。對於這些規則群組，也請遵循您從規則群組提供者取得的任何指引。
+ 如需 Bot Control AWS 受管規則規則群組，另請參閱 [測試和部署 AWS WAF 機器人控制](waf-bot-control-deploying.md)。
+ 如需帳戶接管預防 AWS 受管規則規則群組，另請參閱 [測試和部署 ATP](waf-atp-deploying.md)。
+ 如需帳戶建立詐騙預防 AWS 受管規則規則群組，另請參閱 [測試和部署 ACFP](waf-acfp-deploying.md)。

**更新期間的暫時性不一致**  
當您建立或變更保護套件 (Web ACL) 或其他 AWS WAF 資源時，變更會花費少量的時間傳播到存放資源的所有區域。傳播時間可以是幾秒鐘到幾分鐘。

以下是您在變更傳播期間可能注意到的暫時不一致的範例：
+ 建立保護套件 (Web ACL) 之後，如果您嘗試將其與資源建立關聯，您可能會收到例外狀況，指出保護套件 (Web ACL) 無法使用。
+ 將規則群組新增至保護套件 (Web ACL) 之後，新的規則群組規則可能會在使用保護套件 (Web ACL) 的一個區域中生效，而不會在另一個區域中生效。
+ 變更規則動作設定後，您可能會在某些地方看到舊動作，在其他地方看到新動作。
+ 將 IP 地址新增至封鎖規則中使用的 IP 集之後，新的地址可能會在某個區域中遭到封鎖，同時仍允許在另一個區域中封鎖。

# 測試和調校高階步驟
測試和調校高階步驟

本節提供測試 Web ACL 變更的步驟檢查清單，包括其使用的任何規則或規則群組。

**注意**  
若要遵循本節中的指引，您需要了解如何建立和管理 AWS WAF 保護，例如保護套件 (Web ACLs)、規則和規則群組。本指南稍早章節會介紹該資訊。

**測試和調校您的保護套件 (Web ACL)**

請先在測試環境中執行這些步驟，然後在生產環境中執行。

1. 

**準備進行測試**

   準備您的監控環境、將新 AWS WAF 保護切換到計數模式進行測試，並建立您需要的任何資源關聯。

   請參閱 [準備測試您的 AWS WAF 保護](web-acl-testing-prep.md)。

1. 

**在測試和生產環境中監控和調校**

   先在測試或預備環境中監控和調整您的 AWS WAF 保護，然後在生產環境中監控和調整保護，直到您對它們可以根據需要處理流量感到滿意為止。

   請參閱 [監控和調校您的 AWS WAF 保護](web-acl-testing-activities.md)。

1. 

**在生產環境中啟用您的保護**

   當您對測試保護感到滿意時，請將它們切換到生產模式、清除任何不必要的測試成品，然後繼續監控。

   請參閱 [在生產環境中啟用您的保護](web-acl-testing-enable-production.md)。

完成實作變更後，請繼續監控您的 Web 流量和生產環境中的保護，以確保它們如預期般運作。Web 流量模式可能會隨著時間而變更，因此您可能需要偶爾調整保護。

# 準備測試您的 AWS WAF 保護
準備進行測試

本節說明如何設定 來測試和調校您的 AWS WAF 保護。

**注意**  
若要遵循本節中的指引，您需要大致了解如何建立和管理 AWS WAF 保護，例如保護套件 (Web ACLs)、規則和規則群組。本指南稍早章節會介紹該資訊。

**準備進行測試**

1. 

**啟用保護套件 (Web ACL) 記錄、Amazon CloudWatch 指標和保護套件 (Web ACL) 的 Web 請求取樣**

   使用記錄、指標和抽樣來監控保護套件 (Web ACL) 規則與 Web 流量的互動。
   + **記錄** – 您可以設定 AWS WAF 來記錄保護套件 (Web ACL) 評估的 Web 請求。您可以將日誌傳送至 CloudWatch 日誌、Amazon S3 儲存貯體或 Amazon Data Firehose 交付串流。您可以編輯欄位並套用篩選。如需詳細資訊，請參閱[記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。
   + **Amazon Security Lake** – 您可以設定 Security Lake 來收集保護套件 (Web ACL) 資料。Security Lake 會從各種來源收集日誌和事件資料，以進行標準化、分析和管理。如需此選項的相關資訊，請參閱《[Amazon Security Lake 使用者指南》中的什麼是 Amazon Security Lake？](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html)以及[從 AWS 服務收集資料](https://docs.aws.amazon.com/security-lake/latest/userguide/internal-sources.html)。 **
   + **Amazon CloudWatch 指標** – 在保護套件 (Web ACL) 組態中，為您要監控的所有項目提供指標規格。您可以透過 AWS WAF 和 CloudWatch 主控台檢視指標。如需詳細資訊，請參閱[使用 Amazon CloudWatch 監控](monitoring-cloudwatch.md)。
   + **Web 請求取樣** – 您可以檢視保護套件 (Web ACL) 評估的所有 Web 請求範例。如需有關 Web 請求取樣的資訊，請參閱 [檢視 Web 請求的範例](web-acl-testing-view-sample.md)。

1. 

**將您的保護設定為 Count 模式**

   在保護套件 (Web ACL) 組態中，將您要測試的任何項目切換為計數模式。這會導致測試保護針對 Web 請求記錄相符項目，而不會改變請求的處理方式。您將能夠在指標、日誌和抽樣請求中看到相符項目，以驗證相符條件並了解對 Web 流量的影響。將標籤新增至相符請求的規則，無論規則動作為何，都會新增標籤。
   + **保護套件 (Web ACL) 中定義的規則** – 編輯保護套件 (Web ACL) 中的規則，並將其動作設定為 Count。
   + **規則群組** – 在保護套件 (Web ACL) 組態中，編輯規則群組的規則陳述式，然後在**規則**窗格中開啟**覆寫所有規則動作**下拉式清單，然後選擇 **Count**。如果您在 JSON 中管理保護套件 (Web ACL)，請將規則新增至規則群組參考陳述式中的`RuleActionOverrides`設定，並將 `ActionToUse`設定為 Count。下列範例清單顯示 `AWSManagedRulesAnonymousIpList` AWS 受管規則規則群組中兩個規則的覆寫。

     ```
       "ManagedRuleGroupStatement": {
         "VendorName": "AWS",
         "Name": "AWSManagedRulesAnonymousIpList",
           "RuleActionOverrides": [
             {
               "ActionToUse": {
                 "Count": {}
               },
               "Name": "AnonymousIPList"
             },
             {
               "ActionToUse": {
                 "Count": {}
               },
               "Name": "HostingProviderIPList"
             }
           ],
           "ExcludedRules": []
         }
       },
     ```

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

     對於您自己的規則群組，請勿修改規則群組本身中的規則動作。具有 Count動作的規則群組規則不會產生測試所需的指標或其他成品。此外，變更規則群組會影響使用規則群組的所有保護套件 (Web ACLs)，而保護套件 (Web ACL) 組態內的變更只會影響單一保護套件 (Web ACL)。
   + **protection pack (web ACL)** – 如果您要測試新的保護套件 (web ACL)，請將保護套件 (web ACL) 的預設動作設定為允許請求。這可讓您試用 Web ACL，而不會以任何方式影響流量。

   一般而言，計數模式會產生比生產更多的相符項目。這是因為計算請求的規則不會停止保護套件 (Web ACL) 對請求的評估，因此稍後在保護套件 (Web ACL) 中執行的規則也可能符合請求。當您將規則動作變更為其生產設定時，允許或封鎖請求的規則將終止其相符請求的評估。因此，相符的請求通常會由保護套件 (Web ACL) 中的較少規則進行檢查。如需規則動作對 Web 請求整體評估之影響的詳細資訊，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)。

   使用這些設定，您的新保護不會改變 Web 流量，但會在指標、保護套件 (Web ACL) 日誌和請求範例中產生相符資訊。

1. 

**將保護套件 (Web ACL) 與資源建立關聯**

   如果保護套件 (Web ACL) 尚未與資源建立關聯，請建立關聯。

   請參閱 [將保護與 AWS 資源建立關聯或取消關聯](web-acl-associating-aws-resource.md)。

您現在可以監控和調整保護套件 (Web ACL)。

# 監控和調校您的 AWS WAF 保護
監控和調校您的 AWS WAF 保護

監控和調整您的 AWS WAF 保護。

**注意**  
若要遵循本節中的指引，您需要大致了解如何建立和管理 AWS WAF 保護，例如保護套件 (Web ACLs)、規則和規則群組。本指南稍早章節會介紹該資訊。

監控 Web 流量和規則相符項目，以驗證保護套件 (Web ACL) 的行為。如果您發現問題，請調整您的規則以更正，然後監控 以驗證調整。

重複下列程序，直到保護套件 (Web ACL) 視需要管理您的 Web 流量為止。

**監控和調校**

1. 

**監控流量和規則相符項目**

   請確定流量正在流動，而且您的測試規則正在尋找相符的請求。

   尋找以下資訊，了解您正在測試的保護：
   + **日誌** – 存取符合 Web 請求之規則的相關資訊：
     + **您的規則** - 保護套件 (Web ACL) 中具有 Count 動作的規則會列在 下`nonTerminatingMatchingRules`。具有 Allow或 的規則Block會列為 `terminatingRule`。具有 CAPTCHA或 的規則Challenge可以終止或非終止，因此會根據規則比對的結果，列在兩個類別的其中之一下。
     + **規則群組** - 規則群組會在 `ruleGroupId` 欄位中識別，其規則符合與獨立規則的分類相同。
     + **標籤** - 規則已套用至請求的標籤會列在 `Labels` 欄位中。

     如需詳細資訊，請參閱[保護套件 (Web ACL) 流量的日誌欄位](logging-fields.md)。
   + **Amazon CloudWatch 指標** – 您可以存取以下用於保護套件 (Web ACL) 請求評估的指標。
     + **您的規則** – 指標會依規則動作分組。例如，當您在 Count 模式下測試規則時，其相符項目會列為保護套件 (Web ACL) 的`Count`指標。
     + **您的規則群組** – 規則群組的指標會列在規則群組指標下。
     + **另一個帳戶擁有的規則群組** – 規則群組指標通常只有規則群組擁有者可見。不過，如果您覆寫規則的規則動作，則該規則的指標會列在您的保護套件 (Web ACL) 指標下。此外，任何規則群組新增的標籤都會列在您的保護套件 (Web ACL) 指標中。

       規則群組中的計數動作規則不會發出 Web ACL 維度指標 - 僅限規則、RuleGroup 和區域維度。即使在 Web ACL 中參考規則群組，這也適用。

       此類別中的規則群組是 [AWS 的受管規則 AWS WAF](aws-managed-rule-groups.md)、[辨識其他服務提供的規則群組](waf-service-owned-rule-groups.md)、 [AWS Marketplace 規則群組](marketplace-rule-groups.md)和規則群組，這些群組由另一個帳戶與您共用。透過 Firewall Manager 部署保護套件 (Web ACL) 時，WebACL 中具有計數動作的任何規則都不會在成員帳戶中顯示其指標。
     + **標籤** - 在評估期間新增至 Web 請求的標籤會列在保護套件 (Web ACL) 標籤指標中。您可以存取所有標籤的指標，無論它們是由您的規則和規則群組新增，還是由另一個帳戶擁有的規則群組中的規則新增。

     如需詳細資訊，請參閱[檢視 Web ACL 的指標](web-acl-testing-view-metrics.md)。
   + **保護套件 (Web ACL) 流量概觀儀表板** – 存取保護套件 (Web ACL) 已評估的 Web 流量摘要，方法是前往 AWS WAF 主控台中的保護套件 (Web ACL) 頁面並開啟**流量概觀**索引標籤。

     流量概觀儀表板提供近乎即時的 Amazon CloudWatch 指標摘要，這些指標會在評估應用程式 Web 流量時 AWS WAF 收集。

     如需詳細資訊，請參閱[保護套件的流量概觀儀表板 (Web ACLs)](web-acl-dashboards.md)。
   + **抽樣 Web 請求** – 存取符合 Web 請求抽樣之規則的資訊。範例資訊會依保護套件 (Web ACL) 中規則的指標名稱來識別相符的規則。對於規則群組，指標會識別規則群組參考陳述式。對於規則群組內的規則，範例會列出 中的相符規則名稱`RuleWithinRuleGroup`。

     如需詳細資訊，請參閱[檢視 Web 請求的範例](web-acl-testing-view-sample.md)。

1. 

**設定緩解措施以解決誤判**

   如果您判斷規則正在產生誤報，則透過比對不應該產生的 Web 請求，下列選項可協助您調整保護套件 (Web ACL) 保護以減輕錯誤。

**更正規則檢查條件**  
對於您自己的規則，您通常只需要調整您用來檢查 Web 請求的設定。範例包括變更規則運算式模式集中的規格、調整您在檢查前套用至請求元件的文字轉換，或使用轉送的 IP 地址切換到 。請參閱 下導致問題的規則類型指引[在 中使用規則陳述式 AWS WAF](waf-rule-statements.md)。

**修正更複雜的問題**  
對於您無法控制的檢查條件和某些複雜的規則，您可能需要進行其他變更，例如新增明確允許或封鎖請求的規則，或消除有問題規則評估的請求。受管規則群組通常需要這種類型的緩解措施，但其他規則也可能需要。範例包括速率型規則陳述式和 SQL Injection 攻擊規則陳述式。

   如何緩解誤報取決於您的使用案例。以下是常見的方法：
   + **新增緩解規則** – 新增在新規則之前執行的規則，並明確允許導致誤報的請求。如需 Web ACL 中規則評估順序的資訊，請參閱 [設定規則優先順序](web-acl-processing-order.md)。

     透過此方法，允許的請求會傳送至受保護的資源，因此永遠不會到達新規則進行評估。如果新規則是付費的受管規則群組，此方法也有助於包含使用規則群組的成本。
   + **新增具有緩解規則的邏輯規則** – 使用邏輯規則陳述式將新規則與排除誤報的規則結合。如需相關資訊，請參閱[在 中使用邏輯規則陳述式 AWS WAF](waf-rule-statements-logical.md)。

     例如，假設您要新增 SQL Injection 攻擊比對陳述式，該陳述式會為某個類別的請求產生誤報。建立符合這些請求的規則，然後使用邏輯規則陳述式合併規則，以便僅在不符合誤報條件且確實符合 SQL Injection 攻擊條件的請求上進行比對。
   + **新增縮小範圍陳述式** – 對於以速率為基礎的陳述式和受管規則群組參考陳述式，透過在主要陳述式中新增縮小範圍陳述式，排除導致誤報的請求。

     不符合範圍縮小陳述式的請求絕不會達到規則群組或速率型評估。如需縮小範圍陳述式的詳細資訊，請參閱 [在 中使用縮小範圍陳述式 AWS WAF](waf-rule-scope-down-statements.md)。如需範例，請參閱 [從機器人管理排除 IP 範圍](waf-bot-control-example-scope-down-ip.md)。
   + **新增標籤比對規則** – 對於使用標籤的規則群組，請識別有問題規則套用至請求的標籤。如果您尚未這麼做，您可能需要先在計數模式中設定規則群組規則。新增標籤比對規則，定位為在規則群組之後執行，比對有問題的規則所新增的標籤。在標籤比對規則中，您可以從要封鎖的請求中篩選要允許的請求。

     如果您使用此方法，在完成測試時，請將有問題的規則保留在規則群組中的計數模式中，並保留您的自訂標籤比對規則。如需標籤比對陳述式的詳細資訊，請參閱 [標籤比對規則陳述式](waf-rule-statement-type-label-match.md)。如需範例，請參閱 [允許特定封鎖的機器人](waf-bot-control-example-allow-blocked-bot.md) 和 [ATP 範例：針對遺失和洩露的登入資料進行自訂處理](waf-atp-control-example-user-agent-exception.md)。
   + **變更受管規則群組的版本** – 對於版本控制的受管規則群組，請變更您正在使用的版本。例如，您可以切換回您成功使用的最後一個靜態版本。

     這通常是暫時修正。當您在測試或預備環境中繼續測試最新版本，或是等待供應商提供更相容的版本時，您可以變更生產流量的版本。如需受管規則群組版本的資訊，請參閱 [在 中使用受管規則群組 AWS WAF](waf-managed-rule-groups.md)。

當您確定新規則符合您需要的請求時，請移至測試的下一個階段並重複此程序。在生產環境中執行測試和調校的最後階段。

# 檢視 Web ACL 的指標
檢視保護套件 (Web ACL) 指標

本節說明如何檢視保護套件 (Web ACL) 的指標。

將保護套件 (Web ACL) 與一或多個 AWS 資源建立關聯之後，您可以在 Amazon CloudWatch 圖表中檢視關聯的結果指標。

如需 AWS WAF 指標的資訊，請參閱 [AWS WAF 指標和維度](waf-metrics.md)。如需 CloudWatch 指標的相關資訊，請參閱《[Amazon CloudWatch 使用者指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)》。

對於保護套件 (Web ACL) 中的每個規則，以及關聯資源 AWS WAF 針對保護套件 (Web ACL) 轉送的所有請求，CloudWatch 可讓您執行下列動作：
+ 檢視前一小時或前三小時的資料。
+ 變更資料點之間的間隔。
+ 變更 CloudWatch 對資料執行的計算，例如最大值、最小值、平均值或總和。

**注意**  
AWS WAF 搭配 CloudFront 是全球服務，且 指標僅在您於 中選擇**美國東部 （維吉尼亞北部） **區域時可用。 AWS 管理主控台如果您選擇另一個區域，則 CloudWatch 主控台中不會顯示任何 AWS WAF 指標。

**檢視保護套件中規則的資料 (Web ACL)**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 如有必要，請將區域變更為 AWS 資源所在的區域。針對 CloudFront，選擇美國東部 （維吉尼亞北部） 區域。

1. 在導覽窗格**的指標**下，選擇**所有指標**，然後在 的**瀏覽**索引標籤下搜尋`AWS::WAFV2`。

1. 選取您要檢視資料的保護套件 (Web ACL) 的核取方塊。

1. 變更適用的設定：  
**統計數字**  
選擇 CloudWatch 對資料執行的計算。  
**時間範圍**  
選擇您想要檢視前一小時或前三個小時的資料。  
**Period**  
選擇圖形中資料點之間的間隔。  
**Rules**  
選擇您要檢視資料的規則。  
如果您變更規則的名稱，並且希望規則的指標名稱反映變更，則也必須更新指標名稱。當您變更規則名稱時 AWS WAF ， 不會自動更新規則的指標名稱。您可以使用規則 JSON 編輯器，在主控台中編輯規則時變更指標名稱。您也可以透過 APIs 和用於定義保護套件 (Web ACL) 或規則群組的任何 JSON 清單中變更這兩個名稱。

   注意下列事項：
   + 如果您最近將保護套件 (Web ACL) 與 AWS 資源建立關聯，您可能需要等待幾分鐘，資料才會出現在圖形中，保護套件 (Web ACL) 的指標才會出現在可用指標清單中。
   + 如果您將多個資源與保護套件 (Web ACL) 建立關聯，CloudWatch 資料將包含所有資源的請求。
   + 您可以將游標暫留在資料點上，以取得更多資訊。
   + 圖形不會自動自我重新整理。若要更新顯示，請選擇重新整理 (![\[Icon to refresh the CloudWatch graph\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/images/cloudwatch-refresh-icon.png)) 圖示。

如需 CloudWatch 指標的詳細資訊，請參閱[使用 Amazon CloudWatch 監控](monitoring-cloudwatch.md)。

# 保護套件的流量概觀儀表板 (Web ACLs)
保護套件的流量概觀儀表板 (Web ACLs)AWS WAF 主控台具有新的 AI 流量分析儀表板

 AWS WAF 主控台中的 Web ACL 頁面具有新的 AI 流量分析儀表板。AWS WAF Web ACL 儀表板新增了最佳安全洞見

 AWS WAF 主控台 Web ACL 流量概觀儀表板具有新的熱門洞見索引標籤。AWS WAF 主控台有新的 Web ACL 儀表板

 AWS WAF 主控台中的 Web ACL 頁面具有新的 Web 流量概觀儀表板。

本節說明 主控台中的 AWS WAF 保護套件 (Web ACL) 流量概觀儀表板。將保護套件 (Web ACL) 與一或多個 AWS 資源建立關聯並啟用保護套件 (Web ACL) 的指標後，您可以前往 AWS WAF 主控台中的保護套件 (Web ACL) **的流量概觀**索引標籤，存取保護套件 (Web ACL) 評估的 Web 流量摘要。儀表板包含近乎即時的 Amazon CloudWatch 指標摘要，這些指標會在評估應用程式 Web 流量時 AWS WAF 收集，包括專業 AI 機器人和客服人員活動分析。

**注意**  
如果您在儀表板上看不到任何內容，請確定您已啟用保護套件 (Web ACL) 的指標。

保護套件 (Web ACL) 的**流量概觀**索引標籤包含具有下列資訊類別的標籤式儀表板：
+ **最佳安全洞見** – 透過直接查詢 Amazon CloudWatch logs取得 AWS WAF 的 AWS WAF 保護洞見。儀表板的其餘部分使用 CloudWatch 指標。這些洞見提供更豐富的資訊，但查詢 CloudWatch 日誌會產生額外的成本。如需額外費用的詳細資訊，請參閱 [Amazon CloudWatch Logs 定價](https://aws.amazon.com/cloudwatch/pricing/)。
+ **AI 流量分析** – 針對 AI 機器人和代理程式活動分析的 Web 請求，包括機器人識別、意圖分類、存取模式和時間趨勢。當您的保護套件 (Web ACL) 接收 AI 機器人流量時，即可使用此標籤
+ **所有流量** – 保護套件 (Web ACL) 評估的所有 Web 請求。

  儀表板著重於終止動作，但您可以在下列位置檢視計數規則的相符項目：
  + 此儀表板的前 **10 個規則**窗格。切換**切換切換為計數動作**以顯示計數規則相符項目。
  + 保護套件 (Web ACL) 頁面**的範例請求**索引標籤。這個新標籤包含所有規則相符項目的圖形。如需相關資訊，請參閱[檢視 Web 請求的範例](web-acl-testing-view-sample.md)。
+ **反 DDoS** – 保護套件 (Web ACL) 使用`AntiDDoSRuleSet`反 DDoS 受管規則群組評估的 Web 請求。

  只有在保護套件 (Web ACL) 中使用此規則群組時，才能使用此標籤。
+ **Bot Control** – 保護套件 (Web ACL) 使用 Bot Control 受管規則群組評估的 Web 請求。
+ 如果您在保護套件 (Web ACL) 中未使用此規則群組，此標籤會顯示根據 Bot Control 規則評估 Web 流量取樣的結果。這可讓您了解應用程式接收的機器人流量，而且免費。

  此規則群組是 AWS WAF 提供智慧型威脅緩解選項的一部分。如需詳細資訊，請參閱[AWS WAF 機器人控制](waf-bot-control.md)及[AWS WAF 機器人控制規則群組](aws-managed-rule-groups-bot.md)。
+ **防止帳戶接管** – 保護套件 (Web ACL) 使用 AWS WAF 詐騙控制帳戶接管預防 (ATP) 受管規則群組評估的 Web 請求。只有在保護套件 (Web ACL) 中使用此規則群組時，才能使用此標籤。

  ATP 規則群組是智慧型威脅緩解方案的一部分 AWS WAF 。如需詳細資訊，請參閱[AWS WAF 詐騙控制帳戶接管預防 (ATP)](waf-atp.md)及[AWS WAF 詐騙控制帳戶接管預防 (ATP) 規則群組](aws-managed-rule-groups-atp.md)。
+ **防止帳戶建立詐騙** – 保護套件 (Web ACL) 使用 AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 受管規則群組評估的 Web 請求。只有在保護套件 (Web ACL) 中使用此規則群組時，才能使用此標籤。

  ACFP 規則群組是智慧型威脅緩解方案的一部分 AWS WAF 。如需詳細資訊，請參閱[AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP)](waf-acfp.md)及[AWS WAF 詐騙控制帳戶建立詐騙預防 (ACFP) 規則群組](aws-managed-rule-groups-acfp.md)。

儀表板是以保護套件 (Web ACL) 的 CloudWatch 指標為基礎，而圖表提供 CloudWatch 中對應指標的存取權。對於智慧型威脅緩解儀表板，例如 Bot Control，使用的指標主要是標籤指標。
+ 如需 AWS WAF 提供的指標清單，請參閱 [AWS WAF 指標和維度](waf-metrics.md)。
+ 如需 CloudWatch 指標的相關資訊，請參閱《[Amazon CloudWatch 使用者指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)》。

儀表板會針對您選取的終止動作和日期範圍，提供流量模式的摘要。智慧型威脅緩解儀表板包含對應的受管規則群組評估的請求，無論受管規則群組本身是否套用終止動作。例如，如果選取 Block ，**帳戶接管預防**儀表板會包含由 ATP 受管規則群組評估並在保護套件 (Web ACL) 評估期間某個時間點封鎖的所有 Web 請求的資訊。ATP 受管規則群組、在保護套件 (Web ACL) 中的規則群組之後執行的規則，或保護套件 (Web ACL) 預設動作可以封鎖請求。

# 檢視保護套件的儀表板 (Web ACL)
檢視保護套件的儀表板 (Web ACL)

遵循本節中的程序來存取保護套件 (Web ACL) 儀表板，並設定資料篩選條件。如果您最近將保護套件 (Web ACL) 與 AWS 資源建立關聯，您可能需要等待幾分鐘，才能在儀表板中使用資料。

儀表板包含您對與保護套件 (Web ACL) 相關聯的所有資源的請求。

**檢視保護套件的**流量概觀**儀表板 (Web ACL)**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇**保護套件 (Web ACLs)**，然後搜尋您感興趣的 Web ACL。

1. 選取保護套件 (Web ACL)。主控台會帶您前往保護套件 (Web ACL) 的頁面。預設會選取**流量概觀**索引標籤。

1. 視需要變更**資料篩選條件**設定。
   + **終止規則動作** – 選取要包含在儀表板中的終止動作。儀表板摘要說明具有保護套件 (Web ACL) 評估所套用之所選動作之一的 Web 請求指標。如果您選取所有可用的動作，儀表板會包含所有評估的 Web 請求。如需 動作的相關資訊，請參閱 [AWS WAF 如何處理規則和規則群組動作](web-acl-rule-actions.md)。
   + **時間範圍** – 選取要在儀表板中檢視的時間間隔。您可以選擇檢視相對於現在的時間範圍，例如過去 3 小時或上週，而且您可以從行事曆中選取絕對時間範圍。
   + **時區** – 當您指定絕對時間範圍時，會套用此設定。您可以使用瀏覽器的本機時區或 UTC （國際標準時間）。

檢閱您感興趣的索引標籤中的資訊。資料篩選條件選擇會套用至所有儀表板。在圖形窗格中，您可以將游標暫留在資料點或區域上，以查看任何其他詳細資訊。

**Count 動作規則**  
您可以在兩個位置之一檢視計數動作比對的資訊。
+ 在此**流量概觀**索引標籤中，在所有**流量**儀表板上，尋找**前 10 個規則**窗格，並切換**切換切換以計數動作**。開啟此切換後，窗格會顯示計數規則相符項目，而不是終止規則相符項目。
+ 在保護套件 (Web ACL) 的**取樣請求**索引標籤中，查看您在**流量概觀**索引標籤上設定的時間範圍之所有規則比對和動作的圖表。如需**取樣請求**索引標籤的相關資訊，請參閱 [檢視 Web 請求的範例](web-acl-testing-view-sample.md)。

**Amazon CloudWatch 指標**  
在儀表板圖形窗格中，您可以存取圖形資料的 CloudWatch 指標。選擇圖形窗格頂端的選項，或從窗格內的 ****⋮ （垂直省略號） 下拉式選單中選擇。

**重新整理儀表板**  
儀表板不會自動重新整理。若要更新顯示，請選擇重新整理![\[Icon to refresh the dashboard graph\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/images/cloudwatch-refresh-icon.png)圖示。

# 保護套件的流量概觀儀表板範例 (Web ACLs)
保護套件 (Web ACL) 流量儀表板的範例

本節顯示保護套件 (Web ACLs) 流量概觀儀表板的範例畫面。

**注意**  
如果您已使用 AWS WAF 來保護應用程式資源，您可以在 AWS WAF 主控台的頁面上查看任何保護套件 (Web ACLs) 的儀表板。如需相關資訊，請參閱[檢視保護套件的儀表板 (Web ACL)](web-acl-dashboards-accessing.md)。

**範例畫面：資料篩選條件和**所有流量**儀表板動作計數**  
下列螢幕擷取畫面說明已選取**所有流量索引標籤的保護套件 (Web ACL) 的流量**概觀。資料篩選條件設定為預設值：過去三小時內的所有終止動作。

在所有流量儀表板中，是各種終止動作的動作總計。每個窗格都會列出請求計數，並顯示上/下箭頭，指出自前三個小時時間範圍以來的變更。

![\[AWS WAF 主控台會顯示已選取預設資料篩選條件的保護套件 (Web ACL) 頁面流量概觀索引標籤。終止規則動作選項為 Block、CAPTCHA、 Allow和 Challenge。資料篩選條件區段下方是所有流量、機器人控制和帳戶接管預防的索引標籤。\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/images/web-acl-dashboard-data-filters-default-top-actions.png)


**範例畫面：**Bot Control** 儀表板動作計數**  
下列螢幕擷取畫面說明 Bot Control 儀表板的動作計數。這會顯示時間範圍的相同總計窗格，但計數僅適用於 Bot Control 規則群組評估的請求。進一步向下，在**動作總計**窗格中，您可以查看指定三小時時間範圍內的動作計數。在此時間範圍內，CAPTCHA動作不會套用至規則群組評估的任何請求。

![\[AWS WAF 主控台會顯示 Bot Control 儀表板的頂端部分，其中包含整個時間範圍的動作總計和整個時間範圍的動作總計。\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/images/web-acl-dashboard-bot-action-totals.png)


**範例畫面：**AI 流量分析儀表板**動作計數**  
下列螢幕擷取畫面說明保護套件 (Web ACL) 的 AI 流量分析儀表板。儀表板會顯示所選時間範圍內的 AI 機器人活動，其中包含機器人組織、意圖類型和驗證狀態的篩選條件。

![\[AWS WAF 主控台會顯示 AI 流量分析儀表板的頂端部分，其中包含整個時間範圍和動作總計的頂端爬蟲程式和頂端路徑。\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/images/waf-phantom-edge-dashboard.png)


儀表板包括：
+ **機器人身分面板** – 列出名稱和組織偵測到的 AI 機器人
+ **意圖分類** – 將機器人目的分類 （爬取、編製索引、研究等）
+ **存取模式** – AI 代理器使用請求計數存取的熱門 URLs 
+ **時間分析** – 具有 14 天歷史檢視的每小時和每日活動趨勢
+ **組織明細** – 依機器人擁有者組織的流量

**範例畫面：**Bot Control** 儀表板字符狀態摘要圖表**  
下列螢幕擷取畫面說明 Bot Control 儀表板中提供的兩個摘要圖形。**字符狀態**窗格會顯示各種字符狀態標籤的計數，並搭配套用至請求的規則動作。**IP 字符缺少閾值**窗格會顯示來自 IP 的請求資料，這些 IPs在沒有字符的情況下傳送太多請求。

將滑鼠游標暫留在圖形中的任何區域上，會顯示可用的資訊詳細資訊。在此螢幕擷取畫面中的**字符狀態**窗格中，滑鼠將游標暫留在某個時間點上，而不在任何圖形行上，因此主控台會顯示該時間點所有行的資料。

![\[AWS WAF 主控台會顯示兩個用於權杖狀態的窗格，以及缺少 IP 權杖閾值的窗格，每個窗格中具有封鎖和挑戰請求的類似圖形行。字符狀態窗格也有允許請求的圖形。\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/images/web-acl-dashboard-bot-token-panes.png)


本節僅顯示保護套件 (Web ACL) 流量概觀儀表板中提供的一些流量摘要。若要查看任何保護套件 (Web ACLs) 的儀表板，請在 主控台中開啟保護套件 (Web ACL) 的頁面。如需如何執行此操作的詳細資訊，請參閱 中的指引[檢視保護套件的儀表板 (Web ACL)](web-acl-dashboards-accessing.md)。

# 檢視 Web 請求的範例
檢視 Web 請求的範例AWS WAF 主控台儀表板

我們更正了在 AWS WAF 主控台中檢視保護套件 (Web ACL) 的所有規則和取樣請求的指引。

本節說明 AWS WAF 主控台中的保護套件 (Web ACL) **取樣請求**索引標籤。在此索引標籤中，您可以檢視 AWS WAF 已檢查之 Web 請求的所有規則相符項目的圖表。此外，如果您已啟用保護套件 (Web ACL) 的請求取樣，您可以查看 AWS WAF 已檢查的 Web 請求範例的資料表檢視。您也可以透過 API 呼叫 擷取取樣的請求資訊`GetSampledRequests`。

請求範例包含最多 100 個符合保護套件 (Web ACL) 中規則條件的請求，以及另外 100 個不符合任何規則且已套用保護套件 (Web ACL) 預設動作的請求請求。範例中的請求來自過去三小時內收到您內容請求的所有受保護資源。

當 Web 請求符合規則中的條件，且該規則的動作不會終止請求評估時， AWS WAF 會使用保護套件 (Web ACL) 中的後續規則繼續檢查 Web 請求。因此，Web 請求可能會多次出現。如需規則動作行為的資訊，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)。

**檢視所有規則圖表和取樣請求**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 在導覽窗格中，選擇**保護套件 (Web ACLs)**。

1. 選擇您要檢視請求的保護套件 (Web ACL) 名稱。主控台會帶您前往保護套件 (Web ACL) 的描述，您可以在其中編輯它。

1. 在**抽樣請求**索引標籤中，您可以看到以下內容：
   + **所有規則圖表** – 此圖表顯示指定時間範圍內執行的所有 Web 請求評估的相符規則和規則動作。
**注意**  
此圖表的時間範圍是在**資料篩選條件**區段的保護套件 (Web ACL) **流量概觀**索引標籤中設定。如需相關資訊，請參閱[檢視保護套件的儀表板 (Web ACL)](web-acl-dashboards-accessing.md)。
   + **取樣請求表** – 此表會顯示過去 3 小時的取樣請求資料。
**注意**  
如果您沒有看到預期的受管規則群組範例，請參閱此程序下方的一節。

     對於每個項目，資料表會顯示下列資料：  
**指標名稱**  
符合請求之保護套件 (Web ACL) 中規則的 CloudWatch 指標名稱。如果 Web 請求不符合保護套件 (Web ACL) 中的任何規則，則此值為**預設值**。  
如果您變更規則的名稱，並且希望規則的指標名稱反映變更，則也必須更新指標名稱。當您變更規則名稱時 AWS WAF ， 不會自動更新規則的指標名稱。您可以使用規則 JSON 編輯器，在主控台中編輯規則時變更指標名稱。您也可以透過 APIs 和用於定義保護套件 (Web ACL) 或規則群組的任何 JSON 清單中變更這兩個名稱。  
**來源 IP**  
請求源自的 IP 地址，或者，如果檢視器使用 HTTP 代理或 Application Load Balancer 傳送請求，則為代理或 Application Load Balancer 的 IP 地址。  
**URI**  
URL 識別資源的一部分，例如 `/images/daily-ad.jpg`。  
**規則群組內的規則**  
如果指標名稱識別規則群組參考陳述式，這會識別符合請求之規則群組內的規則。  
**Action**  
指出對應規則的動作。如需可能規則動作的相關資訊，請參閱 [在 中使用規則動作 AWS WAF](waf-rule-action.md)。  
Web ACL 檢視中無法使用規則群組中具有計數動作的規則範例請求。只有規則群組擁有者可以看到規則群組規則的計數指標和取樣請求。  
**時間**  
從受保護資源 AWS WAF 收到請求的時間。

     若要顯示 Web 請求元件的其他資訊，請在請求資料列中選擇 URI 的名稱。

**受管規則群組中規則的取樣請求**  
主控台會顯示規則群組的指標，其中包含指定已觸發規則的「規則群組內的規則」。您可以使用最新的`RuleActionOverrides`設定來檢視預設動作規則集和規則的指標。對於使用較舊`ExcludedRules`設定的規則，請從**範例請求**指標規則下拉式清單的規則集中選取特定規則。

如果您看到較舊的設定，請將它們取代為新的設定，以開始透過主控台提供取樣的請求。您可以透過主控台執行此操作，方法是編輯保護套件 (Web ACL) 中的受管規則群組並加以儲存。 AWS WAF 會自動將任何較舊的設定取代為 `RuleActionOverrides` 設定，並將規則動作覆寫設定為 Count。如需這兩個設定的詳細資訊，請參閱 [JSON 清單：`RuleActionOverrides`取代 `ExcludedRules`](web-acl-rule-group-override-options.md#web-acl-rule-group-override-replaces-exclude)。

您可以透過 AWS WAF REST API、 SDKs 或命令列，存取具有舊覆寫的規則的取樣請求。如需詳細資訊，請參閱《 *AWS WAF API 參考*》中的 [GetSampledRequests](https://docs.aws.amazon.com/waf/latest/APIReference/API_GetSampledRequests.html)。

以下顯示命令列請求的語法：

```
aws wafv2 get-sampled-requests \
  --web-acl-arn webACL ARN \
  --rule-metric-name Metric name of the rule in the managed rule group \
  --scope=REGIONAL or CLOUDFRONT \
  --time-window StartTime=UTC timestamp,EndTime=UTC timestamp \
  --max-items 100
```

# 在生產環境中啟用您的保護
在生產環境中啟用您的保護

本節提供在生產環境中啟用調校保護的說明。

當您在生產環境中完成測試和調校的最後階段時，請在生產模式中啟用您的保護。

**生產流量風險**  
在部署生產流量的保護套件 (Web ACL) 實作之前，請在測試環境中進行測試和調校，直到您對流量的潛在影響感到滿意為止。在啟用生產流量的保護之前，也使用您的生產流量在計數模式中進行測試和調校。

**注意**  
若要遵循本節中的指引，您需要大致了解如何建立和管理 AWS WAF 保護，例如保護套件 (Web ACLs)、規則和規則群組。本指南稍早章節會介紹該資訊。

請先在測試環境中執行這些步驟，然後在生產環境中執行。

**在生產環境中啟用您的 AWS WAF 保護**

1. 

**切換到您的生產保護**

   更新您的保護套件 (Web ACL) 並切換您的生產設定。

   1. 

**移除您不需要的任何測試規則**

      如果您新增了生產環境中不需要的測試規則，請將其移除。如果您使用任何標籤比對規則來篩選受管規則群組規則的結果，請務必保留這些規則。

   1. 

**切換到生產動作**

      將新規則的動作設定變更為其預期的生產設定。
      + **保護套件 (Web ACL) 中定義的規則** – 編輯保護套件 (Web ACL) 中的規則，並將其動作從 Count 變更為生產動作。
      + **規則群組** – 在規則群組的保護套件 (Web ACL) 組態中，根據您的測試和調校活動的結果，切換規則以使用自己的動作或保留其Count動作覆寫。如果您使用標籤比對規則來篩選規則群組規則的結果，請務必保留該規則的覆寫。

        若要使用規則的動作切換到 ，請在保護套件 (Web ACL) 組態中編輯規則群組的規則陳述式，並移除規則的Count覆寫。如果您在 JSON 中管理保護套件 (Web ACL)，請在規則群組參考陳述式中，從`RuleActionOverrides`清單中移除規則的項目。
      + **protection pack (web ACL)** – 如果您變更了測試的 protection pack (web ACL) 預設動作，請將其切換到其生產設定。

      使用這些設定，您的新保護會如預期般管理 Web 流量。

   當您儲存保護套件 (Web ACL) 時，與之相關聯的資源將使用您的生產設定。

1. 

**監控和調校**

   為了確保 Web 請求可依您想要的方式處理，請在啟用新功能後密切監控流量。您將監控生產規則動作的指標和日誌，而不是您在調校工作中監控的計數動作。視需要持續監控和調整行為，以適應 Web 流量的變更。

# AWS WAF 搭配 Amazon CloudFront 使用
AWS WAF 與 CloudFront 固定費率定價計劃整合

您現在可以訂閱與 相關聯的 CloudFront 分佈 AWS WAF 至固定費率定價計劃。這個新的定價計劃與pay-as-you-go定價不同，因為該定價計劃具有用量和資源的預設服務配額。訂閱定價計畫的分佈後，您就不會收到該分佈的非預期使用費。對於定價計劃中包含的所有資源和功能，您將享有單一價格。AWS WAF 新增對新 CloudFront 分佈的支援

您現在可以將 AWS WAF Web ACLs 與 CloudFront 多租用戶分佈和分佈租用戶建立關聯。

了解如何 AWS WAF 搭配 Amazon CloudFront 功能使用 。

當您建立保護套件 (Web ACL) 時，您可以指定要檢查的 AWS WAF 一或多個 CloudFront 分佈。CloudFront 支援兩種分佈類型：保護個別租用戶的標準分佈，以及透過單一共用組態範本保護多個租用戶的多租用戶分佈。 會根據您在保護套件 (Web ACLs) 中定義的規則，針對每種類型使用不同的實作模式來 AWS WAF 檢查兩種分佈類型的 Web 請求。

**Topics**
+ [

## AWS WAF 如何使用不同的分佈類型
](#cloudfront-features-distribution-types)
+ [

## 使用 AWS WAF 搭配 CloudFront 固定費率定價計劃
](#waf-cf-pricing-plans)
+ [

# 使用 保護 CloudFront 分佈的常見使用案例 AWS WAF
](cloudfront-waf-use-cases.md)

## AWS WAF 如何使用不同的分佈類型


### 分佈類型


AWS WAF 為標準和多租戶分佈 CloudFront 分佈提供 Web 應用程式防火牆功能。

#### 標準分佈


對於標準分佈， 會為每個分佈使用單一保護套件 (Web ACL) AWS WAF 新增保護。您可以透過將現有的保護套件 (Web ACL) 與 CloudFront 分佈建立關聯，或在 CloudFront 主控台中使用一鍵式保護來啟用此保護。這可讓您獨立管理每個分佈的安全控制，因為保護套件 (Web ACL) 的任何變更都只會影響與其相關聯的分佈。

這種保護 CloudFront 分佈的直接方法最適合為個別網域提供單一保護套件 (Web ACL) 的特定保護。

##### 標準分佈考量

+ 保護套件 (Web ACL) 的變更只會影響其關聯的分佈
+ 每個分佈都需要獨立的保護套件 (Web ACL) 組態
+ 規則和規則群組會針對每個分佈分別管理

#### 多租戶分佈


對於多租戶分佈， 使用單一保護套件 (Web ACL) 在多個網域中 AWS WAF 新增保護。由多租用戶分佈管理的網域稱為分佈租用戶。您只能在多租用戶分佈建立程序期間或之後，在 CloudFront 主控台中啟用多租用戶分佈的 AWS WAF 保護。不過，保護套件 (Web ACL) 的變更仍會透過 AWS WAF 主控台或 API 進行管理。

多租戶分佈提供在兩個層級啟用 AWS WAF 保護的彈性：
+ **多租戶分佈層級** – 關聯的保護套件 (Web ACLs) 提供基準安全控制，適用於共用該分佈的所有應用程式
+ **分佈租用戶層級** – 多租用戶分佈中的個別租用戶可以擁有自己的保護套件 (Web ACLs)，以實作額外的安全控制或覆寫多租用戶分佈設定

這兩個層使多租戶分佈最適合跨多個網域共用 AWS WAF 保護，而不會失去為個別分佈自訂安全性的能力。

#### 多租戶分佈考量

+ 個別分佈租用戶會繼承對與相關多租用戶分佈相關聯的保護套件 (Web ACLs) 所做的變更
+ 與特定分佈租用戶相關聯的保護套件 (Web ACLs) 可以覆寫在多租用戶保護套件 (Web ACL) 層級設定的設定
+ 受管規則群組可以在分佈和分佈租用戶層級實作
+ 應用程式識別符可以位於日誌中，以依分佈追蹤安全事件

### AWS WAF 依分佈類型的功能



**比較保護套件 (Web ACL) 實作**  

| AWS WAF 功能 | 標準分佈 | 多租戶分佈 | 
| --- | --- | --- | 
| 關聯保護套件 (Web ACLs) | 每個分佈一個保護套件 (Web ACL) | 您可以使用選用的租用戶特定保護套件 (Web ACLs)，跨租用戶共用保護套件 (Web ACLs) | 
| 規則管理 | 規則會影響單一分佈 | 多租用戶分佈規則會影響所有相關租用戶；分佈租用戶特定規則只會影響該租用戶 | 
| 受管規則群組 | 套用至個別分佈 | 可套用至所有租用戶的多租用戶分佈層級，或套用至特定應用程式的租用戶層級 | 
| 日誌 | 標準 AWS WAF 日誌 | 日誌包含安全事件屬性的租戶識別符 | 

## 使用 AWS WAF 搭配 CloudFront 固定費率定價計劃
AWS WAF 搭配 CloudFront 定價計劃使用

CloudFront 固定費率定價計劃將 Amazon CloudFront 全球內容交付網路 (CDN) 與多個 AWS 服務 和 功能結合為每月價格，而不會產生超額費用，無論流量峰值或攻擊。

固定費率定價計劃包含下列 AWS 服務 和 功能，每月價格簡單：
+ CloudFront CDN
+ AWS WAF 和 DDoS 保護
+ 機器人管理和分析
+ Amazon Route 53 DNS
+ Amazon CloudWatch Logs 擷取
+ TLS 憑證
+ 無伺服器邊緣運算
+ 每月 Amazon S3 儲存額度

計劃提供免費、專業、商業和高級方案，以符合應用程式的需求。計劃不需要年度承諾，即可獲得最佳的可用費率。從 免費計劃開始並升級，以存取更多功能和更大的用量限額。

如需詳細資訊和計劃和功能的完整清單，請參閱《Amazon [CloudFront 開發人員指南》中的 CloudFront 固定費率定價計劃](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/flat-rate-pricing-plan.html)。 *Amazon CloudFront *

**重要**  
使用任何定價計劃時，有效的 AWS WAF 保護套件 (Web ACL) 必須與您的 CloudFront 分佈保持關聯。除非您切換回pay-as-you-go定價，否則無法移除保護套件 (Web ACL) 關聯。  
雖然 AWS WAF Web ACL 必須與您的分佈保持關聯，但您可以完全控制您的安全組態。您可以透過調整 Web ACL 中啟用或停用哪些規則來自訂保護，並修改規則設定以符合您的安全需求。如需管理 Web ACL 規則的資訊，請參閱[AWS WAF 規則](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rules.html)。

# 使用 保護 CloudFront 分佈的常見使用案例 AWS WAF
使用案例

下列 AWS WAF 功能對所有 CloudFront 分佈的運作方式相同。多租戶分佈的考量事項會列在每個功能案例之後。

## 使用 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動作的自訂回應](customizing-the-response-for-blocked-requests.md)。

**注意**  
您使用 AWS WAF 規則自訂的回應優先於您在 CloudFront 自訂錯誤頁面中定義的任何回應規格。

如果您寧願透過 CloudFront 顯示自訂錯誤訊息，可能使用與網站其他部分相同的格式，您可以設定 CloudFront 將包含自訂錯誤訊息的物件 （例如 HTML 檔案） 傳回給檢視器。

**注意**  
CloudFront 無法區分原始伺服器傳回的 HTTP 狀態碼 403，以及封鎖請求 AWS WAF 時傳回的狀態碼 403。這表示您無法根據不同原因導致 HTTP 狀態碼 403 而傳回不同的自訂錯誤頁面。

如需 CloudFront 自訂錯誤頁面的詳細資訊，請參閱《*Amazon CloudFront 開發人員指南*》中的[產生自訂錯誤回應](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GeneratingCustomErrorResponses.html)。

### 多租戶分佈中的自訂錯誤頁面


對於 CloudFront 多租用戶分佈，您可以透過下列方式設定自訂錯誤頁面：
+ 在多租用戶層級 - 這些設定適用於使用多租用戶分佈範本的所有租用戶分佈
+ 透過 AWS WAF 規則 - 在保護套件 (Web ACLs) 中定義的自訂回應優先於多租用戶分佈和租用戶層級自訂錯誤頁面

## 針對在您自己的 HTTP 伺服器上執行的應用程式使用 AWS WAF 搭配 CloudFront
針對在您自己的 HTTP 伺服器上執行的應用程式使用 AWS WAF 搭配 CloudFront

當您 AWS WAF 搭配 CloudFront 使用 時，您可以保護在任何 HTTP Web 伺服器上執行的應用程式，無論是在 Amazon Elastic Compute Cloud (Amazon EC2) 中執行的 Web 伺服器，還是您私下管理的 Web 伺服器。您也可以將 CloudFront 設定為在 CloudFront 與您自己的 Web 伺服器之間，以及檢視器與 CloudFront 之間需要 HTTPS。

**CloudFront 和您自己的 Web 伺服器之間需要 HTTPS**  
若要在 CloudFront 和您自己的 Web 伺服器之間要求 HTTPS，您可以使用 CloudFront 自訂原始伺服器功能，並設定特定原始伺服器的**原始伺服器通訊協定政策和****原始伺服器網域名稱**設定。在 CloudFront 組態中，您可以指定伺服器的 DNS 名稱，以及您希望 CloudFront 從原始伺服器擷取物件時使用的連接埠和通訊協定。您也應該確保自訂原始伺服器上的 SSL/TLS 憑證符合您設定的原始網域名稱。當您在 外部使用自己的 HTTP Web 伺服器時 AWS，您必須使用由信任的第三方憑證授權單位 (CA) 簽署的憑證，例如 Comodo、DigiCert 或 Symantec。如需有關在 CloudFront 與您自己的 Web 伺服器之間需要 HTTPS 通訊的詳細資訊，請參閱《*Amazon CloudFront 開發人員指南*》中的[在 CloudFront 與自訂原始伺服器之間需要 HTTPS 通訊](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-cloudfront-to-custom-origin.html)的主題。

**在檢視器和 CloudFront 之間需要 HTTPS**  
若要在檢視器和 CloudFront 之間要求 HTTPS，您可以變更 CloudFront 分佈中一或多個快取行為的**檢視器通訊協定政策**。如需在檢視器和 CloudFront 之間使用 HTTPS 的詳細資訊，請參閱《Amazon CloudFront 開發人員指南》中的在[檢視器和 CloudFront 之間通訊需要 HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) 的主題。 *Amazon CloudFront * 您也可以使用自己的 SSL 憑證，讓檢視器可以使用自己的網域名稱透過 HTTPS 連線至 CloudFront 分佈，例如 *https://www.mysite.com*。如需詳細資訊，請參閱《*Amazon CloudFront 開發人員指南*》中的[設定替代網域名稱和 HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cnames-and-https-procedures.html) 主題。

對於多租戶分佈，HTTP 方法組態遵循以下階層：
+ 範本層級設定會定義所有租戶分佈允許的基準 HTTP 方法
+ 租用戶分佈可以覆寫這些設定以：
  + 允許比多租戶分佈更少的方法 （使用 AWS WAF 規則來封鎖其他方法）
  + 如果多租用戶分佈設定為支援它們，則允許使用更多方法
+ AWS WAF 無論 CloudFront 組態為何，多租戶分佈和租戶層級的 規則都可以進一步限制 HTTP 方法

## 選擇 CloudFront 回應的 HTTP 方法
選擇 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 方法允許或封鎖請求，如中所述[字串比對規則陳述式](waf-rule-statement-type-string-match.md)。如果您想要使用 CloudFront 支援的方法組合，例如 `GET`和 `HEAD`，則不需要設定 AWS WAF 來封鎖使用其他方法的請求。如果您想要允許 CloudFront 不支援的方法組合，例如 `GET`、 `HEAD`和 `POST`，您可以設定 CloudFront 回應所有方法，然後使用 AWS WAF 封鎖使用其他方法的請求。

如需有關選擇 CloudFront 回應的方法的詳細資訊，請參閱《*Amazon CloudFront 開發人員指南*》中的[您在建立或更新 Web 分佈時指定的主題值](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html)中[允許的 HTTP 方法](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesAllowedHTTPMethods)。

**多租戶分佈中允許的 HTTP 方法組態**  
對於多租戶分佈，在多租戶分佈層級設定的 HTTP 方法組態預設會套用至所有租戶分佈。租戶分佈可以視需要覆寫這些設定。
+ 如果您想要使用 CloudFront 支援的方法組合，例如 `GET`和 `HEAD`，您不需要設定 AWS WAF 來封鎖使用其他方法的請求。
+ 如果您想要允許 CloudFront 預設不支援的方法組合，例如 `GET`、 `HEAD`和 `POST`，您可以設定 CloudFront 回應所有方法，然後使用 AWS WAF 封鎖使用其他方法的請求。

在多租用戶分佈中實作安全標頭時，請考慮下列事項：
+ 範本層級安全標頭提供所有租用戶分佈的基準保護
+ 租戶分佈可以：
  + 新增多租戶分佈中未定義的安全標頭
  + 修改租戶特定標頭的值
  + 無法移除或覆寫在多租戶分佈層級設定的安全標頭
+ 考慮將多租用戶分佈層級標頭用於應適用於所有租用戶的關鍵安全控制

## 記錄注意事項


標準和多租用戶分佈都支援 AWS WAF 記錄，但日誌的結構和管理方式存在重要差異：


**記錄比較**  

| 標準分佈 | 多租戶分佈 | 
| --- | --- | 
| 每個分佈一個日誌組態 | 範本和租戶層級記錄選項 | 
| 標準日誌欄位 | 其他租戶識別符欄位 | 
| 每個分佈的單一目的地 | 多租用戶分佈和租用戶日誌可能分開的目的地 | 

## 其他資源

+ 若要進一步了解多租戶分佈，請參閱《*Amazon CloudFront 開發人員指南*》中的[設定分佈](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-working-with.html)。
+ 若要進一步了解如何 AWS WAF 搭配 CloudFront 使用 ，請參閱《*Amazon CloudFront 開發人員指南*》中的[使用 AWS WAF 保護](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-awswaf.html)。
+ 若要進一步了解 AWS WAF 日誌，請參閱 [保護套件 (Web ACL) 流量的日誌欄位](logging-fields.md)。

# 您使用 AWS WAF 服務時的安全性
您使用 AWS WAF 服務時的安全性

本節說明如何套用共同責任模型 AWS WAF。

的雲端安全性 AWS 是最高優先順序。身為 AWS 客戶，您可以受益於資料中心和網路架構，這些架構專為滿足最安全敏感組織的需求而建置。

**注意**  
本節提供使用 AWS WAF 服務及其 AWS 資源的標準 AWS 安全指導，例如 AWS WAF 保護套件 (Web ACLs) 和規則群組。  
如需有關使用 保護您的 AWS 資源的資訊 AWS WAF，請參閱 AWS WAF 本指南的其餘部分。

安全性是 AWS 與您之間的共同責任。[‬共同責任模型‭](https://aws.amazon.com/compliance/shared-responsibility-model/)‬ 將此描述為雲端*‬的‭*‬安全和雲端*‬內*‬的安全：
+ **雲端的安全性** – AWS 負責保護在 中執行 AWS 服務的基礎設施 AWS 雲端。 AWS 也為您提供可安全使用的服務。第三方稽核人員定期檢測及驗證安全的效率也是我們 [AWS 合規計劃](https://aws.amazon.com/compliance/programs/)的一部分。若要了解適用的合規計劃 AWS WAF，請參閱[AWS 合規計劃範圍內的服務](https://aws.amazon.com/compliance/services-in-scope/)。
+ **雲端的安全性** – 您的責任取決於您使用 AWS 的服務。您也必須對資料敏感度、組織要求，以及適用法律和法規等其他因素負責。

本文件可協助您了解如何在使用 時套用共同責任模型 AWS WAF。下列主題說明如何設定 AWS WAF 以符合您的安全與合規目標。您也會了解如何使用其他 AWS 服務來協助您監控和保護 AWS WAF 資源。

**Topics**
+ [

# 在 中保護您的資料 AWS WAF
](data-protection.md)
+ [

# 搭配 使用 IAM AWS WAF
](security-iam.md)
+ [

# 在 中記錄和監控 AWS WAF
](waf-incident-response.md)
+ [

# 在 中驗證合規 AWS WAF
](waf-compliance.md)
+ [

# 在 中建置彈性 AWS WAF
](disaster-recovery-resiliency.md)
+ [

# 中的基礎設施安全 AWS WAF
](infrastructure-security.md)

# 在 中保護您的資料 AWS WAF
保護您的資料

 AWS [共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)適用於 中的資料保護 AWS WAF。如此模型所述， AWS 負責保護執行所有 的全域基礎設施 AWS 雲端。您負責維護在此基礎設施上託管內容的控制權。您也同時負責所使用 AWS 服務 的安全組態和管理任務。如需資料隱私權的詳細資訊，請參閱[資料隱私權常見問答集](https://aws.amazon.com/compliance/data-privacy-faq/)。如需有關歐洲資料保護的相關資訊，請參閱*AWS 安全性部落格*上的[AWS 共同責任模型和 GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 部落格文章。

基於資料保護目的，我們建議您保護 AWS 帳戶 登入資料，並使用 AWS IAM Identity Center 或 AWS Identity and Access Management (IAM) 設定個別使用者。如此一來，每個使用者都只會獲得授與完成其任務所必須的許可。我們也建議您採用下列方式保護資料：
+ 每個帳戶均要使用多重要素驗證 (MFA)。
+ 使用 SSL/TLS 與 AWS 資源通訊。我們需要 TLS 1.2 並建議使用 TLS 1.3。
+ 使用 設定 API 和使用者活動記錄 AWS CloudTrail。如需有關使用 CloudTrail 追蹤擷取 AWS 活動的資訊，請參閱*AWS CloudTrail 《 使用者指南*》中的[使用 CloudTrail 追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html)。
+ 使用 AWS 加密解決方案，以及其中的所有預設安全控制 AWS 服務。
+ 使用進階的受管安全服務 (例如 Amazon Macie)，協助探索和保護儲存在 Amazon S3 的敏感資料。
+ 如果您在 AWS 透過命令列界面或 API 存取 時需要 FIPS 140-3 驗證的密碼編譯模組，請使用 FIPS 端點。如需有關 FIPS 和 FIPS 端點的更多相關資訊，請參閱[聯邦資訊處理標準 (FIPS) 140-3](https://aws.amazon.com/compliance/fips/)。

我們強烈建議您絕對不要將客戶的電子郵件地址等機密或敏感資訊，放在標籤或自由格式的文字欄位中，例如**名稱**欄位。這包括當您使用 AWS WAF 或使用主控台、API AWS CLI或其他 AWS 服務 AWS SDKs 時。您在標籤或自由格式文字欄位中輸入的任何資料都可能用於計費或診斷日誌。如果您提供外部伺服器的 URL，我們強烈建議請勿在驗證您對該伺服器請求的 URL 中包含憑證資訊。

AWS WAF 實體，例如保護套件 (Web ACLs)、規則群組和 IP 集，都會靜態加密，但無法使用加密的特定區域除外，包括中國 （北京） 和中國 （寧夏）。每個區域都會採用唯一的加密金鑰。

## 刪除 AWS WAF 資源
刪除資源

您可以刪除您在其中建立的資源 AWS WAF。請參閱以下各節中每種資源類型的指引。
+ [刪除保護套件 (Web ACL)](web-acl-deleting.md)
+ [刪除規則群組](waf-rule-group-deleting.md)
+ [刪除 IP 集合](waf-ip-set-managing.md#waf-ip-set-deleting)
+ [刪除規則運算式模式集](waf-regex-pattern-set-managing.md#waf-regex-pattern-set-deleting)

# 搭配 使用 IAM AWS WAF
搭配 使用 IAM AWS WAF更新 的 IAM 指引 AWS WAF

更新了指南以符合 IAM 最佳實務。如需更多詳細資訊，請參閱 [IAM 中的安全最佳實務](https://docs.aws.amazon.com//IAM/latest/UserGuide/best-practices.html)。

本節說明如何搭配 使用 IAM AWS WAF。



AWS Identity and Access Management (IAM) 是 AWS 服務 ，可協助管理員安全地控制對 AWS 資源的存取。IAM 管理員可控制誰可以進行*驗證 *（登入） 和*授權* （具有許可） 來使用 AWS WAF 資源。IAM 是您可以免費使用 AWS 服務 的 。

**Topics**
+ [

## 目標對象
](#security_iam_audience)
+ [

## 使用身分驗證
](#security_iam_authentication)
+ [

## 使用政策管理存取權
](#security_iam_access-manage)
+ [

# AWS WAF 如何使用 IAM
](security_iam_service-with-iam.md)
+ [

# 的身分型政策範例 AWS WAF
](security_iam_id-based-policy-examples.md)
+ [

# AWS 的 受管政策 AWS WAF
](security-iam-awsmanpol.md)
+ [

# 對 AWS WAF 身分和存取進行故障診斷
](security_iam_troubleshoot.md)
+ [

# 使用 的服務連結角色 AWS WAF
](using-service-linked-roles.md)

## 目標對象


使用方式 AWS Identity and Access Management (IAM) 會根據您的角色而有所不同：
+ **服務使用者** — 若無法存取某些功能，請向管理員申請所需許可 (請參閱 [對 AWS WAF 身分和存取進行故障診斷](security_iam_troubleshoot.md))
+ **服務管理員** — 負責設定使用者存取權並提交相關許可請求 (請參閱 [AWS WAF 如何使用 IAM](security_iam_service-with-iam.md))
+ **IAM 管理員** — 撰寫政策以管理存取控制 (請參閱 [的身分型政策範例 AWS WAF](security_iam_id-based-policy-examples.md))

## 使用身分驗證


身分驗證是您 AWS 使用身分憑證登入 的方式。您必須以 AWS 帳戶根使用者、IAM 使用者或擔任 IAM 角色身分進行身分驗證。

您可以使用身分來源的登入資料，例如 AWS IAM Identity Center (IAM Identity Center)、單一登入身分驗證或 Google/Facebook 登入資料，以聯合身分的形式登入。如需有關登入的詳細資訊，請參閱《AWS 登入 使用者指南》**中的[如何登入您的 AWS 帳戶](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)。

對於程式設計存取， AWS 提供 SDK 和 CLI 以密碼編譯方式簽署請求。如需詳細資訊，請參閱《IAM 使用者指南》**中的 [API 請求的AWS 第 4 版簽署程序](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)。

### AWS 帳戶 根使用者


 當您建立 時 AWS 帳戶，您會從一個名為 AWS 帳戶 *theroot 使用者的*登入身分開始，該身分可完整存取所有 AWS 服務 和 資源。強烈建議不要使用根使用者來執行日常任務。有關需要根使用者憑證的任務，請參閱《IAM 使用者指南》**中的[需要根使用者憑證的任務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

### 聯合身分


最佳實務是要求人類使用者使用聯合身分提供者，以 AWS 服務 使用臨時憑證存取 。

*聯合身分*是您企業目錄、Web 身分提供者的使用者，或使用身分來源的 AWS 服務 憑證存取 Directory Service 。聯合身分會擔任角色，而該角色會提供臨時憑證。

若需集中化管理存取權限，建議使用 AWS IAM Identity Center。如需詳細資訊，請參閱 *AWS IAM Identity Center 使用者指南*中的[什麼是 IAM Identity Center？](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)。

### IAM 使用者和群組


*IAM 使用者*[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)是一種身分具備單人或應用程式的特定許可權。建議以臨時憑證取代具備長期憑證的 IAM 使用者。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[要求人類使用者使用聯合身分提供者來 AWS 使用臨時憑證存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) 。

[IAM 群組](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)**會指定 IAM 使用者集合，使管理大量使用者的許可權更加輕鬆。如需詳細資訊，請參閱《IAM 使用者指南》**中的 [IAM 使用者的使用案例](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html)。

### IAM 角色


*IAM 角色*[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)的身分具有特定許可權，其可以提供臨時憑證。您可以透過[從使用者切換到 IAM 角色 （主控台） ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)或呼叫 AWS CLI 或 AWS API 操作來擔任角色。如需詳細資訊，請參閱《IAM 使用者指南》**中的[擔任角色的方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)。

IAM 角色適用於聯合身分使用者存取、臨時 IAM 使用者許可、跨帳戶存取權與跨服務存取，以及在 Amazon EC2 執行的應用程式。如需詳細資訊，請參閱《*IAM 使用者指南*》中的 [IAM 中的快帳戶資源存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

## 使用政策管理存取權


您可以透過建立政策並將其連接到身分或資源 AWS 來控制 AWS 中的存取。政策定義與身分或資源相關聯的許可。當委託人提出請求時 AWS ， 會評估這些政策。大多數政策會以 JSON 文件 AWS 形式存放在 中。如需進一步了解 JSON 政策文件，請參閱《*IAM 使用者指南*》中的 [JSON 政策概觀](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json)。

管理員會使用政策，透過定義哪些**主體**可在哪些**條件**下對哪些**資源**執行**動作**，以指定可存取的範圍。

預設情況下，使用者和角色沒有許可。IAM 管理員會建立 IAM 政策並將其新增至角色，供使用者後續擔任。IAM 政策定義動作的許可，無論採用何種方式執行。

### 身分型政策


身分型政策是附加至身分 (使用者、使用者群組或角色) 的 JSON 許可政策文件。這類政策控制身分可對哪些資源執行哪些動作，以及適用的條件。如需了解如何建立身分型政策，請參閱《*IAM 使用者指南*》中的[透過客戶管理政策定義自訂 IAM 許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

身分型政策可分為*內嵌政策* (直接內嵌於單一身分) 與*受管政策* (可附加至多個身分的獨立政策)。如需了解如何在受管政策及內嵌政策之間做選擇，請參閱《IAM 使用者指南》**中的[在受管政策與內嵌政策之間選擇](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html)。

### 資源型政策


資源型政策是附加到資源的 JSON 政策文件。範例包括 IAM *角色信任政策*與 Amazon S3 *儲存貯體政策*。在支援資源型政策的服務中，服務管理員可以使用它們來控制對特定資源的存取權限。您必須在資源型政策中[指定主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。

資源型政策是位於該服務中的內嵌政策。您無法在資源型政策中使用來自 IAM 的 AWS 受管政策。

### 其他政策類型


AWS 支援其他政策類型，可設定更多常見政策類型授予的最大許可：
+ **許可界限** — 設定身分型政策可授與 IAM 實體的最大許可。如需詳細資訊，請參閱《 IAM 使用者指南》**中的 [IAM 實體許可界限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。
+ **服務控制政策 (SCP)** — 為 AWS Organizations中的組織或組織單位指定最大許可。如需詳細資訊，請參閱《AWS Organizations 使用者指南》**中的[服務控制政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)。
+ **資源控制政策 (RCP)** — 設定您帳戶中資源可用許可的上限。如需詳細資訊，請參閱《AWS Organizations 使用者指南》**中的[資源控制政策 (RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)。
+ **工作階段政策** — 在以程式設計方式為角色或聯合身分使用者建立臨時工作階段時，以參數形式傳遞的進階政策。如需詳細資訊，請參《*IAM 使用者指南*》中的[工作階段政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)。

### 多種政策類型


當多種類型的政策適用於請求時，產生的許可會更複雜而無法理解。若要了解如何 AWS 在涉及多個政策類型時決定是否允許請求，請參閱《*IAM 使用者指南*》中的[政策評估邏輯](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)。

# AWS WAF 如何使用 IAM


本節說明如何搭配使用 IAM 的功能 AWS WAF。

在您使用 IAM 管理對 的存取之前 AWS WAF，請先了解可使用哪些 IAM 功能 AWS WAF。






**您可以搭配 使用的 IAM 功能 AWS WAF**  

| IAM 功能 | AWS WAF 支援 | 
| --- | --- | 
|  [身分型政策](#security_iam_service-with-iam-id-based-policies)  |   是  | 
|  [資源型政策](#security_iam_service-with-iam-resource-based-policies)  |   是  | 
|  [政策動作](#security_iam_service-with-iam-id-based-policies-actions)  |   是  | 
|  [政策資源](#security_iam_service-with-iam-id-based-policies-resources)  |   是  | 
|  [政策條件索引鍵 (服務特定)](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   是  | 
|  [ACL](#security_iam_service-with-iam-acls)  |   否   | 
|  [ABAC(政策中的標籤)](#security_iam_service-with-iam-tags)  |   部分  | 
|  [臨時憑證](#security_iam_service-with-iam-roles-tempcreds)  |   是  | 
|  [轉送存取工作階段 (FAS)](#security_iam_service-with-iam-principal-permissions)  |   是  | 
|  [服務角色](#security_iam_service-with-iam-roles-service)  |   是  | 
|  [服務連結角色](#security_iam_service-with-iam-roles-service-linked)  |   是  | 

若要全面了解 AWS WAF 和其他 AWS 服務如何與大多數 IAM 功能搭配使用，請參閱《IAM *使用者指南*》中的與 IAM [AWS 搭配使用的 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。

## 的身分型政策 AWS WAF
身分型政策

**支援身分型政策：**是

身分型政策是可以附加到身分 (例如 IAM 使用者、使用者群組或角色) 的 JSON 許可政策文件。這些政策可控制身分在何種條件下能對哪些資源執行哪些動作。如需了解如何建立身分型政策，請參閱《*IAM 使用者指南*》中的[透過客戶管理政策定義自訂 IAM 許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

使用 IAM 身分型政策，您可以指定允許或拒絕的動作和資源，以及在何種條件下允許或拒絕動作。如要了解您在 JSON 政策中使用的所有元素，請參閱《*IAM 使用者指南*》中的 [IAM JSON 政策元素參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。

若要檢視 AWS WAF 身分型政策的範例，請參閱 [的身分型政策範例 AWS WAF](security_iam_id-based-policy-examples.md)。

## 中的資源型政策 AWS WAF
資源型政策

**支援資源型政策：**是

資源型政策是附加到資源的 JSON 政策文件。資源型政策的最常見範例是 IAM *角色信任政策*和 Amazon S3 *儲存貯體政策*。在支援資源型政策的服務中，服務管理員可以使用它們來控制對特定資源的存取權限。對於附加政策的資源，政策會定義指定的主體可以對該資源執行的動作以及在何種條件下執行的動作。您必須在資源型政策中[指定主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。委託人可以包含帳戶、使用者、角色、聯合身分使用者或 AWS 服務。

如需啟用跨帳戶存取權，您可以在其他帳戶內指定所有帳戶或 IAM 實體作為資源型政策的主體。如需詳細資訊，請參閱《*IAM 使用者指南*》中的 [IAM 中的快帳戶資源存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

AWS WAF 使用資源型政策來支援跨帳戶共用規則群組。您可以將資源型政策設定提供給 AWS WAF API 呼叫`PutPermissionPolicy`或對等的 CLI 或 SDK 呼叫，以與其他 AWS 帳戶共用您擁有的規則群組。如需其他資訊，包括其他可用語言文件的範例和連結，請參閱 AWS WAF API 參考中的 [PutPermissionPolicy](https://docs.aws.amazon.com/waf/latest/APIReference/API_PutPermissionPolicy.html)。此功能無法透過其他方式使用，例如 主控台或 CloudFormation。

## 的政策動作 AWS WAF
政策動作

**支援政策動作：**是

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

JSON 政策的 `Action` 元素描述您可以用來允許或拒絕政策中存取的動作。政策會使用動作來授予執行相關聯動作的許可。



若要查看每個 AWS WAF 的動作和許可清單，請參閱*服務授權參考*中的 [AWS WAF V2 定義的動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-actions-as-permissions)。

中的政策動作在動作之前 AWS WAF 使用以下字首：

```
wafv2
```

如需在單一陳述式中指定多個動作，請用逗號分隔。

```
"Action": [
      "wafv2:action1",
      "wafv2:action2"
         ]
```



您也可以使用萬用字元 (\$1) 來指定多個動作。例如，若要在 中指定以 AWS WAF 開頭的所有動作`List`，請包含下列動作：

```
"Action": "wafv2:List*"
```

若要檢視 AWS WAF 身分型政策的範例，請參閱 [的身分型政策範例 AWS WAF](security_iam_id-based-policy-examples.md)。

### 需要額外許可設定的動作
需要額外許可的動作已更新 AWS WAF IAM 許可資訊

對於管理保護套件 (Web ACL) 關聯的 AWS WAF 動作，政策動作區段現在會列出每個 Web 應用程式資源類型的許可需求。

有些動作需要 *服務授權參考*中 [AWS WAF V2 定義的動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-actions-as-permissions)中無法完整描述的許可。本節提供額外的許可資訊。

**Topics**
+ [

#### `AssociateWebACL` 的許可
](#security_iam_action-AssociateWebACL)
+ [

#### `DisassociateWebACL` 的許可
](#security_iam_action-DisassociateWebACL)
+ [

#### `GetWebACLForResource` 的許可
](#security_iam_action-GetWebACLForResource)
+ [

#### `ListResourcesForWebACL` 的許可
](#security_iam_action-ListResourcesForWebACL)

#### `AssociateWebACL` 的許可
`AssociateWebACL`

本節列出使用 AWS WAF 動作 將保護套件 (Web ACL) 與資源建立關聯所需的許可`AssociateWebACL`。

對於 Amazon CloudFront 分佈，請使用 CloudFront 動作 ，而不是此動作`UpdateDistribution`。如需詳細資訊，請參閱《*Amazon CloudFront API 參考*》中的 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)。

**Amazon API Gateway REST API**  
需要許可，才能在 REST API 資源類型`SetWebACL`上呼叫 API Gateway，以及在保護套件 (Web ACL) 上呼叫 AWS WAF `AssociateWebACL` 。

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "apigateway:SetWebACL"
    ],
    "Resource": [
        "arn:aws:apigateway:*::/restapis/*/stages/*"
    ]
}
```

**Application Load Balancer**  
需要許可才能呼叫 Application Load Balancer 資源類型的`elasticloadbalancing:SetWebACL`動作，以及在保護套件 (Web ACL) `AssociateWebACL`上呼叫 AWS WAF 。

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "elasticloadbalancing:SetWebACL"
    ],
    "Resource": [
        "arn:aws:elasticloadbalancing:*:account-id:loadbalancer/app/*/*"
    ]
}
```

**AWS AppSync GraphQL API**  
需要許可，才能在 GraphQL API 資源類型上呼叫 AWS AppSync `SetWebACL` ，以及在保護套件 (Web ACL) 上呼叫 AWS WAF `AssociateWebACL` 。

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "appsync:SetWebACL"
    ],
    "Resource": [
        "arn:aws:appsync:*:account-id:apis/*"
    ]
}
```

**Amazon Cognito 使用者集區**  
需要許可，才能對使用者集區資源類型呼叫 Amazon Cognito `AssociateWebACL`動作，以及在保護套件 (Web ACL) 上呼叫 AWS WAF `AssociateWebACL` 。

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "cognito-idp:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:cognito-idp:*:account-id:userpool/*"
    ]
}
```

**AWS App Runner 服務**  
需要許可，才能在 App Runner 服務資源類型上呼叫 App Runner `AssociateWebACL`動作，以及在 Web ACL 上呼叫 AWS WAF `AssociateWebACL` 。

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "apprunner:AssociateWebAcl"
    ],
    "Resource": [
        "arn:aws:apprunner:*:account-id:service/*/*"
    ]
}
```

**AWS 已驗證的存取執行個體**  
需要許可才能在 Verified Access 執行個體資源類型上呼叫 `ec2:AssociateVerifiedAccessInstanceWebAcl`動作，以及在 Web ACL 上呼叫 AWS WAF `AssociateWebACL` 。

```
{
    "Sid": "AssociateWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:AssociateWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "AssociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "ec2:AssociateVerifiedAccessInstanceWebAcl"
    ],
    "Resource": [
        "arn:aws:ec2:*:account-id:verified-access-instance/*"
    ]
}
```

#### `DisassociateWebACL` 的許可
`DisassociateWebACL`

本節列出使用 AWS WAF 動作 取消保護套件 (Web ACL) 與資源的關聯所需的許可`DisassociateWebACL`。

對於 Amazon CloudFront 分佈，請使用 CloudFront 動作`UpdateDistribution`搭配空的保護套件 (Web ACL) ID。如需詳細資訊，請參閱《*Amazon CloudFront API 參考*》中的 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)。

**Amazon API Gateway REST API**  
需要在 REST API 資源類型`SetWebACL`上呼叫 API Gateway 的許可。不需要呼叫 的許可 AWS WAF `DisassociateWebACL`。

```
{
    "Sid": "DisassociateWebACL",
    "Effect": "Allow",
    "Action": [
        "apigateway:SetWebACL"
    ],
    "Resource": [
        "arn:aws:apigateway:*::/restapis/*/stages/*"
    ]
}
```

**Application Load Balancer**  
需要對 Application Load Balancer 資源類型呼叫 `elasticloadbalancing:SetWebACL`動作的許可。不需要呼叫 的許可 AWS WAF `DisassociateWebACL`。

```
{
    "Sid": "DisassociateWebACL",
    "Effect": "Allow",
    "Action": [
        "elasticloadbalancing:SetWebACL"
    ],
    "Resource": [
        "arn:aws:elasticloadbalancing:*:account-id:loadbalancer/app/*/*"
    ]
}
```

**AWS AppSync GraphQL API**  
需要許可才能呼叫 AWS AppSync `SetWebACL` GraphQL API 資源類型。不需要呼叫 的許可 AWS WAF `DisassociateWebACL`。

```
{
    "Sid": "DisassociateWebACL",
    "Effect": "Allow",
    "Action": [
        "appsync:SetWebACL"
    ],
    "Resource": [
        "arn:aws:appsync:*:account-id:apis/*"
    ]
}
```

**Amazon Cognito 使用者集區**  
需要許可，才能對使用者集區資源類型呼叫 Amazon Cognito `DisassociateWebACL`動作並呼叫 AWS WAF `DisassociateWebACL`。

```
{
    "Sid": "DisassociateWebACL1",
    "Effect": "Allow",
    "Action": "wafv2:DisassociateWebACL",
    "Resource": "*"
},
{
    "Sid": "DisassociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "cognito-idp:DisassociateWebACL"
    ],
    "Resource": [
        "arn:aws:cognito-idp:*:account-id:userpool/*"
    ]
}
```

**AWS App Runner 服務**  
需要對 App Runner 服務資源類型呼叫 App Runner `DisassociateWebACL`動作和 呼叫的許可 AWS WAF `DisassociateWebACL`。

```
{
    "Sid": "DisassociateWebACL1",
    "Effect": "Allow",
    "Action": "wafv2:DisassociateWebACL",
    "Resource": "*"
},
{
    "Sid": "DisassociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "apprunner:DisassociateWebAcl"
    ],
    "Resource": [
        "arn:aws:apprunner:*:account-id:service/*/*"
    ]
}
```

**AWS 已驗證的存取執行個體**  
需要對 Verified Access 執行個體資源類型呼叫 `ec2:DisassociateVerifiedAccessInstanceWebAcl`動作和 呼叫的許可 AWS WAF `DisassociateWebACL`。

```
{
    "Sid": "DisassociateWebACL1",
    "Effect": "Allow",
    "Action": "wafv2:DisassociateWebACL",
    "Resource": "*"
},
{
    "Sid": "DisassociateWebACL2",
    "Effect": "Allow",
    "Action": [
        "ec2:DisassociateVerifiedAccessInstanceWebAcl"
    ],
    "Resource": [
        "arn:aws:ec2:*:account-id:verified-access-instance/*"
    ]
}
```

#### `GetWebACLForResource` 的許可
`GetWebACLForResource`

本節列出使用 AWS WAF 動作 取得受保護資源的保護套件 (Web ACL) 所需的許可`GetWebACLForResource`。

對於 Amazon CloudFront 分佈，請使用 CloudFront 動作 ，而不是此動作`GetDistributionConfig`。如需詳細資訊，請參閱《*Amazon CloudFront API 參考*》中的 [GetDistributionConfig](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_GetDistributionConfig.html)。

**注意**  
`GetWebACLForResource` 需要 許可才能呼叫 `GetWebACL`。在這種情況下， `GetWebACL`只會 AWS WAF 使用 來驗證您的帳戶是否具有存取 `GetWebACLForResource` 傳回的保護套件 (Web ACL) 所需的許可。當您呼叫 時`GetWebACLForResource`，您可能會收到錯誤，指出您的帳戶未獲授權在 資源`wafv2:GetWebACL`上執行。 AWS WAF 不會將此類型的錯誤新增至 AWS CloudTrail 事件歷史記錄。

**Amazon API Gateway REST API、Application Load Balancer 和 AWS AppSync GraphQL API**  
需要呼叫 AWS WAF `GetWebACLForResource` 和 保護套件 (Web ACL) `GetWebACL`的許可。

```
{
    "Sid": "GetWebACLForResource",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
}
```

**Amazon Cognito 使用者集區**  
需要許可才能呼叫使用者集區資源類型的 Amazon Cognito `GetWebACLForResource`動作，以及呼叫 AWS WAF `GetWebACLForResource` 和 `GetWebACL`。

```
{
    "Sid": "GetWebACLForResource1",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [ 
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "GetWebACLForResource2",
    "Effect": "Allow",
    "Action": [
        "cognito-idp:GetWebACLForResource"
    ],
    "Resource": [
        "arn:aws:cognito-idp:*:account-id:userpool/*"
    ]
}
```

**AWS App Runner 服務**  
需要許可才能呼叫 App Runner 服務資源類型的 App Runner `DescribeWebAclForService`動作，以及呼叫 AWS WAF `GetWebACLForResource`和 `GetWebACL`。

```
{
    "Sid": "GetWebACLForResource1",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "GetWebACLForResource2",
    "Effect": "Allow",
    "Action": [
        "apprunner:DescribeWebAclForService"
    ],
    "Resource": [
        "arn:aws:apprunner:*:account-id:service/*/*"
    ]
}
```

**AWS 已驗證的存取執行個體**  
需要許可才能呼叫 Verified Access 執行個體資源類型的 `ec2:GetVerifiedAccessInstanceWebAcl`動作，以及呼叫 AWS WAF `GetWebACLForResource` 和 `GetWebACL`。

```
{
    "Sid": "GetWebACLForResource1",
    "Effect": "Allow",
    "Action": [
        "wafv2:GetWebACLForResource",
        "wafv2:GetWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "GetWebACLForResource2",
    "Effect": "Allow",
    "Action": [
        "ec2:GetVerifiedAccessInstanceWebAcl"
    ],
    "Resource": [
        "arn:aws:ec2:*:account-id:verified-access-instance/*"
    ]
}
```

#### `ListResourcesForWebACL` 的許可
`ListResourcesForWebACL`

本節列出使用 AWS WAF 動作 擷取保護套件 (Web ACL) 的受保護資源清單所需的許可`ListResourcesForWebACL`。

對於 Amazon CloudFront 分佈，請使用 CloudFront 動作 ，而不是此動作`ListDistributionsByWebACLId`。如需詳細資訊，請參閱《*Amazon CloudFront API 參考*》中的 [ListDistributionsByWebACLId](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListDistributionsByWebACLId.html)。

**Amazon API Gateway REST API、Application Load Balancer 和 AWS AppSync GraphQL API**  
需要呼叫 AWS WAF `ListResourcesForWebACL` Web ACL 的許可。

```
{
    "Sid": "ListResourcesForWebACL",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
}
```

**Amazon Cognito 使用者集區**  
需要對使用者集區資源類型呼叫 Amazon Cognito `ListResourcesForWebACL`動作和呼叫 AWS WAF 的許可`ListResourcesForWebACL`。

```
{
    "Sid": "ListResourcesForWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "ListResourcesForWebACL2",
    "Effect": "Allow",
    "Action": [
        "cognito-idp:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:cognito-idp:*:account-id:userpool/*"
    ]
}
```

**AWS App Runner 服務**  
需要對 App Runner 服務資源類型呼叫 App Runner `ListAssociatedServicesForWebAcl`動作和 呼叫的許可 AWS WAF `ListResourcesForWebACL`。

```
{
    "Sid": "ListResourcesForWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "ListResourcesForWebACL2",
    "Effect": "Allow",
    "Action": [
        "apprunner:ListAssociatedServicesForWebAcl"
    ],
    "Resource": [
        "arn:aws:apprunner:*:account-id:service/*/*"
    ]
}
```

**AWS 已驗證的存取執行個體**  
需要許可才能呼叫 Verified Access 執行個體資源類型的 `ec2:DescribeVerifiedAccessInstanceWebAclAssociations`動作，以及呼叫 AWS WAF `ListResourcesForWebACL`。

```
{
    "Sid": "ListResourcesForWebACL1",
    "Effect": "Allow",
    "Action": [
        "wafv2:ListResourcesForWebACL"
    ],
    "Resource": [
        "arn:aws:wafv2:region:account-id:regional/webacl/*/*"
    ]
},
{
    "Sid": "ListResourcesForWebACL2",
    "Effect": "Allow",
    "Action": [
        "ec2:DescribeVerifiedAccessInstanceWebAclAssociations"
    ],
    "Resource": [
        "arn:aws:ec2:*:account-id:verified-access-instance/*"
    ]
}
```

## 的政策資源 AWS WAF
政策資源

**支援政策資源：**是

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

`Resource` JSON 政策元素可指定要套用動作的物件。最佳實務是使用其 [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) 來指定資源。若動作不支援資源層級許可，使用萬用字元 (\$1) 表示該陳述式適用於所有資源。

```
"Resource": "*"
```

若要查看 AWS WAF 資源類型及其 ARNs的清單，請參閱*服務授權參考*中的 [AWS WAF V2 定義的資源](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-resources-for-iam-policies)。若要了解您可以使用哪些動作指定每個資源的 ARN，請參閱 [AWS WAF V2 定義的動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-actions-as-permissions)。若要允許或拒絕存取資源子集 AWS WAF ，請在政策的 `resource`元素中包含資源的 ARN。

資源ARNs 格式如下： AWS WAF `wafv2`

```
arn:partition:wafv2:region:account-id:scope/resource-type/resource-name/resource-id
```

如需 ARN 規格的一般資訊，請參閱 中的 [Amazon Resource Name (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) Amazon Web Services 一般參考。

下列列出 `wafv2` 資源 ARNs 特有的要求：
+ region**：針對您用來保護 Amazon CloudFront 分佈 AWS WAF 的資源，將此設定為 `us-east-1`。否則，請將此設定為搭配受保護區域資源使用的 區域。
+ *範圍*：將範圍設定為 `global`，以搭配 Amazon CloudFront 分佈使用`regional`，或搭配 AWS WAF 支援的任何區域資源使用。區域資源是 Amazon API Gateway REST API、Application Load Balancer、a AWS AppSync GraphQL API、Amazon Cognito 使用者集區、 AWS App Runner 服務和 AWS Verified Access 執行個體。
+ *resource-type*：指定下列其中一個值：`webacl`、`rulegroup`、`regexpatternset`、 `ipset`或 `managedruleset`。
+ *resource-name*：指定您提供 AWS WAF 資源的名稱，或指定萬用字元 (`*`) 來表示符合 ARN 中其他規格的所有資源。您必須指定資源名稱和資源 ID，或同時指定萬用字元。
+ *resource-id*：指定資源的 AWS WAF ID，或指定萬用字元 (`*`)，以指出符合 ARN 中其他規格的所有資源。您必須指定資源名稱和資源 ID，或同時指定萬用字元。

例如，下列 ARN 會指定區域 `111122223333`中帳戶區域範圍的所有保護套件 (Web ACLs)`us-west-1`：

```
arn:aws:wafv2:us-west-1:111122223333:regional/webacl/*/*
```

下列 ARN 指定名為 的規則群組`MyIPManagementRuleGroup`，具有區域 `111122223333`中帳戶的全域範圍`us-east-1`：

```
arn:aws:wafv2:us-east-1:111122223333:global/rulegroup/MyIPManagementRuleGroup/1111aaaa-bbbb-cccc-dddd-example-id
```

若要檢視 AWS WAF 身分型政策的範例，請參閱 [的身分型政策範例 AWS WAF](security_iam_id-based-policy-examples.md)。

## 的政策條件索引鍵 AWS WAF
政策條件索引鍵

**支援服務特定政策條件金鑰：**是

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

`Condition` 元素會根據定義的條件，指定陳述式的執行時機。您可以建立使用[條件運算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)的條件運算式 (例如等於或小於)，來比對政策中的條件和請求中的值。若要查看所有 AWS 全域條件索引鍵，請參閱《*IAM 使用者指南*》中的[AWS 全域條件內容索引鍵](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

此外， AWS WAF 支援下列條件索引鍵，您可以使用這些索引鍵為您的 IAM 政策提供精細篩選：
+ **wafv2：LogDestinationResource**

  此條件金鑰會取得記錄目的地的 Amazon Resource Name (ARN) 規格。這是您在使用 REST API 呼叫 時為記錄目的地提供的 ARN`PutLoggingConfiguration`。

  您可以明確指定 ARN，也可以指定 ARN 的篩選。下列範例指定篩選具有特定位置和字首的 Amazon S3 儲存貯ARNs。

  ```
  "Condition": { "ArnLike": { "wafv2:LogDestinationResource": "arn:aws:s3:::aws-waf-logs-suffix/custom-prefix/*" } }
  ```
+ **wafv2：LogScope**

  此條件索引鍵定義字串中記錄組態的來源。目前，這一律設定為預設值 `Customer`，這表示記錄目的地由您擁有和管理。

若要查看 AWS WAF 條件索引鍵的清單，請參閱《*服務授權參考*》中的 [AWS WAF V2 的條件索引鍵](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-policy-keys)。若要了解您可以使用條件金鑰的動作和資源，請參閱 [AWS WAF V2 定義的動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html#awswafv2-actions-as-permissions)。

若要檢視 AWS WAF 身分型政策的範例，請參閱 [的身分型政策範例 AWS WAF](security_iam_id-based-policy-examples.md)。

## 中的 ACLs AWS WAF
ACL

**支援 ACL：**否 

存取控制清單 (ACL) 可控制哪些主體 (帳戶成員、使用者或角色) 擁有存取某資源的許可。ACL 類似於資源型政策，但它們不使用 JSON 政策文件格式。

## ABAC 搭配 AWS WAF
ABAC

**支援 ABAC (政策中的標籤)：**部分

屬性型存取控制 (ABAC) 是一種授權策略，根據稱為標籤的屬性定義許可權。您可以將標籤連接至 IAM 實體 AWS 和資源，然後設計 ABAC 政策，以便在委託人的標籤符合資源上的標籤時允許操作。

如需根據標籤控制存取，請使用 `aws:ResourceTag/key-name`、`aws:RequestTag/key-name` 或 `aws:TagKeys` 條件索引鍵，在政策的[條件元素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)中，提供標籤資訊。

如果服務支援每個資源類型的全部三個條件金鑰，則對該服務而言，值為 **Yes**。如果服務僅支援某些資源類型的全部三個條件金鑰，則值為 **Partial**。

如需 ABAC 的詳細資訊，請參閱《*IAM 使用者指南*》中的[使用 ABAC 授權定義許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)。如要查看含有設定 ABAC 步驟的教學課程，請參閱《*IAM 使用者指南*》中的[使用屬性型存取控制 (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)。

## 搭配 使用臨時登入資料 AWS WAF
臨時憑證

**支援臨時憑證：**是

臨時登入資料提供 AWS 資源的短期存取權，當您使用聯合或切換角色時，會自動建立。 AWS 建議您動態產生臨時登入資料，而不是使用長期存取金鑰。如需詳細資訊，請參閱《*IAM 使用者指南*》中的 [IAM 中的臨時安全憑證](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)與[可與 IAM 搭配運作的AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。

## 轉送服務的存取工作階段 AWS WAF
轉寄存取工作階段

**支援轉寄存取工作階段 (FAS)：**是

 轉送存取工作階段 (FAS) 使用呼叫 的委託人許可 AWS 服務，並結合 AWS 服務 請求向下游服務提出請求。如需提出 FAS 請求時的政策詳細資訊，請參閱[轉發存取工作階段](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)。

## 的服務角色 AWS WAF
服務角色

**支援服務角色：**是

 服務角色是服務擔任的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)，可代您執行動作。IAM 管理員可以從 IAM 內建立、修改和刪除服務角色。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[建立角色以委派許可給 AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

**警告**  
變更服務角色的許可可能會中斷 AWS WAF 功能。只有在 AWS WAF 提供指引時，才能編輯服務角色。

## 的服務連結角色 AWS WAF
服務連結角色

**支援服務連結角色：**是

 服務連結角色是連結至 的一種服務角色 AWS 服務。服務可以擔任代表您執行動作的角色。服務連結角色會出現在您的 中 AWS 帳戶 ，並由服務擁有。IAM 管理員可以檢視，但不能編輯服務連結角色的許可。

如需建立或管理 AWS WAF 服務連結角色的詳細資訊，請參閱 [使用 的服務連結角色 AWS WAF](using-service-linked-roles.md)。

# 的身分型政策範例 AWS WAF
身分型政策範例

本節提供 的身分型政策範例 AWS WAF。

根據預設，使用者和角色不具備建立或修改 AWS WAF 資源的權限。若要授予使用者對其所需資源執行動作的許可，IAM 管理員可以建立 IAM 政策。

如需了解如何使用這些範例 JSON 政策文件建立 IAM 身分型政策，請參閱《*IAM 使用者指南*》中的[建立 IAM 政策 (主控台)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)。

如需 定義的動作和資源類型的詳細資訊 AWS WAF，包括每種資源類型的 ARNs 格式，請參閱*《服務授權參考*》中的 [AWS WAF V2 的動作、資源和條件索引鍵](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awswafv2.html)。

**Topics**
+ [

## 政策最佳實務
](#security_iam_service-with-iam-policy-best-practices)
+ [

## 使用 AWS WAF 主控台
](#security_iam_id-based-policy-examples-console)
+ [

## 允許使用者檢視他們自己的許可
](#security_iam_id-based-policy-examples-view-own-permissions)
+ [

## 授予對 AWS WAF CloudFront 和 CloudWatch 的唯讀存取權
](#security_iam_id-based-policy-examples-read-only1)
+ [

## 授予對 AWS WAF CloudFront 和 CloudWatch 的完整存取權
](#security_iam_id-based-policy-examples-full-access1)
+ [

## 授予對單一 的存取權 AWS 帳戶
](#security_iam_id-based-policy-examples-access-to-account)
+ [

## 授予單一保護套件的存取權 (Web ACL)
](#security_iam_id-based-policy-examples-access-to-web-acl)
+ [

## 授予 CLI 對保護套件 (Web ACL) 和規則群組的存取權
](#security_iam_id-based-policy-examples-cli-access-to-web-acl)

## 政策最佳實務


身分型政策會判斷您帳戶中的某個人員是否可以建立、存取或刪除 AWS WAF 資源。這些動作可能會讓您的 AWS 帳戶產生費用。當您建立或編輯身分型政策時，請遵循下列準則及建議事項：
+ **開始使用 AWS 受管政策並邁向最低權限許可** – 若要開始將許可授予您的使用者和工作負載，請使用將許可授予許多常見使用案例的 *AWS 受管政策*。它們可在您的 中使用 AWS 帳戶。我們建議您定義特定於使用案例 AWS 的客戶受管政策，進一步減少許可。如需更多資訊，請參閱《*IAM 使用者指南*》中的 [AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)或[任務職能的AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。
+ **套用最低權限許可** – 設定 IAM 政策的許可時，請僅授予執行任務所需的許可。為實現此目的，您可以定義在特定條件下可以對特定資源採取的動作，這也稱為*最低權限許可*。如需使用 IAM 套用許可的更多相關資訊，請參閱《*IAM 使用者指南*》中的 [IAM 中的政策和許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。
+ **使用 IAM 政策中的條件進一步限制存取權** – 您可以將條件新增至政策，以限制動作和資源的存取。例如，您可以撰寫政策條件，指定必須使用 SSL 傳送所有請求。如果透過特定 等使用服務動作 AWS 服務，您也可以使用條件來授予其存取權 CloudFormation。如需詳細資訊，請參閱《*IAM 使用者指南*》中的 [IAM JSON 政策元素：條件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。
+ **使用 IAM Access Analyzer 驗證 IAM 政策，確保許可安全且可正常運作** – IAM Access Analyzer 驗證新政策和現有政策，確保這些政策遵從 IAM 政策語言 (JSON) 和 IAM 最佳實務。IAM Access Analyzer 提供 100 多項政策檢查及切實可行的建議，可協助您撰寫安全且實用的政策。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[使用 IAM Access Analyzer 驗證政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。
+ **需要多重要素驗證 (MFA)** – 如果您的案例需要 IAM 使用者或 中的根使用者 AWS 帳戶，請開啟 MFA 以提高安全性。如需在呼叫 API 操作時請求 MFA，請將 MFA 條件新增至您的政策。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[透過 MFA 的安全 API 存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)。

如需 IAM 中最佳實務的相關資訊，請參閱《*IAM 使用者指南*》中的 [IAM 安全最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

## 使用 AWS WAF 主控台
使用主控台

若要存取 AWS WAF 主控台，您必須擁有一組最低許可。這些許可必須允許您列出和檢視 中 AWS WAF 資源的詳細資訊 AWS 帳戶。如果您建立比最基本必要許可更嚴格的身分型政策，則對於具有該政策的實體 (使用者或角色) 而言，主控台就無法如預期運作。

對於僅呼叫 AWS CLI 或 AWS API 的使用者，您不需要允許最低主控台許可。反之，只需允許存取符合他們嘗試執行之 API 操作的動作就可以了。

為了確保使用者和角色可以使用 AWS WAF 主控台，請至少將 AWS WAF `AWSWAFConsoleReadOnlyAccess` AWS 受管政策連接到實體。如需此受管政策的相關資訊，請參閱 [AWS 受管政策：AWSWAFConsoleReadOnlyAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AWSWAFConsoleReadOnlyAccess)。如需將受管政策連接至使用者的詳細資訊，請參閱《*IAM 使用者指南*》中的[新增許可給使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)。

## 允許使用者檢視他們自己的許可


此範例會示範如何建立政策，允許 IAM 使用者檢視附加到他們使用者身分的內嵌及受管政策。此政策包含在主控台或使用 或 AWS CLI AWS API 以程式設計方式完成此動作的許可。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## 授予對 AWS WAF CloudFront 和 CloudWatch 的唯讀存取權


下列政策會授予使用者對 AWS WAF 資源、Amazon CloudFront Web 分佈和 Amazon CloudWatch 指標的唯讀存取權。對於需要檢視 AWS WAF 條件、規則和保護套件 (Web ACLs) 中的設定，以查看與保護套件 (Web ACL) 相關聯的分佈，以及在 CloudWatch 中監控指標和請求範例的使用者來說，此功能非常有用。這些使用者無法建立、更新或刪除 AWS WAF 資源。

```
 {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "wafv2:Get*",
                "wafv2:List*",
                "cloudfront:GetDistribution",
                "cloudfront:GetDistributionConfig",
                "cloudfront:ListDistributions",
                "cloudfront:ListDistributionsByWebACLId",
                "cloudfront:ListDistributionTenantsByCustomization",
                "cloudfront:ListDistributionTenants",
                "cloudfront:GetDistributionTenant",
                "cloudwatch:GetMetricData",
                "cloudwatch:ListMetrics",
                "cloudwatch:GetMetricStatistics",
                "ec2:DescribeRegions",
                "pricingplanmanager:GetSubscription",
                "pricingplanmanager:ListSubscriptions",
                "route53:ListHostedZones",
                "route53:GetHostedZone"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

## 授予對 AWS WAF CloudFront 和 CloudWatch 的完整存取權


下列政策可讓使用者執行任何 AWS WAF 操作、在 CloudFront Web 分佈上執行任何操作，以及在 CloudWatch 中監控指標和請求範例。這對身為 AWS WAF 管理員的使用者很有用。

```
 {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "wafv2:*",
                "cloudfront:CreateDistribution",
                "cloudfront:ListDistributions",
                "cloudfront:ListDistributionsByWebACLId",
                "cloudfront:UpdateDistribution",
                "cloudfront:GetDistributionConfig",
                "cloudfront:GetDistribution",
                "cloudfront:DisassociateDistributionTenantWebACL",
                "cloudfront:DisassociateDistributionWebACL",
                "cloudfront:AssociateDistributionTenantWebACL",
                "cloudfront:AssociateDistributionWebACL",
                "cloudfront:ListDistributionTenantsByCustomization",
                "cloudfront:ListDistributionTenants",
                "cloudfront:DeleteDistribution",
                "cloudfront:GetDistributionTenant",
                "cloudfront:DeleteDistributionTenant",
                "cloudwatch:GetMetricData",
                "cloudwatch:ListMetrics",
                "cloudwatch:GetMetricStatistics",
                "ec2:DescribeRegions",
                "pricingplanmanager:GetSubscription",
                "pricingplanmanager:ListSubscriptions",
                "pricingplanmanager:UpdateSubscription",
                "pricingplanmanager:CancelSubscription",
                "pricingplanmanager:CancelSubscriptionChange",
                "pricingplanmanager:AssociateResourcesToSubscription",
                "pricingplanmanager:DisassociateResourcesFromSubscription",
                "route53:ListHostedZones",
                "route53:GetHostedZone"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

我們強烈建議您為具有管理權限的使用者設定多重驗證 (MFA)。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[搭配 使用Multi-Factor Authentication (MFA) 裝置 AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingMFA.html)。

## 授予對單一 的存取權 AWS 帳戶


此政策會將下列許可授予帳戶 444455556666：
+ 完整存取所有 AWS WAF 操作和資源。
+ 讀取和更新所有 CloudFront 分發的存取權，這可讓您關聯保護套件 (Web ACLs) 和 CloudFront 分發。
+ 讀取所有 CloudWatch 指標和指標統計資料的存取權，讓您可以在 AWS WAF 主控台中檢視 CloudWatch 資料和請求範例。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "wafv2:*"
         ],
         "Resource": [
            "arn:aws:wafv2:us-east-1:444455556666:*"
         ]
      },
      {
         "Effect": "Allow",
         "Action": [
            "cloudfront:GetDistribution",
            "cloudfront:GetDistributionConfig",
            "cloudfront:ListDistributions",
            "cloudfront:ListDistributionsByWebACLId",
            "cloudfront:UpdateDistribution",
            "cloudwatch:ListMetrics",
            "cloudwatch:GetMetricStatistics",
            "ec2:DescribeRegions"
         ],
         "Resource": [
            "*"
         ]
      }
   ]
}
```

------

## 授予單一保護套件的存取權 (Web ACL)


下列政策可讓使用者透過 主控台對帳戶 中的特定保護套件 (Web ACL) 執行任何 AWS WAF 操作`444455556666`。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "wafv2:*"
            ],
            "Resource": [
                "arn:aws:wafv2:us-east-1:444455556666:regional/webacl/test123/112233d7c-86b2-458b-af83-51c51example"
            ]
        },
        {
            "Sid": "consoleAccess",
            "Effect": "Allow",
            "Action": [
                "wafv2:ListWebACLs",
                "ec2:DescribeRegions"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

## 授予 CLI 對保護套件 (Web ACL) 和規則群組的存取權


下列政策可讓使用者在帳戶 中的特定保護套件 (Web ACL) 和特定規則群組上，透過 CLI 執行任何 AWS WAF 操作`444455556666`。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Action": [
            "wafv2:*"
         ],
         "Resource": [
        "arn:aws:wafv2:us-east-1:444455556666:regional/webacl/test123/112233d7c-86b2-458b-af83-51c51example",
        "arn:aws:wafv2:us-east-1:444455556666:regional/rulegroup/test123rulegroup/555555555-6666-1234-abcd-00d11example"
         ]
      }
   ]
}
```

------

下列政策可讓使用者透過 主控台對帳戶 中的特定保護套件 (Web ACL) 執行任何 AWS WAF 操作`444455556666`。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "wafv2:*"
            ],
            "Resource": [
                "arn:aws:wafv2:us-east-1:444455556666:regional/webacl/test123/112233d7c-86b2-458b-af83-51c51example"
            ]
        },
        {
            "Sid": "consoleAccess",
            "Effect": "Allow",
            "Action": [
                "wafv2:ListWebACLs",
                "ec2:DescribeRegions"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

# AWS 的 受管政策 AWS WAF
AWS 受管政策

本節說明如何使用 的 AWS 受管政策 AWS WAF。

 AWS 受管政策是由 AWS AWS 受管政策建立和管理的獨立政策旨在為許多常用案例提供許可，以便您可以開始將許可指派給使用者、群組和角色。

請記住， AWS 受管政策可能不會授予特定使用案例的最低權限許可，因為這些許可可供所有 AWS 客戶使用。我們建議您定義特定於使用案例的[客戶管理政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)，以便進一步減少許可。

您無法變更 AWS 受管政策中定義的許可。如果 AWS 更新受 AWS 管政策中定義的許可，則更新會影響政策連接的所有主體身分 （使用者、群組和角色）。 AWS 服務 當新的 啟動或新的 API 操作可用於現有服務時， AWS 最有可能更新 AWS 受管政策。

如需詳細資訊，請參閱 *IAM 使用者指南*中的 [AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

## AWS 受管政策：AWSWAFReadOnlyAccess
AWSWAFReadOnlyAccess

此政策授予唯讀許可，允許使用者存取整合服務 AWS WAF 的資源和資源，例如 Amazon CloudFront、Amazon API Gateway、Application Load Balancer AWS AppSync、Amazon Cognito、 AWS App Runner AWS Amplify、Amazon CloudWatch 和 AWS Verified Access。您可以將此政策連接至 IAM 身分。 AWS WAF 也會將此政策連接至允許 代表您 AWS WAF 執行動作的服務角色。

如需此政策的詳細資訊，請參閱 IAM 主控台中的 [AWSWAFReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFReadOnlyAccess$serviceLevelSummary)。

## AWS 受管政策：AWSWAFFullAccess
AWSWAFFullAccess

此政策授予整合服務 AWS WAF 的完整資源存取權，例如 Amazon CloudFront、Amazon API Gateway、Application Load Balancer AWS AppSync、Amazon Cognito、 AWS App Runner AWS Amplify、Amazon CloudWatch 和 AWS Verified Access。您可以將此政策連接至 IAM 身分。 AWS WAF 也會將此政策連接至允許 代表您 AWS WAF 執行動作的服務角色。

如需此政策的詳細資訊，請參閱 IAM 主控台中的 [AWSWAFFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFFullAccess$serviceLevelSummary)。

## AWS 受管政策：AWSWAFConsoleReadOnlyAccess
AWSWAFConsoleReadOnlyAccess

此政策會將唯讀許可授予 AWS WAF 主控台，其中包含 AWS WAF 和 整合服務的資源，例如 Amazon CloudFront、Amazon API Gateway、Application Load Balancer AWS AppSync、Amazon Cognito、 AWS App Runner AWS Amplify、Amazon CloudWatch 和 AWS Verified Access。您可以將此政策連接至 IAM 身分。

如需此政策的詳細資訊，請參閱 IAM 主控台中的 [AWSWAFConsoleReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleReadOnlyAccess$serviceLevelSummary)。

## AWS 受管政策：AWSWAFConsoleFullAccess
AWSWAFConsoleFullAccess

此政策授予 AWS WAF 主控台的完整存取權，其中包括 AWS WAF 和 整合服務的資源，例如 Amazon CloudFront、Amazon API Gateway、Application Load Balancer AWS AppSync、Amazon Cognito、 AWS App Runner AWS Amplify、Amazon CloudWatch 和 AWS Verified Access。您可以將此政策連接到 IAM 身分。 AWS WAF 也會將此政策連接到允許 代表您 AWS WAF 執行動作的服務角色。

如需此政策的詳細資訊，請參閱 IAM 主控台中的 [AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary)。

## AWS 受管政策：WAFV2LoggingServiceRolePolicy
WAFV2LoggingServiceRolePolicy

此政策允許 AWS WAF 將日誌寫入 Amazon Data Firehose。只有在您啟用登入時，才會使用此政策 AWS WAF。此政策連接至 `AWSServiceRoleForWAFV2Logging` 服務連結角色。如需服務連結角色的詳細資訊，請參閱[使用 的服務連結角色 AWS WAF](using-service-linked-roles.md)。

如需此政策的詳細資訊，請參閱 IAM 主控台中的 [WAFV2LoggingServiceRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/aws-service-role/WAFV2LoggingServiceRolePolicy$serviceLevelSummary)。

## AWS WAF AWS 受管政策的更新
政策更新AWS WAF 受管政策變更

已將 Amazon CloudFront 固定費率定價許可新增至 `AWSWAFConsoleFullAccess`、 和 `AWSWAFConsoleReadOnlyAccess`受管政策。AWS WAF 受管政策變更

已更新 `AWSWAFConsoleFullAccess`和 `AWSWAFConsoleReadOnlyAccess`受管政策的 Amazon API Gateway 許可。已將 Amazon CloudWatch、 AWS AppSync、Amazon Data Firehose AWS 價格表和 AWS Marketplace 新增至 `AWSWAFConsoleFullAccess`和 `AWSWAFConsoleReadOnlyAccess`受管政策。AWS WAF 受管政策變更

新增 `AWSWAFFullAccess`、`AWSWAFConsoleFullAccess`、 `AWSWAFReadOnlyAccess`和 `AWSWAFConsoleReadOnlyAccess`受管政策的 AWS Amplify 許可`AWSWAFConsoleFullAccess`，以及 和 `AWSWAFConsoleReadOnlyAccess`受管政策的 Amazon CloudFront 許可。AWS WAF 受管政策變更

已更新 `WAFV2LoggingServiceRolePolicy`和 `AWSServiceRoleForWAFV2Logging`，將陳述式 IDs (Sid) 新增至許可設定。AWS WAF 受管政策變更追蹤

AWS WAF 已開始追蹤受管政策和`WAFV2LoggingServiceRolePolicy`服務連結角色 的變更`AWSServiceRoleForWAFV2Logging`。AWS WAF 受管政策變更

已更新 `AWSWAFFullAccessPolicy`、`AWSWAFReadOnlyAccess`、 `AWSWAFConsoleFullAccess`和 `AWSWAFConsoleReadOnlyAccess`，將 AWS Verified Access 新增至您可以使用的資源類型 AWS WAF。AWS WAF 受管政策變更

更新 `AWSWAFFullAccessPolicy`、`AWSWAFReadOnlyAccess`、 `AWSWAFConsoleFullAccess`和 `AWSWAFConsoleReadOnlyAccess`以更正 AWS App Runner 服務的存取設定。AWS WAF 受管政策變更

更新 `AWSWAFFullAccessPolicy`、`AWSWAFReadOnlyAccess`、 `AWSWAFConsoleFullAccess`和 `AWSWAFConsoleReadOnlyAccess`，將 AWS App Runner 服務新增至您可以使用的資源類型 AWS WAF。AWS WAF 受管政策變更

已更新 `AWSWAFFullAccessPolicy`、`AWSWAFReadOnlyAccess`、 `AWSWAFConsoleFullAccess`和 `AWSWAFConsoleReadOnlyAccess`，將 Amazon Cognito 使用者集區新增至您可以使用的資源類型 AWS WAF。AWS WAF 受管政策變更

已更新 `AWSWAFFullAccessPolicy`和 `AWSWAFConsoleFullAccess`以更正記錄許可。AWS WAF 受管政策變更

已更新 `AWSWAFFullAccessPolicy`和 `AWSWAFConsoleFullAccess` 以支援其他日誌目的地。AWS WAF 受管政策變更追蹤

AWS WAF 已開始追蹤其 AWS 受管政策的變更。



檢視自此服務開始追蹤這些變更 AWS WAF 以來， AWS 受管政策更新的詳細資訊。如需此頁面變更的自動提醒，請訂閱位於 AWS WAF 的文件歷史記錄頁面上的 RSS 摘要[文件歷史紀錄](doc-history.md)。




| 政策 | 變更描述 | Date | 
| --- | --- | --- | 
|  `AWSWAFConsoleFullAccess` 此政策允許 AWS WAF 代表您在 和整合服務 AWS WAF 中管理 AWS 主控台資源和其他 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary)。  |  新增下列 CloudFront 定價計畫的許可。如需詳細資訊，請參閱 [使用 AWS WAF 搭配 CloudFront 固定費率定價計劃](cloudfront-features.md#waf-cf-pricing-plans) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html)  | 2025-11-18  | 
|  `AWSWAFConsoleReadOnlyAccess` 此政策允許 AWS WAF 代表您在 和整合服務 AWS WAF 中管理 AWS 主控台資源和其他 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFConsoleReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleReadOnlyAccess$serviceLevelSummary)。  |  新增下列 CloudFront 定價計畫的許可。如需詳細資訊，請參閱 [使用 AWS WAF 搭配 CloudFront 固定費率定價計劃](cloudfront-features.md#waf-cf-pricing-plans) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html)  | 2025-11-18 | 
|  `AWSWAFConsoleReadOnlyAccess` 此政策允許 AWS WAF 代表您在 和整合服務 AWS WAF 中管理 AWS 主控台資源和其他 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFConsoleReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleReadOnlyAccess$serviceLevelSummary)。  |  已更新下列許可： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html) 新增下列許可： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html)  | 2025-11-03 | 
|  `AWSWAFConsoleFullAccess` 此政策允許 AWS WAF 代表您在 和整合服務 AWS WAF 中管理 AWS 主控台資源和其他 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary)。  |  已更新下列許可： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html) 新增下列許可： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html)  | 2025-11-03 | 
| `AWSWAFFullAccess` 此政策允許 代表您 AWS WAF 在 AWS WAF 和整合服務中管理 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFFullAccess$serviceLevelSummary)。 |  新增 所需的許可 AssociateWebACL、DisassociateWebACL、GetWebACLForResource 和 ListResourcesForWebACL AWS Amplify。  | 2025-05-05 | 
| `AWSWAFReadOnlyAccess` 此政策允許 代表您 AWS WAF 在 AWS WAF 和整合服務中管理 AWS 資源。 如需此政策的詳細資訊，請參閱 IAM 主控台中的 [AWSWAFReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFReadOnlyAccess$serviceLevelSummary)。 |  新增 所需的許可 GetWebACLForResource 和 ListResourcesForWebACL AWS Amplify。  | 2025-05-05 | 
|  `AWSWAFConsoleReadOnlyAccess` 此政策允許 AWS WAF 代表您在 AWS WAF 和整合服務中管理 AWS 主控台資源和其他 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFConsoleReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleReadOnlyAccess$serviceLevelSummary)。  |  新增下列許可： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html)  | 2025-05-05 | 
|  `AWSWAFConsoleFullAccess` 此政策允許 AWS WAF 代表您在 AWS WAF 和整合服務中管理 AWS 主控台資源和其他 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary)。  |  新增下列許可： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/waf/latest/developerguide/security-iam-awsmanpol.html)  | 2025-05-05 | 
| `WAFV2LoggingServiceRolePolicy` 此政策允許 AWS WAF 將日誌寫入 Amazon Data Firehose。只有在您啟用記錄時才會使用它。 IAM 主控台中的詳細資訊：[WAFV2LoggingServiceRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/aws-service-role/WAFV2LoggingServiceRolePolicy$serviceLevelSummary)。 |  在附加此政策的服務連結角色中，將陳述式 IDs (Sid) 新增至許可設定。  | 2024-06-03 | 
| `AWSServiceRoleForWAFV2Logging` 此服務連結角色提供許可政策，允許 AWS WAF 將日誌寫入 Amazon Data Firehose。 IAM 主控台中的詳細資訊：[AWSServiceRoleForWAFV2Logging](https://console.aws.amazon.com/iam/home#/roles/details/AWSServiceRoleForWAFV2Logging)。 |  已將陳述式 IDs(Sid) 新增至許可設定。  | 2024-06-03 | 
|  AWS WAF 新增變更追蹤  |  AWS WAF 已開始追蹤受管政策和`WAFV2LoggingServiceRolePolicy`服務連結角色 的變更`AWSServiceRoleForWAFV2Logging`。  | 2024-06-03 | 
| `AWSWAFFullAccess` 此政策允許 代表您 AWS WAF 在 AWS WAF 和整合服務中管理 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFFullAccess$serviceLevelSummary)。 |  擴展許可，將 AWS Verified Access 執行個體新增至您可以使用的資源類型 AWS WAF。  | 2023-06-17 | 
| `AWSWAFReadOnlyAccess` 此政策允許 代表您 AWS WAF 在 AWS WAF 和整合服務中管理 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFReadOnlyAccess$serviceLevelSummary)。  |  擴展許可，將 AWS Verified Access 執行個體新增至您可以使用的資源類型 AWS WAF。  | 2023-06-17 | 
|  `AWSWAFConsoleFullAccess` 此政策允許 AWS WAF 代表您在 和整合服務 AWS WAF 中管理 AWS 主控台資源和其他 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary)。  |  擴展許可，將 AWS Verified Access 執行個體新增至您可以使用的資源類型 AWS WAF。  | 2023-06-17 | 
|  `AWSWAFConsoleReadOnlyAccess` 此政策允許 AWS WAF 代表您在 和整合服務 AWS WAF 中管理 AWS 主控台資源和其他 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFConsoleReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleReadOnlyAccess$serviceLevelSummary)。  |  擴展許可，將 AWS Verified Access 執行個體新增至您可以使用的資源類型 AWS WAF。  | 2023-06-17 | 
| `AWSWAFFullAccess` 此政策允許 代表您 AWS WAF 在 AWS WAF 和整合服務中管理 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFFullAccess$serviceLevelSummary)。 |  擴展許可以更正 AWS App Runner 服務的存取設定。  | 2023-06-06 | 
| `AWSWAFReadOnlyAccess` 此政策允許 代表您 AWS WAF 在 AWS WAF 和整合服務中管理 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFReadOnlyAccess$serviceLevelSummary)。  |  擴展許可以更正 AWS App Runner 服務的存取設定。  | 2023-06-06 | 
|  `AWSWAFConsoleFullAccess` 此政策允許 AWS WAF 代表您在 和整合服務 AWS WAF 中管理 AWS 主控台資源和其他 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary)。  |  擴展許可以更正 AWS App Runner 服務的存取設定。  | 2023-06-06 | 
|  `AWSWAFConsoleReadOnlyAccess` 此政策允許 AWS WAF 代表您在 和整合服務 AWS WAF 中管理 AWS 主控台資源和其他 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFConsoleReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleReadOnlyAccess$serviceLevelSummary)。  |  擴展許可以更正 AWS App Runner 服務的存取設定。  | 2023-06-06 | 
| `AWSWAFFullAccess` 此政策允許 代表您 AWS WAF 在 AWS WAF 和整合服務中管理 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFFullAccess$serviceLevelSummary)。 |  擴展許可，將 AWS App Runner 服務新增至您可以使用的資源類型 AWS WAF。  | 2023-03-30 | 
| `AWSWAFReadOnlyAccess` 此政策允許 代表您 AWS WAF 在 AWS WAF 和整合服務中管理 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFReadOnlyAccess$serviceLevelSummary)。  |  擴展許可，將 AWS App Runner 服務新增至您可以使用的資源類型 AWS WAF。  | 2023-03-30 | 
|  `AWSWAFConsoleFullAccess` 此政策允許 AWS WAF 代表您在 和整合服務 AWS WAF 中管理 AWS 主控台資源和其他 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary)。  |  擴展許可，將 AWS App Runner 服務新增至您可以使用的資源類型 AWS WAF。  | 2023-03-30 | 
|  `AWSWAFConsoleReadOnlyAccess` 此政策允許 AWS WAF 代表您在 和整合服務 AWS WAF 中管理 AWS 主控台資源和其他 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFConsoleReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleReadOnlyAccess$serviceLevelSummary)。  |  擴展許可，將 AWS App Runner 服務新增至您可以使用的資源類型 AWS WAF。  | 2023-03-30 | 
| `AWSWAFFullAccess` 此政策允許 代表您 AWS WAF 在 AWS WAF 和整合服務中管理 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFFullAccess$serviceLevelSummary)。 |  擴展許可，將 Amazon Cognito 使用者集區新增至您可以使用的資源類型 AWS WAF。  | 2022-08-25 | 
| `AWSWAFReadOnlyAccess` 此政策允許 代表您 AWS WAF 在 AWS WAF 和整合服務中管理 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFReadOnlyAccess$serviceLevelSummary)。  |  擴展許可，將 Amazon Cognito 使用者集區新增至您可以使用的資源類型 AWS WAF。  | 2022-08-25 | 
|  `AWSWAFConsoleFullAccess` 此政策允許 AWS WAF 代表您在 和整合服務 AWS WAF 中管理 AWS 主控台資源和其他 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary)。  |  擴展許可，將 Amazon Cognito 使用者集區新增至您可以使用的資源類型 AWS WAF。  | 2022-08-25 | 
|  `AWSWAFConsoleReadOnlyAccess` 此政策允許 AWS WAF 代表您在 和整合服務 AWS WAF 中管理 AWS 主控台資源和其他 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFConsoleReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleReadOnlyAccess$serviceLevelSummary)。  |  擴展許可，將 Amazon Cognito 使用者集區新增至您可以使用的資源類型 AWS WAF。  | 2022-08-25 | 
| `AWSWAFFullAccess` 此政策允許 代表您 AWS WAF 在 AWS WAF 和整合服務中管理 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFFullAccess$serviceLevelSummary)。  |  更正 Amazon Simple Storage Service (Amazon S3) 和 Amazon CloudWatch Logs 的日誌交付許可設定。此變更可解決記錄組態期間發生的存取遭拒錯誤。如需記錄保護套件 (Web ACL) 流量的相關資訊，請參閱 [記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。  | 2022-01-11 | 
|  `AWSWAFConsoleFullAccess` 此政策允許 AWS WAF 代表您在 和整合服務 AWS WAF 中管理 AWS 主控台資源和其他 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary)。  |  更正 Amazon Simple Storage Service (Amazon S3) 和 Amazon CloudWatch Logs 的日誌交付許可設定。此變更可解決記錄組態期間發生的存取錯誤。如需記錄保護套件 (Web ACL) 流量的相關資訊，請參閱 [記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。  | 2022-01-11 | 
|  `AWSWAFFullAccess` 此政策允許 代表您 AWS WAF 在 AWS WAF 和整合服務中管理 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFFullAccess$serviceLevelSummary)。  |  新增了擴展記錄選項的新許可。 此變更可讓您 AWS WAF 存取其他記錄目的地 Amazon Simple Storage Service (Amazon S3) 和 Amazon CloudWatch Logs。如需記錄保護套件 (Web ACL) 流量的相關資訊，請參閱 [記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。  | 2021-11-15 | 
|  `AWSWAFConsoleFullAccess` 此政策允許 AWS WAF 代表您在 和整合服務 AWS WAF 中管理 AWS 主控台資源和其他 AWS 資源。 IAM 主控台中的詳細資訊：[AWSWAFConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSWAFConsoleFullAccess$serviceLevelSummary)。  |  新增了擴展記錄選項的新許可。 此變更可讓您 AWS WAF 存取其他記錄目的地 Amazon Simple Storage Service (Amazon S3) 和 Amazon CloudWatch Logs。如需記錄保護套件 (Web ACL) 流量的相關資訊，請參閱 [記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。  | 2021-11-15 | 
|  AWS WAF 已開始追蹤變更  |  AWS WAF 已開始追蹤其 AWS 受管政策的變更。  | 2021-3-01 | 

# 對 AWS WAF 身分和存取進行故障診斷
疑難排解

使用以下資訊來協助您診斷和修正使用 AWS WAF 和 IAM 時可能遇到的常見問題。

**Topics**
+ [

## 我無權在 中執行動作 AWS WAF
](#security_iam_troubleshoot-no-permissions)
+ [

## 我未獲得執行 iam:PassRole 的授權
](#security_iam_troubleshoot-passrole)
+ [

## 我想要允許 以外的人員 AWS 帳戶 存取我的 AWS WAF 資源
](#security_iam_troubleshoot-cross-account-access)

## 我無權在 中執行動作 AWS WAF


如果您收到錯誤，告知您未獲授權執行動作，您的政策必須更新，允許您執行動作。

下列範例錯誤會在`mateojackson` IAM 使用者嘗試使用主控台檢視一個虛構 `my-example-widget` 資源的詳細資訊，但卻無虛構 `wafv2:GetWidget` 許可時發生。

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: wafv2:GetWidget on resource: my-example-widget
```

在此情況下，必須更新 `mateojackson` 使用者的政策，允許使用 `wafv2:GetWidget` 動作存取 `my-example-widget` 資源。

如果您需要協助，請聯絡您的 AWS 管理員。您的管理員提供您的簽署憑證。

## 我未獲得執行 iam:PassRole 的授權


如果您收到錯誤，告知您未獲授權執行 `iam:PassRole` 動作，您的政策必須更新，允許您將角色傳遞給 AWS WAF。

有些 AWS 服務 可讓您將現有角色傳遞給該服務，而不是建立新的服務角色或服務連結角色。如需執行此作業，您必須擁有將角色傳遞至該服務的許可。

名為 `marymajor` 的 IAM 使用者嘗試使用主控台在 AWS WAF中執行動作時，發生下列範例錯誤。但是，動作要求服務具備服務角色授予的許可。Mary 沒有將角色傳遞給服務的許可。

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

在這種情況下，Mary 的政策必須更新，允許她執行 `iam:PassRole` 動作。

如果您需要協助，請聯絡您的 AWS 管理員。您的管理員提供您的簽署憑證。

## 我想要允許 以外的人員 AWS 帳戶 存取我的 AWS WAF 資源


您可以建立一個角色，讓其他帳戶中的使用者或您組織外部的人員存取您的資源。您可以指定要允許哪些信任物件取得該角色。針對支援基於資源的政策或存取控制清單 (ACL) 的服務，您可以使用那些政策來授予人員存取您的資源的許可。

如需進一步了解，請參閱以下內容：
+ 若要了解 是否 AWS WAF 支援這些功能，請參閱 [AWS WAF 如何使用 IAM](security_iam_service-with-iam.md)。
+ 若要了解如何 AWS 帳戶 在您擁有的 資源之間提供存取權，請參閱《[IAM 使用者指南》中的在您擁有 AWS 帳戶 的另一個 IAM 使用者中提供存取權](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)。 **
+ 若要了解如何將資源的存取權提供給第三方 AWS 帳戶，請參閱《*IAM 使用者指南*》中的[將存取權提供給第三方 AWS 帳戶 擁有](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)。
+ 如需了解如何透過聯合身分提供存取權，請參閱《*IAM 使用者指南*》中的[將存取權提供給在外部進行身分驗證的使用者 (聯合身分)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html)。
+ 如需了解使用角色和資源型政策進行跨帳戶存取之間的差異，請參閱《IAM 使用者指南》**中的 [IAM 中的跨帳戶資源存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

# 使用 的服務連結角色 AWS WAF
使用服務連結角色

本節說明如何使用服務連結角色來授予您 AWS 帳戶中資源的 AWS WAF 存取權。

AWS WAF use AWS Identity and Access Management (IAM)[ 服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服務連結角色是直接連結至 的唯一 IAM 角色類型 AWS WAF。服務連結角色由 預先定義， AWS WAF 並包含該服務代表您呼叫其他 AWS 服務所需的所有許可。

服務連結角色可讓您更 AWS WAF 輕鬆地設定，因為您不必手動新增必要的許可。 AWS WAF 會定義其服務連結角色的許可，除非另有定義，否則只能 AWS WAF 擔任其角色。已定義的許可包括信任政策和許可政策。該許可政策無法連接至其他任何 IAM 實體。

您必須先刪除角色的相關資源，才能刪除服務連結角色。這可保護您的 AWS WAF 資源，因為您不會不小心移除存取資源的許可。

如需關於支援服務連結角色的其他服務的資訊，請參閱[可搭配 IAM 運作的AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，並尋找 **Service-Linked Role** (服務連結角色) 欄顯示為 **Yes** (是) 的服務。選擇具有連結的**是**，以檢視該服務的服務連結角色文件。

## 的服務連結角色許可 AWS WAF


AWS WAF 使用服務連結角色`AWSServiceRoleForWAFV2Logging`將日誌寫入 Amazon Data Firehose。只有在您啟用登入時，才會使用此角色 AWS WAF。如需日誌記錄的相關資訊，請參閱[記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。

此服務連結角色會連接到 AWS 受管政策 `WAFV2LoggingServiceRolePolicy`。如需受管政策的更多相關資訊，請參閱[AWS 受管政策：WAFV2LoggingServiceRolePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-WAFV2LoggingServiceRolePolicy)。

`AWSServiceRoleForWAFV2Logging` 服務連結角色信任 `wafv2.amazonaws.com` 服務來擔任該角色。

角色的許可政策允許 對指定的資源 AWS WAF 完成下列動作：
+ Amazon Data Firehose 動作：名稱開頭為 的 Firehose 資料串流資源`PutRecordBatch`上的 `PutRecord`和 `aws-waf-logs-`。例如 `aws-waf-logs-us-east-2-analytics`。
+ AWS Organizations 動作：在 Organizations organizations 資源`DescribeOrganization`上。

請參閱 IAM 主控台中的完整服務連結角色：[AWSServiceRoleForWAFV2Logging](https://console.aws.amazon.com/iam/home#/roles/details/AWSServiceRoleForWAFV2Logging)。

您必須設定許可，IAM 實體 (如使用者、群組或角色) 才可建立、編輯或刪除服務連結角色。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[服務連結角色許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 為 建立服務連結角色 AWS WAF


您不需要手動建立服務連結角色，當您在 上啟用 AWS WAF 記錄 AWS 管理主控台，或在 AWS WAF CLI 或 AWS WAF API 中提出`PutLoggingConfiguration`請求時， 會為您 AWS WAF 建立服務連結角色。

您必須擁有 `iam:CreateServiceLinkedRole` 許可才能啟用記錄。

若您刪除此服務連結角色，之後需要再次建立，您可以在帳戶中使用相同程序重新建立角色。當您啟用 AWS WAF 記錄時， 會再次為您 AWS WAF 建立服務連結角色。

## 編輯 的服務連結角色 AWS WAF


AWS WAF 不允許您編輯`AWSServiceRoleForWAFV2Logging`服務連結角色。因為可能有各種實體會參考服務連結角色，所以您無法在建立角色之後變更其名稱。然而，您可使用 IAM 來編輯角色描述。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[編輯服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 刪除 的服務連結角色 AWS WAF


若您不再使用需要服務連結角色的功能或服務，我們建議您刪除該角色。如此一來，您就沒有未主動監控或維護的未使用實體。然而，在手動刪除服務連結角色之前，您必須先清除資源。

**注意**  
如果 AWS WAF 服務在您嘗試刪除資源時使用角色，則刪除可能會失敗。若此情況發生，請等待數分鐘後並再次嘗試操作。

**刪除 使用 AWS WAF 的資源 `AWSServiceRoleForWAFV2Logging`**

1. 在 AWS WAF 主控台上，從每個 Web ACL 移除記錄。如需詳細資訊，請參閱[記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。

1. 使用 API 或 CLI，為每個 Web ACL 提交 `DeleteLoggingConfiguration` 請求啟用記錄功能。如需詳細資訊，請參閱 [AWS WAF API 參考](https://docs.aws.amazon.com/waf/latest/APIReference/Welcome.html)。

**使用 IAM 手動刪除服務連結角色**

使用 IAM 主控台、IAM CLI 或 IAM API 刪除 `AWSServiceRoleForWAFV2Logging` 服務連結角色。如需詳細資訊，請參閱《IAM 使用者指南》**中的[刪除服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## AWS WAF 服務連結角色支援的區域


AWS WAF 支援在所有提供服務的區域中使用服務連結角色。如需詳細資訊，請參閱 [AWS WAF 端點和配額](https://docs.aws.amazon.com/general/latest/gr/waf.html)。

# 在 中記錄和監控 AWS WAF
日誌記錄和監控

本節說明如何使用 AWS 工具來監控和回應 中的事件 AWS WAF。

監控是維護 和 AWS 解決方案的可靠性、可用性 AWS WAF 和效能的重要部分。您應該從 AWS 解決方案的所有部分收集監控資料，以便在發生多點失敗時更輕鬆地偵錯。 AWS 提供數種工具來監控您的 AWS WAF 資源並回應潛在事件：

**Amazon CloudWatch 警示**  
您可以使用 CloudWatch 警示觀察單一指標一段指定的時間。如果指標超過指定的閾值，CloudWatch 會傳送通知至 Amazon SNS 主題或 AWS Auto Scaling 政策。如需詳細資訊，請參閱[使用 Amazon CloudWatch 監控](monitoring-cloudwatch.md)。

**AWS CloudTrail 日誌**  
CloudTrail 會提供使用者、角色或服務 AWS 在其中採取之動作的記錄 AWS WAF。您可以使用 CloudTrail 所收集的資訊來判斷提出的請求 AWS WAF、提出請求的 IP 地址、提出請求的人員、提出請求的時間，以及其他詳細資訊。如需詳細資訊，請參閱[使用 AWS CloudTrail記錄 API 呼叫](logging-using-cloudtrail.md)。

**AWS WAF 保護套件 (Web ACL) 流量記錄**  
AWS WAF 為您的保護套件 (Web ACLs) 分析的流量提供記錄。日誌包含從受保護 AWS 資源 AWS WAF 接收請求的時間、請求的詳細資訊，以及請求相符規則的動作設定等資訊。如需詳細資訊，請參閱[記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。

# 在 中驗證合規 AWS WAF
驗證合規

本節說明您在使用 時的合規責任 AWS WAF。

若要了解 AWS 服務 是否在特定合規計劃範圍內，請參閱[AWS 服務 合規計劃範圍內](https://aws.amazon.com/compliance/services-in-scope/)然後選擇您感興趣的合規計劃。如需一般資訊，請參閱[AWS 合規計劃](https://aws.amazon.com/compliance/programs/)。

您可以使用 下載第三方稽核報告 AWS Artifact。如需詳細資訊，請參閱[下載報告 in AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)

您使用 時的合規責任 AWS 服務 取決於資料的機密性、您公司的合規目標，以及適用的法律和法規。如需使用 時合規責任的詳細資訊 AWS 服務，請參閱 [AWS 安全文件](https://docs.aws.amazon.com/security/)。

# 在 中建置彈性 AWS WAF
建置彈性

本節說明 AWS 架構如何支援資料備援 AWS WAF。

 AWS 全球基礎設施是以 AWS 區域 和 可用區域為基礎建置。 AWS 區域 提供多個實體隔離和隔離的可用區域，這些可用區域與低延遲、高輸送量和高備援聯網連接。透過可用區域，您所設計與操作的應用程式和資料庫，就能夠在可用區域之間自動容錯移轉，而不會發生中斷。可用區域的可用性、容錯能力和擴充能力，均較單一或多個資料中心的傳統基礎設施還高。

如需 AWS 區域 和可用區域的詳細資訊，請參閱 [AWS 全球基礎設施](https://aws.amazon.com/about-aws/global-infrastructure/)。

# 中的基礎設施安全 AWS WAF
基礎設施安全性

本節說明 如何 AWS WAF 隔離服務流量。

作為受管服務， AWS WAF 受到 AWS 全球網路安全的保護。如需 AWS 安全服務以及如何 AWS 保護基礎設施的資訊，請參閱[AWS 雲端安全](https://aws.amazon.com/security/)。若要使用基礎設施安全的最佳實務來設計您的 AWS 環境，請參閱*安全支柱 AWS Well-Architected Framework* 中的[基礎設施保護](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html)。

您可以使用 AWS 發佈的 API 呼叫， AWS WAF 透過網路存取 。使用者端必須支援下列專案：
+ Transport Layer Security (TLS)。我們需要 TLS 1.2 並建議使用 TLS 1.3。
+ 具備完美轉送私密(PFS)的密碼套件，例如 DHE (Ephemeral Diffie-Hellman)或 ECDHE (Elliptic Curve Ephemeral Diffie-Hellman)。現代系統(如 Java 7 和更新版本)大多會支援這些模式。

# AWS WAF 配額
每個 Web ACL 的 ALB 關聯

為每個 Web ACL 新增 ALB 關聯配額。每個 Web ACL 的預設配額為 100。為每個規則新增地理比對國家/地區的配額

規則的地理比對國家/地區數目上限為 50。較低的速率型規則閾值

速率型規則的最低請求率現在為 10。在此之前，它是 100。為每個組織的 呼叫新增配額 `ListResourcesForWebACL`

AWS WAF 現在會限制組織中任何單一區域的 帳戶`ListResourcesForWebACL`對 的呼叫數量。更新 Amazon CloudWatch Logs 日誌串流限制

AWS WAF 在將日誌發佈至 CloudWatch Logs 日誌串流時， 不再具有每個保護套件 (Web ACL) 限制。增加每個規則群組WCUs

您現在可以為每個規則群組使用最多 5，000 個保護套件 (Web ACL) 容量單位 WCUs)，而無需請求增加支援。此新限制無法增加。提高每個保護套件WCUs 上限 (Web ACL)

您現在可以使用每個保護套件 (Web ACL) 最多 5，000 個保護套件 (Web ACL) 容量單位 (WCUs)，而無需請求增加支援。此新限制無法增加。CloudFront 的內文檢查大小增加

Amazon CloudFront 分佈的 AWS WAF 內文檢查大小上限從 8 KB 增加到 64 KB。CloudFront 的預設檢查大小限制為 16 KB。

**注意**  
這是 的最新版本 AWS WAF。如需 AWS WAF Classic，請參閱 [AWS WAF 傳統](classic-waf-chapter.md)。

AWS WAF 受下列配額限制 （先前稱為限制）。這些配額與 AWS WAF 可使用 的所有區域相同。每個區域分別受制於這些配額。配額不會跨區域累計。

AWS WAF 對每個帳戶可擁有的實體數量上限具有預設配額。您可以[請求提高](https://console.aws.amazon.com/servicequotas/home/services/wafv2/quotas)這些配額。


| 資源 | 每個區域每個帳戶的預設配額 | 
| --- | --- | 
|  保護套件數目上限 (Web ACLs)  |  100  | 
|  規則群組的數量上限   |  100  | 
| IP 集數量上限  |  100  | 
| 每個保護套件每秒請求數上限 (Web ACL)  |  100,000  | 
| 每個保護套件 (Web ACL) 或規則群組的自訂請求標頭數目上限 | 100 | 
| 每個保護套件 (Web ACL) 或規則群組的自訂回應標頭數目上限 | 100 | 
| 每個保護套件 (Web ACL) 或規則群組的自訂回應主體數量上限 | 50 | 
| 保護套件 (Web ACL) 權杖網域清單中權杖網域的數量上限 | 10 | 
| regex 模式集的數量上限  |  10  | 
| 每個保護套件的 Application Load Balancer 關聯數目上限 (Web ACL) | 100  | 

CloudFront AWS WAF 上允許的每秒請求數上限 (RPS) 是由 CloudFront 設定，如 [CloudFront 開發人員指南](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html)中所述。

AWS WAF 每個區域每個帳戶的下列實體設定具有固定配額。這些配額無法變更。


| 資源 | 每個區域每個帳戶的配額 | 
| --- | --- | 
|  每個保護套件 (Web ACL)\$1 的最大保護套件 (Web ACL) 容量單位 (WCUs)  |  5,000  | 
| 每個規則群組WCUs 上限 |  5,000  | 
| 每個規則群組的參考陳述式數目上限。在規則群組中，參考陳述式可以參考 IP 集或 regex 模式集。 |  50  | 
| 每個保護套件的參考陳述式數目上限 (Web ACL)。在保護套件 (Web ACL) 中，參考陳述式可以參考規則群組、IP 集或 regex 模式集。 |  50  | 
| 每個 IP 集 CIDR 表示法中的 IP 地址數目上限 |  10,000  | 
| 每個保護套件的速率型規則數目上限 (Web ACL)  |  10  | 
| 每個規則群組的速率型規則數目上限 |  4  | 
| 可針對速率型規則定義的最小請求速率 |  10  | 
| 每個以速率為基礎的規則可以限制速率的唯一 IP 地址數目上限 |  10,000  | 
| 字串比對陳述式中的字元數上限 |  200  | 
| 每個規則運算式模式中的字元數上限 |  200  | 
| 每個 regex 模式集的唯一 regex 模式數目上限 |  10  | 
| 可檢查 Application Load Balancer 和 AWS AppSync 保護的 Web 請求內文大小上限 |  8 KB  | 
| 可檢查 CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access 保護的 Web 請求內文大小上限\$1\$1 |  64 KB  | 
| 每個規則陳述式的文字轉換數目上限 |  10  | 
| 單一自訂回應定義的自訂回應內文內容大小上限 |  4 KB  | 
| 單一自訂回應定義的自訂標頭數目上限 |  10  | 
| 單一自訂請求定義的自訂標頭數目上限 |  10  | 
| 單一規則群組或單一保護套件 (Web ACL) 的所有回應內文內容合併大小上限 |  50 KB  | 
| 單一規則內的地理比對國家/地區代碼數目上限  |  50  | 

\$1在保護套件 (Web ACL) 中使用超過 1，500 WCUs 會產生超出基本保護套件 (Web ACL) 價格的成本。如需詳細資訊，請參閱 [中的 Web ACL 容量單位 WCUs) AWS WAF](aws-waf-capacity-units.md) 和 [AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

\$1\$1根據預設，CloudFront、API Gateway、Amazon Cognito、App Runner 和 Verified Access 資源的內文檢查限制設定為 16 KB，但您可以將保護套件 (Web ACL) 組態中任何這些資源的檢查限制提高到列出的上限。如需詳細資訊，請參閱[在 中管理主體檢查的考量事項 AWS WAF](web-acl-setting-body-inspection-limit.md)。

AWS WAF 每個區域每個帳戶的呼叫具有下列固定配額。這些配額會套用至透過任何可用方式 (包括主控台、CLI、 AWS CloudFormation、REST API 和 SDK) 對服務的呼叫總數。這些配額無法變更。


| 呼叫類型 | 每個區域每個帳戶的配額 | 
| --- | --- | 
| AssociateWebACL 呼叫次數上限 |  每 2 秒一個請求   | 
| DisassociateWebACL 呼叫次數上限 |  每 2 秒一個請求   | 
| GetWebACLForResource 呼叫次數上限  |  每秒一個請求  | 
| ListResourcesForWebACL 呼叫次數上限 |  每秒一個請求  | 
| GetDecryptedAPIKey 呼叫次數上限 |  每 2 秒一個請求  | 
| 任何個別 Get 或 List 動作的呼叫次數上限 (若未定義其他配額)  |  每秒五個請求  | 
| 任何個別 Create、Put 或 Update 動作的呼叫次數上限 (若未定義其他配額)  |  每秒一個請求  | 

AWS WAF 對單一組織中所有 帳戶的呼叫具有下列固定配額 AWS Organizations。這些配額會套用至透過任何可用方式 (包括主控台、CLI、 AWS CloudFormation、REST API 和 SDK) 對服務的呼叫總數。這些配額無法變更。


| 呼叫類型 | 單一區域中每個組織的配額 | 
| --- | --- | 
| 對於美國東部 （維吉尼亞北部） (us-east-1)ListResourcesForWebACL、美國西部 （奧勒岡） (us-west-2) 或歐洲 （愛爾蘭） (eu-west-1)，組織中所有帳戶對 的呼叫數量上限。 |  每秒 12 個請求  | 
| 組織中所有帳戶對 的呼叫數量上限ListResourcesForWebACL，位於未在此資料表中列出不同配額的任何單一區域中。 |  每秒 6 個請求  | 

# 將您的 AWS WAF Classic 資源遷移至 AWS WAF
新增將 AWS WAF Classic 資源遷移至 AWS WAF (v2) 的支援

您現在可以使用 主控台或 API 匯出 AWS WAF Classic 資源，以遷移至最新版本的 AWS WAF。

**警告**  
AWS WAF Classic 正在經歷規劃end-of-life程序。如需區域特定的里程碑和日期，請參閱您的 AWS Health 儀表板。

**注意**  
這是 **AWS WAF** 文件。只有在您在 2019 年 11 月 AWS WAF 之前建立 AWS WAF 規則和 Web ACLs 等資源，且尚未將它們遷移到最新版本時，才應該使用此版本。若要遷移您的 Web ACLs，請參閱 [將您的 AWS WAF Classic 資源遷移至 AWS WAF](#waf-migrating-from-classic)。  
**如需最新版本的 AWS WAF** ，請參閱 [AWS WAF](waf-chapter.md)。

本節提供將您的規則和保護套件 (Web ACLs) 從 AWS WAF Classic 遷移至 的指引 AWS WAF。 AWS WAF 已於 2019 年 11 月發行。如果您使用 AWS WAF Classic 建立規則和保護套件 (Web ACLs) 等資源，則需要使用 AWS WAF Classic 使用這些資源，或將其遷移至此最新版本。

**警告**  
AWS WAF 傳統支援將於 2025 年 9 月 30 日結束。

開始遷移工作之前，請先閱讀 AWS WAF ，熟悉 [AWS WAF](waf-chapter.md)。

**Topics**
+ [

# 為什麼要遷移至 AWS WAF？
](waf-migrating-why-migrate.md)
+ [

# 遷移警告與限制
](waf-migrating-caveats.md)
+ [

# 遷移的運作方式
](waf-migrating-how-it-works.md)
+ [

# 將保護套件 (Web ACL) 從 AWS WAF Classic 遷移至 AWS WAF
](waf-migrating-procedure.md)

# 為什麼要遷移至 AWS WAF？
為什麼要遷移至 AWS WAF？

的最新版本 AWS WAF 提供與先前版本相比的許多改善，同時維持您習慣的大多數概念和術語。

下列清單說明最新版 AWS WAF中的主要變更。繼續遷移之前，請花一些時間檢閱此清單，並熟悉 AWS WAF 本指南的其餘部分。
+ ** AWS WAF Classic 的支援將於 2025 年 9 月 30 日結束。 **
+ 適用於 **AWS 的受管規則 AWS WAF** – 現在可透過 AWS 受管規則取得的規則群組可針對常見的 Web 威脅提供保護。這些規則群組大多免費包含在 中 AWS WAF。如需詳細資訊，請參閱 [AWS 受管規則規則群組清單](aws-managed-rule-groups-list.md)和部落格文章[宣布 的 AWS 受管規則 AWS WAF](https://aws.amazon.com/blogs/aws/announcing-aws-managed-rules-for-aws-waf/)。
+ **新的 AWS WAF API** – 新的 API 可讓您使用一組 APIs 來設定所有 AWS WAF 資源。為了區分區域和全域應用程式，全新的 API 包含一個 `scope` 設定。如需 API 的詳細資訊，請參閱 [AWS WAFV2 動作](https://docs.aws.amazon.com/waf/latest/APIReference/API_Operations_AWS_WAFV2.html)和 [AWS WAFV2 資料類型](https://docs.aws.amazon.com/waf/latest/APIReference/API_Types_AWS_WAFV2.html)。

  在 APIs、SDKs、CLIs 和 中 AWS CloudFormation， AWS WAF Classic 會保留其命名機制，而此最新版本的 AWS WAF 會使用新增的 `V2`或 來參考`v2`，視內容而定。
+ **簡化的服務配額 （限制）** – AWS WAF 現在允許每個保護套件 (Web ACL) 有更多規則，並可讓您表達較長的規則運算式模式。如需詳細資訊，請參閱[AWS WAF 配額](limits.md)。
+ **運算需要決定容量限制 ** – 保護套件 (Web ACLs) 的限制現在是以保護套件 (Web ACL) 容量單位 (WCUs) 為基礎。 會根據規則所需的操作容量 AWS WAF 計算規則的 WCUs。保護套件 (Web ACL) 的總 WCUs 等於其所有規則和規則群組的 WCUs 總和。

  如需 WCU 的一般資訊，請參閱 [AWS WAF 運作方式](how-aws-waf-works.md)。如需每個規則 WCU 用量的資訊，請參閱 [在 中使用規則陳述式 AWS WAF](waf-rule-statements.md)。
+ 以**文件為基礎的規則寫入** – 您現在可以以 JSON 格式撰寫和表達規則、規則群組和保護套件 (Web ACLs)。您不再需要使用個別 API 呼叫來建立不同的條件，然後將條件與規則產生關聯。這大幅簡化了編寫和維護程式碼的方式。您可以在檢視保護套件 (Web ACLs) 時，選擇**下載保護套件 (Web ACL) 做為 JSON，透過主控台存取保護套件 (Web ACL) 的 JSON** 格式。當您建立自己的規則時，可以選擇 **Rule JSON editor (規則 JSON 編輯器)** 來存取其 JSON 表示。
+ **規則巢狀化和完整的邏輯操作支援** – 您可以使用邏輯規則陳述式和巢狀化來撰寫複雜的合併規則。您可以建立如 `[A AND NOT(B OR C)]` 的陳述式。如需詳細資訊，請參閱[在 中使用邏輯規則陳述式 AWS WAF](waf-rule-statements-logical.md)。
+ **改善速率型規則** – 在最新版本的 中 AWS WAF，您可以自訂規則評估的時間範圍，以及規則如何彙總請求。您可以使用多種 Web 請求特性的組合來自訂彙總。此外，最新的速率型規則會更快地回應流量的變化。如需詳細資訊，請參閱[在 中使用以速率為基礎的規則陳述式 AWS WAF](waf-rule-statement-type-rate-based.md)。
+ **IP 集的可變 CIDR 範圍支援** – IP 集規格現在在 IP 範圍內具有更大的靈活性。對於 IPv4， AWS WAF 支援 `/1` `/32`。對於 IPv6， AWS WAF 支援 `/1` `/128`。如需 IP 集合的詳細資訊，請參閱 [IP 集合比對規則陳述式](waf-rule-statement-type-ipset-match.md)。
+ **可鏈結的文字轉換** – AWS WAF 可以在檢查之前針對 Web 請求內容執行多個文字轉換。如需詳細資訊，請參閱[在 中使用文字轉換 AWS WAF](waf-rule-statement-transformation.md)。
+ **改善主控台體驗** – 新的 AWS WAF 主控台具有視覺化規則建置器和更使用者直覺式的主控台設計。
+ Firewall **Manager AWS WAF 政策的擴充選項** – 在 AWS WAF 保護套件 (Web ACLs) 的 Firewall Manager 管理中，您現在可以建立一組規則群組，先 AWS WAF 處理，最後 AWS WAF 處理一組規則群組。套用 AWS WAF 政策後，本機帳戶擁有者可以新增自己的規則群組，在這兩個集之間 AWS WAF 處理。如需 Firewall Manager AWS WAF 政策的詳細資訊，請參閱 [搭配 Firewall Manager 使用 AWS WAF 政策](waf-policies.md)。
+ **AWS CloudFormation 支援所有規則陳述式類型** – AWS WAF 中的 AWS CloudFormation 支援 AWS WAF 主控台和 API 支援的所有規則陳述式類型。此外，您可以輕鬆地將以 JSON 格式撰寫的規則轉換為 YAML 格式。



# 遷移警告與限制
遷移警告

遷移只會處理保護套件 (Web ACL) 組態，而且保護套件 (Web ACL) 遷移不會像您在 AWS WAF Classic 中一樣轉移所有設定。有些組態項目需要在 AWS WAF (v2) 中手動設定。有幾件事不完全在兩個版本之間映射，您需要決定如何設定 AWS WAF (v2) 中的功能。有些設定，例如保護套件 (Web ACL) 與 AWS 資源的關聯，一開始會在新版本中停用，因此您可以在準備好時新增這些設定。

下列清單說明遷移的注意事項，並說明您可能想要採取的任何回應步驟。請使用此概觀來規劃遷移。稍後詳細的遷移步驟會帶您演練建議的緩解步驟。
+ **單一帳戶遷移** – 您只能將任何帳戶的 AWS WAF Classic 資源遷移至相同帳戶 AWS WAF 的資源。
+ **僅限保護套件 (Web ACL) 組態 ** – 遷移只會遷移保護套件 (Web ACLs) 和保護套件 (Web ACLs) 正在使用的資源。若要遷移任何已遷移 Web ACL 未使用的資源，例如規則群組或 IP 集，請在 AWS WAF (v2) 中手動建立資源。
+ **無 AWS Marketplace 受管規則** – 遷移不會從 AWS Marketplace 賣方接管任何受管規則。有些 AWS Marketplace 賣方具有對等的受管規則 AWS WAF ，您可以再次訂閱。執行此操作之前，請檢閱 最新版本隨附的 AWS 受管規則 AWS WAF。大多數使用者可免費使用。 AWS WAF 如需受管規則的相關資訊，請參閱[在 中使用受管規則群組 AWS WAF](waf-managed-rule-groups.md)。
+ **無保護套件 (Web ACL) 關聯** – 遷移不會帶來保護套件 (Web ACL) 與受保護資源之間的任何關聯。這是經過設計的，以避免影響您的生產工作負載。確認一切已正確遷移後，請將新的保護套件 (Web ACL) 與您的 資源建立關聯。
+ **記錄已停用** – 遷移保護套件 (Web ACL) 的記錄預設為停用。這是設計本身所致。當您準備好從 AWS WAF Classic 切換到 時，啟用記錄 AWS WAF。
+ **無 AWS Firewall Manager 規則群組** – 遷移不會處理由 Firewall Manager 管理的規則群組。您可以遷移由 Firewall Manager 管理的保護套件 (Web ACL)，但遷移不會帶來規則群組。並非使用這些保護套件 (Web ACLs) 的遷移工具，而是在 Firewall Manager AWS WAF 中重新建立新 的政策。
**注意**  
Firewall Manager 為 AWS WAF Classic 管理的規則群組是 Firewall Manager 規則群組。使用新版本的 時 AWS WAF，規則群組是 AWS WAF 規則群組。它們在功能上是一樣的。
+ **AWS WAF 安全自動化注意事項** – 請勿嘗試遷移任何 AWS WAF 安全自動化。遷移並不會轉換 Lambda 函數，這些函數可能正由自動化使用中。請考慮改為部署最新版本的自動化。如需詳細資訊，請參閱 [AWS WAF 安全自動化](https://aws.amazon.com/solutions/aws-waf-security-automations/)。

# 遷移的運作方式
遷移的運作方式

您可以使用數種方法將 Web ACLs 從 遷移 AWS WAF Classic 至 AWS WAF v2。請依照下列步驟完成遷移。

**從 遷移 AWS WAF Classic 至 AWS WAF v2**

1. 識別您的 AWS WAF Classic Web ACLs：
   + 在 AWS Health 儀表板中檢視 Web ACLs的清單。
   + 使用 [AWS WAF Classic Web ACL 清除指令碼](         https://github.com/aws-samples/sample-for-waf-classic-to-wafv2-migrate-and-cleanup/tree/main/scripts/waf-classic-cleanup          )來取得所有 Web ACLs 及其關聯的清單。這可協助您識別哪些 Web ACLs 正在主動保護資源，並允許您刪除未使用的 Web ACLs。

1. 遷移個別 Web ACLs：
   + 遵循《 [AWS WAF 開發人員指南](https://docs.aws.amazon.com/waf/latest/developerguide/waf-migrating-procedure.html)》中的遷移程序。
   + 使用遷移精靈剖析您的 AWS WAF Classic Web ACL 並產生 AWS CloudFormation 範本。
   + 使用產生的範本建立同等 AWS WAF v2 Web ACL 並完成遷移。

1. 對於多個合格的 Web ACLs：
   + 使用[AWS WAF 大量遷移指令碼](https://github.com/aws-samples/sample-for-waf-classic-to-wafv2-migrate-and-cleanup/tree/main/scripts/waf-classic-migration          )同時遷移多個合格的 AWS WAF Classic Web ACLs。

1. 對於由 管理ACLs AWS Firewall Manager：
   + Firewall Manager 政策使用 AWS WAF Classic Web ACLs搭配 AWS WAF Classic 政策。對於 2022 年 1 月之前建立的 Shield Advanced 政策， Firewall Manager 也會使用 AWS WAF Classic Web ACLs。您必須遷移這些政策，才能使用 AWS WAF v2 Web ACLs。

     按照[在 Firewall Manager 中遷移 AWS WAF Classic Web ACLs](migrate-waf-classic-fms.md)中的指示進行。

**重要**  
我們建議您檢閱每個遷移的 Web ACLto以確保它符合您的安全需求，然後再將其與 資源建立關聯。

# 將保護套件 (Web ACL) 從 AWS WAF Classic 遷移至 AWS WAF
遷移保護套件 (Web ACL)

自動化遷移會轉移大多數 AWS WAF Classic 保護套件 (Web ACL) 組態，留下一些您需要手動處理的物件。

**注意**  
某些保護組態無法自動遷移，且需要在 AWS WAF (v2) 中手動設定。請參閱 的清單[遷移警告與限制](waf-migrating-caveats.md)。

以下列出遷移保護套件 (Web ACL) 的高階步驟。

1. 自動化遷移會讀取與現有保護套件 (Web ACL) 相關的所有內容，而不會修改或刪除 AWS WAF Classic 中的任何內容。它建立 Web ACL 及其相關資源的表示，與 相容 AWS WAF。它會為新的保護套件 CloudFormation (Web ACL) 產生範本，並將其存放在 Amazon S3 儲存貯體中。

1. 您可以將範本部署到 CloudFormation，以便在 中重新建立保護套件 (Web ACL) 和相關資源 AWS WAF。

1. 您可以檢閱保護套件 (Web ACL)，並手動完成遷移，確保您的新保護套件 (Web ACL) 充分利用最新的功能 AWS WAF。

1. 您可以手動將受保護的資源切換到新的保護套件 (Web ACL)。

**Topics**
+ [

# 遷移保護套件 (Web ACL)：自動遷移
](waf-migrating-procedure-automatic.md)
+ [

# 遷移保護套件 (Web ACL)：手動追蹤
](waf-migrating-procedure-manual-finish.md)
+ [

# 遷移保護套件 (Web ACL)：其他考量事項
](waf-migrating-procedure-additional.md)
+ [

# 遷移保護套件 (Web ACL)：切換
](waf-migrating-procedure-switchover.md)

# 遷移保護套件 (Web ACL)：自動遷移
自動遷移

**自動將保護套件 (Web ACL) 組態從 AWS WAF Classic 遷移至 AWS WAF**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 選擇**切換至 AWS WAF Classic** 並檢閱保護套件 (Web ACL) 的組態設定。請記下設定，並考慮前一節[遷移警告與限制](waf-migrating-caveats.md)中所述的警告和限制。

1. 在頂端的資訊對話中，找到以**遷移保護套件 (Web ACLs)** 開頭的句子，然後選擇**遷移精靈**的連結。這會啟動遷移精靈。

   如果您沒有看到資訊性對話，則自啟動 AWS WAF Classic 主控台以來，您可能已經將其關閉。在導覽列中，選擇**切換到新的 AWS WAF**，然後選擇**切換到 AWS WAF 傳統**，而資訊性對話應該會重新出現。

1. 選取您要遷移的保護套件 (Web ACL)。

1. 針對**遷移組態**，提供用於範本的 Amazon S3 儲存貯體。您需要已針對遷移 API 正確設定的 Amazon S3 儲存貯體，才能存放其產生的 AWS CloudFormation 範本。
   + 如果儲存貯體已加密，加密必須使用 Amazon S3 (SSE-S3) 金鑰。遷移不支援使用 AWS Key Management Service (SSE-KMS) 金鑰加密。
   + 儲存貯體名稱必須以 `aws-waf-migration-` 開頭。例如 `aws-waf-migration-my-web-acl`。
   + 儲存貯體必須位於您要部署範本的區域中。例如，對於 中的保護套件 (Web ACL)`us-west-2`，您必須在 中使用 Amazon S3 儲存貯體，`us-west-2`而且必須將範本堆疊部署到 `us-west-2`。

1. 對於 **S3 bucket policy (S3 儲存貯體政策)**，建議您選擇 **Auto apply the bucket policy required for migration (自動套用遷移所需的儲存貯體政策)**。如果您選擇自行管理儲存貯體，則必須手動套用下列儲存貯體政策：
   + 對於全域 Amazon CloudFront 應用程式 (`waf`)：

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Principal": {
                     "Service": "apiv2migration.waf.amazonaws.com"
                 },
                 "Action": "s3:PutObject",
                 "Resource": "arn:aws:s3:::<BUCKET_NAME>/AWSWAF/<CUSTOMER_ACCOUNT_ID>/*"
             }
         ]
     }
     ```

------
   + 對於區域 Amazon API Gateway 或 Application Load Balancer 應用程式 (`waf-regional`)：

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Principal": {
                     "Service": "apiv2migration.waf-regional.amazonaws.com"
                 },
                 "Action": "s3:PutObject",
                 "Resource": "arn:aws:s3:::<BUCKET_NAME>/AWSWAF/<CUSTOMER_ACCOUNT_ID>/*"
             }
         ]
     }
     ```

------

1. 針對 **Choose how to handle rules that cannot be migrated (選擇如何處理無法遷移的規則)**，選擇排除無法遷移的規則，或停止遷移。如需無法遷移之規則的相關資訊，請參閱[遷移警告與限制](waf-migrating-caveats.md)。

1. 選擇**下一步**。

1. 對於**建立 CloudFormation 範本**，驗證您的設定，然後選擇**開始建立 CloudFormation 範本**以開始遷移程序。這可能需要幾分鐘的時間，取決於保護套件 (Web ACL) 的複雜性。

1. 在**建立和執行 CloudFormation 堆疊以完成遷移**中，您可以選擇前往 AWS CloudFormation 主控台從範本建立堆疊，以建立新的保護套件 (Web ACL) 及其資源。若要這樣做，請選擇**建立 CloudFormation 堆疊**。

自動遷移程序完成後，您就可以繼續進行手動後續步驟。請參閱[遷移保護套件 (Web ACL)：手動追蹤](waf-migrating-procedure-manual-finish.md)。

# 遷移保護套件 (Web ACL)：手動追蹤
手動後續步驟

自動遷移完成後，請檢閱新建立的保護套件 (Web ACL)，並填入遷移不會為您接管的元件。下列程序涵蓋遷移無法處理的保護套件 (Web ACL) 管理層面。如需清單，請參閱[遷移警告與限制](waf-migrating-caveats.md)。

**完成基本遷移 - 手動步驟**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/wafv2/homev2](https://console.aws.amazon.com/wafv2/homev2) 開啟 AWS WAF 主控台。

1. 主控台應該自動使用最新版本的 AWS WAF。若要驗證這一點，請在導覽窗格中檢查您是否可以看到**切換到 AWS WAF 傳統**選項。如果您看到**切換到新的 AWS WAF**，請選擇該項目以切換到最新版本。

1. 在導覽窗格中，選擇**保護套件 (Web ACLs)**。

1. 在**保護套件 (Web ACLs**頁面中，在建立保護套件的區域清單中找到新的保護套件 (Web ACL)。選擇保護套件 (Web ACL) 的名稱，以顯示保護套件 (Web ACL) 的設定。

1. 針對您先前的 AWS WAF Classic Web ACL，檢閱新保護套件 (Web ACL) 的所有設定。根據預設，會停用記錄日誌和受保護的資源關聯。您可以在準備好切換時啟用這些功能。

1. 如果您的 AWS WAF Classic 保護套件 (Web ACL) 具有受管規則群組，則遷移中不會包含規則群組。您可以將受管規則群組新增至新的保護套件 (Web ACL)。在 AWS WAF檢閱受管規則群組的相關資訊，包括可與新版本 搭配使用的 AWS 受管規則清單[在 中使用受管規則群組 AWS WAF](waf-managed-rule-groups.md)。若要新增受管規則群組，請執行下列動作：

   1. 在保護套件 (Web ACL) 設定頁面中，選擇保護套件 (Web ACL) **規則**索引標籤。

   1. 選擇 **Add rules (新增規則)**，然後選擇 **Add managed rule groups (新增受管規則群組)**。

   1. 展開您所選廠商的清單，然後選取您要新增的規則群組。對於 AWS Marketplace 賣方，您可能需要訂閱規則群組。如需在保護套件 (Web ACL) 中使用受管規則群組的詳細資訊，請參閱 [在 中使用受管規則群組 AWS WAF](waf-managed-rule-groups.md)和 [在 中使用保護套件 (Web ACLs) 搭配規則和規則群組 AWS WAF](web-acl-processing.md)。

完成基本遷移程序之後，我們建議您檢閱您的需求並考慮其他選項，以確保新的組態盡可能有效率，並且使用最新可用的安全選項。請參閱[遷移保護套件 (Web ACL)：其他考量事項](waf-migrating-procedure-additional.md)。

# 遷移保護套件 (Web ACL)：其他考量事項
其他考量

檢閱您的新保護套件 (Web ACL)，並考慮新 中可用的選項， AWS WAF 以確保組態盡可能有效率，並且使用最新的可用安全選項。

**其他 AWS 受管規則**  
請考慮在您的保護套件 (Web ACL) 中實作其他 AWS 受管規則，以提高應用程式的安全狀態。這些包含在 AWS WAF 中，無需額外費用。 AWS 受管規則具有下列類型的規則群組：
+ 基準規則群組可針對各種常見威脅提供一般保護，例如停止已知的錯誤輸入進入您的應用程式，以及防止管理頁面存取。
+ 使用案例特定的規則群組可為眾多不同的使用案例和環境提供增量式保護。
+ IP 評價清單會根據用戶端的來源 IP 提供安全威脅情報。

如需詳細資訊，請參閱[AWS 的受管規則 AWS WAF](aws-managed-rule-groups.md)。

**規則最佳化與清理**  
重新查看您的舊規則，並考慮進行重寫或刪除過時的規則將它們最佳化。例如，如果您過去從 OWASP 前 10 個 Web 應用程式漏洞的技術論文中部署 AWS CloudFormation 範本，[使用 AWS WAF 和我們的新白皮書準備 OWASP 前 10 個 Web 應用程式漏洞](https://aws.amazon.com/blogs/aws/prepare-for-the-owasp-top-10-web-application-vulnerabilities-using-aws-waf-and-our-new-white-paper/)，您應該考慮將其取代為 AWS 受管規則。雖然在文件中找到的概念仍然適用，並可協助您撰寫自己的規則，但範本建立的規則大部分已由 AWS 受管規則取代。

**Amazon CloudWatch 指標和警示**  
重新檢視您的 Amazon CloudWatch 指標，並視需要設定警示。遷移不會轉移 CloudWatch 警示，而且您的指標名稱可能不是您想要的名稱。

**與您的應用程式團隊一起審核**  
與您的應用程式團隊合作，並檢查您的安全狀態。找出應用程式經常剖析的欄位，並相應地新增規則來清理輸入。檢查是否有任何邊緣案例，如果應用程式的商業邏輯無法處理，新增規則以找出這些案例。

**規劃切換**  
與您的應用程式團隊一起規劃切換的時機。從舊保護套件 (Web ACL) 關聯切換到新的保護套件，可能需要很短的時間才能傳播到儲存資源的所有區域。傳播時間可以是幾秒鐘到幾分鐘。在此期間，某些請求將由舊的保護套件 (Web ACL) 處理，而其他請求將由新的保護套件 (Web ACL) 處理。您的資源將在整個切換過程中受到保護，但您可能會在切換進行時注意到請求處理不一致。

當您準備好切換時，請按照[遷移保護套件 (Web ACL)：切換](waf-migrating-procedure-switchover.md)中的程序進行操作。

# 遷移保護套件 (Web ACL)：切換
切換

驗證新的保護套件 (Web ACL) 設定後，您可以開始使用它來取代 AWS WAF Classic 保護套件 (Web ACL)。

**開始使用新的 AWS WAF 保護套件 (Web ACL)**

1. 遵循 中的指引，將 AWS WAF 保護套件 (Web ACL) 與您要保護的資源建立關聯[將保護與 AWS 資源建立關聯或取消關聯](web-acl-associating-aws-resource.md)。這會自動取消資源與舊保護套件 (Web ACL) 的關聯。

   轉換可能需要幾秒鐘到幾分鐘的時間才能傳播。在此期間，有些請求可能由舊的保護套件 (Web ACL) 處理，有些則由新的保護套件 (Web ACL) 處理。您的資源將在整個切換過程中受到保護，但您可能會注意到請求處理中的不一致，直到完成為止。

1. 遵循 中的指引，設定新保護套件 (Web ACL) 的記錄[記錄 AWS WAF 保護套件 (Web ACL) 流量](logging.md)。

1. （選用） 如果您的 AWS WAF Classic 保護套件 (Web ACL) 不再與任何資源相關聯，請考慮將其完全從 AWS WAF Classic 中移除。如需相關資訊，請參閱[刪除 Web ACL](classic-web-acl-deleting.md)。