

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

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

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

# 测试和部署 ACFP
<a name="waf-acfp-deploying"></a>

本节提供有关为您的网站配置和测试 Amazon WAF 欺诈控制账户创建防作弊 (ACFP) 实施的一般指导。您选择遵循的具体步骤将取决于您的需求、资源和收到的 web 请求。

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

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

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

Amazon WAF 提供了可用于验证 ACFP 配置的测试凭证。在以下步骤中，您将配置测试保护包（web ACL）以使用 ACFP 托管规则组，配置规则以捕获规则组添加的标签，然后使用这些测试凭证尝试创建账户。您可以通过查看账户创建尝试的亚马逊 CloudWatch 指标，验证您的保护包（Web ACL）是否正确管理了该尝试。

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

**配置和测试 Amazon WAF 欺诈控制账户创建防作弊 (ACFP) 实施方案**

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

1. 

**在计数模式下 Amazon WAF 添加 Fraud Control 账户创建防作弊 (ACFP) 托管规则组**
**注意**  
使用此托管规则组时，您需要额外付费。有关更多信息，请参阅[Amazon WAF 定价](https://www.amazonaws.cn/waf/pricing/)。

   将 Amazon 托管规则组`AWSManagedRulesACFPRuleSet`添加到新的或现有的保护包 (Web ACL) 中，并对其进行配置，使其不会改变当前保护包 (Web ACL) 的行为。有关此规则组的规则和标签的详细信息，请参阅 [Amazon WAF 欺诈控制账户创建防作弊 (ACFP) 规则组](aws-managed-rule-groups-acfp.md)。
   + 添加托管规则组时，对其进行编辑并执行以下操作：
     + 在**规则组配置**窗格中，提供您的应用程序的账户注册和创建页面的详细信息。ACFP 规则组使用此信息来监控登录活动。有关更多信息，请参阅 [将 ACFP 托管规则组添加到您的 web ACL](waf-acfp-rg-using.md)。
     + 在**规则**窗格中，打开**覆盖所有规则操作**下拉列表并选择 **Count**。使用此配置， Amazon WAF 可以根据规则组中的所有规则评估请求，并仅计算结果的匹配项，同时仍将标签添加到请求中。有关更多信息，请参阅 [覆盖规则组的规则操作](web-acl-rule-group-settings.md#web-acl-rule-group-rule-action-override)。

       通过此覆盖，您可以监控 ACFP 托管规则的潜在影响，以确定是否要添加例外，例如内部使用案例的例外。
   + 定位规则组，使其按照您在保护包（web ACL）中的现有规则进行评估，优先级设置在数值上要高于您已在使用的任何规则或规则组。有关更多信息，请参阅 [设置规则优先级](web-acl-processing-order.md)。

     这样，您当前的流量处理就不会中断。例如，如果您有检测恶意流量的规则，例如 SQL 注入或跨站脚本，它们将继续检测并记录这些流量。或者，如果您的规则允许已知的非恶意流量，则它们可以继续允许该流量，而不必被 ACFP 托管规则组阻止。在测试和调整活动期间，您可能会决定调整处理顺序。

1. 

**实现应用程序集成 SDKs**

   将 Amazon WAF JavaScript SDK 集成到浏览器的账户注册和账户创建路径中。 Amazon WAF 还提供用于集成 SDKs iOS 和安卓设备的移动设备。有关集成的更多信息 SDKs，请参阅[中的客户端应用程序集成 Amazon WAF](waf-application-integration.md)。有关此建议的信息，请参阅 [使用 SDKs 与 ACFP 的应用程序集成](waf-acfp-with-tokens.md)。
**注意**  
如果您无法使用应用程序集成 SDKs，则可以通过在保护包（Web ACL）中编辑 ACFP 规则组并删除您在规则上放置的替代项来测试 ACFP `AllRequests` 规则组。这将启用规则的 Challenge 操作设置，以确保请求中包含有效的质询令牌。  
*首先在测试环境中执行此操作，然后在生产环境中要格外小心。*这种方法有可能阻止用户。例如，如果您的注册页面路径不接受`GET` text/html 请求，则此规则配置可以有效地阻止注册页面上的所有请求。

1. 

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

   根据需要，为保护包（Web ACL）配置日志、Amazon Security Lake 数据收集、请求采样和亚马逊 CloudWatch 指标。您可以使用这些可见性工具来监控 ACFP 托管规则组与您的流量的交互情况。
   + 有关日志记录的信息，请参阅[记录 Amazon WAF 保护包 (Web ACL) 流量](logging.md)。
   + 有关 Amazon Security Lake 的信息，请参阅[什么是亚马逊安全湖？](https://docs.amazonaws.cn/security-lake/latest/userguide/what-is-security-lake.html) 以及 *Amazon Security Lake 用户指南*中的[从 Amazon 服务中收集数据](https://docs.amazonaws.cn/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）尚未与测试资源关联，请将其关联。有关信息，请参阅[将保护与资源关联或取消关联 Amazon](web-acl-associating-aws-resource.md)。

1. 

**监控流量和 ACFP 规则匹配情况**

   确保您的正常流量畅通，并且 ACFP 托管规则组规则正在为匹配的 web 请求添加标签。您可以在日志中看到标签，也可以在 Amazon 指标中查看 ACFP 和标签 CloudWatch 指标。在日志中，您在规则组中覆盖计数的规则会显示在 `ruleGroupList` 中，`action` 设置为计数，`overriddenAction` 表示您覆盖的已配置规则操作。

1. 

**测试规则组的凭证检查功能**

   尝试使用已泄露的凭证创建账户，并检查规则组是否按预期与这些凭证匹配。

   1. 访问受保护资源的账户注册页面，然后尝试添加新账户。使用以下 Amazon 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` 标签。有关日志记录的信息，请参阅[记录 Amazon 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` 标签。有关日志记录的信息，请参阅[记录 Amazon 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 规则组实现的测试后，如果您尚未将 Amazon WAF JavaScript SDK 集成到浏览器的账户注册和账户创建页面，我们强烈建议您这样做。 Amazon WAF 还提供用于集成 SDKs iOS 和安卓设备的移动设备。有关集成的更多信息 SDKs，请参阅[中的客户端应用程序集成 Amazon WAF](waf-application-integration.md)。有关此建议的信息，请参阅 [使用 SDKs 与 ACFP 的应用程序集成](waf-acfp-with-tokens.md)。