

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

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

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

# 测试和部署 AWS WAF 机器人控制
<a name="waf-bot-control-deploying"></a>

本节提供有关为您的网站配置和测试 AWS WAF Bot Control 实现的一般指导。您选择遵循的具体步骤将取决于您的需求、资源和收到的 web 请求。

此信息是对 [测试和调整您的 AWS WAF 保护措施](web-acl-testing.md) 中提供的有关测试和调整的一般信息的补充。

**注意**  
AWS 托管规则旨在保护您免受常见网络威胁的侵害。根据文档使用 AWS 托管规则组时，可以为您的应用程序增加另一层安全保护。但是， AWS 托管规则规则组并不是用来取代您的安全职责，后者由您选择的 AWS 资源决定。请参阅[分担责任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)，确保您的资源 AWS 得到适当保护。

**生产流量风险**  
在为生产流量部署机器人控制功能实施之前，请在暂存或测试环境中对其进行测试和调整，直到您能够适应对流量的潜在影响。然后，在启用之前，在计数模式下使用生产流量对规则进行测试和调整。

本指南适用于一般了解如何创建和管理 AWS WAF 保护包 (Web ACLs)、规则和规则组的用户。这些主题将在本指南的前面章节中介绍。

**配置和测试机器人控制功能实施**

首先在测试环境中执行这些步骤，然后在生产环境中执行这些步骤。

1. 

**添加机器人控制功能托管规则组**
**注意**  
使用此托管规则组时，您需要额外付费。有关更多信息，请参阅[AWS WAF 定价](https://aws.amazon.com/waf/pricing/)。

   将托管 AWS 规则组`AWSManagedRulesBotControlRuleSet`添加到新的或现有的保护包 (Web ACL) 中，并对其进行配置，使其不会改变当前保护包 (Web ACL) 的行为。
   + 添加托管规则组时，对其进行编辑并执行以下操作：
     + 在**检查级别**窗格中，选择要使用的检查级别。
       + **常见**：检测各种自我识别的机器人，例如 web 抓取框架、搜索引擎和自动浏览器。此级别的机器人控制功能保护使用传统的机器人检测技术（例如静态请求数据分析）来识别常见的机器人。这些规则会标记来自这些机器人的流量，并阻止他们无法验证的流量。
       + **定向**：包括通用级保护，并针对无法自我识别的复杂机器人添加定向检测。目标保护结合了速率限制和验证码以及后台浏览器质询，缓解了机器人活动。
         + **`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 注入或跨站脚本，它们将继续检测和记录这些请求。或者，如果您的规则允许已知的非恶意流量，则它们可以继续允许该流量，而不必被机器人控制功能托管规则组阻止。在测试和调整活动期间，您可能会决定调整处理顺序，但这是一个不错的起点。

1. 

**为保护包（web ACL）启用日志记录和指标**

   根据需要，为保护包（Web ACL）配置日志、Amazon Security Lake 数据收集、请求采样和亚马逊 CloudWatch 指标。您可以使用这些可见性工具来监控机器人控制功能托管规则组与您的流量的交互情况。
   + 有关日志记录的信息，请参阅[记录 AWS WAF 保护包 (Web ACL) 流量](logging.md)。
   + 有关亚马逊安全湖的信息，请参阅[什么是亚马逊安全湖？](https://docs.aws.amazon.com/security-lake/latest/userguide/what-is-security-lake.html) 以及 *Amazon Security Lake 用户指南*中的[从 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. 

**监控流量和机器人控制功能规则匹配情况**

   确保流量畅通，并且机器人控制功能托管规则组规则正在为匹配的 web 请求添加标签。您可以在日志中看到标签，也可以在 Amazon 指标中查看机器人和标签 CloudWatch 指标。在日志中，您在规则组中覆盖计数的规则会显示在 `ruleGroupList` 中，`action` 设置为计数，`overriddenAction` 表示您覆盖的已配置规则操作。
**注意**  
机器人控制功能托管规则组使用来自 AWS WAF的 IP 地址验证机器人。如果您使用机器人控制功能，并且已经验证了通过代理或负载均衡器进行路由的机器人，则您可能需要使用自定义规则明确允许它们。有关如何创建自定义规则的更多信息，请参阅 [在中使用转发的 IP 地址 AWS WAF](waf-rule-statement-forwarded-ip-address.md)。有关如何使用该规则自定义机器人控制功能 web 请求处理的信息，请参阅下一步。

   请仔细检查 web 请求处理中是否存在任何可能需要通过自定义处理来缓解的误报。有关误报的示例，请参阅 [AWS WAF Bot Control 误报的示例场景](waf-bot-control-false-positives.md)。

1. 

**自定义机器人控制功能 web 请求处理**

   根据需要，添加您自己的明确允许或阻止请求的规则，以更改机器人控制功能规则处理请求的方式。

   如何执行此操作取决于您的使用案例，但以下是常见的解决方案：
   + 明确允许具有在机器人控制功能托管规则组之前添加的规则的请求。这样，允许的请求就永远不会到达规则组进行评估。这有助于控制使用机器人控制功能托管规则组的成本。
   + 通过在机器人控制功能托管规则组语句中添加范围缩小语句，将请求排除在机器人控制功能评估之外。此功能与前面的选项相同。它可能有助于控制使用机器人控制功能托管规则组的费用，因为与范围缩小语句不匹配的请求永远不会进入规则组评估。有关范围缩小语句的信息，请参阅 [在中使用范围缩小语句 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)
   + 在请求处理中使用机器人控制功能标签来允许或阻止请求。在机器人控制功能托管规则组之后添加标签匹配规则，从要阻止的请求中筛选出要允许的带标签的请求。

     测试后，将相关的机器人控制功能规则保持在计数模式，并在您的自定义规则中维护请求处理决策。有关标签匹配语句的信息，请参阅 [标签匹配规则语句](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. 

**根据需要启用机器人控制功能托管规则组设置**

   根据您的情况，您可能已经决定要将某些机器人控制功能规则保留为计数模式或使用不同的操作覆盖。对于要按照规则组内部配置的方式运行的规则，请启用常规规则配置。为此，请编辑保护包（web ACL）中的规则组语句，然后在**规则**窗格中进行更改。