amazon-web-services - 限制访问 URL 的用户数
问题描述
有什么方法可以限制使用 AWS 访问站点 url 的用户数量。WAF 检查 IP 地址,如果超过速率限制,则阻止它。
我需要它来自任何 IP,如果完全超过速率限制,它应该重定向到自定义页面,说明已超过限制。
来自 api 网关的速率限制似乎是更好的方法,但是,主页没有调用任何 api。因此,它只能通过 url 进行管理。
解决方案
据我所知,本地不是。我的理解是,您希望对特定 URL 的访问频率有一个全局限制。
您可以在 CloudFront 中使用 Lambda@Edge 函数,并在后端使用 DynamoDB 表。
每次请求都会调用 Lambda 函数。
如果是应该限制的 URL,它UpdateItem
会对 DynamoDB 进行条件调用,并在计数器尚未大于 X(其中 X 是 URL 的最大限制)的条件下尝试将计数器加一。
如果UpdateItem
成功,您可以将请求传递给源。如果调用失败,您知道已超出限制,您可以进行重定向。
这样您就可以使用 DynamoDB 作为中央计数器,它应该足够快并且可以很好地扩展。一旦超过限制,您可以将其缓存在 Lambda@Edge 函数中以避免发出过多请求。
推荐阅读
- c++ - 从 .txt 文件中读取学生信息,然后计算平均值并找到字母等级
- python - Python DB2 SSL 连接
- python - python:正确的方法验证电子邮件是否存在
- r - R:数据框中日期列的最小值和最大值
- python - qtgui 的 Python 导入失败
- java - 获取 Java 扫描器输入而不使用高级扫描器
- amazon-s3 - 从 ec2 实例访问不同区域的 s3 存储桶
- java - 如何在android中为if else设置开关按钮
- angularjs - 如何在 Angular UI Modal 中使用 Datepicker
- apache - 在 SSL 终止之前重定向虚拟主机