我们如何解决“无服务器”资源滥用的良好做法?

问题描述 投票:1回答:2

如果我使用AWS API Gateway创建公共端点,整个世界都可以访问它。这将是一个问题,因为终点将触发AWS Lambda函数。如果我们假设我无法查询数据源以确定传入IP地址过去查询资源的频率,那么保护此终点免遭滥用的最佳做法是什么?我还有其他安全选项吗?

我意识到我可以使用reCaptcha但是这仍然会调用AWS Lambda函数,并且如果在短时间内完成一百万次就会产生成本。

amazon-web-services aws-lambda aws-sdk aws-security-group
2个回答
1
投票

保护API网关的一种非常简单的方法

  1. 将AWS Cloudfront与TTL 0配合使用,并将自定义标头从AWS Cloudfront传递到API网关
  2. 将AWS WAF与AWS Cloudfront配合使用

AWS API Gateway还处理一些基本级别的DDOS攻击。

请访问这些博客以保护AWS API Gateway

https://aws.amazon.com/blogs/compute/protecting-your-api-using-amazon-api-gateway-and-aws-waf-part-i/

https://aws.amazon.com/blogs/compute/protecting-your-api-using-amazon-api-gateway-and-aws-waf-part-2/


1
投票

您可能正在寻找限制限制配置或使用计划定义:

为防止您的API被太多请求所淹没,Amazon API Gateway会使用令牌桶算法限制对API的请求,其中令牌会计入请求。具体而言,API Gateway会针对您帐户中的所有API设置稳态速率限制和一系列请求提交。在令牌桶算法中,突发是最大桶大小。

当请求提交超过稳态请求速率和突发限制时,API网关会使超出限制的请求失败并向客户端返回429 Too Many Requests错误响应。捕获此类异常后,客户端可以以速率限制的方式重新提交失败的请求,同时遵守API网关限制限制。

作为API开发人员,您可以为各个API阶段或方法设置限制,以提高帐户中所有API的整体效果。或者,您可以启用使用计划,以将客户端请求提交限制在指定的请求率和配额内。这限制了整体请求提交,因此它们不会显着超过帐户级别限制限制。

参考文献:

https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html

https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-create-usage-plans-with-console.html#api-gateway-usage-plan-create

© www.soinside.com 2019 - 2024. All rights reserved.