如何在 AWS 无服务器中应用基于 ip 的速率限制

How to apply ip based rate limiting in AWS serverless

假设我是 AWS 中的 运行 无服务器 REST API。因此,我在 AWS lambda 中实现了我的 REST API,并且使用 API 网关或应用程序负载均衡器通过 HTTP 公开了 lambda。然后,我想保护我的 API 免受过度使用我的 API 的潜在黑客的攻击。因此,我想通过呼叫者的 IP 地址来限制 API 呼叫频率。

我看到这可以通过使用 rate based rule 的 AWS WAF 来完成。阅读文档时,最低阈值是每 5 分钟调用 2000 次。这大约是每秒 7 次调用。这对我们的标准来说有点太大了。此外,无法按分钟、小时、天等指定限制。因此非常有限。

除了基于 AWS WAF 速率的规则之外,还有其他替代方法来实现基于 IP 的速率限制吗?

AWS 现在为 WAF 引入了新的速率限制。 (5 分钟内 100 个请求)

https://aws.amazon.com/about-aws/whats-new/2019/08/lower-threshold-for-aws-waf-rate-based-rules/

此外,您可以对 API 网关本身应用速率限制:

https://cloudonaut.io/customized-rate-limiting-for-api-gateway-by-path-parameter-query-parameter-and-more/

这不是基于 IP 的,但对于阻止不必要的请求仍然有用。