我想保护我的Firebase可调用云函数免受垃圾邮件滥用(对它们的大量调用(。根据我在那里读到的,没有内置的解决方案可以做到这一点。最近,Cloud Armor出现了,我会检查一下。
我的问题是,我如何使用保护背后的可调用云函数(无论是什么,CloudFlare,Cloud Armor…(。可调用是指直接从SDK调用,我无法提供直接的URL。我必须";转换";如果我希望它们得到保护,我会自己完成这项工作吗?必须有一个解决方案,来自Firebase的人没有建立一个如此有趣的工具来让它在没有解决方案的情况下被垃圾邮件。
我知道我可以使用配额,我不是在谈论可伸缩性。即使我设置了配额,我得到的唯一结果就是一个不工作的应用程序,因为真正的用户会被放入队列。
谢谢
编辑:
经过进一步调查,IAM设置中的配额似乎只考虑对云函数API的调用,该API向开发人员规定了创建、删除和列出函数。
我又读了一点书,发现了这个。该文件概述了谷歌防御攻击的推荐方法,尤其是最大实例化选项
gcloud functions deploy FUNCTION_NAME --max-instances 10 FLAGS...
这将限制可以调用的并发实例的最大数量,从而导致某种形式的速率限制。
然而,这并不是你想要的。您希望以可扩展和可配置的方式完全控制应用程序的速率限制。
为此,谷歌建议使用Redis,这里介绍了如何让Redis使用云功能和内存存储的完整教程。
我自己没有使用过Redis,但从阅读教程来看,它听起来正是你所需要的。
很抱歉没有仔细阅读文档,希望这能帮助解决您的问题。
原始答案
谷歌云功能的保护机制并不明显,但有点像这样:
我将引用这篇文章的答案
云功能位于谷歌前端之后,可以缓解和吸收许多第4层及以下的攻击,如SYN洪水、IP碎片洪水、端口耗尽等。
那些上过大学或学习过通用计算的人会将层识别为通信模型的不同部分(例如,层1是物理层,层2是数据链路,等等(。
你可以在这里读一点。
所以,最重要的是,默认情况下,您可以免受大多数攻击。但实施利率限制和配额是个好主意,以防万一。
你可能担心的另一种攻击是涓滴攻击,即许多计算机一遍又一遍地缓慢地ping你的后端。
假设攻击者有1000台计算机可供他使用,并每秒ping你的后端一次(假设你的函数不调用任何其他函数(。
现在假设谷歌的安全性没有抓住它,云功能的成本是0.0000004/调用,所以1000万次调用将花费4美元。
为了达到1000万次调用,需要10000秒(约167分钟或约2.7小时(。
这种情况不太可能发生,因为4/2.7美元=1.48美元/小时,他在浪费你。相信我,还有更有利可图的漏洞;(
刚开始的时候你应该很好,但如果你到了一个大网站的阶段,并且比现在更担心攻击,那么云盔甲绝对是一个不错的选择。
Cloud armor允许您根据IP、地理位置和您在L3-L7级别上指定的其他自定义匹配参数来过滤流量。但根据您的应用程序,这可能有点过头了。
你可以在这里读到更多关于它的信息。
祝好运
卑鄙的B