如何限制Elastic Load Balancer单源每分钟请求数?AWS WAF规则配置
使用AWS WAF限制单个来源每分钟向ELB发送的请求数
前提准备
确保你的Elastic Load Balancer已经关联了AWS WAF的Web ACL(如果还没关联,先在WAF控制台创建Web ACL并绑定到目标ELB)。
创建速率限制规则步骤
- 登录AWS WAF控制台,打开已关联ELB的Web ACL详情页。
- 点击Add rule,选择Add my own rules and rule groups。
- 在规则配置界面:
- 输入规则名称,例如
Per-Source-Minute-Limit - 规则类型选择Rate-based rule
- 速率设置:选择
Requests per minute,填入你想要限制的请求数值(比如50、100) - 匹配维度选IP address,这样就会基于单个来源IP计算请求速率
- (可选)如果你的ELB配置了转发客户端IP的X-Forwarded-For头部,确认WAF的IP获取方式是正确的(默认会自动识别ELB场景的客户端IP)
- 输入规则名称,例如
- 设置触发后的动作:
- 可选
Count(仅统计不拦截,适合先测试规则是否生效)、Block(直接拦截超额请求)或Captcha(要求验证后放行)
- 可选
- 完成规则配置后,将其添加到Web ACL的规则列表,调整优先级(如果有其他规则,确保速率规则的优先级符合你的需求),最后保存Web ACL更改。
注意事项
- 测试优先:建议先使用
Count模式运行1-2小时,通过CloudWatch查看该规则的计数指标,确认规则正确识别了超额请求后,再切换到Block动作。 - 例外规则:如果需要让特定IP/IP段不受限制,可以在同一个Web ACL中添加Allow类型的规则,优先级设为高于速率规则,并指定例外的IP范围。
- 滑动窗口逻辑:AWS WAF的速率限制基于滑动窗口计算,不是严格按每分钟整点重置,能更好地应对突发流量峰值。
内容的提问来源于stack exchange,提问作者pankaj
相关产品推荐
相关产品推荐

