数据安全中心(Data Security Center,简称DSC)支持静态脱敏和动态脱敏,可以脱敏数据库中的敏感数据。本文介绍如何使用静态脱敏和动态脱敏。

脱敏方式

  • 静态脱敏:通过新增脱敏任务,使用脱敏算法对敏感数据进行遮盖、加密或替换,并将脱敏后的数据保存到您选择的目标位置。
  • 动态脱敏:相对于静态脱敏,动态脱敏更加灵活,可以直接脱敏指定数据。每次脱敏的数据必须小于2 MB。

前提条件

已完成数据资产授权,具体操作,请参见数据资产授权

静态脱敏

新增并执行脱敏任务

通过新增脱敏任务,指定数据脱敏的范围和规则。

  1. 登录数据安全中心控制台
  2. 在左侧导航栏,选择风险治理 > 数据脱敏
  3. 静态脱敏页签,单击新增脱敏任务
  4. 完成脱敏任务配置。
    1. 填写任务基本信息,并单击下一步
      说明 任务名称输入不受限制。
    2. 配置脱敏数据的来源文件信息,并单击下一步。
      • 脱敏源为RDS表/PolarDB-X表/MaxCompute表/PolarDB表/OceanBase表/ADB-MySQL表时配置项说明
        脱敏源配置项 是否必填 配置描述
        数据存储类型 选择脱敏文件的数据存储类型。支持的存储类型包括:RDS表、PolarDB-X表、MaxCompute表、PolarDB表、OceanBase表和ADB-MySQL表。此参数选择RDS表/PolarDB-X表/MaxCompute表/PolarDB表/OceanBase表/ADB-MySQL表
        源产品 选择包含脱敏数据的文件来源的产品名称。支持选择的产品包括:RDSPolarDB-XOceanBaseMaxComputeADB-MySQLPolarDB
        源数据库/项目名 选择包含脱敏数据的表所在的项目名称。
        源表名 选择脱敏数据所在的数据表名称。
        源分区 输入需要脱敏的数据在数据表中的分区名称。

        分区是指在创建MaxCompute数据表时指定的分区空间,用于限定不同区域,方便快速和高效地对指定内容进行查询。更多信息,请参见分区

        说明
        • 源产品选择RDS和PolarDB时,无需配置源分区
        • 源分区为选填项,不填写则代表会对整个表中的敏感数据进行脱敏。
        抽样SQL 输入SQL语句配置脱敏数据的范围。不填写则进行全表脱敏。
        说明 当您选择的源产品为MaxCompute和PolarDB时,无需配置抽样SQL
      • 脱敏源为OSS时配置项说明
        脱敏源配置项 是否必填 配置描述
        数据存储类型 选择脱敏文件的数据存储类型。此处选择OSS文件
        文件源 选择OSS文件的来源,支持本地上传OSS Bucket
        说明 本地上传仅支持结构化TXT、CSV、XLSX和XLS格式文件。
        源文件所在OSS Bucket 在下拉列表中选择源文件所在的OSS Bucket。您也可输入关键字进行搜索并选择源文件所在的OSS Bucket。
        源文件名称 输入源文件的名称。源文件名称需要包含后缀,仅支持结构化TXT、CSV、XLSX和XLS格式。

        如果需要对多个同类型的源文件进行批量脱敏,您可以单击右侧开启通配按钮。

        说明 开启通配后,您可以通过使用星号(*)的方式指定一批源文件进行批量脱敏,目前仅支持对文件名前缀进行匹配,例如test*.xls。设置批量脱敏后,系统会采用相同的规则进行脱敏,请务必保证这批文件有相同的列结构。
        源文件描述 输入对OSS源文件的描述。当文件源选择OSS Bucket时,无需配置该参数。
        分隔符选择 对于CSVTXT类型的文件,需要指定列分隔符,请根据源文件类型进行选择。支持选择以下类型分隔符:
        • 分号“;”(macOS、Linux默认)
        • 逗号“,”(Windows默认)
        表格包含标题行 根据需要选择待脱敏表格是否包含标题行。
    3. 配置脱敏算法,并单击下一步。
      在脱敏算法配置列表中,定位到需要脱敏的源字段,打开脱敏开关,选择需要的脱敏算法。
      说明
      • 单击脱敏算法后的参数查看修改,可查看或修改已选择算法的规则。
      • 脱敏开关关闭时,对应的脱敏算法不生效。
    4. 可选:开启数据水印开关,并单击下一步
      数据水印支持配置水印字段、水印算法和添加自定义备注水印信息,帮您实现泄漏数据的溯源。

      例如:员工A需要导出一份订单数据,管理员将“某年某月某日导出XX数据给员工A”设为水印信息并在导出时填加到数据里。当数据出现泄露时,管理员可以在获取到泄露的数据后,通过提取水印,将数据中的备注信息提取出来,就可以定位到泄漏数据的是员工A。

      水印使用限制详情,请参见水印使用限制

    5. 设置敏感数据要移动的目标位置,测试写入权限,并单击下一步
    6. 确认处理逻辑。
      目标位置配置项 是否必填 配置项描述
      触发方式选择 触发方式表示执行脱敏任务的方式。支持以下方式 :
      • 仅人工:需要在静态脱敏配置页面,通过手动的方式启动脱敏任务。
      • 仅定时触发:通过设置的时间点定时自动执行脱敏任务,可选每小时、每天、每月固定时间点自动触发任务。
      • 人工+定时触发:选择该方式,支持您手动单击启动来执行脱敏任务,和系统根据配置的定时时间自动执行脱敏任务(支持每小时、每天、每月、每周固定时间点自动触发任务)。
      开启增量脱敏 您可根据需要选择是否开启增量脱敏。增量脱敏是指每次脱敏数据为上次脱敏任务完成后新增的数据的脱敏方式。您需要选择一个源数据中随着时间递增的字段作为增量列,例如创建时间、自增ID(数据库自带的自增列)等。
      说明 当前仅有RDS数据支持增量脱敏。
      分片字段 DSC执行静态脱敏时会对源数据进行字段分片,通过并发处理的方式提高脱敏效率。您可根据需要选择分片字段,支持选择多个分片字段。
      说明
      • 当前仅有RDS数据支持增量脱敏,建议使用主键或者唯一索引作为分片字段。
      • 分片字段选择框内如果未选取任何字段,DSC将会默认使用主键作为分片字段,对源数据进行脱敏处理。如果您的源数据中没有主键,您必须选择分片字段,否则会导致脱敏任务失败。
      • 过多的分片字段会影响查询性能以及数据准确性,请谨慎选择。
      表名冲突解决方式 表名称存在冲突的情况下处理的方式。可选项:
      • 删除目标表建新同名表
      • 在目标表增加新数据。建议选择该选项。
      行冲突解决方式 表中的行内容存在冲突的情况下处理的方式。可选项:
      • 保留目标表冲突行,丢弃新插入数据。建议选择该选项。
      • 删除目标表冲突行,新插入新增数据
    7. 单击提交
  5. 单击新创建的脱敏任务操作列的启动,执行脱敏任务。
  6. 静态脱敏页签,单击任务状态子页签,查看脱敏任务的执行进度和状态。

