测试 Web ACL - Amazon WAF、Amazon Firewall Manager 和 Amazon Shield Advanced
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

测试 Web ACL

注意

这是Amazon WAFClassic文档中)。仅当 2019 年 11 月之前在 Amazon WAF 中创建了 Amazon WAF 资源(例如规则和 Web ACL),但尚未将这些资源迁移到最新版本时,才应使用此版本。要迁移您的资源,请参阅迁移您的Amazon WAFClassic 资源Amazon WAF

对于最新版本的Amazon WAF请参阅Amazon WAF

为了确保您不会意外配置Amazon WAF典型的方式是阻止要允许或允许要阻止的请求,建议您在网站或 Web 应用程序中开始使用 Web ACL 之前先对其进行全面测试。

对与 Web ACL 中的规则匹配的 Web 请求计数

将规则添加到 Web ACL 时,需要指定您希望Amazon WAF经典款:允许、阻止或计数与该规则中所有条件匹配的 Web 请求。建议您首先进行以下配置:

  • 将 Web ACL 中的所有规则配置为对 Web 请求计数

  • 将 Web ACL 的默认操作设置为允许请求

在这种配置中,Amazon WAFClassic (Classic) 根据第一个规则中的条件检查每个 Web 请求。如果 Web 请求与该规则中的所有条件都匹配,则Amazon WAF经典增加该规则的计数器。然后Amazon WAFClassic (Classic) 根据下一个规则中的条件检查 Web 请求。如果请求与该规则中的所有条件都匹配,Amazon WAF经典增加规则的计数器。这将持续到Amazon WAFClassic 已根据所有规则中的条件检查请求。

在将 Web ACL 中的所有规则配置为对请求计数并将 Web ACL 与 Amazon API Gateway API、CloudFront 分配或 Application Load Balancer 关联后,便可在 Amazon CloudWatch 图表中查看生成的计数。对于 Web ACL 中的每个规则以及 API Gateway、CloudFront 或 Application Load Balancer 转发给的所有请求Amazon WAFCloudWatch 适用于网络 ACL 的传统功能,让您可以:

  • 查看前一个小时或前三个小时的数据

  • 更改数据点之间的间隔

  • 更改 CloudWatch 对数据执行的计算,如最大值、最小值、平均值或求和

注意

Amazon WAFCloudFront 是一种全球服务,仅当您选择美国东部(弗吉尼亚北部)区域Amazon Web Services Management Console。如果您选择其他区域,则无Amazon WAFCloudWatch 控制台中将显示经典指标。

查看 Web ACL 中规则的数据

  1. 登录到Amazon Web Services Management Console,然后在 CloudWatch 控制台中打开https://console.aws.amazon.com/cloudwatch/

  2. 在导航窗格的 Metrics 下,选择 WAF

  3. 选中要查看其数据的 Web ACL 对应的复选框。

  4. 更改适用的设置:

    统计数据

    选择 CloudWatch 对数据执行的计算。

    时间范围

    选择您要查看前一个小时还是前三个小时的数据。

    周期

    选择图表中的数据点之间的间隔。

    Rules

    选择要查看其数据的规则。

    请注意以下几点:

    • 如果您刚刚将 Web ACL 与 API Gateway API、CloudFront 分配或 Application Load Balancer 关联,您可能需要等待几分钟时间,数据才会显示在图表上,Web ACL 的指标才会显示在可用指标的列表中。

    • 如果您将多个 API Gateway API、CloudFront 分配或 Application Load Balancer 与一个 Web ACL 相关联,CloudWatch 数据将包含与该 Web ACL 相关联的所有分配的所有请求。

    • 您可以将鼠标光标悬停在数据点上方,以获取更多信息。

    • 该图表不会自动自行刷新。要更新显示,请选择刷新 ( Icon to refresh the Amazon CloudWatch graph ) 图标。

  5. (可选)查看 API Gateway CloudFront 或 Application Load Balancer 转发给的各个请求的详细信息Amazon WAFClassic。有关更多信息,请参阅查看 API Gateway CloudFront 或 Application Load Balancer 转发给的 Web 请求的采样Amazon WAFClassic

  6. 如果您确定规则正在截获您不想截获的请求,请更改相应设置。有关更多信息,请参阅创建和配置 Web 访问控制列表 (Web ACL)

    如果您对所有规则只截获正确的请求感到满意,则将每个规则的操作改为 AllowBlock。有关更多信息,请参阅编辑 Web ACL

