DataWorks目前支持动态脱敏和静态脱敏,本文为您介绍如何创建脱敏规则,并在DataWorks中进行脱敏查询。

前提条件

  • 您需要购买DataWorks专业版及以上版本,才可以使用数据脱敏管理功能。详情请参见:DataWorks各版本详解
  • 您需要先开启DataWorks项目空间的查询脱敏功能,详情请参见安全设置与其他
  • 您可以使用masking_v2资源包,实现MaxCompute底层脱敏。详情请参见附录:使用masking_v2方法实现MaxCompute底层脱敏
    说明 仅华北2(北京)、华东2(上海)、华东1(杭州)、华南1(深圳)、中国(香港)、新加坡、德国(法兰克福)支持使用MaxCompute底层脱敏。使用前你需要提交工单进行开通。

背景信息

DataWorks目前支持动态脱敏和静态脱敏。
分类概念脱敏场景
动态脱敏用户在查询敏感数据时在页面展示脱敏后的数据。当前DataWorks为您内置了全局配置、展示脱敏、数据分析脱敏、底层脱敏等脱敏场景,子场景为动态脱敏的典型应用场景。配置详情请参见创建脱敏规则:全局配置场景
静态脱敏将数据脱敏后存储到指定的数据库位置。当前DataWorks为您内置了数据集成脱敏场景,子场景为静态脱敏的典型应用场景。配置详情请参见创建脱敏规则:数据集成场景

选择脱敏场景

  1. 进入数据保护伞。详情请参见:数据保护伞概述
  2. 在左侧导航栏,单击规则配置 > 数据脱敏管理
    数据脱敏管理页面根据需求选择脱敏场景。DataWorks为您提供了多种脱敏场景,还支持您自己创建脱敏场景。
    • 全局配置:全局配置的脱敏规则和白名单规则会在展示脱敏、数据分析脱敏、底层脱敏等场景中使用。
    • DataWorks展示脱敏
      • 数据开发页面查询数据时,查询的敏感数据(已配置脱敏规则)会经过脱敏。数据开发
      • 数据地图的数据预览查询数据时,查询的敏感数据(已配置脱敏规则)会经过脱敏。数据地图
    • DataWorks数据分析脱敏:在数据分析进行SQL查询SQL Notes时,查询的敏感数据(配置了脱敏规则的)会经过脱敏。数据分析
    • Hologres展示脱敏:在数据开发holostudio查询holo的数据时按照配置进行脱敏。仅杭州、北京地域可以配置该脱敏规则。默认不开启该功能,如果您需要使用该功能,请提交工单进行开通。
      说明 Hologres暂不支持假名脱敏,您配置的全局假名脱敏规则,在Hologres场景下,将被脱敏为“***”。
    • MaxCompute底层脱敏:从MaxCompute各个访问入口查询数据时,均会被脱敏。仅上海地域可以配置该脱敏规则。开启MaxCompute的动态脱敏功能详情请参见:数据动态脱敏
    • 新增自定义脱敏场景:在脱敏场景的下拉菜单底部单击脱敏场景,弹出新增脱敏场景,您可以自定义脱敏场景的场景名称(仅包含中文、英文、数字、下划线、中划线)和场景码(仅包含数字和英文)。
  3. 创建脱敏规则。
    选择场景后,可以在对应场景下新建脱敏规则,便于后续应用的使用。不同场景下创建脱敏规则请参见:

创建脱敏规则:全局配置场景

