一种海量数据安全分类分级架构的实现!

导语|本文推选自腾讯云开发者社区-【技思广益 腾讯技能人原创集】专栏。该专栏是腾讯云开发者社区为腾讯技能人与广泛开发者打造的共享交流窗口。栏目邀约腾讯技能人共享原创的技能积淀,与广泛开发者互启迪共生长。本文作者是腾讯高级开发工程师杨波。

本文首要总结个人在数据安全分类落地进程遇到问题的经历,期望本文能对此方面感兴趣的开发者们供给一些经历和帮助。

一种海量数据安全分类分级架构的实现!

背景

跟着《数据安全法》、《个人信息保护法》等相继出台,数据安全上升到国家安全层面和国家战略层面,数据分类分级已经成为了企业数据安全办理的必选题。但是数据分类分级的完成内职业界有许多痛点,首要体现在如下几点:

  • 规矩拟定杂乱:数据进行分类有多种维度,不同维度各有价值。在不同职业及范畴,乃至详细到每个企业和部分,针对不同等级数据也各有界说。维度、等级的不明晰会导致后续根据分类分级的许多合规管控存在问题。

  • 和谐交流成本高:企业规模不断庞大,组织架构也随之变得杂乱臃肿。数据的扫描上报相关到多个部分和作业群,乃至子公司。这涉及到多人之间的和谐交流,还需考虑网络隔离,访问权限和批阅等诸多问题。

  • 数据容量大:互联网年代到来,企业信息化建造一向高速发展中,事务体系也越来越杂乱。随之发生的海量数据,给企业带来巨大的价值。相应一旦海量数据泄漏,也会给企业形成严峻的成果。怎么实时,高效,全面掩盖海量数据分类分级,这对技能架构是一种检测。

  • 存储组件多:互联网尤其是云核算年代,企业为了应对大流量高并发事务场景,诞生关系型,非关系型,目标存储等多种存储组件。这既有开源完成,也有企业界部自研。不同的完成,有着不同的传输协议和数据结构。要掩盖多种存储组件数据分类分级,需求许多的作业量。

但是查阅公司内外许多资料,往往只着重解说数据分类分级概念与标准。现在并未有可学习,可落地的分类分级技能完成参考。因而本文要点不在于评论数据分类分级的标准拟定,而是从技能层面来讲述一种通用才能抽象封装,海量数据辨认,跨部分平和台数据接入的分类分级架构完成。将数据分类分级技能进行赋能,防止重复造轮子。并以此为基础来从实践视点满意数据安全合规作业的落地和推展。

注:数据分类分级介绍参考数据安全办理:数据分类分级指南。

一种海量数据安全分类分级架构的实现!

数据安全事务流程

(一)事务层面

一种海量数据安全分类分级架构的实现!

从事务层面看,以数据分类分级作为数据安全的基石,来对数据进行安全管控,比方数据加密,数据脱敏,数据水印,权限办理,安全审计等。可见数据分类分级对数据安全的重要性。

(二)技能层面

一种海量数据安全分类分级架构的实现!

从技能层面看,将数据扫描上报,经过数据辨认引擎进行辨认。但是在实践落地进程中,却发现许多问题。比方存储组件种类多,上报数据流量大,以及时效性,精确率,掩盖率等等问题。

一种海量数据安全分类分级架构的实现!

整体架构

一种海量数据安全分类分级架构的实现!

经过不断对数据分类分级事务分析,设计如上数据分类分级架构。架构核心由五大块组成:

  • 多种存储组件数据扫描上报东西。

  • 数据辨认服务集群,一致接纳上报数据,并进行数据辨认。

  • 辨认规矩引擎,一致保护辨认规矩的办理,在线热更新等功能。

  • 数据中台,依托分类分级成果,进行数据安全管控。

  • 依托公司的基础结构才能,确保引擎服务的高可用,比方监控,告警,日志,弹性扩缩容等。

