介绍 AWS WAF 的全新控制台体验
现在,您可以使用更新后的体验访问控制台中任意位置的 AWS WAF 功能。有关更多详细信息,请参阅 使用更新的控制台体验。
在 AWS WAF 中聚合基于速率的规则
本节介绍了用于聚合请求的选项。
默认情况下,基于速率的规则会根据请求 IP 地址对请求进行聚合和速率限制。您可以将规则配置为使用其他各种聚合键和键组合。例如,您可以根据转发 IP 地址、HTTP 方法或查询参数进行聚合。您还可以指定聚合键组合,例如 IP 地址和 HTTP 方法,也可以指定两个不同 Cookie 的值。
注意
您在聚合键中指定的所有请求组件都必须包含在 web 请求中,才能对请求进行评估或由规则对其进行速率限制。
您可以使用以下聚合选项配置基于速率的规则。
源 IP 地址:仅使用 web 请求源向该 IP 地址发送的请求源进行聚合。
源 IP 地址可能不包含原始客户端的地址。如果 web 请求通过一个或多个代理或负载均衡器,则其中将包含最后一个代理的地址。
标头中的 IP 地址:仅使用 HTTP 标头中的客户端地址进行聚合。这也称为转发 IP 地址。
使用此配置,您还可以指定一种回退行为,以应用于标头中包含格式错误的 IP 地址的 web 请求。回退行为将请求的匹配结果设置为匹配或不匹配。如果没有匹配项,则基于速率的规则不计入请求或限制请求的速率。为了匹配,基于速率的规则将该请求与指定标头中包含格式错误 IP 地址的其他请求组合在一起。
请谨慎使用此选项,因为代理可能会对标头进行不一致的处理,并且也可以对其进行修改以绕过检查。有关最佳实践和其他信息,请参阅 在 AWS WAF 中使用转发 IP 地址。
-
ASN:使用与源 IP 地址关联的自治系统编号(ASN)作为聚合密钥进行聚合。这可能不是原始客户端的地址。如果 web 请求通过一个或多个代理或负载均衡器,这将包含最后一个代理的地址。
如果 AWS WAF 无法从 IP 地址获取 ASN,则会将 ASN 计为 ASN 0。如果不想对未映射的 ASN 应用速率限制,则可以创建范围缩小的规则,将 ASN 0 的请求排除在外。
-
标头中的 ASN:使用 HTTP 标头中与客户端 IP 地址相关联的 ASN 进行聚合。这也称为转发 IP 地址。使用此配置,您还可以指定一种回退行为,应用于具有无效或格式不正确 IP 地址的 web 请求。回退行为将请求的匹配结果设置为匹配或不匹配。如果您在转发的 IP 配置中将回退行为设置为匹配,AWS WAF 会将无效的 IP 地址视作匹配值。这允许 AWS WAF 继续评估基于速率规则的复合密钥的任何剩余部分。如果没有匹配项,则基于速率的规则不计入请求或限制请求的速率。
请谨慎使用此选项,因为代理可能会对标头进行不一致的处理,并且可以对其进行修改以绕过检查。有关最佳实践和其他信息,请参阅 在 AWS WAF 中使用转发 IP 地址。
全部计数:对与规则的范围缩小语句匹配的所有请求进行计数和速率限制。此选项需要范围缩小语句。这通常用于对一组特定的请求进行速率限制,例如带有特定标签的所有请求或来自特定地理区域的所有请求。
自定义键:使用一个或多个自定义聚合键进行聚合。要将任一 IP 地址选项与其他聚合键结合使用,请在自定义键下定义它们。
自定义聚合键是 AWS WAF 中的请求组件 中所述的 web 请求组件选项的子集。
关键选项如下所示。除非另有说明,否则您可以多次使用一个选项,例如,两个标头或三个标签命名空间。
标签命名空间:使用标签命名空间作为聚合键。每个具有指定标签命名空间的不同完全限定标签名称都构成了聚合实例。如果您只使用一个标签命名空间作为自定义键,则每个标签名称都完全定义了一个聚合实例。
基于速率的规则仅使用通过保护包(web ACL)中事先评估的规则添加到请求中的标签。
有关标签命名空间的信息,请参阅 AWS WAF 中的标签语法和命名要求。
标头:使用命名的标头作为聚合键。标头中的每个不同值都构成聚合实例。
标头采用可选的文本转换。请参阅 在 AWS WAF 中使用文本转换。
Cookie – 使用命名的 Cookie 作为聚合密钥。Cookie 中的每个不同值都构成聚合实例。
Cookie 采用可选的文本转换。请参阅 在 AWS WAF 中使用文本转换。
查询参数:在请求中使用单个查询参数作为聚合键。命名查询参数的每个不同值都构成聚合实例。
查询参数采用可选的文本转换。请参阅 在 AWS WAF 中使用文本转换。
查询字符串:使用请求中的整个查询字符串作为聚合键。每个不同的查询字符串都构成聚合实例。此类型的键只能使用一次。
查询字符串采用可选的文本转换。请参阅 在 AWS WAF 中使用文本转换。
-
URI 路径:使用请求中的 URI 路径作为聚合键。每个不同的 URI 路径都构成聚合实例。此类型的键只能使用一次。
URI 路径采用可选的文本转换。请参阅 在 AWS WAF 中使用文本转换。
-
JA3 指纹:使用请求中的 JA3 指纹作为聚合密钥。每个不同的 JA3 指纹都构成聚合实例。此类型的键只能使用一次。
-
JA4 指纹:使用请求中的 JA4 指纹作为聚合密钥。每个不同的 JA4 指纹都构成聚合实例。此类型的键只能使用一次。
HTTP 方法:使用请求的 HTTP 方法作为聚合密钥。每个不同的 HTTP 方法都构成聚合实例。此类型的键只能使用一次。
IP 地址:使用 web 请求源中的 IP 地址与其他密钥组合使用 web 请求源中的 IP 地址进行聚合。
这可能不包含原始客户端的地址。如果 web 请求通过一个或多个代理或负载均衡器,则其中将包含最后一个代理的地址。
标头中的 IP 地址:使用 HTTP 标头中的客户端地址与其他密钥组合进行聚合。这也称为转发 IP 地址。
请谨慎使用此选项,因为代理可能会对标头进行不一致的处理,并且可以对其进行修改以绕过检查。有关最佳实践和其他信息,请参阅 在 AWS WAF 中使用转发 IP 地址。