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

Protect an unauthenticated Cloud Run endpoint

当我创建一个未经身份验证的 (public) 云 运行 端点来托管 API 时,我有哪些选择可以保护此端点免受恶意用户发出数十亿个 HTTP 请求?

只需 10 美元,您就可以启动第 7 层 HTTP flood attack,它每秒可以发送 25 万个请求。假设您的 Cloud 运行 端点扩展并且所有请求都得到处理。仅对于调用,您将支付 360 美元/小时(每百万请求 0.40 美元)。

请注意,如果攻击未分布在多个云 运行 端点上,您可能会遇到 concurrency limit and a max instance limit。我还有哪些其他控件?

据我了解,Cloud Armor and Cloud CDN are bound to the Global Load Balancer 的常用防御措施不适用于 Cloud 运行,但可用于 GKE 上的 Cloud 运行。

对于使用 IAM 云 运行 调用者角色设置为 allUsers 成员类型的云 运行 服务的未经身份验证的调用,我希望答案与此处提供的答案相同 -

具体来说:

Cloud Functions sits behind the Google Front End which mitigates and absorbs many Layer 4 and below attacks, such as SYN floods, IP fragment floods, port exhaustion, etc.

如果能得到关于 Cloud Armor 支持的明确 Y/N 答案当然很棒。

[编辑]:我一直在思考这个问题并得出以下结论:

如果您预计自己可能会成为此类攻击的受害者,那么我会监控您的常规 load/peak 并将您的帐户能力设置为刚好超过该负载。随着您的常规流量随着时间的推移而增长,监控将使您能够增加这一点。这似乎是唯一的好方法。是的,一旦您达到帐户限制,您的服务就会中断,但在您成为目标的情况下,这似乎更可取。

我尚未尝试的一个想法是 a protected route with Firebase Authentication and anonymous authentication