新能力 | 雲開發數據庫備份回檔,教你優雅地防範刪庫跑路

哈嘍~ 各位開發者們好,我是騰訊雲後臺開發工程師 gore,今天想跟大家一起探討下數據庫的那些事。當然只要提到數據庫,首推經典書籍《數據庫從入 shan 門 ku 到精 pao 通 lu》。玩笑歸玩笑,但確實沒想到這一幕在現實中上演了—— 微盟事件。本篇文章將講述這個事件給我們帶來的思考,以及我們能做些什麼來保護好用戶數據。

image

事件回顧

2020 年 2 月 23 日,因公司員工惡意破壞線上生產環境和數據,導致微盟系統服務不可用。截止到 3 月 1 日晚 8 點,在騰訊雲團隊協助下,經過 7*24 小時的努力,共同完成了這項幾乎不可能完成的任務,3 月 3 日上午 9 點數據恢復正式上線。

幾百 T 的數據 100%完整恢復,給大佬們點贊。但與此同時,我們也不得不深思,如何保障 SaaS 服務的數據安全呢?

在業界有一些常用做法,可通過數據備份、權限管理、流程制度等方面來進行一定的約束,盡最大限度保障數據安全。

備份相關

  • 建立跨機房、跨地域容災備份體系

  • 啓用相關的快照策略,保證全量備份和增量備份,並且數據只增不減

權限相關

  • 對權限系統實行嚴格的分級授權和最小化授權制度

  • 將數據庫操作權限和備份權限分離

流程相關

  • 對數據庫做修改、刪除操作必須由技術主管審批並生成相關操作授權碼,通過授權碼才能執行相關命令

  • 對高危操作命令,直接電話告警到相關核心人員

  • 對於非常敏感的操作只能申請在監督人員陪同下,進入機房通過專用的設備進行

制度相關

  • 使用堡壘機並定期對日誌進行審計,生成審計日報並知會相關負責人。

  • 定期進行災備的演練

通過技術和制度方面的限制,基本可杜絕由於人爲因素導致事故。用戶爲本,科技向善。雲開發在應對用戶數據安全方面有哪些新能力和解決方案呢?下面我給大家介紹雲開發提供的新功能 – 數據庫備份回檔。

雲開發的數據庫備份回檔

能力特性

雲開發的數據庫備份回檔功能,即備份數據與還原數據。該功能將由系統自動在每天凌晨進行全量數據備份,最長可以保留最近 7 天內的備份數據,開發者可根據需求來選擇將集合回檔到指定的時間點。

雲開發的數據安全底層保障機制

到這裏肯定會有小夥伴坐不住要問了,這不就是個備份嘛,誰知道雲開發的備份是不是安全呢?

對這個問題我也有過同樣的疑惑。在這次事件之後,通過找開發、運維同學的層層打探,瞭解到雲開發數據以及備份的安全細節,準備分享給大家。其實我想說要刪庫跑路確實還挺難的,哪有想的那麼簡單,一下子給刪了。

下面給各位看官一一道來,要經過多少層關卡纔有可能刪掉雲開發上的一份數據!

雲開發的數據和備份到底有幾份?首先在數據庫的服務器上是存有一份源數據和主從同步日誌的,其次在雲存儲上有數據和日誌的冷備份,最後還有冷備份的快照。

顯而易見,要想完全刪掉雲開發上的這份數據需要從這三個地方都"下狠手"。下面將以小故事的形式來講述這個過程,如有雷同,純屬巧合。

scene1: 數據庫被惡意刪除

A 同學是 DBA,有一天,由於個人原因心血來潮突然想到刪庫跑路。雖然他有數據庫服務器的 root 權限,但是服務器上有監控,對於敏感操作也是需要審批的。經過不可描述的 sao 操作,竟然繞過了各種監控、審計過了第一道紅線,把數據庫服務器的數據、主從同步日誌都給刪除了,並且還沒有被發現。刪完後突然想起來開發同學有說過這個全量備份數據、增量備份日誌是有冷備份到雲存儲上的,還得想個辦法一起清除乾淨。

scene2: 數據庫被惡意刪除,同時冷備份也被刪

經過仔細思考,A 同學決定一不做二不休。由於冷備份實現邏輯是由數據庫開發同學(簡稱 B 同學)實現的,所以存儲帳號的權限只在 B 同學這邊有。邪惡的想法來了,拉 B 同學一起下水吧!經過軟磨硬泡,B 同學答應了 A 同學的請求。本以爲就是登錄賬號點個“刪除”的事情,萬萬沒想到雲開發的存儲是有做分級權限控制的,賬號權限顯示:可讀寫、不可覆蓋或刪除。由於 B 同學手上的子賬號權限不足,根本就沒辦法刪除。A 同學見此場景有點慌了神,心想已經把服務器上的數據刪除了,再不趕緊把冷備數據刪除了,一會兒就被發現可咋整。此時,A 同學有點納悶 B 同學不想辦法解決,還在機器上老在敲些啥命令。B 同學突然大叫一聲"搞定",A 同學湊過去看的一臉迷糊,怎麼賬號變成了 admin 用戶,沒想到 B 同學居然懂 hack 技術,入侵總監電腦拿到了更高權限的帳號!一氣呵成把文件給刪了,聯合兩人之力過了第二道紅線。

scene3: 數據庫、冷備份被惡意刪除,備份文件的快照也被刪除

然而,經過刪庫、刪備份,A、B 同學的邪惡計劃並沒有在得逞。因爲雖然存儲上的備份數據刪除了一份,但是雲開發的存儲開啓了版本快照功能,底層機器機器上面還有備份。靈光一閃,A 同學說他在存儲部門認識個老同學是運維(簡稱 C 同學),看能不能拉他入夥一起來幹一票大的吧。C 同學聽到 A、B 同學給的誘惑條件,立馬登錄機器,刪除命令一把梭,按下回車 done,三人準備立即跑路。本以爲神不知鬼不覺完美刪除數據以及各種備份,越過第三道紅線,沒想到這道門通往的是監獄!!

課代表小黑板:

在雲開發的數據安全機制下,人爲希望通過歪門邪道刪除數據,必須繞過各種細粒度分級權限、操作日誌審計、敏感操作告警、監控等,並且要至少三位不同部門不同崗位的同學合夥纔有可能做到。通過上述故事,大家可以感受到雲開發在數據安全性這方面是拿捏得死死的。其實這只是雲開發在數據安全保護方面的冰山一角,在實際的業務中,雲開發還有敏感操作的校驗審計、批量敏感操作觸發告警攔截、備份數據存儲歷史版本等保護機制,在此就不再一一贅述。

雲開發數據備份回檔 Quick Start

1.登錄微信開發者工具 - 雲開發控制檯

image

2.數據庫 - 新建回檔

image

3.選擇回檔的時間點、集合

image

4.設置回檔後集合名稱,確認回檔

image

5.查看回檔結果

image

總結

大船沉沒,原由小孔,百丈之堤,潰於蟻穴。

希望開發者們能正視數據安全性問題,檢查自身業務。還沒有備份的同學,數據庫備份回檔功能趕緊用起來吧~

文檔鏈接:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/backup.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章