如何防止针对AWS Cloudfront的拒绝钱包攻击?
这是我的具体情况:我有一个Cloudfront发行版,其中Lambda@Edge函数为我的应用程序提供网页和API请求。我需要根据用户的IP地址对发送到Cloudfront的请求进行速率限制。如果没有任何形式的速率限制,恶意用户有可能向分发发出数百万个缓慢的请求,这些请求不会被AWS的DDOS保护阻止,这将导致大量费用。这一点在这里尤其重要,因为Lambda@Edge函数的成本是普通Lambda函数的3倍,而且没有免费的层。
为了实现这一点,使用AWS WAF似乎很实用。但是,我使用recently found out对所有传入请求收费,而不管它们是否被阻止。因此,拒绝钱包攻击在这里仍然是可能的。
有没有我可以在这里实现的不涉及AWS WAF的方法或一般策略?
限制必须非常严格。即使每月为恶意请求支付50美元也会被认为太高了。
发布于 2020-01-17 00:46:45
当你使用云前端时,AWS Shield Standard是免费的,它会自动防御常见的DDoS攻击。Source
你必须决定哪个对你来说是优先的,是你的服务中断了,还是你的账单超出了你的预算?如果是第一个,你可以使用网站管家和AWS Shield Advanced。
如果是第二个,你可以实现一个请求节流方法。例如,您可以利用EC2实例的传入请求是免费的。因此,您可以在一个空闲层EC2实例中实现一个队列,该队列将请求转发到您的Lambda,但当速率高于定义的阈值时会丢弃请求。请记住,从EC2到您的Lambda Edge的传出请求是收费的。
或者,您可以在Lambda Edge之前实现另一个Lambda函数,以跟踪哪个IP地址发送了多少请求。如果超过阈值,则使用HTTP 403进行响应,并将其缓存在Cloudfront中。那么来自该IP地址的下一个请求将无法到达您的Lambda。但同样,请记住,您将为这个额外的Lambda收费。
发布于 2019-12-12 00:57:31
AWS Shield Advanced包括DDoS成本保护,可防止因DDoS攻击导致受保护的亚马逊EC2、弹性负载平衡、亚马逊CloudFront、亚马逊全球加速器或亚马逊路由53上的使用量激增而增加费用。如果任何AWS Shield Advanced受保护资源因应DDoS攻击而扩展,您可以通过常规AWS支持渠道申请积分。
请注意,在撰写本文时,的this service involves a monthly fee为每个帐户3,000,外加每GB 0.050美元起的数据传输费。
https://stackoverflow.com/questions/59290512
复制相似问题