【问题标题】:AWS Cloudfront Prevent Denial of Wallet?AWS Cloudfront 防止钱包被拒绝?
【发布时间】:2019-12-11 16:49:56
【问题描述】:

如何防止针对 AWS Cloudfront 的钱包拒绝攻击?

这是我的具体情况:我有一个 Cloudfront 发行版,其中 Lambda@Edge 函数为我的应用程序提供网页和 API 请求。我需要根据用户的 IP 地址对向 Cloudfront 发出的请求进行速率限制。如果没有任何类型的速率限制,恶意用户可能会向分发发出数百万个缓慢的请求,这些请求不会被 AWS 的 DDOS 保护阻止,并且会导致巨额费用。这一点在这里尤为重要,因为 Lambda@Edge 函数的成本是普通 Lambda 函数的 3 倍,而且没有免费套餐。

使用 AWS WAF 来实现这一点似乎很实用。但是,我recently found out WAF 对所有传入请求收费,无论它们是否被阻止。所以这里仍然可能发生拒绝钱包攻击。

我可以在这里实施不涉及 AWS WAF 的方法或一般策略吗?

限制必须非常严格。即使每月为恶意请求支付 50 美元也被认为太高了。

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-cloudfront ddos


    【解决方案1】:

    AWS Shield Standard 在您使用 Cloudfront 时是免费的,它会自动防御常见的 DDoS 攻击。 Source

    如果您想使用 WAF 来收紧对您的 Lambda 的请求,您可以在 Cloudfront 中为 HTTP 403 响应设置缓存,这样攻击者就不会让他们的请求通过 Cloudfront 缓存。

    您必须决定哪个是您的优先事项,您的服务下降还是您的账单超出了您的预算?如果是第一个,可以使用WAF和AWS Shield Advanced

    如果是第二种,可以实现请求限制方法。例如,您可以利用对 EC2 实例的传入请求是免费的。因此,您可以在免费层 EC2 实例中实现一个队列,将请求转发到您的 Lambda,但在速率高于定义的阈值时丢弃请求。请记住,您需要为从 EC2 到 Lambda Edge 的传出请求付费。

    或者,您可以在 Lambda Edge 之前实施另一个 Lambda 函数,以跟踪哪个 IP 地址发送了多少请求。如果超过阈值,则使用 HTTP 403 进行响应并将其缓存在 Cloudfront 中。然后来自该 IP 地址的下一个请求将不会到达您的 Lambda。但同样,请记住,您将为此额外的 Lambda 付费。

    最后的手段是创建一个计费警报,在每月费用达到 50 美元时通知您,以便您可以在费用上涨之前停止。

    【讨论】:

      【解决方案2】:

      AWS Shield Advanced 包括 DDoS 成本保护,防止因 DDoS 攻击导致受保护的 Amazon EC2、Elastic Load Balancing (ELB)、Amazon CloudFront、AWS Global Accelerator 或 Amazon Route 53 上的使用量激增而导致的扩展费用. 如果任何 AWS Shield Advanced 受保护资源扩展以响应 DDoS 攻击,您可以通过常规 AWS Support 渠道申请积分

      请注意,在撰写本文时,this service involves a monthly fee 每个帐户需支付 3,000 美元,外加每 GB 0.050 美元起的数据传输费用。

      【讨论】:

        猜你喜欢
        • 2019-08-30
        • 2019-05-16
        • 2021-03-06
        • 1970-01-01
        • 2022-01-11
        • 2017-10-03
        • 2021-09-07
        • 1970-01-01
        • 2021-06-26
        相关资源
        最近更新 更多