Cloudflare R2 服務中斷事件:密碼輪換錯誤引發全球故障
Cloudflare近日宣布,其R2對象存儲及相關服務發生了一次持續1小時7分鐘的中斷事件,導致全球范圍內出現100%的寫入失敗和35%的讀取失敗。Cloudflare R2是一項可擴展的、與S3兼容的對象存儲服務,提供免費數據檢索、多區域復制以及與Cloudflare的深度集成。
此次事件發生在UTC時間21:38至22:45之間,據稱是由于憑證輪換錯誤導致R2 Gateway(API前端)失去了對后端存儲的認證訪問權限。具體而言,新憑證被錯誤地部署到了開發環境而非生產環境,而當舊憑證被刪除后,生產服務便失去了有效的憑證。
故障原因與處理過程
問題的根源在于遺漏了一個命令行標志--env production,該標志的作用是將新憑證部署到生產環境的R2 Gateway Worker中,而非開發環境的Worker。
R2 Gateway Worker認證示意圖來源:Cloudflare
由于問題的性質以及Cloudflare服務的工作機制,這一配置錯誤并未立即顯現,導致修復工作進一步延遲。
Cloudflare在事件報告中解釋道:“R2可用性指標的下降是漸進的,并未立即顯現,因為舊憑證刪除的傳播到存儲基礎設施存在延遲。這導致我們未能及時發現該問題。在更新舊憑證后,我們本應明確驗證R2 Gateway服務使用的是哪個令牌來與R2的存儲基礎設施進行認證,而不是僅僅依賴可用性指標。”
盡管此次事件未導致客戶數據丟失或損壞,但仍造成了部分或全部服務的降級,具體包括:
- R2:100%寫入失敗和35%讀取失敗(緩存對象仍可訪問)
- Cache Reserve:由于讀取失敗導致源站流量增加
- Images和Stream:所有上傳失敗,圖片交付率降至25%,Stream降至94%
- Email Security、Vectorize、Log Delivery、Billing、Key Transparency Auditor:不同程度服務降級
改進措施與未來計劃
為防止類似事件再次發生,Cloudflare已改進憑證日志記錄和驗證流程,并強制使用自動化部署工具以避免人為錯誤。
公司還更新了標準操作流程(SOPs),要求對高影響操作(如憑證輪換)進行雙重驗證,并計劃增強健康檢查以更快地檢測根本原因。
值得注意的是,Cloudflare的R2服務在今年2月也曾發生過一次持續1小時的中斷,同樣是由人為錯誤引發。當時,一名操作員在處理關于釣魚URL的濫用報告時,錯誤地關閉了整個R2 Gateway服務,而非僅阻止特定端點。由于缺乏針對高影響操作的保障措施和驗證檢查,導致了此次中斷。為此,Cloudflare計劃并實施了額外的措施,包括改進賬戶配置、加強訪問控制以及對高風險操作實施雙人審批流程。