你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

应用程序网关上的 Web 应用程序防火墙的速率限制是什么?

应用程序网关上的 Web 应用程序防火墙的速率限制允许检测和阻止流向应用程序的异常高级别流量。 通过在应用程序网关 WAF_v2 上使用速率限制,可以缓解多种类型的拒绝服务攻击,防止意外错误配置为在短时间内发送大量请求的客户端,或者控制特定地区到站点的流量。

速率限制策略

使用策略中的自定义 WAF 规则配置速率限制。

注意

仅运行最新 WAF 引擎的 Web 应用程序防火墙支持速率限制规则。 为了确保使用最新引擎,请为默认规则集选择 CRS 3.2。

配置速率限制规则时,必须指定阈值:指定时间段内允许的请求数。 应用程序网关 WAF_v2 上的速率限制使用滑动窗口算法来确定流量何时违反阈值并需要删除。 在违反规则阈值的第一个时段,会删除与速率限制规则匹配的任何多余流量。 从第二个时段开始,允许在配置的时段内达到阈值的流量,从而产生节流效应。

还必须指定匹配条件,其告知 WAF 何时激活速率限制。 可以配置多个速率限制规则,这些规则与策略中的不同变量和路径相匹配。

应用程序网关 WAF_v2 还引入了必须配置的 GroupByUserSessionGroupByUserSession 指定如何为匹配的速率限制规则对请求进行分组和计数。

以下三个 GroupByVariables 当前可用:

  • ClientAddr – 这是默认设置,表示每个速率限制阈值和缓解独立应用于每个唯一源 IP 地址。
  • GeoLocation - 流量根据客户端 IP 地址上的地理位置匹配按地理位置分组。 因此,对于速率限制规则,来自同一地理位置的流量被分组在一起。
  • None - 所有流量都被分组在一起,并根据速率限制规则的阈值进行计数。 当违反阈值时,操作会对与规则匹配的所有流量触发,并且不会为每个客户端 IP 地址或地理维护独立的计数器。 建议在特定匹配条件下使用 None,例如登录页面或可疑用户代理列表。

速率限制详细信息

所附于 Web 应用程序防火墙策略的每个终结点独立计算和跟踪配置的速率限制阈值。 例如,连接到五个不同侦听器的单一 WAF 策略为每个侦听器维护独立的计数器和阈值强制。

速率限制阈值并不总是严格按照定义强制,因此它不应该用于应用程序流量的细粒度控制。 相反,建议使用它来缓解异常流量率并保持应用程序可用性。

滑动窗口算法为超过阈值的第一个时段阻止所有匹配的流量,然后在未来的时段中限制流量。 使用 GeoLocationNone 作为 GroupByVariables 来定义用于配置宽匹配规则的阈值时请谨慎。 配置不正确的阈值可能会导致匹配流量频繁出现短暂故障。

下一步