下面以全局配置(_default_scene_code)为例,介绍数据脱敏配置的流程,Hologres展示脱敏DataWorks展示脱敏DataWorks数据分析脱敏MaxCompute底层脱敏场景的操作步骤参考全局配置场景。

  1. 数据脱敏管理页面,选择脱敏场景全局配置(_default_scene_code)
  2. (可选)选择脱敏对象并授权。
    说明Hologres展示脱敏MaxCompute底层脱敏需要配置。
    单击选择脱敏project选择脱敏database,根据界面提示选择需要脱敏的project或database,并勾选同意授权数据保护伞对该project或database脱敏选项。
  3. 新建数据脱敏规则。
    1. 数据脱敏配置页面,单击右上方的新建脱敏规则
    2. 新建脱敏规则对话框中,配置脱敏规则脱敏方式
      新建脱敏规则
      1. 配置基础信息。
        参数描述
        敏感数据类型你可以根据需要选择已创建的敏感数据类型(系统自动过滤掉已被当前脱敏场景使用过的敏感字段类型)。详情请参见:通过内置规则识别
        脱敏规则名称

        该文本框会自动代入用户填写的敏感数据类型(输入字符限制1~30字,包括:中文、英文、数字),您也可以在该敏感数据类型下新增脱敏规则名称,当与该租户下所有用户创建的脱敏规则出现重名时,提示规则名称重复

      2. 配置脱敏方式:DataWorks支持的脱敏方式包括:保留格式加密掩盖HASH加密字符替换区间变换取整置空
        • 保留格式加密(原假名脱敏算法)
          保留格式加密脱敏会将一个值替换成一个具有相同特征的脱敏信息。脱敏后数据和脱敏前数据的格式保持一致。
          • 数据水印:数据水印可提供数据溯源能力,发生数据泄漏后,可以帮您定位到可能的泄漏源。您可以根据需求选择是否开启数据水印
            说明 仅DataWork企业版及以上版本支持使用数据水印功能。
          • 脱敏特征值:默认选中5,可选范围0~9,不同脱敏特征值的脱敏策略规则不一致,即相同的待脱敏数据在不同的脱敏特征值脱敏出来的结果信息不一致。例如,原始数据为a123,脱敏特征值设置为0时,脱敏成b124,脱敏特征值设置为1时,脱敏成c234。原始数据相同时,如果脱敏特征值相同则脱敏后的数据也是相同的。
          • 当选择的敏感数据类型的识别规则为非内置时,用户需要配置替换字符集

            替换字符集:非内置敏感数据类型需要配置该参数。遇到字符集中的字符,即会被替换为其他相同类型的字符,不支持中文,若需要脱敏的数据不符合字符集范围则不脱敏(可输入大写字母、小写字母、和数字,多个字符请用英文逗号隔开),例如,敏感数据脱敏前是0~3的数字和a~d的字母组成,那么脱敏后也会脱敏成在这个范围内的数字和字母。

        • 掩盖
          掩盖脱敏是对部分信息进行掩盖,将对应位置上的字符用“*”替换,达到脱敏的效果。
          • 推荐方式:下拉框可选择只展示前1位和最后1位只展示前3位和最后2位只展示前3位和最后4位
          • 自定义:自定义提供了更加灵活的设置方式,按从左至右顺序配置分段是否脱敏,以及需要脱敏(或者不脱敏)的字符长度。最多可添加10个分段,必须要有且仅有1个分段是剩余位数掩盖脱敏
            图标描述
            可选择位数剩余位数
            输入范围为【1,100】。
            可选择脱敏不脱敏
            例如,脱敏前3位,剩余位数不脱敏。例子
          • HASH
            • 数据水印:数据水印可提供数据溯源能力,发生数据泄漏后,可以帮您定位到可能的泄漏源。您可以根据需求选择是否开启数据水印
              说明 仅DataWork企业版及以上版本支持使用数据水印功能。
            • 加密算法:包括MD5、SHA256、SHA512、SM3。
            • 加盐值:设置各加密算法的盐值。默认选中5,可填值为0~9。
              说明 在密码学中,通过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这种过程称之为加盐。盐值即插入的特定字符串。
          • 字符替换:将指定位置的字符按照您选择的替换方式进行替换。
            • 替换位置:下拉框可选择替换全部替换前3位替换后4位,同时支持您自定义替换位置。
              替换位置选择自定义时,用户可以自定义分段,并配置每个分段如何替换字符,最多可添加10个分段,必须要有且仅有1个分段是剩余位数自定义
              图标描述
              可选择位数剩余位数
              输入范围为【1,100】。
              可选择替换方式,包括随机替换样本值替换固定值替换
            • 替换方式:包括随机替换样本值替换固定值替换
              • 随机替换:随机替换对应位置上的字符,替换前后字符位数不变。
              • 样本值替换:您需要选择指定样本库,选择后用样本库中的值替换对应位置上的字符。
              • 固定值替换:您需要在替换值文本框中输入字符(字符不限,长度1~100,不可包含空字符),输入后用该替换值替换对应位置上的字符。
          • 区间变换:仅适用对数值类型的数据进行脱敏。可将指定数值范围内的数据脱敏为固定的值,可添加多个区间范围,至少1个,至多10个。
            • 原始数值范围 [m,n) :脱敏前数据的数值范围,有效值为大于等于0的数值,最多支持小数点后2位。
            • 脱敏后数值:脱敏之后的值,有效值为大于等于0的数值,最多支持小数点后2位;
          • 取整
            • 原始数据类型:仅支持选择数值类型。
            • 保留小数点位数:有效值范围为0~5,剩余部分四舍五入。例如,原始数值3.1415,保留小数点位数2位,脱敏后为3.14。
          • 置空:脱敏时,对应的敏感字段置为空字符串。
      3. 验证脱敏配置结果:您可以在样本数据文本框中输入脱敏前样本数据(输入字符限制0~100字符),单击脱敏验证,在脱敏效果中会返回脱敏后的数据。
    3. 单击保存
    4. 数据脱敏配置页面,设置脱敏策略的状态为生效失效
      设置成功后,单击相应脱敏规则后的操作列的图标,可以执行删除脱敏规则、修改脱敏规则和查询详情的操作。
      说明
      • 生效的规则不允许执行删除修改的操作。您需要先将规则失效,失效时判断是否有相关任务使用到该规则,请联系安全管理员二次确认;
      • 失效状态下您可以修改脱敏方式,但是敏感数据类型脱敏规则名称不可修改。
      • 修改完成后开启生效,配置该脱敏规则的任务可继续脱敏。
  4. 新增白名单。
    1. 单击菜单栏中的白名单配置管理
    2. 白名单配置管理页面,单击右上方的新增白名单
    3. 新增白名单对话框中,配置相关信息。
      说明
      • Hologres展示脱敏场景不需要配置白名单。
      • 设置白名单生效时间后,对于符合白名单条件的敏感数据,将在指定有效期内不进行脱敏处理。
      • 白名单条件不可以全部设置为全部
      配置白名单
      1. 配置基础信息。
        参数描述
        白名单名称您可以输入白名单名称(输入字符限制1~30字,不可输入特殊字符)。
        分级您可以单击右侧下拉框选择内置或所有用户创建的分级。配置分类分级详情请参见:配置敏感数据分类分级
        分类您可以单击右侧下拉框选择内置或所有用户创建的分类。
        用户组您可以选择在管理用户组中已配置的用户组,最多可选50个用户组。添加用户组至白名单后,用户组内的账号获取到的数据为脱敏前的原始数据。用户组管理配置详情请参见:配置用户组
        生效时间您可以设置白名单生效时间。设置后,如果不在白名单脱敏时间的区间内,该用户在查询该敏感信息时将会继续脱敏。
        说明 设置为短期后,表示从当前时间开始到指定天数内的数据将不进行脱敏。
      2. 高级设置。
        参数描述
        敏感字段类型您可以右侧下拉框选择已创建的敏感数据类型(包括内置和所有用户创建的敏感数据类型)。
        项目空间范围您可以选择当前地域支持的引擎及引擎中的项目空间。不选择代表全部。
        说明 项目空间仅支持选择当前账号有权限的项目空间。
        数据表范围您可以填写数据范围。不填写代表全部。
        说明 支持 .*通配符,例如,.*name表示以name为后缀,private.*表示以private为前缀,多个数据之间请用英文逗号分隔,字符总长度不超过100。
        字段范围您可以填写字段范围,不填写代表全部。
        说明 支持 .*通配符,,例如,.*name表示以name为后缀,private.*表示以private为前缀,多个字段之间请用英文逗号分隔,字符总长度不超过100。
    4. 单击保存完成白名单配置。
  5. 后续步骤:创建完成脱敏规则后,您在数据开发、数据预览、数据分析等页面查询数据时,查询的敏感数据(已配置脱敏规则)会经过脱敏。详情请参见脱敏场景

