首页 > 解决方案 > 限制访问 URL 的用户数

问题描述

有什么方法可以限制使用 AWS 访问站点 url 的用户数量。WAF 检查 IP 地址,如果超过速率限制,则阻止它。

我需要它来自任何 IP,如果完全超过速率限制,它应该重定向到自定义页面,说明已超过限制。

来自 api 网关的速率限制似乎是更好的方法,但是,主页没有调用任何 api。因此,它只能通过 url 进行管理。

标签: amazon-web-servicesamazon-eksamazon-ecraws-application-load-balancer

解决方案


据我所知,本地不是。我的理解是,您希望对特定 URL 的访问频率有一个全局限制。

您可以在 CloudFront 中使用 Lambda@Edge 函数,并在后端使用 DynamoDB 表。

每次请求都会调用 Lambda 函数。

如果是应该限制的 URL,它UpdateItem会对 DynamoDB 进行条件调用,并在计数器尚未大于 X(其中 X 是 URL 的最大限制)的条件下尝试将计数器加一。

如果UpdateItem成功,您可以将请求传递给源。如果调用失败,您知道已超出限制,您可以进行重定向。

这样您就可以使用 DynamoDB 作为中央计数器,它应该足够快并且可以很好地扩展。一旦超过限制,您可以将其缓存在 Lambda@Edge 函数中以避免发出过多请求。


推荐阅读