基于速率的规则聚合选项和密钥 - AWS WAFAWS Firewall Manager、和 AWS Shield Advanced

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

基于速率的规则聚合选项和密钥

默认情况下,基于速率的规则会根据请求 IP 地址对请求进行聚合和速率限制。您可以将规则配置为使用其他各种聚合键和键组合。例如,您可以根据转发的 IP 地址、HTTP 方法或查询参数进行聚合。您还可以指定聚合密钥组合,例如 IP 地址和 HTTP 方法,或者两个不同 Cookie 的值。

注意

您在聚合键中指定的所有请求组件都必须包含在 Web 请求中,才能对请求进行评估或由规则对其进行速率限制。

您可以使用以下聚合选项配置基于速率的规则。

  • 源 IP 地址 – 仅使用 Web 请求源向该 IP 地址发送的请求源进行聚合。

    源 IP 地址可能不包含原始客户端的地址。如果 Web 请求通过一个或多个代理或负载均衡器,则其中将包含最后一个代理的地址。

  • 标头中的 IP 地址 – 仅使用 HTTP 标头中的客户端地址进行聚合。这也称为转发 IP 地址。

    使用此配置,您还可以指定一种回退行为,以应用于标头中包含格式错误的 IP 地址的 Web 请求。回退行为将请求的匹配结果设置为匹配或不匹配。如果没有匹配项,则基于速率的规则不计入请求或限制请求的速率。为了匹配,基于速率的规则将该请求与指定标头中包含格式错误 IP 地址的其他请求组合在一起。

    请谨慎使用此选项,因为代理可能会不一致地处理标头,也可以对其进行修改以绕过检查。有关最佳实践和其他信息,请参阅 转发的 IP 地址

  • 全部计数 – 对与规则的范围缩小语句匹配的所有请求进行计数和速率限制。此选项需要范围缩小语句。这通常用于对一组特定的请求进行速率限制,例如带有特定标签的所有请求或来自特定地理区域的所有请求。

  • 自定义键 – 使用一个或多个自定义聚合键进行聚合。要将任一 IP 地址选项与其他聚合键结合使用,请在自定义键下定义它们。

    自定义聚合键是 请求组件选项 中所述的 Web 请求组件选项的子集。

    关键选项如下所示。除非另有说明,否则您可以多次使用一个选项,例如,两个标头或三个标签命名空间。

    • 标签命名空间 – 使用标签命名空间作为聚合键。每个具有指定标签命名空间的不同完全限定标签名称都构成了聚合实例。如果您只使用一个标签命名空间作为自定义键,则每个标签名称都完全定义了一个聚合实例。

      基于速率的规则仅使用通过 Web ACL 中事先评估的规则添加到请求中的标签。

      有关标签命名空间的信息,请参阅 AWS WAF 标签语法和命名要求

    • 标头 – 使用命名的标头作为聚合键。标头中的每个不同值都构成聚合实例。

      标头采用可选的文本转换。请参阅 文本转换选项

    • Cookie – 使用命名的 Cookie 作为聚合密钥。Cookie 中的每个不同值都构成聚合实例。

      Cookie 采用可选的文本转换。请参阅 文本转换选项

    • 查询参数 – 在请求中使用单个查询参数作为聚合键。命名查询参数的每个不同值都构成聚合实例。

      查询参数采用可选的文本转换。请参阅 文本转换选项

    • 查询字符串 – 使用请求中的整个查询字符串作为聚合键。每个不同的查询字符串都构成聚合实例。此类型的键只能使用一次。

      查询字符串采用可选的文本转换。请参阅 文本转换选项

    • URI 路径 – 使用请求中的 URI 路径作为聚合键。每个不同的 URI 路径都构成聚合实例。此类型的键只能使用一次。

      URI 路径采用可选的文本转换。请参阅 文本转换选项

    • HTTP 方法 – 使用请求的 HTTP 方法作为聚合密钥。每个不同的 HTTP 方法都构成聚合实例。此类型的键只能使用一次。

    • IP 地址 – 使用 Web 请求源中的 IP 地址与其他密钥组合使用 Web 请求源中的 IP 地址进行聚合。

      这可能不包含原始客户端的地址。如果 Web 请求通过一个或多个代理或负载均衡器,则其中将包含最后一个代理的地址。

    • 标头中的 IP 地址 – 使用 HTTP 标头中的客户端地址与其他密钥组合进行聚合。这也称为转发 IP 地址。

      请谨慎使用此选项,因为代理可能会对标头进行不一致的处理,并且可以对其进行修改以绕过检查。有关最佳实践和其他信息,请参阅 转发的 IP 地址