通过配置基于 URL 的速率限制规则,使用 AWS WAF 增强 Web 应用程序的安全性。此主动措施有助于防止潜在的滥用或恶意流量,从而确保最佳性能并保护您的 Web 资产。
速率限制有助于保护您的 Web 应用程序免受过多流量和潜在 DDoS 攻击。
本运行手册将指导您完成基于 URL 模式在 AWS Web 应用程序防火墙 (WAF) 上创建速率限制规则的过程。
前提条件:创建一个API Gateway和lambda 函数。
步骤 1:登录 AWS 管理控制台
转到 https://aws.amazon.com/ 并使用适当的凭据登录 AWS 管理控制台。
步骤 2:导航到 AWS WAF
在 AWS 管理控制台中,在"查找服务"搜索栏中搜索"WAF"。
单击"AWS WAF 和 Shield"以访问 AWS WAF 仪表板。
步骤 3:创建 Web ACL 规则
选择资源类型:地区性资源
选择你所在的区域,输入有意义名字和描述信息。

在要关联的资源下面点击添加资源

选择API Gateway和关联的Lambda。

步骤 4:配置速率限制规则
为"规则类型"选择"规则生成器"。
输入规则名称(例如"rate-rule1")。
在"规则生成器"窗口中,选择"类型"下的"基于速率的规则"。

配置基于速率的规则设置:
将"速率限制"设置为指定时间段内允许的最大请求数(例如,每 1分钟10 个请求)。
在"请求聚合"下,选择"源 IP 地址"。
速率限制是满足您提供的条件的1分钟内允许的最大请求数。

默认情况下,基于速率的规则会根据请求 IP 地址聚合和限制请求的速率。您可以配置规则以使用各种其他聚合键和键组合。
步骤 5:定义阻止请求的操作
在操作下选择"阻止"。这将阻止与上面配置的语句匹配的任何 IP。
"操作"下有 5 个选项可供选择:
允许 --- AWS WAF 允许将请求转发到受保护的 AWS 资源进行处理和响应。
阻止 --- AWS WAF 阻止请求。
计数 --- AWS WAF 计算请求,但不确定是否允许或阻止它。
CAPTCHA 和质询 --- AWS WAF 使用 CAPTCHA 谜题和静默质询来验证请求不是来自机器人,AWS WAF 使用令牌来跟踪最近成功的客户端响应。

第 6 步:将规则添加到 Web ACL
配置速率限制规则及其条件后,单击"添加规则"将其包含在 Web ACL 中。

第 7 步:监控和微调速率限制规则
监控 AWS WAF 指标和日志以确保速率限制规则按预期工作。
现在我们来访问API Gateway验证一下:
运行下面的shell 命令来访问API Gateway
for i in {1..100}; do curl 'https://o2l2m68szg.execute-api.ap-southeast-2.amazonaws.com/stage/helloworld?greeter=John'; done
可以看到前面的访问正常返回,后面的部分被block了。
恭喜!您已成功根据 URL 模式在 AWS WAF 上创建速率限制规则,以保护您的 Web 应用程序免受过多流量和潜在 DDoS 攻击。请记住定期监控您的 AWS WAF 配置并根据需要进行调整,以满足您的 Web 应用程序不断变化的需求。