配置RDS for MySQL实例动态脱敏
功能简介
动态脱敏是数据库在发送给客户端的时候,对数据进行脱敏的一种安全技术手段。RDS for MySQL的动态脱敏功能支持通过添加脱敏规则实现指定库、表、列对数据进行脱敏。


开启动态脱敏功能,并且配置全字段脱敏规则(add_mask_rule('', '', '', '')),使用Sysbench工具压测,导入128张表,每张表25000行数据,QPS值大约为40万时,数据库性能损耗在5%以内。
QPS:Query Per Second,数据库每秒执行的SQL数。
版本限制
RDS for MySQL动态脱敏功能要求内核版本为8.0.32.250300及以上版本。
功能限制
- 当前仅支持对SELECT语句数据脱敏。
- 脱敏规则对系统库不生效。系统库包括:mysql、information_schema、performance_schema、sys。
- 单个数据库名、表名、列名、用户名首尾的空格和特殊空白字符(如'\t'、'\r'、'\n')都会被忽略。
- 单个数据库名、表名、列名长度不超过64 bytes,单个用户名长度不超过32 bytes。
- 管理员用户列表(rds_dynamic_masking_super_users)长度不超过1024 bytes。
- 不同数据类型的脱敏处理不同,详见表1。
表1 脱敏处理说明 数据类型
脱敏处理说明
整数型(TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT、BOOLEAN)
脱敏为正整数。
小数型(DECIMAL、FLOAT、DOUBLE)
时间型(YEAR)
时间型(DATE、TIME、DATETIME、TIMESTAMP)
DATE脱敏之后的范围:[1000:01:01,9999:12:31.499999]
TIME脱敏之后的范围:[00:00:00,838:59:59.499999]
DATETIME、TIMESTAMP取值范围:[1971:01:01 00:00:00, 2037:12:31 23:59:59.49999]
字符串类型
脱敏为:******
RDS for MySQL动态脱敏相关参数
参数名称 |
级别 |
描述 |
---|---|---|
rds_dynamic_masking_enabled |
Global |
动态脱敏特性开关。默认值为OFF。 |
rds_dynamic_masking_super_users |
Global |
支持配置多个管理员用户。默认值为空字符串('')。 多个管理员用户之间使用英文逗号(,)分隔,脱敏规则对管理员用户不生效。示例:'user1,user2' |
rds_masking_paramter_max_count |
Global |
数据库名、表名、列名、用户名最大可配置个数。默认值为100,取值范围[1, 1000]。 |