其间要点要处理前三点。

一种海量数据安全分类分级架构的实现!

海量数据实时辨认

企业规模不断庞大,海量用户,必定发生海量数据。怎么满意高性能,时效性一起,又能到达高正确率和掩盖率要求,关于体系架构是一个巨大检测。

(一)数据存储

PCG现在掩盖近二十种存储组件类型平和台,三千万张表,以mdb,cdb,tredis,天穹为例:

一种海量数据安全分类分级架构的实现!

存储选型

从表格可见,仅mdb已超越五百万张MySQL表,而cdb乃至超越一千万张MySQL表。而一张MySQL表即对应要保存一条分类分级辨认成果。MySQL单表数据主张在五百万左右,超越这个数据量主张经过分库或分表处理,这在电商项目一些场景是可行,比方交易订单数据。但这也会带来经典的分布式事务等问题。

因而需求挑选一种满意大容量,高并发,高可用和事务acid的数据库。

大数据hadoop

hadoop作为经典大数据存储架构,可存储pb等级以上数据,但时效性不高,一般用作T+1离线任务olap场景。且hadoop对事务acid支撑有限,无法满oltp场景。

tidb

tidb是一款分布式海量容量云原生newsql。tidb底层运用raft算法,完成数据分布式存储和确保数据一致性。一起兼容MySQL协议,支撑事务。因而tidb满意要求,但是公司现在没有专门团队保护tidb。

云原生tdsql-c

tdsql-c是TEG自研的一款的数据库。tdsql-c对MySQL架构做了改善,将核算和存储分离,然后完成存储和核算资源的快速扩容。因而tdsql-c支撑MySQL协议和事务,一起具备高性能等特性。且公司现在有专门团队保护tdsql-c。

存储比照

一种海量数据安全分类分级架构的实现!

从表格可见tidb和tdsql-c满意需求,但tdsql-c有公司内部专人保护。因而挑选tdsql-c来存储数据分类分级辨认成果。

(二)数据接入

服务端需求对接多种存储组件渠道的数据上报,不用渠道对资源,性能,时效性有不同要求。因而完成http,trpc,kafka多种接入方法,以满意不同场景。

kafka传输大数据

kafka能够完成消费端失败重试,且能够对流量进行削峰,推荐运用kafka进行数据上报。

为了确保辨认成果正确,对关系型数据库单表取200条数据上传。大数据存在一些宽表或许大字段,导致上传的数据超越1M,这超越了kafka默许装备。除了约束上传数据包大小以外,也需求对kafka装备进行优化。

kafka producer

max.request.size=1048576 (1M)

batch.size=262144 (0.25M)

linger.ms=0

request.timeout.ms=30000

因为音讯数据包比较大,因而不期望音讯常驻producer内存,形成producer内存压力,因而让音讯尽或许快速发送到broker端。

kafka consumer

fetch.max.bytes=1048576(1M)

fetch.max.wait.ms=1000

max.partition.fetch.bytes=262144(0.25M)

max.poll.records=5

topic partion>=20

retention.ms=2

因为音讯数据包比较大,且consumer消费音讯需求几百秒延迟,削减批量拉取音讯数量一起提高拉取音讯等待时间,防止consumer频繁去broker端拉取音讯,导致consumer cpu被打爆。\

优化作用

一种海量数据安全分类分级架构的实现!

数据辨认

在处理数据上报,数据存储,数据接入今后,就是数据辨认。这是整个数据分类分级架构最核心也是最杂乱部分。对数据辨认进程首要分为数据映射,规矩办理,权重核算,数据校验四大块。

数据映射

服务端对单表取200条数据进行辨认,按每张表20个字段,每个字段需进行20种正则辨认。每天假设跑1千万张表,总共大概要跑8千亿次正则核算。如此巨大的核算量,在流量冲击下,立马将服务端的cpu飙升到100%,然后导致服务不可用!!!

