测试 Web ACL - AWS WAF、AWS Firewall Manager 和 AWS Shield Advanced

测试 Web ACL

警告

AWS WAF Classic 支持将于 2025 年 9 月 30 日结束。

注意

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

有关 AWS WAF 的最新版本,请参阅 AWS WAF

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

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

在向 Web ACL 添加规则时,需指定您希望 AWS WAF Classic 对与该规则中所有条件匹配的 Web 请求进行允许、阻止还是计数。建议您首先进行以下配置:

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

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

在此配置中,AWS WAF Classic 会根据第一个规则中的条件检查每个 Web 请求。如果 Web 请求与该规则中的所有条件匹配,AWS WAF Classic 将使该规则的计数器递增。然后,AWS WAF Classic 将根据下一个规则中的条件检查 Web 请求。如果请求与该规则中的所有条件都匹配,AWS WAF Classic 将使该规则的计数器递增。此操作将一直继续,直到 AWS WAF Classic 已根据所有规则中的条件检查完请求为止。

在将 Web ACL 中的所有规则配置为对请求计数并将 Web ACL 与 Amazon API Gateway API、CloudFront 分配或应用程序负载均衡器关联后,便可在 Amazon CloudWatch 图表中查看生成的计数。对于 Web ACL 中的每个规则以及 API Gateway、CloudFront 或应用程序负载均衡器为 Web ACL 转发给 AWS WAF Classic 的所有请求,CloudWatch 允许您:

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

  • 更改数据点之间的间隔

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

注意

AWS WAF Classic with CloudFront 是一个全局性服务和指标,仅当您在 AWS Management Console 中选择美国东部(弗吉尼亚州北部)区域时才可用。如果您选择其他区域,CloudWatch 控制台中将不显示任何 AWS WAF Classic 指标。

查看 Web ACL 中规则的数据
  1. 登录 AWS Management Console 并打开 CloudWatch 控制台,网址为 https://console.aws.amazon.com/cloudwatch/

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

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

  4. 更改适用的设置:

    Statistic

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

    时间范围

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

    周期

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

    规则

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

    请注意以下几点:

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

    • 如果您将多个 API Gateway API、CloudFront 分配或应用程序负载均衡器与一个 Web ACL 关联,CloudWatch 数据将包含与该 Web ACL 关联的所有分配的所有请求。

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

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

  5. (可选)查看有关 API Gateway、CloudFront 或应用程序负载均衡器已转发到 AWS WAF Classic 的单个请求的详细信息。有关更多信息,请参阅 查看 API Gateway、CloudFront 或应用程序负载均衡器已转发到 AWS WAF Classic 的网络请求的示例

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

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

查看 API Gateway、CloudFront 或应用程序负载均衡器已转发到 AWS WAF Classic 的网络请求的示例

在 AWS WAF 控制台中,您可以查看 API Gateway、CloudFront 或应用程序负载均衡器已转发给 AWS WAF Classic 进行检查的请求的采样。对于每个示例请求,您可以查看关于该请求的详细数据,例如来源 IP 地址和请求中包含的标头。您还可以查看请求匹配哪个规则,以及该规则配置为允许还是阻止请求。

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

查看 API Gateway、CloudFront 或应用程序负载均衡器已转发到 AWS WAF Classic 的网络请求的示例
  1. 登录 AWS Management Console,然后打开 AWS WAF 控制台,网址为:https://console.aws.amazon.com/wafv2/

    如果您在导航窗格中看到切换到 AWS WAF Classic,请将其选中。

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

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

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

    源 IP

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

    URI

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

    Matches rule

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

    请注意,当 Web 请求匹配一个规则中的所有条件并且该规则的操作是 计数 时,AWS WAF Classic 继续基于 Web ACL 中的后续规则检查该 Web 请求。在此情况下,一个 Web 请求会在采样的请求列表中出现两次;一次是出于具有 计数 操作的规则,一次是出于后续规则或默认操作。

    操作

    指示相应规则的操作是 允许区块 还是 计数

    时间

    AWS WAF Classic 收到来自 API Gateway、CloudFront 或您的应用程序负载均衡器请求的时间。

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

    源 IP

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

    Country

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

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

    方法

    请求的 HTTP 请求方法:GETHEADOPTIONSPUTPOSTPATCHDELETE

    URI

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

    Request headers(请求标头)

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

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