ApacheShardingSphere
数据脱敏全解决方案详解(下)
作者介绍
潘娟,京东数科高级DBA,主要负责京东数科数据库中间件开发、数据库运维自动化平台开发、生产数据库运维工作。多次参与京东6.18、11.11等大促活动的护航工作。曾负责京东数科数据库自动化平台设计与开发项目,现专注于Apache ShardingSphere分布式数据库中间件开发。乐于在数据库、自动化、分布式、中间件等相关领域进行学习和探索。
一、前言
《ApacheShardingSphere数据脱敏全解决方案详解(上)》主要介绍了ShardingSphere内部脱敏功能的具体实现。本次分享承接上篇,将具体实现与实际的场景结合,提供针对已上线业务脱敏改造和新上线业务脱敏使用的详细介绍。
二、解决方案详解
在了解了ShardingSphere脱敏处理流程后,即可将脱敏配置、脱敏处理流程与实际场景进行结合。所有的设计开发都是为了解决业务场景遇到的痛点。那么面对之前提到的业务场景需求,又应该如何使用ShardingSphere这把利器来满足业务需求呢?
新上线业务
业务场景分析:新上线业务由于一切从零开始,不存在历史数据清洗问题,所以相对简单。
解决方案说明:选择合适的加密器,如AES后,只需配置逻辑列(面向用户编写SQL)和密文列(数据表存密文数据)即可,逻辑列和密文列可以相同也可以不同。建议配置如下(Yaml格式展示):
encryptRule:
encryptors:
aes_encryptor:
type: aes
props:
aes.key.value: 123456abc
tables:
t_user:
columns:
pwd:
cipherColumn: pwd
encryptor: aes_encryptor
使用这套配置,Encrypt-JDBC只需将logicColumn和cipherColumn进行转换,