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

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

测试 Web ACL

注意

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

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

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

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

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

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

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

在此配置中,Amazon WAFClassic 会根据第一个规则中的条件检查每个 Web 请求。如果 Web 请求与该规则中的所有条件都匹配,Amazon WAFClassic 会增加该规则的计数器。那么Amazon WAFClassic 会根据下一个规则中的条件检查 Web 请求。如果请求与该规则中的所有条件都匹配,Amazon WAFClassic 会增加规则的计数器。这种情况一直持续到Amazon WAFClassic 已根据所有规则中的条件检查完请求进行检查。

在将 Web ACL 中的所有规则配置为对请求计数并将 Web ACL 与一个 Amazon API Gateway API Gateway API 关联后, CloudFront 分配或Application Load Balancer,您可以在 Amazon 中查看结果计数 CloudWatch图表。对于 Web ACL 中的每个规则以及 API Gateway 的所有请求, CloudFront 或者一个Application Load Balancer 转发给Amazon WAFWeb ACL 的Classic CloudWatch 让您可以:

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

  • 更改数据点之间的间隔

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

注意

Amazon WAFClass CloudFront 是一种全局性服务和指标,仅当您选择美国东部(弗吉尼亚州北部)区域中的Amazon Web Services Management Console. 如果您选择其他区域,Amazon WAFClassic 指标将显示在 CloudWatch 控制台。

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

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

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

  4. 更改适用的设置:

    统计数据

    选择符合以下条件的计算 CloudWatch 对数据执行。

    时间范围

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

    周期

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

    规则

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

    请注意以下几点:

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

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

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

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

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

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

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

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

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

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

查看 API Gateway 的 Web 请求的采样; CloudFront 或已将Application Load Balancer 转发给的Amazon WAFClassic
  1. 登录Amazon Web Services Management Console打开Amazon WAF控制台位于https://console.aws.amazon.com/wafv2/.

    如果您看到切换到Amazon WAFClassic在导航窗格中,选择它。

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

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

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

    源 IP

    该请求来自的 IP 地址或 (如果查看者使用 HTTP 代理或Application Load Balancer 发送请求) 代理或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 WAFClassic 收到了来自 API Gateway 的请求, CloudFront 或您的Application Load Balancer。

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

    源 IP

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

    国家/地区

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

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

    方法

    请求的 HTTP 请求方法:GETHEADOPTIONSPUTPOSTPATCHDELETE

    URI

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

    Request headers

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

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