在当今这个时代,数据已经成为一家公司最有价值的资产。很多公司的收购和合作都是基于对数据的需求,甚至两家公司合并后的第一件事情就是打通数据。然而让人感到遗憾的是,如此重要资产的安全性却往往被人忽视,就好比一块价值连城的名表被摆在门口的鞋架上一样——知道贵重却不好好保管。如果大家回忆一下过去几年的事件,从携程的数据被不明攻击删除,到{title}华住酒店的用户信息泄漏再到腾讯大佬的云服务数据丢失,一直到今天的微盟删库门,一个个行业内顶尖的公司数据安全尚且如此儿戏,其它小公司的情况可想而知了。
数据安全管理其实是数据行业中细分的一个领域,本人没有这方面的从业经验。但作为一名长期和数据分析打交道的数据从业人员,基于自己所接触和了解的情况,我还是想从数据安全管理上提出几点看法,也希望能够抛砖引玉,帮助到在这方面有需要的童鞋们。
设想一下,如果微盟的DBA管理有这样的流程,就不会因为某一个人的有意操作而导致这样毁灭性事件的发生了。
微盟作为一个注册商户达到300w+,渠道代理商超过1600家的SaaS服务商,在23号19点删库后竟然要等到28号才能恢复数据。考虑到腾讯云的数据库是基于开源MySQL的,而这种数据库一般都是一主多从(一般一主三从),应该可以推测这名运维老哥把几台服务器的库都干掉了(好彻底,这是多大的仇啊~!)。但即便如此,微盟要重新恢复数据(说是恢复,但我估计不会完全恢复)还要近5天时间,充分说明没有对数据进行线上异地灾备。
当然,一般来说线上异地灾备往往用于金融/电信等行业,其成本比较高昂。但作为一家服务于多家B端商户的SaaS服务商,微盟需要对商户的数据安全负责任。如果要考虑成本不做异地灾备,也应该使用消息异步通讯的方式做数据准实时同步(比如kafka做binlog同步,转译后写入其它存储),考虑成本可以使用TiDB,HBase等比较便宜的大数据存储方案来做备份。这样即便发生线上删库,至少能够较为快速的恢复。
微盟作为腾讯云上一个大型使用者,当其发生巨量数据库删除的操作时,腾讯云应该有对应的事中监控机制。这里和大家举一个金融行业中的例子,比如我某次出国(东南亚国家)时在一家商店刷卡消费,当时刷卡后等了很久都没有通过,正在我诧异时接到发卡行打来的确认电话,原来银行发现我在一个从未消费过的国家要支付一笔较大金额,而且这个国家还是信用卡盗刷的高发地,所以银行当时做了管控,一定要电话确认后才确认交易。
同样的例子,腾讯云对于如此关键的使用者,在发生这样重要的操作时竟然没有任何监控和确认就通过了,完全信任操作者,我觉得是非常不可取的。这件事情到目前为止大家都还只是将目光聚焦于微盟和那位运维老哥,但我觉得腾讯云的问题也不容忽视,希望能够有看到这篇文章的腾讯云同学可以反馈一下,考虑一下增加类似的功能。
作为一名数据分析从业人员,看到如此巨量的数据被删除,我的内心是崩溃的。真心希望微盟的同学能够尽快恢复数据,也希望每一个IT从业人员都能够珍惜和爱护每一个数据,更希望类似的事情永远不再发生。