通过AWS WAF Rate limit rule来保护API Gateway

通过配置基于 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 应用程序不断变化的需求。

相关推荐
JanelSirry11 分钟前
VMware+RockyLinux+ikuai+docker+cri-docker+k8s+calico BGP网络 自用 实践笔记(底稿)
网络·docker·kubernetes
chuxinweihui30 分钟前
Socket编程UDP
linux·网络·网络协议·udp·通信
北京耐用通信41 分钟前
神秘魔法?耐达讯自动化Modbus TCP 转 Profibus 如何为光伏逆变器编织通信“天网”
网络·人工智能·网络协议·网络安全·自动化·信息与通信
Ronin3051 小时前
【Linux网络】Socket编程:UDP网络编程实现Echo Server
linux·网络·udp·网络通信·socket编程
在路上看风景2 小时前
1.9 IP地址和Mac地址
网络
爱奥尼欧2 小时前
【Linux】网络部分——网络基础(协议与网络传输)
linux·网络·arm开发
捷米特研发一部4 小时前
Modbus TCP转RS485智能网关应用实例:集成工业测温器至云平台的数据采集方案
网络
kimi7044 小时前
HTTP的持续与非持续连接,HTTP报文格式
网络·网络协议·http
知北游天4 小时前
Linux网络:使用UDP实现网络通信(服务端&&客户端)
linux·网络·udp
半桔4 小时前
【网络编程】TCP 粘包处理:手动序列化反序列化与报头封装的完整方案
linux·网络·c++·网络协议·tcp/ip