数据安全中心DSC(Data Security Center)支持静态脱敏和动态脱敏,可以脱敏数据库中的敏感数据。本文介绍如何使用静态脱敏和动态脱敏。
计费说明
如果您需要脱敏的云产品使用的是按量付费的方式,对应云产品会按照访问或写入数据量收取相应的费用。
前提条件
已完成DSC授权和接入待脱敏数据资产。具体操作,请参见资产授权。
如果需要将脱敏后数据存储到RDS表、PolarDB-X表、MaxCompute表、PolarDB表、OceanBase表、ADB-MySQL表、自建数据库表或OSS Bucket中,DSC必须授权接入目标数据资产,且使用具有读写权限的账号连接目标数据资产。具体操作,请参见通用数据库授权、MaxCompute授权和ECS自建数据库授权。
静态脱敏
功能说明
通过新增脱敏任务,根据脱敏规则匹配敏感字段后,按照敏感字段的脱敏算法(遮盖、加密或替换等)对数据进行脱敏,并将脱敏后的数据保存到您选择的目标位置。
创建静态脱敏任务时,可以选择已配置的脱敏模板作为任务的脱敏规则,也可以直接设置目标敏感字段的脱敏算法作为任务的脱敏规则。脱敏模板配置,请参见配置脱敏模板和算法。
新增脱敏任务
如果您在生产环境中直接对数据进行脱敏,数据库的性能可能会有所下降。
通过新增脱敏任务,指定数据脱敏的范围和规则。
登录数据安全中心控制台。
在左侧导航栏,单击
。在静态脱敏页签的任务配置页签,单击新增脱敏任务。
根据页面导航,完成数据脱敏任务配置。
填写任务基本信息,并单击下一步。
说明任务名称输入不受限制。
配置脱敏数据的来源文件信息,并单击下一步。
RDS表/PolarDB-X表/MaxCompute表/PolarDB表/OceanBase表/ADB-MySQL表/自建数据库表
脱敏源配置项
是否必填
配置描述
数据存储类型
是
选择脱敏文件的数据存储类型为RDS表/PolarDB-X表/MaxCompute表/PolarDB表/OceanBase表/ADB-MySQL表/自建数据库表。
源产品
是
选择包含脱敏数据的文件来源的产品名称。支持选择的产品包括:RDS、PolarDB-X、OceanBase、MaxCompute、ADB-MySQL、PolarDB或自建数据库。
源数据库/项目名
是
选择包含脱敏数据的表所在的项目名称。
源表名
是
选择脱敏数据所在的数据表名称。
源分区
否
仅源产品选择MaxCompute时,可配置源分区。
输入需要脱敏的数据在数据表中的分区名称。不填写则代表会对整个表中的敏感数据进行脱敏。
分区是在创建MaxCompute数据表时指定的分区空间,用于限定不同区域数据,方便快速和高效地对指定内容进行查询。更多信息,请参见分区。
抽样SQL
否
源产品选择RDS、PolarDB-X、OceanBase或自建数据库时,可配置抽样SQL。
输入SQL语句配置脱敏数据的范围。不填写则进行全表脱敏。
OSS文件
重要仅支持脱敏结构化TXT、CSV、XLSX和XLS格式的文件。
脱敏源配置项
是否必填
配置描述
数据存储类型
是
选择脱敏文件的数据存储类型为OSS文件。
文件源
是
选择OSS文件的来源,支持本地上传和OSS Bucket。
上传文件
是
文件源为本地上传时,单击选择本地文件,上传需要脱敏的文件。
源文件所在OSS Bucket
是
文件源为OSS Bucket时,在下拉列表中选择源文件所在的OSS Bucket。您也可以输入关键字进行搜索并选择源文件所在的OSS Bucket。
源文件名称
是
文件源为OSS Bucket时,输入源文件的名称。源文件名称必须包含格式后缀。
单个文件脱敏:输入指定源文件名称。例如,test.csv。
批量文件脱敏:开启通配功能(单击右侧的开启通配开关)。系统采用同一规则脱敏目标文件,多个文件的格式必须相同,且具有相同的列结构。
您可以使用星号(*)的方式指定一批源文件进行批量脱敏。目前仅支持对文件名前缀进行匹配,例如,test*.xls,匹配以test开头的XLS格式文件。
源文件描述
否
文件源为本地上传时,可输入对OSS源文件的描述。
分隔符选择
否
对于CSV和TXT类型的文件,必须指定列分隔符,请根据源文件的分隔符类型进行选择。支持选择以下类型的分隔符:
分号“;”(macOS、Linux默认)。
逗号“,”(Windows默认)。
运算符“|”。
表格包含标题行
否
根据源文件是否包含标题行进行选择。
选择以下方式配置脱敏算法,然后单击下一步。
在数据列表上方选择已配置的脱敏模板,源字段列表会按照脱敏模板配置,自动开启对应字段的脱敏开关并设置算法选择。
脱敏模板中规则列表内容必须与脱敏源数据的源字段匹配,否则脱敏模板不生效。脱敏模板配置,请参见配置脱敏模板和算法。
直接在源字段列表中,定位到需要脱敏的源字段,开启脱敏开关并设置算法选择。
单击脱敏算法后的参数查看修改,可查看和编辑已选择算法的规则。算法规则中分区写法,可参考分区写法参考表。
说明如果开启强制启用模板,不支持在当前页面修改算法参数。您需要修改对应模板规则。
如果脱敏源配置的是RDS,支持开启数据水印开关,配置水印字段、水印算法和水印描述信息,然后单击下一步。
嵌入数据水印后,可以通过提取水印帮您实现泄漏数据的溯源。具体操作,请参见下文的提取水印。
例如:员工A需要导出一份订单数据,管理员将“某年某月某日导出XX数据给员工A”设为水印信息并在导出时添加到数据里。当数据出现泄露时,管理员可以在获取到泄露的数据后,通过提取水印,将数据中的备注信息提取出来,就可以定位到泄露数据的是员工A。
水印使用限制详情,请参见水印使用限制。
设置脱敏后数据要存储的目标位置,然后单击测试,确认写入权限通过后,单击下一步。
重要对于选择的目标数据资产,DSC连接数据资产的账号必须具备写入权限。
确认处理逻辑。
目标位置配置项
是否必填
配置项描述
触发方式选择
是
触发方式表示执行脱敏任务的方式。支持以下方式 :
仅人工:通过手动的方式启动脱敏任务。
仅定时触发:通过设置的时间点定时自动执行脱敏任务,可选每小时、每天、每月、每周固定时间点自动触发任务。
人工+定时触发:选择该方式,支持您手动单击启动来执行脱敏任务,和系统根据配置的定时时间自动执行脱敏任务(支持每小时、每天、每月、每周固定时间点自动触发任务)。
开启增量脱敏
否
您可根据需要选择是否开启增量脱敏。增量脱敏是指每次脱敏数据为上次脱敏任务完成后新增的数据的脱敏方式。您需要选择一个源数据中随着时间递增的字段作为增量列,例如创建时间、自增ID(数据库自带的自增列)等。
重要当前仅有RDS数据支持增量脱敏。
分片字段
否
DSC执行静态脱敏时会对源数据进行字段分片,通过并发处理的方式提高脱敏效率。您可根据需要选择分片字段,支持选择多个分片字段。
当前仅有RDS数据库支持增量脱敏,建议使用主键或者唯一索引作为分片字段。
分片字段选择框内如果未选取任何字段,DSC将会默认使用主键作为分片字段,对源数据进行脱敏处理。
重要如果您的源数据中没有主键,您必须选择分片字段,否则会导致脱敏任务失败。
过多的分片字段会影响查询性能以及数据准确性,请谨慎选择。
表名冲突解决方式
是
表名称存在冲突的情况下处理的方式。可选项:
删除目标表建立新同名表。
在目标表中增加新数据。建议选择该选项。
行冲突解决方式
是
表中的行内容存在冲突时的处理方式。可选项:
保留目标表冲突行,丢弃新插入数据。建议选择该选项。
删除目标表中的冲突行,新增插入数据。
单击提交。
执行和查看脱敏任务
如果脱敏任务触发方式是仅人工,必须手动启动脱敏任务。如果脱敏任务触发方式是仅定时触发,仅支持通过设置的时间点定时自动启动脱敏任务。如果脱敏任务触发方式是人工+定时触发,支持手动和自动启动脱敏任务。
在静态脱敏页签的任务配置页签,单击新创建的脱敏任务操作列的启动,执行脱敏任务。
在静态脱敏页签,单击任务状态子页签,查看脱敏任务的执行进度和状态。
脱敏任务执行失败排查
脱敏任务执行失败后,参考以下内容查看失败原因。
执行失败错误提示 | 错误原因 |
找不到脱敏任务,有可能是因为任务已经被删除或者关闭 | 脱敏任务可能被删除或被关闭(脱敏任务操作列下的开关为关闭状态)。 |
定时任务的调度周期设置有误 | 每日具体任务执行时间输入有误。 |
找不到脱敏源实例 | 脱敏源表所属实例不存在。 |
找不到脱敏目标实例 | 可能的原因有实例授权取消或目标实例删除等。 |
找不到脱敏源表 | 可能的原因有实例授权取消、源表删除等。 |
脱敏算法参数设置有误 | 算法参数填写错误。 |
源表列为空 | 源分区字段的列没有数据。 |
写入目标表失败 | 目标位置配置时写入目标表失败。 |
从源表查询失败 | 源表中未查询到该数据。 |
创建目标表失败 | 目标位置中可能不存在该表格。 |
找不到主键 | RDS源表缺少主键。 |
任务配置的MaxCompute分区字段有误 | 创建脱敏任务时,在脱敏源配置项中填写的源分区或者目标位置配置项填写的目标分区有误。 |
修改、删除脱敏任务
等待执行或执行中的脱敏任务不支持修改或删除。
修改脱敏任务
需要调整脱敏任务的配置时,您可以单击目标脱敏任务操作列的修改,修改脱敏任务。
删除脱敏任务
重要脱敏任务删除后不支持恢复,建议您谨慎操作。
不再需要指定脱敏任务时,您可以单击目标脱敏任务操作列的删除,并在提示对话框中单击确定。
提取水印
如果在配置数据静态脱敏时,已对脱敏的数据添加水印,当信息泄露时,您可以从泄露的脱敏数据中提取水印标识。通过读取水印标识,可以追溯数据流转过程,精准定位泄露单位及责任人,实现数据溯源追责。对分发的数据添加水印,不会影响分发数据的正常使用。
仅支持从RDS中提取水印。
水印功能具有以下特点:
安全性:数据水印不会因为数据改动而导致水印信息丢失,保障数据水印被准确鉴别。
透明性:在原始数据中嵌入水印标记信息且不易被察觉,不影响原数据使用。
可检测性:可以从数据片段中提取水印信息,进行数据溯源,溯源成功率高。
鲁棒性:受到恶意攻击后,仍然可以完整地提取水印信息。
低错误率:精确设计的水印提取规则,可以最大限度地降低数据溯源的错误概率。
提取水印的具体步骤:
在静态脱敏页签,单击水印提取子页签。
在水印提取子页签,填写数据源信息。
配置项
配置描述
源产品
选择包含脱敏数据的文件来源的产品名称,当前仅能选择RDS。
源数据库/项目名
必填项。选择包含水印信息的表所在的项目名称。
源表名
必填项。选择水印信息所在的数据表名称。
单击提取水印。
在提取水印按钮下方的文本框中,可以查看提取出的水印信息。
单击复制结果,可以复制已提取的水印信息。
动态脱敏
相对于静态脱敏,动态脱敏更加灵活,通过调用ExecDatamask接口可以直接脱敏指定数据。
功能说明
动态脱敏任务必须依赖已配置的脱敏模板作为脱敏规则,对指定数据进行脱敏。您可以调用ExecDatamask接口,传入待脱敏数据(Data)和脱敏模板ID(TemplateId),然后按照脱敏模板的匹配方式(字段名称、敏感类型),对Data中dataList的数据进行脱敏。
您可以在数据安全中心控制台的配置脱敏模板。
页面的脱敏配置页签,获取脱敏模板ID。支持使用自定义脱敏模板,具体操作,请参见调用ExecDatamask接口实现数据脱敏的脱敏模板中脱敏方式说明:
匹配方式 | 脱敏说明 |
字段名称 | 根据dataHeaderList中列名,匹配脱敏模板中规则列表的字段名称及对应算法,对dataList中对应列的数据进行脱敏。 |
敏感类型 | 根据ruleList中敏感类型的规则ID,匹配脱敏模板中规则列表下规则的标识ID,按照规则中字段名称及对应算法,对dataList中对应列的数据进行脱敏。 敏感类型的规则列表中字段可选范围为数据洞察中识别特征页面中的数据特征,包含内置和自定义的识别特征。该特征名称也作为规则列表中规则名称,您可以调用DescribeRules接口,传入CustomType(规则类型,即数据特征的来源:内置或自定义)、Name(规则名称,即数据特征的名称),查询到该规则的标识ID(Id)。 |
脱敏示例图:
使用限制
您调用ExecDatamask接口对指定数据进行动态脱敏时,每次脱敏的数据(Data)必须小于2 MB。
查看动态脱敏接口调用记录
登录数据安全中心控制台。
在左侧导航栏,单击
。在数据脱敏页面,单击动态脱敏页签。
在动态脱敏页面,查看ExecDatamask接口的调用记录。
说明如果您在调用接口时使用了相同的账号和IP地址,即使多次调用接口,操作记录只会保留一条,并记录累计调用次数。