数据安全网关(云访问安全代理,CASB)以少开发改造为目的,帮助用户快速解决数据加密、脱敏、访问控制等数据安全痛点问题。
为了满足业务平滑地从数据库切换到 CASB、CASB 回切到数据库、增减加密字段、明文数据备份等应用场景,CASB 以实时、不停服、平滑接入为核心思想,为业务提供在线迁移、平滑接入、实时解密备份的技术能力。通过接入和备份方案,可以减少业务接入过程中明密文共存时间,同时为业务提供快速回退能力。
基本概念和原理
![](https://qcloudimg.tencent-cloud.cn/image/document/6ef4232d16ace76c8e504ee23daf490f.png)
在 CASB 接入和备份过程中,共存在三种角色的元数据:原始元数据(原始 DB)、目标元数据(目标 DB)和备份元数据(备份 DB),三种角色的元数据无需全部存在,可根据业务需求接入特定角色的元数据。
原始元数据:计划新增加密字段的元数据。如业务首次接入时未配置加密策略的数据库、已配置了加密策略需额外新增加密字段的数据库。
目标元数据:新增加密字段后的元数据或计划减少加密字段的元数据。
备份元数据:减少加密字段后的元数据。如未配置任何加密字段的数据库,作为备份或回退的明文数据库。
加密策略包含关系:原始元数据真包含于目标元数据,备份元数据真包含于目标元数据。
同步原理
1. 业务侧使用 binlog 或 数据传输服务(DTS)配置不同角色数据库之间的数据同步,保证数据库中的数据一致。
目标 DB 实时同步原始 DB 的数据。
备份 DB 实时同步目标 DB 的数据。
2. 配置并启动 CASB 接入和备份服务,CASB 会订阅原始 DB 和目标 DB 的增量数据。
目标 DB 增加的加密字段:
CASB 后台对存量数据进行全量加密。
CASB 后台对同步后的增量数据进行实时加密。
备份 DB 中减少的加密字段:
CASB 后台对存量数据进行全量解密。
CASB 后台对同步后的增量数据进行实时解密。
注意:
数据同步方式为binlog时,延迟5秒加密/解密增量数据。
数据同步方式为DTS时,延迟10秒加密/解密增量数据。
请确保增量数据在5秒(binlog)或10秒(DTS)内完成同步,否则将不会实时加密、解密。
切换代理前,请检查数据加密情况,若仍存在明文数据,可使用全量加密工具再次进行全量加密。
典型接入过程示例
1. 准备三个数据库。
原始 DB:新接入的待加密数据库,存在 A、B、C 三个明文字段,其中 A、B 为敏感字段。
目标 DB:和原始 DB 的结构和数据完全一致,并配置使用 binlog、DTS 等工具实时从原始 DB 同步增量数据。
备份 DB:和目标 DB 的结构和数据完全一致,并配置使用 binlog、DTS 等工具实时从目标 DB 同步增量数据。
2. 将数据库添加到 CASB 元数据。
原始 DB 添加为接入与备份任务的原始元数据。
目标 DB 添加为接入与备份任务的目标元数据。
备份 DB 添加为接入与备份任务的备份元数据。
3. 配置元数据的加解密策略。
原始元数据为新接入的数据库,无加解密策略。
目标元数据配置 A、B 敏感字段的加密策略。
备份元数据不配置加解密策略,即保存明文。
4. 绑定代理和配置代理账号
将原始元数据、目标元数据、备份元数据绑定同一个代理,并配置相同的代理账号和密码。代理的访问开关切换到原始 DB,即访问代理的流量转发到原始 DB。
5. 变更应用的访问地址
应用由访问原始 DB 变更为访问代理,代理将自动转发到原始 DB。此时目标 DB、备份 DB 内的数据均为明文,并且和原始 DB 的数据完全一致。
6. 配置原始元数据到目标元数据的加密任务。
配置目标 DB 的全量加密任务,任务执行后,目标 DB 字段 A 和字段 B 的存量数据将全部变更为密文。
配置原始 DB 到目标 DB 的实时增量加密任务,CASB 会持续订阅原始 DB 的增量数据,并自动将目标 DB 字段 A 和字段 B 中同步增量的明文数据加密成密文。
7. 配置目标元数据到备份元数据的解密任务。
由于步骤6对目标 DB 进行了数据加密,且备份 DB 在实时同步目标 DB 的数据,此时备份 DB 中的数据为密文。
配置备份 DB 的全量解密任务,任务执行后,备份 DB 字段 A 和字段 B 的存量数据将全部变更为明文。
配置目标 DB 到备份 DB 的实时增量解密密任务,任务会持续订阅目标 DB 的增量数据,并自动将备份 DB 字段 A 和字段 B 中同步的增量密文数据解密成明文。
8. 启动全量加解密和实时加解密任务。
9. 验证数据。验证原始 DB、目标 DB、备份 DB 数据的一致性,验证目标 DB 的数据是否已正常加密,验证备份 DB 的数据是否已正常解密。
10. 代理开关切换。代理开关切换过程中,业务使用的代理地址信息无需变更。
将代理开关切到目标元数据。切换后所有请求转发到目标 DB,目标 DB 中的所有数据均为密文。
将代理开关切换到备份元数据。切换后所有请求转发到备份 DB,备份 DB 中的所有数据均为明文。
11. 接入过程中,若存在任何异常,业务可以通过将数据源地址配置成备份 DB,实现快速的业务回退。
通过接入不同的元数据角色,业务侧只需提供多个数据同步的数据库,CASB 可以实现存量和增量数据的加解密、一键切换请求转发 DB 等操作,帮助业务实现数据库加解密的平滑接入和快速回退。
应用场景
不适用场景
待加解密字段只有写操作。
待加解密字段不会作为查询条件。
数据量很小,全量加解密任务可在极短时间内完成。
业务可停机变更。
适用场景
新增/减少加密字段,待处理字段存在读操作,且字段会作为查询条件。
容灾备份数据库需保存明文。
使用限制
仅支持 MySQL 类型的元数据及使用 MySQL binlog 协议的数据库。
所有元数据的库、表、字段结构需保持完全一致。
已配置策略的表必须有主键 ID。
所有 DB 的 server-id 不能相同。
实时加密、实时解密会额外占用5~50个数据库连接,请确认目标 DB、备份 DB 的连接数限制。
原始 DB 和目标 DB 必须开启 binlog,且需满足:
binlog_format 设置为 ROW。
binlog_row_image 设置为 FULL。
实时加密性能和资源占用参考。请评估资源消耗对数据库的影响,若需更高性能,请 联系我们。
4C8G及以上数据库:支持不小于2000 QPS 的字段写操作的同步加密。
4C8G数据库可能占用最高约70%的 CPU。
8C16G数据库可能占用最高约40%的 CPU。