概述

最近更新时间:2024-06-13 19:14:31

我的收藏
数据安全网关(云访问安全代理,CASB)以少开发改造为目的,帮助用户快速解决数据加密、脱敏、访问控制等数据安全痛点问题。
为了满足业务平滑地从数据库切换到 CASB、CASB 回切到数据库、增减加密字段、明文数据备份等应用场景,CASB 以实时、不停服、平滑接入为核心思想,为业务提供在线迁移、平滑接入、实时解密备份的技术能力。通过接入和备份方案,可以减少业务接入过程中明密文共存时间,同时为业务提供快速回退能力。

基本概念和原理


在 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 等操作,帮助业务实现数据库加解密的平滑接入和快速回退。

应用场景

不适用场景

以下场景新增/减少加密字段时可参考 从0接入 CASB 在现有元数据上直接变更,代理可以处理明文和密文共存的场景。
待加解密字段只有写操作。
待加解密字段不会作为查询条件。
数据量很小,全量加解密任务可在极短时间内完成。
业务可停机变更。

适用场景

新增/减少加密字段,待处理字段存在读操作,且字段会作为查询条件。
容灾备份数据库需保存明文。

使用限制

仅支持 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。