保护未经身份验证的Cloud Run端点

时间:2019-04-16 21:19:52

标签: google-cloud-platform serverless google-cloud-run

当我建立未经身份验证的(公共)Cloud Run端点来托管API时,我有哪些选择可保护该端点免遭发出数十亿个HTTP请求的恶意用户的侵害?

只需10美元,您就可以启动第7层HTTP flood attack,它每秒可以发送25万个请求。假设您的Cloud Run端点可以扩大规模并且所有请求都已处理。仅就调用而言,您将每小时支付$ 360(每百万个请求$ 0.40)。

请注意,如果攻击没有分布在多个Cloud Run端点上,那么您可能会遇到concurrency limitmax instance limit。我还有哪些其他控件?

据我了解,通常使用Cloud ArmorCloud CDN的防御措施已绑定到Global Load Balancer上,而enter image description here不适用于Cloud Run,但适用于GKE上的Cloud Run。

1 个答案:

答案 0 :(得分:2)

对于将IAM Cloud Run Invoker角色设置为allUsers成员类型的Cloud Run服务的未经身份验证的调用,我希望答案与此处提供的答案相同-https://stackoverflow.com/a/49953862/7911479

具体是:

  

Cloud Functions位于Google前端的后面,可缓解和吸收许多第4层及以下层的攻击,例如SYN泛洪,IP片段泛洪,端口耗尽等。

在Cloud Armor支持上获得明确的答案是肯定的。

[编辑]:我已经考虑了很多,并得出以下结论:

如果您希望自己有可能成为此类攻击的受害者,那么我会监控您的常规负载/峰值,并将您帐户的扩展能力设置为刚好超过该负载。通过监控,您可以随着常规流量随着时间的增长而增加流量。这似乎是唯一的好方法。是的,一旦达到帐户上限,您的服务就会关闭,但是在您作为目标的情况下,这似乎是可取的。

我要尝试的一个想法是a protected route with Firebase Authenticationanonymous authentication