查看 API Gateway CloudFront 或 Application Load Balancer 转发给的 Web 请求的采样Amazon WAFClassic

在Amazon WAF传统控制台中,您可以查看 API Gateway CloudFront 或 Application Load Balancer 转发给的请求的采样Amazon WAF经典的检查。对于每个示例请求,您可以查看关于该请求的详细数据,例如来源 IP 地址和请求中包含的标头。您还可以查看请求匹配哪个规则,以及该规则配置为允许还是阻止请求。

请求采样包含多达 100 个与每个规则中的所有条件都匹配的请求,还有用于默认操作的 100 个请求,该默认操作适用于未与任何规则中的所有条件匹配的请求。采样中的请求来自所有 API Gateway API、CloudFront 边缘站点或Application Load Balancer,已在前 15 分钟内收到内容请求。

查看 API Gateway、CloudFront 或 Application Load Balancer 转发给的 Web 请求的采样Amazon WAFClassic

  1. 登录到Amazon Web Services Management Console并打开Amazon WAF控制台https://console.aws.amazon.com/wafv2/

  2. 在导航窗格中,选择要查看其请求的 Web ACL。

  3. 在右窗格中,选择 Requests 选项卡。

    Sampled requests 表显示每个请求的下列值:

    源 IP

    该请求来自的 IP 地址或 (如果查看者使用 HTTP 代理或应用 Application Load Balancer 发送请求) 代理或应用程序负载均衡器的 IP 地址。

    URI

    请求的 URI 路径,用于标识资源,例如/images/daily-ad.jpg。这不包括 URI 的查询字符串或片段组件。想要了解有关信息,请参阅统一资源标识符 (URI):通用语法

    Matches rule

    确定 Web ACL 中 Web 请求匹配其所有条件的第一个规则。如果 Web 请求与 Web ACL 中任何规则的所有条件均不匹配,则 Matches rule 的值为 Default

    请注意,当 Web 请求匹配某规则中的所有条件并且用于该规则的操作是计数、Amazon WAFClassic 将根据 Web ACL 中的后续规则继续检查 Web 请求。在此情况下,一个 Web 请求会在采样的请求列表中出现两次;一次是出于具有 Count 操作的规则,一次是出于后续规则或默认操作。

    操作

    指示相应规则的操作是 AllowBlock 还是 Count

    Time

    的时间Amazon WAF经典收到来自 API Gateway、CloudFront 或您的 Application Load Balancer 的请求。

  4. 要显示有关请求的更多信息,请选择位于该请求的 IP 地址左侧的箭头。Amazon WAFCloudWatch 将显示以下信息:

    源 IP

    与表中 Source IP 列的值相同的 IP 地址。

    国家/地区

    请求来源国家/地区的双字母国家/地区代码。如果查看者使用 HTTP 代理或应用 Application Load Balancer 发送请求,则为 HTTP 代理或应用程序负载均衡器所在国家/地区的双字母国家/地区代码。

    有关双字母国家/地区代码及其对应的国家/地区名称的列表,请参阅维基百科条目 ISO 3166-1 alpha-2

    方法

    请求的 HTTP 请求方法:GETHEADOPTIONSPUTPOSTPATCHDELETE

    URI

    与表中 URI 列的值相同的 URI。

    Request headers

    请求中的请求标头和标头值。

  5. 要刷新示例请求列表,请选择 Get new samples