相关于io密集型,cpu密集型无法简略运用常见的缓存,异步等方法去减轻服务端压力。因而需求考虑点如下:

  • 经过云上k8s弹性扩缩容,将流量分散到多个容器节点,降低单节点负载压力。

  • 单节点利用多核并行,将核算压力分担到多个cpu核处理器上。而且运用信号量限流,防止cpu一向处于100%。

  • 正则表达式优化。藏在正则表达式里的圈套,竟让CPU飙升到100%!

多核并行

多核并行学习MapReduce编程模型,实质是一种“分而治之”的思想。

一种海量数据安全分类分级架构的实现!

优化作用

一种海量数据安全分类分级架构的实现!

一种海量数据安全分类分级架构的实现!

规矩办理

数据的分类分级,需更精细化的规矩办理,才能对后续数据安全做到更合理的管控。规矩包含不限于正则,nlp,机器学习,算法,全文匹配,含糊匹配,黑名单等。对应每种详细分类分级界说,又包含多个规矩的组合运用。经过实践的运营和梳理今后,现在有近四百种分类分级界说和八百种辨认规矩。

因而需考虑合理的方法,将规矩办理和辨认逻辑解耦,以便后续的保护和升级。一起需考虑规矩热更新和封闭,做到对线上服务无感知。

一种海量数据安全分类分级架构的实现!

权重核算

数据分类分级,在不同职业和事务有不同的维度和界说。且源数据因为开发和运维人员界说不明晰,导致终究辨认成果存在含糊的边界。在实践运营进程中,常会因为辨认成果不精确,被事务方反馈。

假设有字段叫xid,有或许是qqid,也或许是wechatid,而qdid和wechatid对应不同的分类分级,这会影响后续的合规流程。在实践场景,xid有或许一起被qqid和wechatid辨认规矩射中,那么该取哪个呢?

因而引进权重的概念,权重不在于将辨认成果做简略的0和1取舍,而是经过多个组合规矩辨认后,核算出一个权重值,并对多个辨认成果的权重值进行排序,取权重最大的辨认成果作为当时字段的分类分级。

一种海量数据安全分类分级架构的实现!

数据校验

数据安全合规管控,最重要一项是数据加密。为了方便运营后续进行合规追溯,需求在服务端对当时上报数据是否加密进行校验,并将校验成果保存下来。

数据是否加密需归纳判别库表状态等信息,其间包含数据是否加密,表是否删去,库是否删去,实例是否下线等。状态的转化,经过以下决策树表示:

一种海量数据安全分类分级架构的实现!

一种海量数据安全分类分级架构的实现!

跨部分平和台接入

在要点处理数据上报和数据辨认等难点今后,数据分类分级结构已能够满意大部分事务场景。因而也期望结构能服务更多的部分需求,削减许多繁琐重复的作业量。

因为数据分类分级成果归于敏感数据,关于跨部分平和台接入,需考虑将数据根据不同部分平和台进行物理隔离存储。

一种海量数据安全分类分级架构的实现!

一种海量数据安全分类分级架构的实现!

总结

数据分类分级很杂乱,这种杂乱性有事务层面,也有架构层面。本文要点在于述说架构层面的问题。这些问题有些能够提前规划设计,比方存储选型、通用扫描才能等。也有些需求在落地进程中继续优化,比方海量数据辨认,除了对服务本身性能优化,也要对资源成本归纳考虑。

架构没有好坏之分,只要适宜一说。本文所讲述是根据个人在落地进程遇到问题的经历总结。因而反复斟酌,仔细梳理写下本文,也是对本人作业的一个阶段总结。一起也期望结构能得到更多人认可,并到达数据分类分级才能复用,为公司数据安全合规作业尽到一点小小贡献。

一种海量数据安全分类分级架构的实现!

假如你是腾讯技能内容创作者,腾讯云开发者社区诚邀您参加【腾讯云原创共享计划】,领取礼品,助力职级提升。

阅览原文