

**引入全新的主机体验 AWS WAF**

现在，您可以使用更新的体验访问控制台中任意位置的 AWS WAF 功能。有关更多详细信息，请参阅[使用控制台](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在中配置保护 AWS WAF
<a name="web-acl"></a>

本页说明了什么是保护包（网络 ACLs）以及它们的工作原理。

 保护包（web ACL）可让您对受保护资源响应的所有 HTTP(S) web 请求进行精细控制。你可以保护亚马逊 CloudFront、亚马逊 API Gateway、Application Load Balancer AWS AppSync、、Amazon Cognito AWS App Runner、、 CloudWatch、A AWS Amplify mazon 和 AWS 已验证访问资源。

您可以使用如下条件来允许或阻止请求：
+ 请求的 IP 地址源
+ 请求的源国家/地区
+ 部分请求中的字符串匹配或正则表达式匹配
+ 请求特定部分的大小
+ 检测恶意 SQL 代码或脚本 

您还可以针对这些条件的任何组合进行测试。您可以阻止或统计不仅满足指定条件，还在一分钟内超过指定请求数的 web 请求。您可以使用逻辑运算符组合条件。您还可以根据请求运行验证码拼图和静默客户端会话质询。

您在 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) WCUs 中使用超过 1,500 的保护包会产生超出基本保护包 (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)
+ [在中配置验证码、挑战和令牌 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
<a name="web-acl-creating"></a>

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

本节提供通过新 AWS 控制台创建保护包 (Web ACLs) 的过程。

要创建新的保护包（web ACL），请按照本页上的步骤使用保护包（web ACL）创建向导。

**生产流量风险**  
在保护包（web ACL）中为生产流量部署更改之前，请在暂存或测试环境中对其进行测试和调整，直到您对流量可能产生的影响感到满意。然后，在启用之前，在计数模式下使用生产流量对更新后的规则进行测试和调整。有关指南，请参阅[测试和调整您的 AWS WAF 保护措施](web-acl-testing.md)。

**注意**  
在保护包 (Web ACL) WCUs 中使用超过 1,500 的保护包会产生超出基本保护包 (Web ACL) 价格的成本。有关更多信息，请参阅 [Web ACL 容量单位 (WCUs) AWS WAF](aws-waf-capacity-units.md) 和 [AWS WAF 定价](https://aws.amazon.com/waf/pricing/)。

1. 登录新版 AWS 管理控制台 并通过 [https://console.aws.amazon.com/waf](https://console.aws.amazon.com/wafv2-pro) v2-pro 打开 AWS WAF 控制台。

1. 在导航窗格中，选择**资源和保护包 (Web ACLs)**。

1. 在**资源和保护包 (Web ACLs)** 页面上，选择**添加保护包 (Web ACL)**。

1. 在**向我们介绍您的应用程序**下，对于**应用程序类别**，选择一个或多个应用程序类别。

1. 对于**流量源**，选择应用程序使用的流量类型：**API**、**Web** 或 **API 和 Web 兼具**。

1. 在**要保护的资源**下，选择**添加资源**。

1. 选择您要与该保护包关联的 AWS 资源类别（Web ACL），可以是 Amazon CloudFront 发行版或区域资源。有关更多信息，请参阅 [将保护与资源关联或取消关联 AWS](web-acl-associating-aws-resource.md)。

1. 在**选择初始保护**下，选择您的首选保护级别：**推荐**、**基本**或**自行构建**。

1. （可选）如果选择**自行构建**，请构建您的规则。

   1. （可选）如果要添加您自己的规则，请在**添加规则**页面上，选择**自定义规则**，然后选择**下一步**。

      1. 选择规则类型。

      1. 对于**操作**，选择您希望规则在与 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. 对于 **名称**，输入要用于标识此规则的名称。不要使用以 `AWS`、`Shield`、`PreFM` 或 `PostFM` 开头的名称。这些字符串要么是保留字符串，要么可能与其他服务所管理的规则组混淆。

      1. 根据您的需求输入您的规则定义。您可以在逻辑 `AND` 和 `OR` 规则语句中组合规则。该向导将根据上下文指导您学习每个规则的选项。有关规则选项的信息，请参阅 [AWS WAF 规则](waf-rules.md)。

      1. 选择 **Create rule**（创建规则）。
**注意**  
如果您向保护包 (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`、`Shield`、`PreFM` 或 `PostFM` 开头的名称。这些字符串要么是保留字符串，要么可能与其他服务所管理的规则组混淆。请参阅[识别其他服务提供的规则组](waf-service-owned-rule-groups.md)。

      1. 从列表中选择您的规则组。

      1. （可选）在**规则配置**下，选择**规则覆盖**。您可以将规则操作改写为任何有效的操作设置，这与托管规则组的操作相同。

      1. （可选）在**添加标签**下，选择**添加标签**，然后输入要添加到匹配规则的请求的任何标签。稍后在同一保护包（web ACL）中评估的规则可以引用此规则添加的标签。

      1. 选择 **Create rule**（创建规则）。

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 AC）**。

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

本节提供 ACLs 通过 AWS 控制台创建 Web 的过程。

要创建新的 web ACL，请按照本页上的步骤使用 web ACL 创建向导。

**生产流量风险**  
在 web ACL 中为生产流量部署更改之前，请在暂存或测试环境中对其进行测试和调整，直到您对流量可能产生的影响感到满意。然后，在启用之前，在计数模式下使用生产流量对更新后的规则进行测试和调整。有关指南，请参阅[测试和调整您的 AWS WAF 保护措施](web-acl-testing.md)。

**注意**  
在保护包 (Web ACL) WCUs 中使用超过 1,500 的保护包会产生超出基本保护包 (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://console.aws.amazon.com/wafv2/homev](https://console.aws.amazon.com/wafv2/homev2) 2 上打开主 AWS WAF 机。

1. 在导航窗格 ACLs中选择 **Web**，然后选择**创建 Web ACL**。

1. 对于 **名称**，输入要用于标识此 web ACL 的名称。
**注意**  
web ACL 在创建之后无法更改名称。

1. （可选）对于 **描述 - 可选**，如果需要，请输入 web ACL 的较长描述。

1. 对于 **CloudWatch metric name (CloudWatch 指标名称)**，更改默认名称（如果适用）。按照控制台上的指导进行有效字符操作。名称不能包含为其保留的特殊字符、空格或指标名称 AWS WAF，包括 “全部” 和 “Default\$1Action”。
**注意**  
创建 Web ACL 后，您无法更改 CloudWatch 指标名称。

1. 在 “**资源类型**” 下，选择要与此 Web ACL 关联的 AWS 资源类别，即 Amazon CloudFront 分配或区域资源。有关更多信息，请参阅 [将保护与资源关联或取消关联 AWS](web-acl-associating-aws-resource.md)。

1. 对于**区域**，如果您选择了区域资源类型，请选择 AWS WAF 要存储 Web ACL 的区域。

   您只需要为区域资源类型选择此选项。对于 CloudFront 分发，对于全球 () 应用程序，区域被硬编码为美国东部（弗吉尼亚北部CloudFront）区域。`us-east-1`

1. （CloudFront、API Gateway、Amazon Cognito、App Runner 和已验证访问权限）对于 **Web 请求检查大小限制-可选**，如果您想指定不同的身体检查大小限制，请选择该限制。如果检查正文大小是否超过默认值 16 KB，可能会产生额外费用。有关此选项的更多信息，请参阅 [管理人体检查的注意事项 AWS WAF](web-acl-setting-body-inspection-limit.md)。

1. （可选）对于**关联 AWS 资源-可选**，如果您想立即指定资源，请选择**添加 AWS 资源**。在对话框中，选择要关联的资源，然后选择**添加**。 AWS WAF 返回到**描述 Web ACL 和关联 AWS 资源**页面。
**注意**  
当您选择将 Application Load Balancer 与 Web ACL 关联时，将**启用资源级 DDo S 保护**。有关更多信息，请参阅 [AWS WAF 分布式拒绝服务防护 DDo](waf-anti-ddos.md)。

1. 选择**下一步**。

1. （可选）如果要添加托管规则组，请在 **添加规则和规则组** 页面上，选择 **添加规则**，然后选择 **添加托管规则组**。对要添加的每个托管规则组执行以下操作：

   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)。

      完成设置后，选择**保存规则**。

   选择 **添加规则** 以完成托管规则的添加，然后返回 **添加规则和规则组** 页面。
**注意**  
如果您向 Web ACL 添加多个规则，则 AWS WAF 会按照 Web ACL 中列出的顺序对这些规则进行评估。有关更多信息，请参阅 [使用包含规则和规则组的保护包 (Web ACLs) AWS WAF](web-acl-processing.md)。

1. （可选）如果要添加您自己的托管规则组，请在 **添加规则和规则组** 页面上，选择 **添加规则**，然后选择 **添加我自己的规则和规则组**。对要添加的每个规则组执行以下操作：

   1. 在 **添加我自己的规则和规则组** 页面上，选择 **规则组**。

   1. 在**名称**中，输入要用于此 web ACL 中的规则组规则的名称。不要使用以 `AWS`、`Shield`、`PreFM` 或 `PostFM` 开头的名称。这些字符串要么是保留字符串，要么可能与其他服务所管理的规则组混淆。请参阅[识别其他服务提供的规则组](waf-service-owned-rule-groups.md)。

   1. 从列表中选择您的规则组。
**注意**  
如果您要覆盖自己的规则组的规则操作，请先将其保存到 web ACL 中，然后在 web ACL 的规则列表中编辑 web ACL 和规则组参考语句。您可以将规则操作改写为任何有效的操作设置，这与托管规则组的操作相同。

   1. 选择**添加规则**。

1. （可选）如果要添加您自己的规则，请在 **添加规则和规则组** 页面上，依次选择 **添加规则**、**添加我自己的规则和规则组**、**规则生成器**，然后选择 **规则可视化编辑器**。
**注意**  
控制台 **规则可视化编辑器** 支持一个嵌套级别。例如，您可以使用单个逻辑 `AND` 或 `OR` 语句，并在其中嵌套一个级别的其他语句，但不能在逻辑语句中嵌套逻辑语句。要管理更复杂的规则语句，请使用 **规则 JSON 编辑器**。有关规则的所有选项的信息，请参阅 [AWS WAF 规则](waf-rules.md)。  
此过程涵盖 **规则可视化编辑器**。

   1. 对于 **名称**，输入要用于标识此规则的名称。不要使用以 `AWS`、`Shield`、`PreFM` 或 `PostFM` 开头的名称。这些字符串要么是保留字符串，要么可能与其他服务所管理的规则组混淆。

   1. 根据您的需求输入您的规则定义。您可以在逻辑 `AND` 和 `OR` 规则语句中组合规则。该向导将根据上下文指导您学习每个规则的选项。有关规则选项的信息，请参阅 [AWS WAF 规则](waf-rules.md)。

   1. 对于**操作**，选择您希望规则在与 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)、欺诈控制账户接管预防 (ATP) 和 AWS WAF 机器人控制时， AWS WAF 令牌由和Challenge操作以及应用程序集成 SDKs 使用。CAPTCHA

   不允许使用公共后缀。例如，您不能使用 `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. 在 **审核和创建 web ACL** 页面中，检查您的定义。如果要更改任何区域，请为该区域选择 **Edit (编辑)**。这将使您返回到 web ACL 向导中的页面。进行任何更改，然后在后续页面中选择 **下一步**，直到您返回 **审核和创建 web ACL** 页面。

1. 选择 **创建 web ACL**。您的新 Web ACL 已在** ACLs网页**中列出。

------

# 在中编辑保护包 (Web ACL) AWS WAF
<a name="web-acl-editing"></a>

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

本节提供通过 AWS 控制台编辑保护包 (Web ACLs) 的过程。

要在保护包（web ACL）中添加或删除规则或更改配置设置，请使用本页面上的步骤访问保护包（web ACL）。更新保护包 (Web ACL) AWS WAF 时，可以持续覆盖与保护包 (Web ACL) 关联的资源。

**生产流量风险**  
在保护包（web ACL）中为生产流量部署更改之前，请在暂存或测试环境中对其进行测试和调整，直到您对流量可能产生的影响感到满意。然后，在启用之前，在计数模式下使用生产流量对更新后的规则进行测试和调整。有关指南，请参阅[测试和调整您的 AWS WAF 保护措施](web-acl-testing.md)。

**注意**  
在保护包 (Web ACL) WCUs 中使用超过 1,500 的保护包会产生超出基本保护包 (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://console.aws.amazon.com/waf](https://console.aws.amazon.com/wafv2-pro) v2-pro 打开 AWS WAF 控制台。

1. 在导航窗格中，选择**资源和保护包 (Web ACLs)**。

1. 选择要编辑的保护包（web ACL）。控制台使主保护包（web ACL）卡可编辑，还会打开可在其中编辑详细信息的侧面板。

1. 根据需要编辑保护包（web ACL）。

   以下列出可编辑的保护包（web ACL）配置组件。

   本节提供 ACLs 通过 AWS 控制台编辑 Web 的过程。

   要在 web ACL 中添加或删除规则或更改配置设置，请使用本页面上的步骤访问 web ACL。更新 Web ACL 时 AWS WAF ，可以持续覆盖您与 Web ACL 关联的资源。

**生产流量风险**  
在 web ACL 中为生产流量部署更改之前，请在暂存或测试环境中对其进行测试和调整，直到您对流量可能产生的影响感到满意。然后，在启用之前，在计数模式下使用生产流量对更新后的规则进行测试和调整。有关指南，请参阅[测试和调整您的 AWS WAF 保护措施](web-acl-testing.md)。

**注意**  
在保护包 (Web ACL) WCUs 中使用超过 1,500 的保护包会产生超出基本保护包 (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 ]

本节提供 ACLs 通过 AWS 控制台编辑 Web 的过程。

要在 web ACL 中添加或删除规则或更改配置设置，请使用本页面上的步骤访问 web ACL。更新 Web ACL 时 AWS WAF ，可以持续覆盖您与 Web ACL 关联的资源。

**生产流量风险**  
在 web ACL 中为生产流量部署更改之前，请在暂存或测试环境中对其进行测试和调整，直到您对流量可能产生的影响感到满意。然后，在启用之前，在计数模式下使用生产流量对更新后的规则进行测试和调整。有关指南，请参阅[测试和调整您的 AWS WAF 保护措施](web-acl-testing.md)。

**注意**  
在保护包 (Web ACL) WCUs 中使用超过 1,500 的保护包会产生超出基本保护包 (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://console.aws.amazon.com/wafv2/homev](https://console.aws.amazon.com/wafv2/homev2) 2 上打开主 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 验证码和质询配置**：这些免疫时间决定了验证码或质询令牌在被获取后的有效时间。只有在创建 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 的 Web。车身检查的大小限制决定了车身部件的多少被转 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)。
   + **自定义响应正文**选项卡
     + 自定义响应正文可供将操作设置为 Block 的 web ACL 规则使用。有关更多信息，请参阅 [发送 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 ACL 的所有可用数据以及仅针对 AWS WAF 发送到已配置的 Web ACL 日志记录目标的数据配置 Web 流量数据编辑和筛选。有关数据保护的信息，请参阅 [保护包 (Web ACL) 流量的数据 AWS WAF 保护和日志记录](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 集后，新地址可能会在一个区域中被阻止，而在另一个区域中仍然允许。

------

# 管理规则组行为
<a name="web-acl-rule-group-settings"></a>

本节介绍修改在保护包（web ACL）中如何使用规则组的选项。此信息适用于所有规则组类型。将规则组添加到保护包（web ACL）后，您可以将规则组中各个规则的操作覆盖为 Count 或任何其他有效的规则操作设置。您也可以将规则组生成的操作覆盖为 Count，这不会影响规则组内规则的评估方式。

有关这些选项的信息，请参阅 [覆盖中的规则组操作 AWS WAF](web-acl-rule-group-override-options.md)。

## 覆盖规则组的规则操作
<a name="web-acl-rule-group-rule-action-override"></a>

对于保护包（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` 和 `CategoryVerifiedSocialMedia` 规则的 Count。在 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
<a name="web-acl-rule-group-action-override"></a>

您可以覆盖规则组评估产生的操作，而无需更改规则组中规则的配置或评估方式。此选项并不是常用选项。如果规则组中的任何规则产生了匹配，则此覆盖会将规则组产生的操作设置为 Count。

**注意**  
这种使用案例不常见。大多数操作覆盖都是在规则组内的规则级别完成的，如 [覆盖规则组的规则操作](#web-acl-rule-group-rule-action-override) 中所述。

添加或编辑规则组时，可以在保护包（web ACL）中覆盖规则组生成的操作。在控制台中，打开规则组的**覆盖规则组操作（可选）**窗格并启用覆盖。在 JSON 集 `OverrideAction` 中的规则组语句中，如以下示例列表中所示：

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

# 将保护与资源关联或取消关联 AWS
<a name="web-acl-associating-aws-resource"></a>

您可以使用 AWS WAF 在保护包 (Web ACLs) 和您的资源之间创建以下关联：
+ 将区域保护包（web ACL）与下面列出的任何区域资源关联。对于此选项，保护包（web ACL）必须与您的资源位于同一区域。
  + Amazon API Gateway REST API
  + 应用程序负载均衡器
  + AWS AppSync GraphQL API
  + Amazon Cognito 用户池
  + AWS App Runner 服务
  + AWS 已验证访问实例
  + AWS Amplify
+ 将全球保护包 (Web ACL) 与 Amazon CloudFront 发行版相关联。全局保护包（web ACL）将具有美国东部（弗吉尼亚州北部）区域的硬编码区域。

在创建或更新 CloudFront 分发本身时，也可以将保护包 (Web ACL) 与发行版相关联。有关信息，请参阅《*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）关联到 AWS 区域中的应用程序负载均衡器。例如，您无法将保护包（web ACL）关联到 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
<a name="web-acl-associating"></a>

------
#### [ 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://console.aws.amazon.com/wafv2/homev](https://console.aws.amazon.com/wafv2/homev2) 2 上打开主 AWS WAF 机。

1. 在导航窗格中，选择 **Web ACLs**。

1. 选择要与资源关联的 web ACL 名称。控制台会将您转到 web ACL 的描述，您可以在其中对其进行编辑。

1. 在**关联 AWS 资源**选项卡上，选择**添加 AWS 资源**。

1. 出现提示时，选择资源类型，选择要关联的资源旁的单选按钮，然后选择**添加**。

------

# 取消保护与资源的关联 AWS
<a name="web-acl-dissociating-aws-resource"></a>

------
#### [ 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://console.aws.amazon.com/wafv2/homev](https://console.aws.amazon.com/wafv2/homev2) 2 上打开主 AWS WAF 机。

1. 在导航窗格中，选择 **Web ACLs**。

1. 选择要从资源取消关联的 web ACL 名称。控制台会将您转到 web ACL 的描述，您可以在其中对其进行编辑。

1. 在**关联 AWS 资源**选项卡上，选择要取消与此 Web ACL 关联的资源。
**注意**  
一次必须取消关联一个资源。请勿选择多个资源。
**注意**  
当您选择将 Application Load Balancer 与 WebACL 关联时，将**启用资源级 DDo S 保护**。有关更多信息，请参阅 [AWS WAF 分布式拒绝服务防护 DDo](waf-anti-ddos.md)。

1. 选择**取消关联**。控制台打开确认对话框。确认您选择解除 Web ACL 与 AWS 资源的关联。

------

# 使用包含规则和规则组的保护包 (Web ACLs) AWS WAF
<a name="web-acl-processing"></a>

本节介绍保护包 (Web ACLs) 和 Web 如何 ACLs 使用规则和规则组。

保护包（web ACL）对 web 请求的处理方式取决于以下几点：
+ 保护包（web ACL）和内部规则组中规则的数字优先级设置
+ 规则和保护包（web ACL）上的操作设置
+ 您对添加的规则组中的规则的任何覆盖

有关规则操作设置的列表，请参阅 [在中使用规则操作 AWS WAF](waf-rule-action.md)。

您可以在规则操作设置和默认保护包（web ACL）操作设置中自定义请求和响应处理。有关信息，请参阅[自定义的 Web 请求和响应 AWS WAF](waf-custom-request-response.md)。

**Topics**
+ [设置规则优先级](web-acl-processing-order.md)
+ [如何 AWS WAF 处理规则和规则组操作](web-acl-rule-actions.md)
+ [覆盖中的规则组操作 AWS WAF](web-acl-rule-group-override-options.md)

# 设置规则优先级
<a name="web-acl-processing-order"></a>

本节介绍如何 AWS WAF 使用数字优先级设置来设置规则的评估顺序。

在保护包（web ACL）和任何规则组中，您可以使用数字优先级设置来确定规则的评估顺序。您必须为保护包（web ACL）中的每条规则指定该保护包（web ACL）中唯一的优先级设置，也必须为规则组中的每条规则指定该规则组中唯一的优先级设置。

**注意**  
当您管理规则组时，通过控制台的保护包 (Web ACLs) 会根据列表中规则的顺序为您 AWS WAF 分配唯一的数字优先级设置。 AWS WAF 为列表顶部的规则分配最低的数字优先级，为底部的规则分配最高的数字优先级。

当 AWS WAF 根据 Web 请求评估任何规则组，即保护包 (Web ACL) 时，它会从最低的数字优先级设置开始评估规则，直到找到终止评估的匹配项或用尽所有规则。

例如，假设保护包（web ACL）中有以下规则和规则组，其优先级如下所示：
+ Rule1：优先级 0
+ RuleGroupA — 优先级 100
  + RuleA1：优先级 1 万
  + RuleA2：优先级 2 万
+ Rule2：优先级 200
+ RuleGroupB — 优先级 300
  + RuleB1：优先级 0
  + RuleB2：优先级 1

AWS WAF 将按以下顺序评估此保护包 (Web ACL) 的规则：
+ Rule1
+ RuleGroupA rulea1
+ RuleGroupA rulea2
+ Rule2
+ RuleGroupB ruleB1
+ RuleGroupB ruleB2

# 如何 AWS WAF 处理规则和规则组操作
<a name="web-acl-rule-actions"></a>

本节介绍如何 AWS WAF 使用规则和规则组来处理操作。

配置规则和规则组时，您可以选择 AWS WAF 如何处理匹配的 Web 请求：
+ **Allow 和 Block 正在终止操作**：Allow 操作 Block 会停止对匹配的 web 请求进行保护包（web ACL）的所有其他处理。如果保护包 (Web ACL) 中的规则找到了与请求的匹配项，并且规则操作为Allow或Block，则该匹配将决定保护包 (Web ACL) 的 Web 请求的最终处置。 AWS WAF 不处理保护包（Web ACL）中匹配规则之后的任何其他规则。对于直接添加到保护包（web ACL）的规则以及已添加规则组中的规则，此原理同样适用。通过 Block 操作，受保护的资源将无法接收或处理 web 请求。
+ **Count 是非终止操作**：当具有 Count 操作的规则与请求匹配时， AWS WAF 会对请求进行计数，然后继续处理保护包（web ACL）规则集中的后续规则。
+ **CAPTCHA并且Challenge可以是非终止或终止操作** — 当具有其中一个操作的规则与请求匹配时， AWS WAF 会检查其令牌状态。如果请求具有有效的令牌，则将匹配项 AWS WAF 视为Count匹配项，然后继续处理保护包 (Web ACL) 规则集中遵循的规则。如果请求没有有效的令牌，则 AWS WAF 终止评估并向客户端发送验证码拼图或静默的后台客户端会话挑战来解决。

如果规则评估未导致任何终止操作，则对请求 AWS WAF 应用保护包 (Web ACL) 默认操作。有关信息，请参阅[在中设置保护包 (Web ACL) 的默认操作 AWS WAF](web-acl-default-action.md)。

在保护包（web ACL）中，您可以覆盖规则组内规则的操作设置，也可以覆盖规则组返回的操作。有关信息，请参阅[覆盖中的规则组操作 AWS WAF](web-acl-rule-group-override-options.md)。

**操作和优先级设置之间的交互**  
 AWS WAF 适用于 Web 请求的操作受保护包 (Web ACL) 中规则的数字优先级设置的影响。例如，假设保护包（web ACL）有一条规则具有 Allow 操作且数字优先级为 50，另一条规则具有 Count 操作且数字优先级为 100。 AWS WAF 按优先级顺序评估保护包（web ACL）中的规则，从最低设置开始，因此在评估计数规则之前，将先评估允许规则。同时匹配两个规则的 web 请求将首先匹配允许规则。因为Allow是终止操作， AWS WAF 将停止对这场比赛的评估，并且不会根据计数规则评估请求。
+ 如果您只想在计数规则指标中包含与允许规则不匹配的请求，则可以采用规则的优先级设置。
+ 另一方面，如果您想要计数规则中的计数指标，即使请求与允许规则匹配也是如此，则需要为计数规则指定比允许规则更低的数字优先级设置，以便首先运行计数规则。

有关优先级设置的更多信息，请参阅 [设置规则优先级](web-acl-processing-order.md)。

# 覆盖中的规则组操作 AWS WAF
<a name="web-acl-rule-group-override-options"></a>

本节介绍了如何覆盖规则组操作。

将规则组添加到保护包（web ACL）时，您可以覆盖它对匹配的 web 请求所执行的操作。覆盖保护包（web ACL）配置中规则组的操作不会改变规则组本身。它只会改变在保护包（Web ACL）上下文中 AWS WAF 使用规则组的方式。

## 规则组规则操作的覆盖
<a name="web-acl-rule-group-override-options-rules"></a>

您可以将规则组内规则的操作覆盖为任何有效的规则操作。执行此操作时，将完全按照配置规则的操作为覆盖设置处理匹配的请求。

**注意**  
规则操作可以是终止，也可以是非终止。终止操作会停止对请求的保护包（web ACL）评估，要么允许请求继续访问受保护的应用程序，要么将其阻止。

以下是规则操作选项：
+ **Allow**— AWS WAF 允许将请求转发到受保护的 AWS 资源进行处理和响应。这是终止操作。在您定义的规则中，您可以在请求中插入自定义标头，然后再将其转发到受保护的资源。
+ **Block**— AWS WAF 阻止请求。这是终止操作。默认情况下，您的受保护 AWS 资源以 HTTP `403 (Forbidden)` 状态代码进行响应。在您定义的规则中，您可以自定义响应。当 AWS WAF 阻止请求时，Block操作设置将决定受保护资源发送回客户端的响应。
+ **Count**— 对请求进行 AWS WAF 计数，但不确定是允许还是阻止请求。这是一个非终止操作。 AWS WAF 继续处理保护包（web ACL）中的其余规则。在您定义的规则中，您可以将自定义标头插入请求中，也可以添加其他规则可以匹配的标签。
+ **CAPTCHA并且 Challenge** — AWS WAF 使用 CAPTCHA 谜题和静默挑战来验证请求不是来自机器人，并 AWS WAF 使用代币来跟踪最近成功的客户响应。

  只有当浏览器访问 HTTPS 端点时，才能运行验证码拼图和静默质询。浏览器客户端必须在安全环境中运行才能获取令牌。
**注意**  
当您在其中一个规则中使用 CAPTCHA 或 Challenge 规则操作或在规则组中将其作为规则操作覆盖时，您需要支付额外费用。有关更多信息，请参阅[AWS WAF 定价](https://aws.amazon.com/waf/pricing/)。

  这些规则操作可以是终止操作，也可以是非终止操作，具体取决于请求中令牌的状态：
  + **未过期的有效令牌不终止** — 如果根据配置的验证码或质疑免疫时间，令牌有效且未过期，则 AWS WAF 处理与操作类似的请求。Count AWS WAF 继续根据保护包 (Web ACL) 中的其余规则检查 Web 请求。与 Count 配置类似，在您定义的规则中，您可以选择使用自定义标头配置这些操作以插入到请求中，也可以添加其他规则可以匹配的标签。
  + **以对无效或过期令牌的请求被阻止而终止** — 如果令牌无效或指定的时间戳已过期，则 AWS WAF 终止对 Web 请求的检查并阻止请求，类似于操作。Block AWS WAF 然后使用自定义响应代码响应客户端。因为CAPTCHA，如果请求内容表明客户端浏览器可以处理它，则会在 JavaScript 插页式广告中 AWS WAF 发送一个验证码拼图，该拼图旨在区分人类客户端和机器人。对于Challenge操作， AWS WAF 会发送带有静默挑战的 JavaScript 插页式广告，该挑战旨在将普通浏览器与机器人运行的会话区分开来。

  有关更多信息，请参阅 [CAPTCHA然后Challenge在 AWS WAF](waf-captcha-and-challenge.md)。

有关如何使用此选项的信息，请参阅 [覆盖规则组的规则操作](web-acl-rule-group-settings.md#web-acl-rule-group-rule-action-override)。

### 将规则操作覆盖为 Count
<a name="web-acl-rule-group-override-to-count"></a>

规则操作覆盖的最常见使用案例是将部分或全部规则操作覆盖到 Count，以测试和监控规则组的行为，然后再将其投入生产。

您也可以使用它对生成误报的规则组进行故障排除。当规则组阻止了您不希望阻止的流量时，就会出现误报。如果您在规则组中发现某条规则将阻止您希望允许通过的请求，则您可以保留该规则的计数操作覆盖，使其无法对您的请求采取行动。

有关在测试中使用规则操作覆盖的更多信息，请参阅 [测试和调整您的 AWS WAF 保护措施](web-acl-testing.md)。

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

如果您在 2022 年 10 月 27 日之前Count在保护包 (Web ACL) 配置中将规则组规则操作设置为，请 AWS WAF 将保护包 (Web ACL) JSON 中的替换内容保存为`ExcludedRules`。现在，用于将规则替换为 Count 的 JSON 设置位于 `RuleActionOverrides` 设置中。

我们建议您将您的 JSON 列表中的所有 `ExcludedRules` 设置更新为 `RuleActionOverrides` 设置，并将操作设置为 Count。API 接受任一设置，但如果您只使用新 `RuleActionOverrides` 设置，则您的控制台工作和 API 工作之间的 JSON 列表都将保持一致。

**注意**  
在 AWS WAF 控制台中，保护包 (Web ACL) “**采样请求**” 选项卡不显示使用旧设置的规则的示例。有关更多信息，请参阅 [查看 web 请求示例](web-acl-testing-view-sample.md)。

当您使用 AWS WAF 控制台编辑现有规则组设置时，控制台会自动将 JSON 中的任何`ExcludedRules``RuleActionOverrides`设置转换为设置，覆盖操作设置为Count。
+ 当前设置示例：

  ```
         "ManagedRuleGroupStatement": {
            "VendorName": "AWS",
            "Name": "AWSManagedRulesAdminProtectionRuleSet",
            "RuleActionOverrides": [
              {
                "Name": "AdminProtection_URIPATH",
                "ActionToUse": {
                  "Count": {}
                }
              }
            ]
  ```
+ 旧设置示例：

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

## 规则组返回操作覆盖为 Count
<a name="web-acl-rule-group-override-options-rule-group"></a>

您可以覆盖规则组返回的操作，将其设置为 Count。

**注意**  
这不是测试规则组中规则的好选择，因为它不会改变 AWS WAF 评估规则组本身的方式。它仅影响如何 AWS WAF 处理从规则组评估返回到保护包 (Web ACL) 的结果。如果要测试规则组中的规则，请使用上一节中描述的方式 [规则组规则操作的覆盖](#web-acl-rule-group-override-options-rules)。

当您将规则组操作改写为时Count，将正常 AWS WAF 处理规则组评估。

如果规则组中没有匹配的规则，或者所有匹配的规则都有 Count 操作，则此覆盖对规则组或保护包（web ACL）的处理没有影响。

规则组中第一个与 Web 请求匹配且具有终止规则操作的规则会导致 AWS WAF 停止评估该规则组，并将终止操作结果返回到保护包 (Web ACL) 评估级别。此时，在保护包 (Web ACL) 评估中，此替代生效。 AWS WAF 覆盖终止操作，因此规则组评估的结果只是一个Count操作。 AWS WAF 然后继续处理保护包 (Web ACL) 中的其余规则。

有关如何使用此选项的信息，请参阅 [将规则组的评估结果覆盖为 Count](web-acl-rule-group-settings.md#web-acl-rule-group-action-override)。

# 在中设置保护包 (Web ACL) 的默认操作 AWS WAF
<a name="web-acl-default-action"></a>

本节介绍保护包（web ACL）默认操作的工作方式。

当您创建和配置保护包（web ACL）时，必须设置保护包（web ACL）的默认操作。 AWS WAF 将此操作应用于通过所有保护包（web ACL）规则评估但未应用终止操作的任何 web 请求。终止操作会停止对请求的保护包（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 操作，但并非所有规则都使用该操作。例如，某些用于机器人控制功能的规则使用 CAPTCHA 和 Challenge 操作设置。有关托管规则组的信息，请参阅 [在中使用托管规则组 AWS WAF](waf-managed-rule-groups.md)。

# 管理人体检查的注意事项 AWS WAF
<a name="web-acl-setting-body-inspection-limit"></a>

车身检查大小限制是 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/)。

**修改正文检查大小限制的选项**  
您可以为 API Gateway CloudFront、Amazon Cognito、App Runner 或已验证访问资源配置身体检查大小限制。

在创建或编辑保护包（web ACL）时，可以在资源关联配置中修改正文检查大小限制。有关 API，请参阅保护包 (Web ACL) 的关联配置，网址为[AssociationConfig](https://docs.aws.amazon.com/waf/latest/APIReference/API_AssociationConfig.html)。对于控制台，配置参见位于您指定保护包（web ACL）关联资源的页面上。有关控制台配置的指导，请参阅 [在中查看 Web 流量指标 AWS WAF](web-acl-working-with.md)。

# 在中配置验证码、挑战和令牌 AWS WAF
<a name="web-acl-captcha-challenge-token-domains"></a>

您可以在保护包 (Web ACL) 中为使用CAPTCHA或规则操作的Challenge规则以及管理 AWS WAF 托管保护的静默客户端质询 SDKs 的应用程序集成配置选项。

这些功能通过验证码拼图对最终用户进行质询，以及为客户端会话提供静默质询，从而减少机器人活动。当客户端成功响应时， AWS WAF 会提供一个令牌供其在 web 请求中使用，并以上次成功的拼图和质询回复加时间戳。有关更多信息，请参阅 [中的智能威胁缓解 AWS WAF](waf-managed-protections.md)。

在保护包 (Web ACL) 配置中，您可以配置如何 AWS WAF 管理这些令牌：
+ **验证码和质询免疫时间**：它们指定了验证码或质询时间戳的有效期。保护包 (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
<a name="web-acl-working-with"></a>

本节介绍了如何访问 web 流量指标摘要。

对于您正在使用的任何保护包（Web ACL），您可以在 AWS WAF 控制台的保护包（Web ACL）页面的流量**概述选项卡下访问网络流量**指标摘要。控制台控制面板提供了在评估您的应用程序网络流量时 AWS WAF 收集的 Amazon CloudWatch 指标的近乎实时的摘要。有关控制面板的更多信息，请参阅 [保护包的流量概述仪表板 (Web ACLs)](web-acl-dashboards.md)。有关监控保护包（web ACL）流量的更多信息，请参阅 [监控和调整您的 AWS WAF 保护措施](web-acl-testing-activities.md)。

# 删除保护包（web ACL）
<a name="web-acl-deleting"></a>

本节提供通过 AWS 控制台删除保护包 (Web ACLs) 的过程。

**重要**  
删除保护包 (Web ACL) 是永久性的，无法撤消。

要删除保护包 (Web ACL)，首先要取消所有 AWS 资源与保护包 (Web ACL) 的关联。请执行以下过程。

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

1. 登录新版 AWS 管理控制台 并通过 [https://console.aws.amazon.com/waf](https://console.aws.amazon.com/wafv2-pro) v2-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://console.aws.amazon.com/wafv2/homev](https://console.aws.amazon.com/wafv2/homev2) 2 上打开主 AWS WAF 机。

1. 在导航窗格中，选择 **Web ACLs**。

1. 选择要删除的 web ACL 的名称。控制台会将您转到 web ACL 的描述，您可以在其中对其进行编辑。
**注意**  
如果您没有看到要删除的 Web ACL，请确保网页 ACLs 部分中的区域选择正确无误。任何保护 Amazon CloudFront 分销的网站 ACLs 都在**全球 (CloudFront)** 中。

1. 在**关联 AWS 资源**选项卡上，对于每个关联的资源，选择资源名称旁边的单选按钮，然后选择**取消关联**。这将解除保护包 (Web ACL) 与您的 AWS 资源的关联。

1. 在导航窗格中，选择 **Web ACLs**。

1. 选择要删除的 web ACL 旁边的单选按钮，然后选择 **删除**。

------