在之前的两篇文章基于数据分类分级和敏感数据保护,保障企业数据安全、如何基于Dataphin实现敏感数据保护(以消费者隐私保护为例)中,我们详细的介绍了如何基于Dataphin的数据分类分级和动态脱敏能力,实现数据研发过程中的敏感数据保护。本系列文章我们来针对数据安全使用过程中的一些小场景来提供一些最佳实践,从而帮助大家更好的实现数据安全的建设。
数据安全作为合规管控的管理诉求,必然会对数据的使用和开发造成影响,我们下面简单看下以下两个场景:代码查询、生产数据写开发环境/测试环境数据准备。
一、代码查询
1、正常情况下,我们进行代码查询时,可以直接查出明文的数据。
2、在安全模块完成敏感数据的识别并且配置了脱敏规则
2.1、识别敏感数据
2.2、配置脱敏策略
3、再次进行代码查询,可以看到查询到的数据已经变成了脱敏后的数据。
需要注意的是,开启脱敏在保护敏感数据的同时,也会使得涉及敏感数据的查询和分析变得困难,比如某本地生活服务商某个地区的订单出现了大量投诉,却因为脱敏保护只能看到市级别的地址,不知道投诉的具体市哪个街道,也会影响实际的业务开展。需要按照业务实际需要做好敏感数据、脱敏规则的设计,减少对正常业务的干扰;或者适时的开启脱敏白名单,在可控的环境下,快速完成业务的分析需求。
二、生产数据写开发环境/测试环境数据准备
1、正常情况下,为了不对生产数据产生干扰,我们需要准备一份开发数据用于验证脚本/程序是否正确。同时在涉及到个人隐私数据的时候,我们一般还需要对数据进行脱敏,比如md5函数处理,来保证开发环境没有敏感数据。在这种情况下,每次在开发环境/测试环境准备数据都要小心翼翼,既害怕没有脱敏导致敏感数据泄漏,又害怕加密方式不对,导致敏感数据完全失去原来的样子。
2、在安全模块完成敏感数据的识别并且配置了脱敏规则
2.1、识别敏感数据
2.2、配置脱敏策略
3、被识别为敏感数据之后,可以看到,敏感数据在从生产环境写到开发环境时,自动实现了脱敏,从而保证了生产环境的敏感数据不会意外泄漏,再也不用担心造测试数据的时候数据泄漏了。
需要注意的是,开启脱敏在保护敏感数据的同时,也可能会影响部分开发环境的验证功能,比如脚本里需要判断手机号位数,却选择了md5算法,将11位的手机号变成了32位,导致脚本无法识别。需要按照业务实际需要做好敏感数据、脱敏规则的设计,减少对正常业务的干扰;或者适时的开启脱敏白名单,在可控的环境下,快速完成业务的分析需求。
三、结语
开启数据安全功能后,代码查询、生成测试数据这些常用的研发功能,在保证了安全的同时,也会使部分场景下的业务需求受影响。是否开启安全模式、识别哪些敏感字段、保护哪些场景还是要根据法规的要求、业务的需求综合来看;同时在规则制定之后,要和相应数据团队的负责人进行沟通,及时同步开发过程中的变化,才能既保证业务正常开展,又保证合规安全。
系列连载:
数据安全最佳实践(4):数据脱敏场景如何进行where、join关联