创建脱敏规则:数据集成场景

  1. 数据脱敏管理页面,选择脱敏场景DataWorks数据集成脱敏(dataworks_data_integration_desense_code)
  2. 新建数据脱敏规则。
    1. 数据脱敏配置页面,单击右上方的新建脱敏规则
    2. 脱敏规则对话框中,选择需要设置的敏感数据类型脱敏规则名称脱敏方式安全域替换字符集
      脱敏规则
      1. 配置基础信息
        参数描述
        敏感数据类型
        • 默认为选择已有,右侧下拉框选择已创建的敏感数据类型(包括内置和所有用户创建的敏感数据类型)。你可以根据需要选择已创建的敏感数据类型。
        • 可切换新增类型,右侧输入框可输入敏感数据类型名称(输入字符限制1~30字,包括:中文、英文、数字)。

          用户输入新增敏感数据类型,系统会判断文字与已有敏感数据类型名称是否相同(包括:内置和该租户下所有用户配置的敏感数据类型),如果名称相同则提示敏感字段类型重复

        说明 内置敏感数据类型:手机号、身份证号、银行卡号、邮箱_内置、IP、车牌号、 邮政编码、座机号、MAC地址、地址、姓名、公司名、民族、星座、性别、国籍。
        脱敏规则名称

        该文本框会自动代入用户填写的敏感数据类型(输入字符限制1~30字,包括:中文、英文、数字),您也可以在该敏感数据类型下新增脱敏规则名称,当与该租户下所有用户创建的脱敏规则出现重名时,提示规则名称重复

      2. 配置脱敏方式与规则:DataWorks支持的脱敏方式包括假名HASH掩盖三种方式。
        • 假名
          假名脱敏会将一个值替换成一个具有相同特征的脱敏信息。脱敏后数据和脱敏前数据的格式保持一致。
          • 当选择的敏感数据类型为内置敏感数据类型(手机号、身份证号、银行卡号、邮箱_内置、IP、车牌号、 邮政编码、座机号、MAC地址、地址、姓名、公司名)时,用户需要配置安全域

            安全域:可选范围0~9,不同安全域的脱敏策略规则不一致,即相同的待脱敏数据在不同的安全域脱敏出来的结果信息不一致。例如,原始数据为a123,安全域设置为0时,脱敏成b124,安全域设置为1时,脱敏成c234。原始数据相同时,如果安全域相同则脱敏后的数据也是相同的。

          • 当选择的敏感数据类型为非内置时,用户需要配置替换字符集

            替换字符集:遇到字符集中的字符,即会被替换为其他相同类型的字符,不支持中文,若需要脱敏的数据不符合字符集范围则不脱敏(可输入大写字母、小写字母、和数字,多个字符请用英文逗号隔开),例如,敏感数据脱敏前是0~3的数字和a~d的字母组成,那么脱敏后也会脱敏成在这个范围内的数字和字母。

        • 哈希

          可将原始数据加密成固定长度的数据。HASH脱敏方式需要选择安全域

          安全域:可选范围0~9,不同安全域的脱敏策略规则不一致,即相同的待脱敏数据在不同的安全域脱敏出来的结果信息不一致。例如,原始数据为a123,安全域设置为0时,脱敏成b124,安全域设置为1时,脱敏成c234。原始数据相同时,如果安全域相同则脱敏后的数据也是相同的。

        • 掩盖
          掩盖脱敏是对部分信息进行掩盖,将对应位置上的字符用“*”替换,达到脱敏的效果。
          • 推荐方式:下拉框可选择只展示前1位和最后1位只展示前3位和最后2位只展示前3位和最后4位
          • 自定义:自定义提供了更加灵活的设置方式,按从左至右顺序配置分段是否脱敏,以及需要脱敏(或者不脱敏)的字符长度。最多可添加10个分段,至少要有1个分段是剩余位数掩盖
            图标描述
            可选择位数剩余位数
            输入范围为【1,100】。
            可选择脱敏不脱敏
            例如,脱敏前3位,剩余位数不脱敏。掩盖1
            例如,脱敏后3位,剩余位数不脱敏。掩盖2
      3. 验证脱敏配置结果:您可以在样本数据文本框中输入脱敏前样本数据(输入字符限制0~100字符),单击脱敏验证,在脱敏效果中会返回脱敏后的数据。
    3. 单击确定
    4. 数据脱敏配置页面会新增一条脱敏规则,设置脱敏策略的状态为生效失效
      设置成功后,单击相应脱敏规则后的操作列的图标,可以执行删除脱敏规则、修改脱敏规则和查询详情的操作。
      说明
      • 生效的规则不允许执行删除修改的操作。您需要先将规则失效,失效时判断是否有相关任务使用到该规则,请联系安全管理员二次确认;
      • 失效状态下您可以修改脱敏方式,但是敏感数据类型脱敏规则名称不可修改。
      • 修改完成后开启生效,配置该脱敏规则的任务可继续脱敏。
  3. 后续步骤:创建数据集成脱敏规则后,您可以在创建实时同步单表数据任务的时候使用该脱敏规则。详情请参见配置数据脱敏

