

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

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

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

# 将 ATP 托管规则组添加到您的保护包（web ACL）
<a name="waf-atp-rg-using"></a>

本节介绍了如何添加和配置 `AWSManagedRulesATPRuleSet` 规则组。

要配置 ATP 托管规则组以识别网络流量中的账户盗用活动，您需要提供有关客户端如何向您的应用程序发送登录请求的信息。对于受保护的 Amazon CloudFront 分配，您还需要提供有关您的应用程序如何响应登录请求的信息。此配置是对托管规则组的常规配置的补充。

有关规则组的描述和规则列表，请参阅 [Amazon WAF 防欺诈控制账户盗用 (ATP) 规则组](aws-managed-rule-groups-atp.md)。

**注意**  
ATP 被盗凭证数据库仅包含电子邮件格式的用户名。

本指南适用于一般了解如何创建和管理 Amazon WAF 保护包 (Web ACLs)、规则和规则组的用户。这些主题将在本指南的前面章节中介绍。有关如何将托管规则组添加到保护包（web ACL）的基本信息，请参阅 [通过控制台向保护包（web ACL）添加托管规则组](waf-using-managed-rule-group.md)。

**遵循最佳实践**  
按照 [中智能缓解威胁的最佳实践 Amazon WAF](waf-managed-protections-best-practices.md) 中的最佳实践使用 ATP 规则组。

**在保护包（web ACL）中使用 `AWSManagedRulesATPRuleSet` 规则组**

1. 将 Amazon 托管规则组`AWSManagedRulesATPRuleSet`添加到您的保护包（Web ACL）中，并在保存之前**编辑**规则组设置。
**注意**  
使用此托管规则组时，您需要额外付费。有关更多信息，请参阅[Amazon WAF 定价](https://www.amazonaws.cn/waf/pricing/)。

1. 在**规则组配置**窗格中，提供 ATP 规则组用于检查登录请求的信息。

   1. 对于 “**在路径中使用正则表达式**”，如果 Amazon WAF 要对登录页面路径规范执行正则表达式匹配，请将其选中。

      Amazon WAF 支持 PCRE 库使用的模式语法，但`libpcre`有一些例外。该库记录在 [PCRE：与 Perl 兼容的正则表达式](http://www.pcre.org/)中。有关 Amazon WAF 支持的信息，请参阅[中支持的正则表达式语法 Amazon WAF](waf-regex-pattern-support.md)。

   1. 对于**登录路径**，提供应用程序登录端点的路径。规则组仅检查发往您指定的登录端点的 HTTP `POST` 请求。
**注意**  
端点的匹配不区分大小写。正则表达式规范不得包含标志 `(?-i)`，该标志会禁用不区分大小写的匹配。字符串规范必须以正斜杠 `/` 开头。

      例如，对于 URL `https://example.com/web/login`，您可以提供字符串路径规范 `/web/login`。以您提供的路径开头的登录路径被视为匹配路径。例如，`/web/login` 匹配登录路径 `/web/login`、`/web/login/`、`/web/loginPage` 和 `/web/login/thisPage`，但与登录路径 `/home/web/login` 或 `/website/login` 不匹配。

   1. 对于**请求检查**，请通过提供请求负载类型以及请求正文中提供用户名和密码的字段的名称来指定您的应用程序如何接受登录尝试。字段名称的指定取决于有效载荷类型。
      + **JSON 负载类型**：使用 JSON 指针语法指定字段名称。有关 JSON 指针语法的信息，请参阅互联网工程任务组 (IETF) 文档[JavaScript对象表示法 (JSON) 指针](https://tools.ietf.org/html/rfc6901)。

        例如，对于以下示例 JSON 负载，用户名字段规范为 `/login/username`，密码字段规范为 `/login/password`。

        ```
        {
            "login": {
                "username": "THE_USERNAME",
                "password": "THE_PASSWORD"
            }
        }
        ```
      + **FORM\$1ENCODED 有效负载类型**：使用 HTML 表单名称。

        例如，对于输入元素名为 `username1` 和 `password1` 的 HTML 表单，用户名字段规范为 `username1`，密码字段规范为 `password1`。

   1. 如果您要保护 Amazon CloudFront 分配，请在 “**响应检查**” 下，指定您的应用程序在响应登录尝试时如何指示成功或失败。
**注意**  
ATP 响应检查仅在保护 CloudFront 分发的保护包（网络 ACLs）中可用。

      在登录响应中指定您希望 ATP 检查的单个组件。对于**正文**和 **JSON** 组件类型， Amazon WAF 可以检查组件的前 65536 字节（64 KB）。

      如界面所示，提供组件类型的检查条件。您必须提供成功和失败条件以供在组件中进行检查。

      例如，假设您的应用程序在响应的状态码中指示登录尝试的状态，并使用 `200 OK` 指示成功，使用 `401 Unauthorized` 或 `403 Forbidden` 指示失败。您可以将响应检查**组件类型**设置为**状态码**，然后在**成功**文本框中输入 `200`，并在**失败**文本框的第一行输入 `401`，在第二行输入 `403`。

      ATP 规则组仅计算符合您的成功或失败检查条件的响应。当客户端在计算的响应中失败率太高时，规则组规则会对客户端采取行动。为了确保规则组规则的行为准确，请务必提供成功和失败的登录尝试的完整信息。

      要查看检查登录响应的规则，请在 [Amazon WAF 防欺诈控制账户盗用 (ATP) 规则组](aws-managed-rule-groups-atp.md) 中的规则列表中查找 `VolumetricIpFailedLoginResponseHigh` 和 `VolumetricSessionFailedLoginResponseHigh`。

1. 为规则组提供所需的任何其他配置。

   您可以通过在托管规则组语句中添加范围缩小语句来进一步限制规则组检查的请求范围。例如，您只能检查带有特定查询参数或 Cookie 的请求。规则组将仅检查发往您指定的登录端点的、与您的范围缩小语句中的条件相匹配的 HTTP `POST` 请求。有关范围缩小语句的信息，请参阅 [在中使用范围缩小语句 Amazon WAF](waf-rule-scope-down-statements.md)。

1. 保存对保护包（web ACL）的更改。

在为生产流量部署 ATP 实施之前，请在暂存或测试环境中对其进行测试和调整，直到您能够适应对流量的潜在影响。然后，在启用之前，在计数模式下使用生产流量对规则进行测试和调整。有关指导，请参阅以下部分。