Sensitive Data Protection 使用信息类型(或 infoType)来定义要扫描的内容。infoType 是一种敏感数据类型,如姓名、电子邮件地址、电话号码、身份证号码、信用卡号等。
Sensitive Data Protection 中定义的每个 infoType 都有一个对应的检测器。Sensitive Data Protection 在其扫描配置中使用 infoType 检测器来确定要检查的内容以及如何转换发现结果。显示或报告扫描结果时也会使用 InfoType 名称。
本主题详细介绍了 infoType 和 infoType 检测器,并提供了有关在使用 Sensitive Data Protection 扫描内容以查找敏感数据时如何使用 infoType 检测器的指导。
何时使用去标识化
以下是一些常见使用场景:
- 与外部分析合作伙伴共享数据:对直接标识符(例如姓名、国民身份证号和账号)进行标记化或假名化处理,以便第三方合作伙伴和研究人员无需访问明文个人身份即可分析数据集。
- 将生产数据集暂存到非生产环境中:在将生产数据库复制到开发、测试或训练环境之前,先对敏感客户自定义属性进行遮盖或泛化。
- 遵守隐私监管规定:混淆 BigQuery 和 Cloud Storage 代码库中的敏感个人身份信息 (PII) 和受保护健康信息 (PHI),以满足 GDPR 和 HIPAA 等合规标准。
- 清理流式事件流水线中的敏感字段:在事件流经 Pub/Sub 时实时转换敏感记录,然后再将数据持久化到下游仓库或应用数据库中。
- 维护关系型数据集之间的引用完整性:使用确定性加密转换,在不同系统之间实现安全联接和跨表分析,而不会暴露底层标识符。
指定 infoType 检测器
设置 Sensitive Data Protection 以扫描内容时,您需要在扫描配置中添加要使用的 infoType 检测器。
例如,以下 JSON 演示了向 DLP API 发出的简单扫描请求。请注意,PHONE_NUMBER 检测器是在 inspectConfig 中指定的,它会指示 Sensitive Data Protection 在给定字符串中扫描手机号码。
POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:inspect?key={YOUR_API_KEY}
{
"item":{
"value":"My phone number is (415) 555-0890"
},
"inspectConfig":{
"includeQuote":true,
"minLikelihood":"POSSIBLE",
"infoTypes":{
"name":"PHONE_NUMBER"
}
}
}
上述请求返回以下内容:
{
"result":{
"findings":[
{
"quote":"(415) 555-0890",
"infoType":{
"name":"PHONE_NUMBER"
},
"likelihood":"VERY_LIKELY",
"location":{
"byteRange":{
"start":"19",
"end":"33"
},
"codepointRange":{
"start":"19",
"end":"33"
}
},
"createTime":"2018-10-29T23:46:34.535Z"
}
]
}
}
请务必在扫描配置中指定 infoType。如果您未指定任何 infoType,Sensitive Data Protection 会使用默认 infoType 列表。扫描默认 infoType 可能非常耗时或费用高昂,具体取决于需要扫描的内容量而定。
如需详细了解如何使用 infoType 检测器扫描内容,请参阅其中一个有关检查、遮盖或去标识化的操作方法主题。
infoType 检测器的种类
信息类型(或“infoType”)检测器是 Sensitive Data Protection 用于查找敏感数据的机制。
Sensitive Data Protection 包含多种 infoType 检测器,所有这些检测器都汇总在此处:
- 内置 infoType 检测器内置于 Sensitive Data Protection 中。它们包括针对特定国家/区域的敏感数据类型以及全球适用的数据类型的检测器。
- 自定义 infoType 检测器 - 您自行创建的检测器。自定义 infoType 检测器有三种:
- 常规自定义字典检测器是 Sensitive Data Protection 匹配的简单字词列表。当您拥有一个包含多达数万个字词或短语的列表时,请使用常规自定义字典检测器。如果您预计字词列表不会发生显著变化,也建议首选常规自定义字典检测器。
- 存储的自定义字典检测器由 Sensitive Data Protection 使用存储在 Cloud Storage 或 BigQuery 中的大量字词或短语列表生成。当您拥有一个包含高达数千万个字词或短语的庞大列表时,请使用存储的自定义字典检测器。
- 正则表达式 (regex) 检测器使 Sensitive Data Protection 能够根据正则表达式模式检测匹配项。
如需优化扫描结果,您可以创建检查规则。
内置 infoType 检测器
内置 infoType 检测器内置于 Sensitive Data Protection 中,包括针对特定国家或地区的敏感数据类型的检测器,例如法国 Numéro d'Inscription au Répertoire (NIR) (FRANCE_NIR)、英国驾照号码 (UK_DRIVERS_LICENSE_NUMBER) 和美国社会保障号 (US_SOCIAL_SECURITY_NUMBER)。它们还包括全球适用的数据类型,例如人名 (PERSON_NAME)、电话号码 (PHONE_NUMBER)、电子邮件地址 (EMAIL_ADDRESS) 和信用卡号 (CREDIT_CARD_NUMBER)。为了检测与 infoType 对应的内容,Sensitive Data Protection 利用了各种技术,包括模式匹配、校验和、机器学习、上下文分析等。
请务必更新内置 infoType 检测器列表。如需当前支持的内置 infoType 检测器的完整列表,请参阅 InfoType 检测器参考。
您还可以通过调用 Sensitive Data Protection 的 infoTypes.list 方法来查看所有内置 infoType 检测器的完整列表。
自定义 infoType 检测器
自定义 infoType 检测器有三种:
如需优化扫描结果,您可以创建检查规则。
常规自定义字典检测器
使用常规自定义字典检测器可匹配较短的(最多数万个)字词或短语的列表。常规自定义字典可以作为自己唯一的检测器。
当您想要扫描的字词或短语列表不易通过正则表达式或内置检测器匹配时,则可以使用自定义字典检测器。例如,假设您想扫描那些通常用分配的房间名称而不是房间号码称呼的会议室(例如州或地区名称、地标、虚构名称等),您可以创建包含这些房间名称列表的常规自定义字典检测器。Sensitive Data Protection 可以扫描您的内容,查找每个会议室名称,并在上下文中遇到其中一个名称时返回匹配项。如需详细了解 Sensitive Data Protection 如何匹配字典字词和短语,请参阅创建常规自定义字典检测器的“字典匹配细节”部分。
要详细了解常规字典自定义 infoType 检测器的工作原理以及实际操作示例,请参阅创建常规自定义字典检测器。
存储的自定义字典检测器
如果您要扫描众多的字词或短语,或者您的字词或短语列表经常更改,请使用存储的自定义字典检测器。存储的自定义字典检测器可以匹配多达数千万个字词或短语。
存储的自定义字典检测器本质上是非常大型的自定义检测器,其创建方式与正则表达式自定义检测器和常规自定义字典检测器不同。每个存储的自定义字典由两部分组成:
- 您创建和定义的短语列表。该列表以文本文件的形式存储在 Cloud Storage 中或以列的形式存储在 BigQuery 表中。
- 生成的字典文件,由 Sensitive Data Protection 根据您的短语列表构建。字典文件存储在 Cloud Storage 中,由源短语数据的副本和有助于进行搜索和匹配的布隆过滤器组成。您无法直接修改这些文件。
创建字词列表并使用 Sensitive Data Protection 生成自定义字典后,您可以使用存储的自定义字典检测器启动或安排扫描,其方式与其他 infoType 检测器类似。
如需详细了解存储的自定义字典检测器的工作原理以及实际操作示例,请参阅创建存储的自定义字典检测器。
正则表达式
借助正则表达式 (regex) 自定义 infoType 检测器,您可以创建自己的 infoType 检测器,使 Sensitive Data Protection 能够根据正则表达式模式检测匹配项。例如,假设您的医疗记录编号采用 ###-#-##### 形式。您可以定义一个正则表达式模式,如下所示:
[1-9]{3}-[1-9]{1}-[1-9]{5}
然后,Sensitive Data Protection 会匹配如下所示的内容:
123-4-56789
您还可以指定要分配给每个自定义 infoType 匹配项的可能性。也就是说,当 Sensitive Data Protection 与您指定的序列匹配时,它会分配您指定的可能性。这很有用,因为如果您的自定义正则表达式定义了一个足够常见的序列,它很容易与其他一些随机序列匹配,您不希望 Sensitive Data Protection 将每个匹配项都标记为 VERY_LIKELY。这样做会降低扫描结果的置信度,并且可能导致对错误信息进行去标识化。
如需详细了解正则表达式自定义 infoType 检测器及其实际操作,请参阅创建自定义正则表达式检测器。