脱敏任务执行失败排查

脱敏任务执行失败后,参考以下内容查看失败原因。

执行失败错误提示 错误原因
找不到脱敏任务,有可能是因为任务已经被删除或者关闭 脱敏任务可能被删除或被关闭(脱敏任务操作列下的开关为关闭状态)。
定时任务的调度周期设置有误 每日具体任务执行时间输入有误。
找不到脱敏源实例 脱敏源表实例不存在。
找不到脱敏目标实例 可能的原因有实例授权取消或目标实例删除等。
找不到脱敏源表 可能的原因有实例授权取消、源表删除等。
脱敏算法参数设置有误 算法参数填写错误。
源表列为空 源分区字段的列没有数据。
写入目标表失败 目标位置配置时写入目标表失败。
从源表查询失败 源表中未查询到该数据。
创建目标表失败 目标位置中可能不存在该表格。
找不到主键 RDS源表缺少主键。有关主键的更多信息,请参见RDS MySQL查看表的主键字段的方法
任务配置的MaxCompute分区字段有误 创建脱敏任务时,在脱敏源配置项中填写的源分区或者目标位置配置项填写的目标分区有误。

分区写法参考

分区类型 分区写法 分区示例
后N周 自定义分区字段名称=$[yyyymmdd+7*N] time=$[20190710+7*1],表示对2019年7月10日后一周的数据进行脱敏。
前N周 自定义分区字段名称=$[yyyymmdd-7*N] time=$[20190710-7*3],表示对2019年7月10日前的3周时间内的数据进行脱敏。
后N天 自定义分区字段名称=$[yyyymmdd+N] time=$[20190710+2],表示对2019年7月10日后的2天内的数据进行脱敏。
前N天 自定义分区字段名称=$[yyyymmdd-N] time=$[20190710-5],表示对2019年7月10日前的5天内的数据进行脱敏。
后N小时 自定义分区字段名称=$[hh24mi:ss+N/24] time=$[0924mi:ss+2/24],表示对9点以后的2小时的数据进行脱敏。
前N小时 自定义分区字段名称=$[hh24mi:ss-N/24] time=$[0924mi:ss-1/24],表示对9点前的1个小时内的数据进行脱敏。
后N分钟 自定义分区字段名称=$[hh24mi:ss+N/24/60] time=$[0924mi:ss+2/24/60],表示对9点过后的2分钟内的数据进行脱敏。
前N分钟 自定义分区字段名称=$[hh24mi:ss-N/24/60] time=$[0924mi:ss-2/24/60],表示对9点的前2分钟内的数据进行脱敏。

