本发明属于数据脱敏,具体涉及一种基于presto的动态数据脱敏方法。
背景技术:
1、数据脱敏顾名思义就是对敏感数据进行变形处理,其目的是保护隐私数据等信息的安全,例如机构和企业收集的个人身份信息、手机号码、银行卡信息等敏感数据。数据脱敏从技术上可以分为静态数据脱敏和动态数据脱敏两种。静态数据脱敏一般应用于数据外发场景,例如需要将生产数据导出发送给开发人员、测试人员、分析人员等;动态脱敏一般应用于直接连接生产数据的场景,例如运维人员在运维的工作中直接连接生产数据库进行运维,客服人员通过应用直接调取生产中的个人信息等。
2、现有的动态脱敏方法通常有三种:一是使用groovy实现;二是通过改动presto等的源码实现sql的重新解析;三是在各数据库中实现脱敏函数运行;以上三种方式存在的问题有:
3、1、使用groovy实现动态脱敏会导致数据脱敏后置,即通过查询后的结果在做规则校验然后进行数据脱敏,在这个过程中存在未脱敏的数据可见的情况;
4、2、通过改动presto等的源码实现sql的重新解析,会使二次开发工作量大、二次开发后对系统升级不友好;
5、3、在各数据库中实现脱敏函数运行不利于版本管理,多种数据库通用性较差,升级需要数据库管理员协作难以保证实时性。
技术实现思路
1、针对现有动态脱敏方法存在的通过查询后的结果在做规则校验然后进行数据脱敏,在这个过程中存在未脱敏的数据可见的情况、使二次开发工作量大、二次开发后对系统升级不友好以及多种数据库通用性较差,升级需要数据库管理员协作难以保证实时性的缺陷和问题,本发明提供一种基于presto的动态数据脱敏方法。
2、本发明解决其技术问题所采用的方案是:一种基于presto的动态数据脱敏方法,包括以下步骤:
3、步骤一、在可视化规则配置系统中或者调用api来配置脱敏规则;
4、步骤二、编写基于标准sql的脱敏函数,适配常用脱敏规则;并编写用于处理例外情况的特殊脱敏函数;
5、步骤三、在可视化规则配置系统中或者调用api上传相应框架或者数据库的脱敏函数;
6、步骤四、对外暴露通用查询api接口、动态catalog增删改查接口;
7、步骤五、在可视化规则配置系统中或者调用api配置callback回调接口,用于回调获取用户信息;
8、步骤六、预留鉴权接口,默认采用oauth 2凭证式;
9、步骤七、第三方应用通过所述步骤五获取令牌后能够操作所有的api,并预留简单权限管理。
10、进一步地,所述步骤一中配置包含掩码、加密、截取指定位数、数据替换和偏移取整的数据脱敏规则。
11、进一步地,所述步骤三中脱敏函数包含函数名、版本名、类型信息。
12、进一步地,所述步骤四中通用查询api接口包括catalog名、sql语句、是否联合查询、查询用户信息;所述动态catalog接口用于为数据源配置参数。
13、与现有技术相比,本发明的有益效果是:
14、本发明提供一种基于presto的动态数据脱敏方法,对数据共享服务能够进行脱敏规则动态配置,能够实现单数据库的aql查询脱敏,同时能够基于presto实现跨数据库种类联合查询脱敏,同时该方法不需要深入改动presto源代码,从而实现动态数据脱敏,有利于系统后续更容易的升级presto等版本。
1.一种基于presto的动态数据脱敏方法,其特征在于:包括以下步骤:
2.根据权利要求1所述的基于presto的动态数据脱敏方法,其特征在于:所述步骤一中配置包含掩码、加密、截取指定位数、数据替换和偏移取整的数据脱敏规则。
3.根据权利要求1所述的基于presto的动态数据脱敏方法,其特征在于:所述步骤三中脱敏函数包含函数名、版本名、类型信息。
4.根据权利要求1所述的基于presto的动态数据脱敏方法,其特征在于:所述步骤四中通用查询api接口包括catalog名、sql语句、是否联合查询、查询用户信息;所述动态catalog接口用于为数据源配置参数。