附录:使用masking_v2方法实现MaxCompute底层脱敏

例如,待使用底层脱敏的项目:dsg_fin_demo。项目
  1. 申请网络白名单。
    主账号填写表单申请。

    如果目标IP或域名不存在安全限制,审核通过后即可访问目标IP或域名,审核周期为3个工作日之内。

    文案如下:
    项目名称(待脱敏的项目名称) : dsg_fin_demo
    日志地址 :
    问题描述 : 对project打开域名白名单,以使udf运行的时候可以访问某些域名
    区域:上海
    要访问的域名: dsg-cn-shanghai.data.aliyun.com,dsg-oss-dic-ori.oss-cn-shanghai.aliyuncs.com
    端口:80,443
    不同区域申请的域名不一样,如果您要申请的项目不在下面区域中,需向数据保护伞提交工单进行申请。端口统一为80,443。
    上海:dsg-cn-shanghai.data.aliyun.com,dsg-oss-dic-ori.oss-cn-shanghai.aliyuncs.com
    杭州:dsg-cn-hangzhou.data.aliyun.com,dsg-oss-dic-ori-hz.oss-cn-hangzhou.aliyuncs.com
    北京:dsg-cn-beijing.data.aliyun.com,dsg-oss-dic-ori.oss-cn-beijing.aliyuncs.com
    成都:dsg-cn-chengdu.data.aliyun.com,dsg-oss-dic-ori-cd.oss-cn-chengdu.aliyuncs.com
    深圳售卖区: dsg-cn-shenzhen.data.aliyun.com,dsg-oss-dic-ori-sz.oss-cn-shenzhen.aliyuncs.com
    华北政务云: dsg-cn-north-2-gov-1.data.aliyun.com,dsg-oss-dic-ori-north-2-gov-1.oss-cn-north-2-gov-1-internal.aliyuncs.com
    上海金融云:dsg-cn-shanghai-finance-1.data.aliyun.com,dsg-oss-dic-ori-sh-fin-1.oss-cn-shanghai.aliyuncs.com
    香港 :dsg-cn-hongkong.data.aliyun.com,dsg-oss-hongkong.oss-cn-hongkong.aliyuncs.com
    新加坡: dsg-ap-southeast-1.data.aliyun.com,dsg-oss-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com
    美西: dsg-us-west-1.data.aliyun.com,dsg-oss-us-west-1.oss-us-west-1.aliyuncs.com
    马来西亚(吉隆坡):dsg-ap-southeast-3.data.aliyun.com,dsg-oss-ap-malaysia.oss-ap-southeast-3.aliyuncs.com
    法兰克福: dsg-eu-central-1.data.aliyun.com,dsg-oss-eu-central-1.oss-eu-central-1-internal.aliyuncs.com
  2. 您可以向数据保护伞提交工单,申请项目使用底层脱敏功能。
  3. 进入数据保护伞脱敏配置界面,授权项目脱敏。
    进入需要执行masking_v2函数的租户,在数据脱敏管理页面,MaxCompute底层脱敏场景下面授权具体的项目。
    说明 如果没有进行授权,直接执行会出现报错。
    授权
  4. 查询sql显示脱敏成功。
    1. 关闭页面查询内容脱敏开关,执行查询sql。
      关闭项目查询语句(以上海区域为例):
      set odps.output.field.formatter={"name":"aegis:masking_v2","param":["alias","index"]};
      set odps.isolation.session.enable=true;
      set odps.internet.access.list=dsg-cn-shanghai.data.aliyun.com:80,dsg-cn-shanghai.data.aliyun.com:443,dsg-oss-dic-ori.oss-cn-shanghai.aliyuncs.com:80,dsg-cn-shanghai.data.aliyun.com:80,dsg-cn-shanghai.data.aliyun.com:443,dsg-oss-dic-ori.oss-cn-shanghai.aliyuncs.com:443;
      select * from table;
    2. 数据开发界面查询结果。
      查询结果
    3. odpscmd界面查询结果。
      查询结果odpscmd的config配置文件中:
      project_name=dsg_demo_bj_new
      access_id=xxxx
      access_key=yyy
      end_point=http://service.odps.aliyun.com/api
      # this endpoint is for office environment
      #end_point=http://service-corp.odps.aliyun-inc.com/api
      # this endpoint is for production environment
      #end_point=http://service.odps.aliyun-inc.com/api
      # this url is for odpscmd update
      update_url=http://odps.alibaba-inc.com/official_downloads
      # download sql results by instance tunnel
      use_instance_tunnel=true
      # the max records when download sql results by instance tunnel
      instance_tunnel_max_record=10000
      
      # use set.<key>=<value> to set flags when console launched
      # e.g. set.odps.sql.select.output.format=csv
      
      特别备注:odpscmd里面的config文件写入白名单的时候不同于ide,需要set.odps.internet.access.list
      
      set.odps.internet.access.list=dsg-cn-shanghai.data.aliyun.com:80,dsg-oss-dic-ori.oss-cn-shanghai.aliyuncs.com:80;
               
  5. 取消使用底层脱敏。
    执行如下语句,取消maksing_v2的使用。
    set odps.output.field.formatter=;
    select * from table;
    将不需要脱敏的项目,移动到左边未脱敏project,取消脱敏配置。取消脱敏