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

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

测试 Web ACL

注意

这是 Amazon WAF Classic 文档。只有在 2019 年 11 月 Amazon WAF 之前创建了 Amazon WAF 资源(如规则和 Web ACL),并且尚未将其迁移到最新版本时,才应使用此版本。要迁移您的资源,请参阅将您的 Amazon WAF 经典资源迁移到 Amazon WAF

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

为确保您不会意外将 Cl Amazon WAF assic 配置为阻止要允许的 Web 请求或允许要阻止的请求,我们建议您在开始在网站或 Web 应用程序上使用 Web ACL 之前,先对其进行全面测试。

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

向 Web ACL 添加规则时,您可以指定是否希望 Amazon WAF Classic 允许、阻止或计算符合该规则中所有条件的 Web 请求。建议您首先进行以下配置:

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

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

在此配置中, Amazon WAF Classic 会根据第一条规则中的条件检查每个 Web 请求。如果 Web 请求符合该规则中的所有条件,则 Amazon WAF Classic 会增加该规则的计数器。然后, Amazon WAF Classic 会根据下一条规则中的条件检查 Web 请求。如果请求符合该规则中的所有条件,则 Amazon WAF Classic 会增加该规则的计数器。这种情况一直持续到 Amazon WAF Classic 根据您的所有规则中的条件检查请求为止。

在将网页 ACL 中的所有规则配置为对请求进行计数并将网页 ACL 与 Amazon API Gateway API、 CloudFront 分配或应用程序负载均衡器关联后,即可在亚马逊 CloudWatch图表中查看生成的计数。对于 Web ACL 中的每条规则以及 API Gateway CloudFront 或 Application Load Balancer 向 Amazon WAF 经典 Web ACL 转发的所有请求, CloudWatch 允许您:

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

  • 更改数据点之间的间隔

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

注意

Amazon WAF Classic with CloudFront 是一项全球服务,只有当您在中选择美国东部(弗吉尼亚北部)地区时,才可使用指标 Amazon Web Services Management Console。如果您选择其他区域,则 CloudWatch 控制台中将不会显示任何 Amazon WAF 经典指标。

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

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

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

  4. 更改适用的设置:

    Statistic

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

    时间范围

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

    周期

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

    规则

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

    请注意以下几点:

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

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

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

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

  5. (可选)查看有关 API Gateway CloudFront 或 Application Load Balancer 已转发到 Amazon WAF Classic 的各个请求的详细信息。有关更多信息,请参阅 查看 API Gateway CloudFront 或 Application Load Balancer 已转发到 Amazon WAF Classic 的网络请求示例

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

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

查看 API Gateway CloudFront 或 Application Load Balancer 已转发到 Amazon WAF Classic 的网络请求示例

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

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

查看 API Gateway CloudFront 或 Application Load Balancer 已转发到 Amazon WAF Classic 的网络请求示例
  1. 登录 Amazon Web Services Management Console 并打开 Amazon WAF 控制台,网址为 https://console.aws.amazon.com/wafv2/

    如果您在导航窗格中看到 “切换到 Amazon WAF 经典版”,请将其选中。

  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 请求与规则中的所有条件相匹配并且该规则的操作为 C ount 时, Amazon WAF Classic 会继续根据 Web ACL 中的后续规则检查该 Web 请求。在此情况下,一个 Web 请求会在采样的请求列表中出现两次;一次是出于具有 计数 操作的规则,一次是出于后续规则或默认操作。

    操作

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

    时间

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

  4. 要显示有关该请求的更多信息,请选择该请求的 IP 地址左侧的箭头。 Amazon WAF 经典版显示以下信息:

    源 IP

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

    Country

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

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

    方法

    请求的 HTTP 请求方法:GETHEADOPTIONSPUTPOSTPATCHDELETE

    URI

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

    Request headers(请求标头)

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

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