修改、删除脱敏任务

等待执行或执行中的脱敏任务不支持修改或删除。

  • 修改脱敏任务

    需要调整脱敏任务的配置时,您可以单击目标脱敏任务操作列的修改,修改脱敏任务。

  • 删除脱敏任务
    注意 脱敏任务删除后不支持恢复,建议您谨慎操作。

    不再需要指定脱敏任务时,您可以单击目标脱敏任务操作列的删除,并在提示对话框中单击确定

提取水印

如果对分发的数据添加水印,当信息泄露时,您可以从泄露的数据中提取水印标识。通过读取水印标识,可以追溯数据流转过程,精准定位泄露单位及责任人,实现数据溯源追责。对分发的数据添加水印,不会影响分发数据的正常使用。仅支持从RDS中提取水印。水印功能具有以下特点:

  • 安全性:数据水印不会因为数据改动而导致水印信息丢失,保障数据水印被准确鉴别。
  • 透明性:在原始数据中嵌入水印标记信息且不易被察觉,不影响原数据使用。
  • 可检测性:可以从数据片段中提取水印信息,进行数据溯源,溯源成功率高。
  • 鲁棒性:受到恶意攻击后,仍然可以完整地提取水印信息。
  • 低错误率:精确设计的水印提取规则,可以最大限度地降低数据溯源的错误概率。
  1. 登录数据安全中心控制台
  2. 在左侧导航栏,选择风险治理 > 数据脱敏
  3. 静态脱敏页签,单击水印提取子页签。
  4. 水印提取子页签,填写数据源信息。
    配置项 配置描述
    源产品 选择包含脱敏数据的文件来源的产品名称,当前仅能选择RDS
    源数据库/项目名 必填项。选择包含水印信息的表所在的项目名称。
    源表名 必填项。选择水印信息所在的数据表名称。
  5. 单击提取水印
    提取水印按钮下方的文本框中,可以查看提取出的水印信息。
  6. 可选:单击复制结果,复制已提取的水印信息。

动态脱敏

您可以通过调用ExecDatamask接口使用动态脱敏功能。调用该接口时需要提供脱敏模板ID。您可以在数据安全中心控制台风险治理 > 脱敏配置页面获取脱敏模板ID,也可以新建脱敏模板。具体操作,请参见配置脱敏模板

使用限制

您调用ExecDatamask接口对指定数据进行动态脱敏时,请求参数Data必须小于2 MB。

查看动态脱敏接口调用记录

  1. 登录数据安全中心控制台
  2. 在左侧导航栏,选择风险治理 > 数据脱敏
  3. 数据脱敏页面,单击动态脱敏页签。
  4. 动态脱敏页面,查看ExecDatamask接口的调用记录。
    说明 如果您在调用接口时使用了相同的账号和IP地址,即使多次调用接口,操作记录只会保留一条,并记录累计调用次数