防止AWS Lambda泛滥

时间:2017-09-29 12:44:04

标签: amazon-web-services lambda

考虑将我的服务从VPS迁移到AWS Lambda + DynamoDB以将其用作FaaS,因为它基本上是2个API GET调用,从数据库中获取信息并为其提供服务,以及这些API调用的正常使用非常罕见(每周约50次)

但它让我感到奇怪......因为我无法限制每个月我想要拨打多少电话,一些攻击者理论上可以通过每天拨打几千次来淹没我的服务并制作我的AWS账单非常昂贵。设置每个月的限制也不是一个好主意,因为攻击者可能在第一天泛滥,我不会有更多的服务请求。理想的做法是对每个客户的请求率设置限制。

任何人都知道我该如何保护它?我已经看到AWS还提供防火墙,但这对CloudFront来说也是如此。是不是有办法让它直接与Lambda一起使用?

2 个答案:

答案 0 :(得分:2)

您可以将AWS CloudFront置于前端API网关和Lambda中,以便通过CloudFront将流量提供给外部。

此外,通过使用速率基础阻止配置AWS WAF,可以阻止攻击者高频率访问。

但是,在API Gateway和Lambda之前配置AWS CloudFront时,您还需要限制对API Gateway的直接访问(因为默认情况下API Gateway可以公开访问)。这可以通过以下方式实现。

  • 为API网关启用API密钥,并在Origin中使用AWS CloudFront标头中的API密钥。
  • 使用令牌标头并使用自定义授权器Lambda函数进行验证。

答案 1 :(得分:0)

有两种选择:

  1. 将API网关放在Lambda之前,以便API请求 必须经过身份验证。 API Gateway还具有内置限制器和其他有用功能。

  2. 直接调用Lambda,这将需要客户端 调用Lambda以获得相关的IAM凭证。