谈谈UCloud保障数据安全的七种“武器” | U刻
解决方案, 技术分享/

谈谈UCloud保障数据安全的七种“武器”

  • 谈谈UCloud保障数据安全的七种“武器”

    当前,数据安全受到多方面的威胁。有来自系统软硬件的非人为故障,有运维工程师的误操作,甚至是黑客或内部人员的恶意删除。2017年1月31日,全球最大的代码托管服务平台Gitlab由于工程师的误操作,删除了5000个项目和700个用户账号的数据,虽然多方补救,但部分数据最终没能恢复。近几年黑客入侵用户系统后加密磁盘,以此来勒索的事件也层出不穷。更有来自黑客或内部人员的恶意删除,导致业务的极大损失。

    如何彻底杜绝此类风险,确保数据安全,需要全方位的技术保障措施:备份、反入侵、分权限管理、快速回档等技术手段都不可或缺,而且必须覆盖每一类存储产品。

    UCloud作为业界领先的云服务商,提供了全面的各类存储产品,开发了完整和成熟的数据安全机制。并且在为数万家用户提供可靠线上服务的过程中,积累了丰富的经验。下文提到的数个案例,其实就发生在UCloud平台上。通过我们的产品和专业及时的服务,这些用户最终得以恢复数据,避免由此造成的损失。

    一般地说,用户搭建数据库有如下三种方式:使用公有云提供的DB PaaS托管服务,如UCloud UDB,由云服务商来负责DB的搭建及运维;用户也可以使用公有云的云主机和云盘来自行搭建数据库;或者在私有云环境下搭建。在这三种情况下,UCloud都提供了专业的数据安全机制,来切实有效的保证用户的数据安全。

    接下来将介绍UCloud针对数据库数据安全的七种“武器”。具体而言,本文主要回答如下三个问题:

    1. 数据库的备份容灾机制如何完善?

    2. 数据被破坏丢失后如何快速恢复?

    3. 数据库运维人员的权限如何有效控制?

    UDB PaaS托管服务

    如果需要得到最专业的数据库安全服务,用户的首选就是云服务商提供的DB PaaS服务。譬如说,UDB是UCloud提供的云数据库服务,支持各种主流的数据库产品。自2013年上线以来,运营了数以万计的UDB实例。

    UDB远远不只是帮用户搭建DB那么简单,事实上这部分功能只是UDB价值的冰山一角。UDB提供了完备的数据库搭建、运维、性能调优、资源扩缩容等服务。其高可用、高性能、便捷易用等特性帮助用户大量减轻了运维负担。同时,数据库团队还自研了分布式架构、读写分离、存储计算分离等特性,进一步提高云数据库的性能和可用性。在数据的备份恢复机制上,UDB提供自动备份、秒级恢复、监控告警、问题诊断等服务。

    武器一:UDB备份机制

    面对不可预测的误操作或者人为恶意操作,数据库自身的备份机制就显得尤为重要。UDB的备份机制具体如下:

    (1)UDB的备份模式

    a、自动备份每天自动进行一次备份(默认备份时间为00:00—06:00的某一整点),备份可以保存7天。备份模式包括物理备份和逻辑备份两种。

    b、用户可以对某些关键时间点的重要数据进行手动备份,允许保留个数为3个。


    (2)UDB备份文件存储

    a、备份文件存储在UCloud独立的备份资源池中,安全性有保障。

    b、备份文件的副本始终保持多份异地冗余。

    (3)备份文件转存 

    针对用户个性化的备份文件存储需求,UDB支持备份文件下载:

    a、Web控制台或API支持下载备份文件(包括自动备份和手动备份)。

    b、Web控制台或API支持下载二进制日志文件(MySQL的binlog) 用户在下载备份文件后,可转存到自有的存储系统或者UCloud平台上的存储类产品(UDisk、UFS、UFile等),理论上采用公有云存储产品更为安全可靠。

    (4)备份成功率保障机制

    a、UDB的自动备份具备有效的告警机制,如果备份失败,则会自动触发告警

    b、UDB后台会定期进行备份成功率的巡检,通过SPT反馈备份情况给到用户。 

    武器二:数据恢复方案

    针对误操作或者人为恶意造成的数据库删除,UDB提供了一系列数据恢复方案。

    a、对UDB实例中的库做删除,比如drop/delete操作,可以从源实例通过回档功能恢复到操作的前一刻,回档到一个全新的实例。

    b、UDB实例被删除后,它原先的备份将持续自动保留7天,7天内仍然可从备份恢复为一个全新实例。

    c、出现最极端的情况,实例被删、备份文件全部被删,那该怎么办呢?UDB后端在一定有效期内仍然保留有操作当天的最新备份,应对该极端情况。由于这份备份是系统内部维护,用户并不能直接访问。所以即便发生运维人员恶意删除,此份备份依然存在,仍然可以使用该备份来数据恢复。

    武器三:从本地备份到跨云备份

    为了确保数据的绝对安全,必须做到数据的多份备份,可以从本地磁盘的多份备份到跨区域备份,甚至实现跨云平台的多云备份。

    数据库数据可靠性受底层有效的RAID保护,实例级的冗余则包括主实例采用高可用架构,后端主备双节点,保证数据双份冗余。控制台一键创建从实例,主实例可以一主带N从,包括可用区级(主从在同可用区)和地域级(主从跨可用区),保证实例级冗余。

    UCloud还提供数据传输产品UDTS,在数据库可靠性更高要求的场景,主实例可以通过UDTS搭建异地或者两地三中心的UDB集群架构,进一步保障数据安全。此外,UDTS也适用于多云部署的场景,其支持多种数据库类型、双向迁移的能力,可以帮助使用者将数据平滑地做跨云的迁移和备份。某电商便是借此实现了UCloud和T云之间的数据同步。

    UDB数据恢复案例

    场景一:数据库误变更

    游戏行业业务变更快、变更多,是比较容易造成数据库误操作或者不当变更的情况,此时如何快速恢复到变更前状态就成为了棘手的问题。某游戏用户在版本发布时造成数据库的schema变更字段出错,发现出错时,已经对游戏服造成了巨大影响。此时,管理人员对影响的UDB实例做了一个回档操作,恢复至变更前一刻,精确到秒级,挽回了损失。再对源实例进行必要数据的导出,补偿到回档的新实例,避免数据丢失。

    场景二:数据库误删除

    在运维权限管理混乱时,安全性就存在巨大的隐患,任何人都有可能对核心资源进行不正当操作。某互联网App用户的运维人员由于看错信息,造成核心UDB实例误删除。因UDB实例会每天自动备份,此时管理人员在控制台找到UDB实例当天的最新备份,做了恢复操作,恢复为一个全新UDB实例,减少了损失。

    场景三:数据库误回收

    在生产环境里,最为担心的是资源的回收未及时发现,例如(1)运维人员在资源整合时,删除了某个数据库实例;(2)过期资源未及时续费被自动回收,事后过了很长时间才反应过来,但为时已晚。针对该场景,UDB实例后端在一定有效期内,仍然保留一份当天的最新备份,通过数据全量恢复的模式,帮助不少用户找回数据。

    使用云主机自建DB

    如果用户出于各种原因考虑,不愿意使用公有云的DB PaaS托管服务,而是希望使用公有云IaaS产品来自行搭建DB。UCloud同样提供了专业的数据安全产品,那就是数据方舟。方舟是当前业界独一无二的数据备份产品。通过在虚拟化层的I/O路径改造,方舟可以把用户的原始块设备存储放在后端去存储,并且能实现按秒的回滚。

    武器四:数据方舟持续保护

    对于数据备份产品,有两个重要的能力评估指标——恢复点目标(RPO)和恢复时间目标(RTO),目前数据方舟的RPO已经达到秒级别,默认支持12小时内恢复任意一秒,24小时内任意整点恢复,3天内的任意零点恢复,用户甚至可以自由定制备份链秒级、小时级、天级的保护范围,并且是恢复到一块新的磁盘上;而数据方舟的RTO则能够达到最短5分钟内恢复,即使是TB级别的数据量,也可以做到半小时内恢复。

    数据方舟是如何在技术上做到对用户数据的持续保护呢?数据方舟后端使用了分层混合存储设计,用户的实时I/O会通过旁路以oplog的方式记录到方舟的接入节点(FRONT)上,由于方舟接入节点采用了高速磁盘设备,能够扛住用户大量的I/O写操作。

    流式计算节点SHUFFLE会拉取接入节点的oplog进行批量处理,主要是进行数据分片(sharding),并将数据分片推送到最终存储层(ARKER)进行存储。随着时间的流逝,ARKER也会不断对数据进行合并,最终形成base/天级/小时/秒 四个级别的数据备份链。

    用户恢复时,会调动后端集群所有节点的能力进行并行计算,加快恢复速度。值得一提的是,用户恢复时当前的磁盘数据是保留的,数据会回滚到一块新的磁盘上,这样做的目的是如果用户回滚后后悔,也能够回到恢复前的数据状态。

    数据方舟恢复数据案例

    案例一:勒索病毒

    2017年5月“永恒之蓝”病毒爆发,全球大量Windows主机受到感染,企业重要文件被加密,只有支付高额赎金才能解密恢复文件。万户印刷公司的一台云服务器也遭受到了病毒攻击,用户的印刷文件被加密。

    案例二:误操作导致文件系统异常

    2017年12月,某AI公司遭遇到了重大危机,其运维人员在对存放重要数据的云硬盘进行扩容时,违规操作,导致硬盘出现了文件系统故障,数据无法访问。问题磁盘有着多个分区,该公司缺乏对多分区磁盘进行文件系统修复的经验,不敢贸然修复,担忧会因此导致数据进一步损坏。

    案例三:游戏回档

    2019年3月,某知名端游公司出现了严重的运营事故,一个道具的复制漏洞导致了游戏的平衡性失调,严重影响玩家体验,因此需要快速完成回档,保证对玩家的影响降低到最小。

    这些案例中,用户最终都通过UCloud旗下的数据方舟产品进行恢复,迅速找回了所需要的数据。

    私有云DB的数据安全备份

    如果用户的DB搭建在私有云环境下,没关系, UCloud的对象存储产品UFile是一个海量的通用存储产品。通过和第三方产品结合,即便是私有云的DB同样可以利用公有云海量及可靠的存储服务,实现数据的高可靠性。

    武器五:UFile对象存储帮助数据库备份

    块存储上数据的保护不仅可以通过数据方舟解决,用户还可以使用基于 UFile 做数据持久化的 JuiceFS 存储数据库备份,JuiceFS 是为云端设计的 POSIX 共享文件系统,具有如下特点:

    • 云端:采用云服务中的对象存储作为后端,综合性价比极高。
    • POSIX:兼容标准 POSIX 接口,可以像本地文件系统一样使用。
    • 共享:上千台机器同时挂载,高性能并发读写,共享数据。

    UFile是UCloud自研的对象存储系统,兼容s3协议,具备高可用、高可靠和低成本的数据存储服务,提供多副本、跨地域等数据冗余机制,支持三地及以上的跨地域灾备功能。使用UFile用户可以实现高可靠、低成本的云上和跨云的数据备份,包括数据库备份、日志、大数据文件等。

    基于UFile+JuiceFS搭建MySQL备份

    UCloud用户下厨房是国内最大的专注于家庭美食领域的社区,目前拥有超过四千万注册用户,海量的业务也让下厨房对数据库的冗余和备份格外的重视,并且总结出一套非常高效和可靠数据库灾备经验。

    除建立了跨可用区的主从节点外,下厨房会进行定时的整库备份和实时的binlog备份。下厨房的数据库备份借助了UFile、JuiceFS和Percona Xtrbackup。使用JuiceFS用户可以无需修改代码就可以替换之前的本地备份。并且可利用JuiceFS后端的对象存储来解决无限存储空间、跨区域复制以及低成本等问题。下厨房的策略是保留 7 天内的 Percona XtraBackup 整库备份、3 年内的 binlog 以及 1 年内的周级 mysqldump。

    除此之外下厨房还想到了一个非常具备脑洞的备份验证方案。有了备份还无法做到高枕无忧,因为有时备份文件会出错,等到需要恢复时才发现备份出错就已经晚了。但是备份的验证是个非常耗时的工作,需要拷贝备份到本地进行恢复。下厨房利用JuiceFS的快照功能,克隆一份备份文件,在不影响原备份文件的情况下快速做验证,省下大量拷贝的时间。

    详细实践可参考链接:https://juicefs.com/blog/cn/posts/xiachufang-mysql-backup-practice-on-juicefs/

    账号和权限控制

    在具备一定的备份和恢复机制下,数据库运维管理人员的权限控制问题仍然不可忽视,例如将数据库操作权限和备份权限进行分离、权限审批和操作执行分离、增加数据库命令隔离层等。

    武器六:子账号

    在权限管理控制方面,UCloud支持用户为自己的账户开设子账号,并定义为相应的角色。角色是一组产品权限的集合。若某成员的角色被修改,则其相应的权限也随之变更。子账号的存在有助于贯彻“最小权限管理”原则,只赋予工作职责所需的权限。大部分成员或许只需云资源的只读权限,少量操作者可拥有修改的权限,而删除权限必须通过管理员的审核。

    多级账号权限控制,可以有效的控制多级人员的操作权限,最大程度的降低来自内部人员恶意操作的可能。

    武器七:安全锁

    安全锁是云资源高危操作的二次验证服务。开启该服务后,每次进行删除资源等危险操作时,需要通过手机短信校验身份才可。

    受安全锁保护的高危操作例如有:

    产品操作
    主机开机、关机、删除实例
    物理机关机、删除实例
    云数据库 UDB删除实例、关闭
    云内存存储 UMem释放内存
    对象存储 UFile删除bucket、删除ufile geo bucket
    云硬盘 UDisk删除实例

    写在最后

    黑格尔曾说:“人类从历史中学到的唯一教训,就是人类无法从历史中学到任何教训。”云服务发展到今天,已经实现了多种完备的数据安全方案。如本文提到的UCloud七种武器,无论用户使用哪一种方式部署数据库,必有一款适合你。企业在今后发生数据库机器故障、误操作、恶意删除等情形时,能否充分利用云服务商提供的数据备份、恢复机制以及账号权限控制等能力,是解决数据丢失问题的关键。