本技术涉及数据脱敏领域,具体涉及一种基于acl实现的kafka服务端数据脱敏方法及系统。
背景技术:
1、实时业务原始数据需要保存到kafka中,不同下游数据消费者对数据访问需要根据业务需求设置不同的安全访问规则,对原始数据中的敏感数据进行数据脱敏处理是保护商业机密、隐私数据的一种重要手段。通过数据脱敏,可以有效控制企业内部对机密数据的访问、防止隐私数据的滥用,防止敏感数据在未经脱敏的情况下从企业流出。满足企业既要保护机密、隐私数据,同时又保持监管合规,满足企业合规性。kafka集群中的topic有业务共享的使用场景,即多个业务用户需要消费相同topic数据。但不同业务用户对数据使用安全权限有区别,部分业务访问原始数据存在脱敏处理需求,敏感数据需要脱敏加工,例如个人身份信息、手机号码、银行卡信息等需要实现敏感隐私数据的可靠保护。
2、针对以上数据脱敏需求,第一种现有解决方案参照图1,该实时数据脱敏方法的步骤包括:步骤a1、生产者客户端生产消息存入kafka cluster(集群)1原始topic。步骤a2、数据中心内部flink作业消费kafka数据进行脱敏处理。步骤a3、脱敏后数据重新写入kafkacluster2脱敏topic。存储脱敏数据的kafka cluster 2可以不是存储原始数据的kafkacluster 1。步骤a4、消费者客户端读取脱敏topic数据。
3、第一种实时数据脱敏方法的缺点包括:1、需要开通计算资源运行flink作业。2、增加脱敏topic及其存储空间。3、数据中心在运行内部作业时,需要为其配置读取权限以从kafka cluster 1中读取原始topic、以及为其配置写入权限以将脱敏topic写入kafkacluster 2,给业务开通的读取权限是用于从kafka cluster 2中读取脱敏topic,需要多次授权。4、链路的延长增加了处理延迟。
4、针对以上数据脱敏需求,第二种现有解决方案参照图2,该实时数据脱敏方法的步骤包括:步骤b2、写入离线数据仓库系统(简称离线数仓),如hive。步骤b3、消费者客户端读取hive表时通过权限控制实现脱敏,如使用ranger对hive数据进行脱敏。
5、第二种离线数据脱敏方法的缺点包括:1、从离线读取数据,数据链路加长,延迟明显增加。2、批处理数据场景下,kafka cluster中的原始topic批量存储到离线数仓系统中,不能满足实时处理需求。
技术实现思路
1、本技术提供一种基于acl实现的kafka服务端数据脱敏方法及系统,可以解决现有技术中存在的脱敏作业实时性差、以及存储资源消耗量大的技术问题。
2、第一方面,本技术实施例提供一种基于acl实现的kafka服务端数据脱敏方法,所述方法包括:
3、为kafka服务端配置服务接口,并通过该接口添加访问控制列表acl配置,所述acl配置中包含消费者身份信息、原始主题topic名称、敏感信息字段以及脱敏策略的映射关系;
4、所述kafka服务端在接收到消费者客户端发送的消息拉取请求后,根据消息拉取请求中包含的消费者身份信息和原始topic名称查询acl配置,判断该消费者客户端是否有读取权限、以及有读取权限时的脱敏策略;
5、所述kafka服务端在判断所述消费者客户端有读取权限时,获取相应的原始topic数据并利用脱敏策略对其进行脱敏处理,得到脱敏topic数据;
6、所述kafka服务端将脱敏topic数据响应给所述消费者客户端。
7、结合第一方面,在一种实施方式中,所述acl配置中还包括原始topic内容;所述方法还包括:
8、所述kafka服务端在判断所述消费者客户端有读取权限时,获取相应的原始topic数据并利用脱敏策略和原始topic内容对其进行处理,得到脱敏topic。
9、结合第一方面,在一种实施方式中,所述方法还包括:
10、将所述acl配置的相关信息存储至kafka服务端的zookeeper中。
11、结合第一方面,在一种实施方式中,所述acl配置中还包括主题模式topic schema信息;所述方法还包括:
12、所述kafka服务端在获取消息拉取请求后,根据topic schema信息对相应的原始topic数据进行反序列化,并利用脱敏规则对敏感信息字段进行脱敏,并在脱敏后根据topic schema信息进行再序列化,得到脱敏topic数据。
13、结合第一方面,在一种实施方式中,所述脱敏规则包括多条子规则,每个敏感数据字段均对应一子规则;
14、所述子规则为利用x屏蔽原始topic数据中的所有字母字符、以及利用n屏蔽原始topic中的所有数字字符;
15、所述子规则为显示原始topic数据中的后四个字符,除最后四个字符以外的其他所有字符用*代替;
16、所述子规则为显示原始topic数据中的前四个字符,除最开始四个字符以外的其他所有字符用*代替;
17、所述子规则为利用原值的哈希值替换原值;
18、所述子规则为利用原值的特殊指标null值替换原值;
19、所述子规则为显示日期字符串的年份部分,将月份和日期默认为01/01。
20、第二方面,本技术实施例提供了一种基于acl实现的kafka服务端数据脱敏系统,所述系统包括:
21、配置模块,其设置于kafka服务端中,用于为kafka服务端配置服务接口,并通过该接口添加访问控制列表acl配置,所述acl配置中包含消费者身份信息、原始主题topic名称、敏感信息字段以及脱敏策略的映射关系;
22、处理模块,其设置于kafka服务端中,用于在所述kafka服务端在接收到消费者客户端发送的消息拉取请求后,根据消息拉取请求中包含的消费者身份信息和原始topic名称查询acl配置,判断该消费者客户端是否有读取权限、以及有读取权限时的脱敏策略;还用于在判断所述消费者客户端有读取权限时,获取相应的原始topic数据并利用脱敏策略对其进行脱敏处理,得到脱敏topic数据;还用于将脱敏topic数据响应给所述消费者客户端。
23、结合第二方面,在一种实施方式中,所述acl配置中还包括原始topic内容;
24、所述处理模块在判断所述消费者客户端有读取权限时,获取相应的原始topic数据并利用脱敏策略和原始topic内容对其进行处理,得到脱敏topic数据。
25、结合第二方面,在一种实施方式中,所述配置模块将所述acl配置的相关信息存储至kafka服务端的zookeeper中。
26、结合第二方面,在一种实施方式中,所述acl配置中还包括主题模式topic schema信息;所述处理模块在获取消息拉取请求后,根据topic schema信息对相应的原始topic数据进行反序列化,并利用脱敏规则对敏感信息字段进行脱敏,并在脱敏后根据topicschema信息进行再序列化,得到脱敏topic数据。
27、结合第二方面,在一种实施方式中,所述脱敏规则包括多条子规则,每个敏感数据字段均对应一子规则;
28、所述子规则为利用x屏蔽原始topic数据中的所有字母字符、以及利用n屏蔽原始topic数据中的所有数字字符;
29、所述子规则为显示原始topic数据中的后四个字符,除最后四个字符以外的其他所有字符用*代替;
30、所述子规则为显示原始topic数据中的前四个字符,除最开始四个字符以外的其他所有字符用*代替;
31、所述子规则为利用原值的哈希值替换原值;
32、所述子规则为利用原值的特殊指标null值替换原值;
33、所述子规则为显示日期字符串的年份部分,将月份和日期默认为01/01。
34、本技术实施例提供的技术方案带来的有益效果包括:
35、通过在kafka服务端(即kafka集群)配置服务接口并通过服务接口添加acl配置,通过在acl授权过程中增加了脱敏规则,在消费者客户端请求topic数据时,查询acl配置,根据消费者身份和所需topic判断其是否有读取权限以及相应的脱敏规则实现脱敏,从而在kafka集群内实现数据拉取实时脱敏,减少了kafka集群以外额外存储,可以实时进行数据处理,降低数据产生到数据处理的时间延迟,减少中间资源使用、减少中间结果授权、简单高效。
1.一种基于acl实现的kafka服务端数据脱敏方法,其特征在于,所述方法包括:
2.如权利要求1所述的基于acl实现的kafka服务端数据脱敏方法,其特征在于,所述acl配置中还包括原始topic内容;所述方法还包括:
3.如权利要求1所述的基于acl实现的kafka服务端数据脱敏方法,其特征在于,所述方法还包括:
4.如权利要求1所述的基于acl实现的kafka服务端数据脱敏方法,其特征在于,所述acl配置中还包括主题模式topic schema信息;所述方法还包括:
5.如权利要求1所述的基于acl实现的kafka服务端数据脱敏方法,其特征在于,所述脱敏规则包括多条子规则,每个敏感数据字段均对应一子规则;
6.一种基于acl实现的kafka服务端数据脱敏系统,其特征在于,所述系统包括:
7.如权利要求6所述的基于acl实现的kafka服务端数据脱敏系统,其特征在于,所述acl配置中还包括原始topic内容;
8.如权利要求6所述的基于acl实现的kafka服务端数据脱敏系统,其特征在于,所述配置模块将所述acl配置的相关信息存储至kafka服务端的zookeeper中。
9.如权利要求6所述的基于acl实现的kafka服务端数据脱敏系统,其特征在于,所述acl配置中还包括主题模式topic schema信息;所述处理模块在获取消息拉取请求后,根据topic schema信息对相应的原始topic数据进行反序列化,并利用脱敏规则对敏感信息字段进行脱敏,并在脱敏后根据topic schema信息进行再序列化,得到脱敏topic数据。
10.如权利要求6所述的基于acl实现的kafka服务端数据脱敏系统,其特征在于,所述脱敏规则包括多条子规则,每个敏感数据字段均对应一子规则;
