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

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

基于速率的规则语句

基于速率的规则跟踪每个源 IP 地址的请求速率,并在速率超过您所设置的限制的 IP 上触发规则操作。您可以使用这种规则来临时阻止来自发送过多请求的 IP 地址的请求。默认情况下,此规则使用 Web 请求来源的 IP 地址,但您可以配置不同的 IP 地址源。

您可以将范围缩小语句添加到规则中,以便仅跟踪和限制与范围缩小语句匹配的请求并对其进行速率限制。

当触发某个 IP 地址的规则操作时,将该操作Amazon WAF应用于来自与规则的 scope-down 语句相匹配的 IP 地址的请求,直到这些请求的速率降至限制以下。操作更改可能需要一两分钟的时间才能生效。

注意

您还可以使用Amazon WAF机器人控制规则组的目标级别进行速率限制。要进行比较,请参见基于速率的规则和有针对性的机器人控制规则中的速率限制选项

您可以设置的最小速率为 100。 Amazon WAF每 30 秒检查一次请求速率,每次对前 5 分钟的请求进行计数。因此,IP 地址有可能在Amazon WAF检测和阻止请求之前,在 30 秒内以过高的速率发送请求。

Amazon WAF 分别跟踪和管理您使用的基于速率的规则每个实例的 Web 请求。例如,如果您在两个 Web ACL 中提供相同的基于速率的规则设置,则两条规则语句中的每一条都表示基于速率规则的单独实例,并通过 Amazon WAF 进行自己的跟踪和管理。如果在规则组内定义基于速率的规则,然后在多个位置使用该规则组,则每次使用都会创建一个单独的基于速率规则的实例,并通过 Amazon WAF 进行自己的跟踪和管理。

每个基于速率的规则实例最多可以对 10,000 个 IP 地址进行速率限制。如果规则实例识别的 IP 地址超过 10,000 个达到速率限制,则它只会限制最大的 10,000 个发件人。

您可以检索基于速率的规则当前限制速率的 IP 地址列表。任何 IP 地址的速率限制请求都是与基于速率的限制规则中的 scope-down 语句相匹配的请求。有关信息,请参阅 列出受基于速率的规则进行速率限制的 IP 地址

缩小基于费率的规则的范围

您可以缩小在基于速率的规则中Amazon WAF跟踪和管理的请求范围。为此,您需要在基于速率的语句中嵌套范围缩小语句。

  • 如果不使用范围缩小语句,则基于速率的规则会按 IP 地址聚合请求,并对来自超出限制的 IP 地址的所有请求执行操作。

  • 使用 scope-down 语句时,该规则仅计算与 scope down 语句匹配的请求,并按 IP 地址汇总这些请求。如果 IP 地址的请求数超过限制,则基于速率的规则仅对来自该 IP 地址且与范围缩减语句匹配的请求执行操作。该规则不检查来自 IP 地址的任何其他请求或对其采取任何操作。

有关范围缩小语句的信息,请参见范围缩小声明

不可嵌套 — 您不能将此语句类型嵌套在其他语句中。您可以将其直接包含在 Web ACL 和规则组中。

(可选)范围缩小语句-此规则类型采用可选的范围缩小语句,以缩小基于速率的语句所跟踪的请求范围。有关更多信息,请参阅范围缩小声明

WCU — 2 加上嵌套语句的任何其他 WCU。

此语句使用以下可选设置:

  • (可选)转发 IP 配置 — 默认情况下,在 Web 请求来源的 IP 地址上Amazon WAF聚合,但您可以改为将规则配置为在 HTTP 标头中使用转发的 IP 地址,例如X-Forwarded-For。 Amazon WAF使用标头中的第一个 IP 地址。使用此配置,您还可以指定后备行为,以应用于指定标头中格式错误的 IP 地址的 Web 请求。备用行为将请求的匹配结果设置为匹配或不匹配。有关更多信息,请参阅转发的 IP 地址

在何处查找此规则声明
  • 控制台上的 Web ACL 中的@@ 规则生成器 — 在 “规则” 下的 “类型” 中,选择基于速率的规则

  • APIRateBasedStatement

示例

如果您想在不影响网站其他部分的流量的情况下限制网站登录页面的请求数量,则可以创建基于费率的规则,其中包含范围缩小语句来匹配对登录页面的请求。例如,scope-down 语句可能是字符串匹配语句,用于检查 URI 路径并匹配以开头的字符串/login

再举一个例子,为了应对美国攻击者最近发出的大量请求,您可以创建一个基于速率的规则,该规则含有以下范围缩小语句:

  • 包含以下第二层嵌套语句的 AND 规则语句:

    • 一个 geo match 语句,用于指定源自美国的请求。

    • 一条字符串匹配语句,用于在User-Agent标头中搜索字符串BadBot