DNS故障導致微軟Azure雲服務的數據庫被刪除
微軟Azure雲的用戶發現在周二的大規模故障中丟失了數據庫記錄。報告稱,DNS故障和自動腳本兩者正是事故的罪魁禍首。微軟在Azure中刪除了幾個透明數據加密(TDE, Transparent Data Encryption)的Azure SQL數據庫,其中包含客戶的實時信息。TDE數據庫會動態加密它們存儲的信息,並在客戶訪問時對其進行解密。
雖然加密這些表有不同的方法,但許多Azure 用戶將自己的加密密鑰存儲在微軟的Key Vault 加密密鑰管理系統中,這個過程稱為自帶密鑰(BYOK, Bring Your Own Key)。
據微軟在一封發給客戶的信函中解釋說,這些刪除操作是自動執行的,由一個腳本觸發,原因在於該腳本在密鑰保險庫中無法再訪問相應的密鑰時會刪除TDE 表。
意外刪庫後,微軟不得不利用5分鐘前的快照備份恢復了客戶數據,但這意味著5分鐘內客戶的交易事務、產品訂單以及對數據存儲系統的其他更新統統丟失,需要手動進行處理。在這種情況下,客戶提出必須要微軟提供支持的工單,並要求將數據庫副本重命名為原始數據庫。
微軟則一直在竭力解釋:“如果TDE 加密的SQL數據庫因無法繞過防火牆而訪問不了密鑰保險櫃,數據庫將在24小時內被刪除。”
作為補償,微軟表示會免費提供數月的數據庫服務:
我們對於給您服務帶來的影響深表歉意。所有恢復的數據庫將免除2個月的Azure 使用費,所有原始數據庫將免除3個月的使用費。我們不斷採取措施以改進微軟Azure 平台和我們的流程,幫助確保將來不會發生此類事件。
那為什麼會出現「刪庫」事故呢?答案源於本周微軟及其Azure客戶面臨的更大問題。週二,全球的雲服務遭到破壞,引發了一系列問題。其中包括間歇性訪問Office 365失敗,Azure雲資源的調度使用也下降了。
根據微軟當時的Azure 狀態頁面,這個問題反過來又歸結為DNS 中斷故障:
初步根本原因:工程師發現了與外部DNS 供應商的DNS 故障。
緩解方案:DNS 服務被轉移到另一個DNS 提供商,暫時緩解了這個問題。
報告顯示,此次DNS故障來自CenturyLink,後者為微軟提供DNS服務。該公司在一份聲明中說,當天遭遇了軟件缺陷。這表明當基於雲的系統互連並且足夠自動化以允許級聯故障時可能會出現問題。由於缺乏人工干預,DNS供應商的軟件缺陷間接導致了客戶實時信息的刪除。
CenturyLink最近似乎遇到了串行DNS問題。該公司在2017年底完成了以340億美元收購大型網絡運營商Level 3的計劃,該公司還在12月遭遇了DNS中斷事故,據報導,該中斷影響了緊急服務,引發了聯邦通信委員會的調查。