问题描述
我已经使用 Cloud Functions 一段时间了,到目前为止它一直很棒 - 不过,似乎没有内置方法来设置函数调用频率的限制。
我已将最大 # 个实例设置为一个合理的数字,但对于 # 个调用,Firebase 并没有真正提供设置此值的方法。使用限制或减慢请求的 Node 包,结合有限的最大实例是否足以减慢发生的攻击?
还知道存在 Cloud Endpoints - 我对 OpenAPI 还很陌生,它似乎应该以额外的成本与 Functions 集成...但想知道这是否也是一个好的解决方案。
对这一切都很陌生,所以感谢您的帮助!
解决方法
如果您只使用 Google Cloud 服务(我不知道其他云提供商提供的解决您问题的方法,甚至不知道现有框架),您可以在不同层限制不需要的访问
首先,Google Front End (GFE) 保护所有 Google 资源(Gmail、地图、云、您的云功能等),尤其是针对第 3 层和第 4 层常见 DDoS 攻击。此外,该层负责TLS通信的建立,也会丢弃不良连接。
- 激活“私密模式”。该模式禁止未经身份验证的请求。有了这个功能,谷歌前端会检查是否
- 请求标头中存在 id_token
- 如果令牌有效(签名正确,未过期)
- 如果令牌的身份被授权访问资源。
-> 只有有效的请求才能到达您的服务,您只需为此付费。所有不良流量均由 Google 处理并由 Google“付费”。
-
使用已激活 Cloud Armor 的负载均衡器。如果需要,您还可以自定义 WAF 策略。得益于 serverless NEG feature
-
如果您使用 API 密钥,则可以使用 Cloud Endpoint(或 API Gateway,Cloud Endpoint 的托管版本),您可以在其中强制执行每个 API 密钥的速率限制。我写了an article on this (Cloud Endpoinr + ESPv2)