作者 | Renato Losio
译者 | 刘雅梦
策划 | 丁晓昀
由于在处理网络钓鱼报告时的人为错误和管理工具中缺乏充分的验证保障措施,Cloudflare 在 2 月 5 日发生了一起影响其 R2 网关(R2 Gateway)服务的故障。在对一个网络钓鱼 URL 进行常规处置时,R2 服务被意外关闭了,从而导致众多其他 Cloudflare 服务中断或受到干扰,并且持续了一个多小时。
根据 Cloudflare 在第二天发布的故障报告,R2 网关服务由于一名 Cloudflare 员工试图封锁托管在 Cloudflare R2 服务上的一个网络钓鱼网站而被关闭。所有涉及 R2 存储桶和对象的操作,包括上传、下载和元数据操作,都受到了影响。Cloudflare 产品资深总监 Matt Silverlock 和 Javier Castro 解释道:
该故障是由于人为错误和在对托管在 R2 上的网络钓鱼网站进行常规滥用处置过程中缺乏充分的验证保障措施而导致的。对该投诉采取的行动导致对该网站进行了高级产品禁用操作,这导致了负责 R2 API 的生产 R2 网关服务被禁用。
来源:Cloudflare 博客
Cloudflare R2 存储是一种与 S3 兼容的对象存储服务,不收取出口费用,自 2022 年以来一直普遍可用,是 Cloudflare 的核心产品之一。尽管该公司强调此次故障并未导致 R2 内的数据丢失或损坏,但许多服务都受到了级联影响。流(Stream)、图(Images)和矢量化(Vectorize)业务经历了停机或显著的高错误率。与此同时,在主事件窗口期间,只有极小部分(0.002%)的 Workers 和 Pages 项目部署失败。Silverlock 和 Castro 补充道:
在 R2 服务级别上,我们的内部 Prometheus 指标显示,由于 R2 的网关服务停止为所有请求提供服务并终止了正在进行的请求,R2 的 SLO 几乎立即降至 0%(......)由于缺乏直接控制来撤销产品禁用操作,以及需要让具有比常规更低级别访问权限的运维团队参与,补救和恢复受到了抑制。然后,R2 网关服务需要重新部署,以便在我们的边缘网络上重建其路由管道。
来源:Cloudflare 博客
故障报告在该故障发生后的几小时内就发布了。在一个热门的 Reddit 帖子中,许多用户对 Cloudflare 的透明度以及其提供报告的详细程度表示赞赏。用户 JakeSteam 写道:
我真的很欣赏这种详细的逐分钟分析,这有助于准确地突出每分钟延迟存在的原因。Cloudflare 的工作做得一如既往的出色,将危机转换为大家的学习机会。
用户 Miasodasto13 补充道:
必须赞扬他们的透明度。此外,我无法想象作为一名工程师经历这样的故障时的肾上腺素飙升。这种感觉一定就像在拆除一个正在滴答作响的定时炸弹。停机时间每过去一分钟,后果就越严重。
Delivery Hero 的资深软件工程师 Amanbolat Balabekov 则 给出 了不同的观点:
人们可能会认为团队会针对这种情况构建专门的内部工具,但具有讽刺意味的是,Cloudflare 的工具恰好在最需要它的时候失效了。看起来就是,要恢复服务,他们需要使用他们自身的服务,这就产生了这种疯狂的循环依赖关系。
Cloudflare 已经制定了几项补救措施和后续步骤,以解决验证漏洞,并防止将来发生类似的故障。这些措施包括限制对产品禁用操作的访问,并要求临时产品禁用动作需要两方批准。此外,该团队正在扩展滥用检查,以防止意外阻止内部主机名,从而减少系统和人为驱动操作的影响范围。
作者介绍
Renato Losio 作为云架构师、技术主管和云服务专家拥有丰富的经验。目前,他住在柏林,远程担任首席云架构师。他的主要兴趣领域包括云服务和关系数据库。他是 InfoQ 的编辑,也是公认的 AWS 数据英雄。你可以在领英上与他联系。
原文链接:
https://www.infoq.com/news/2025/03/cloudflare-incident-r2/
声明:本文为 InfoQ 翻译,未经许可禁止转载。