借助正则表达式 (regex) 自定义 infoType 检测器,您可以自行创建能让敏感数据保护功能基于正则表达式模式检测匹配项的检测器。例如,假设您的医疗记录编号采用 ###-#-#####
形式。您可以定义一个正则表达式模式,如下所示:
[0-9]{3}-[0-9]{1}-[0-9]{5}
然后,敏感数据保护功能会匹配以下项:
012-4-56789
正则表达式自定义 infoType 检测器详解
如 API 概览中所述,要创建自定义正则表达式 infoType 检测器,需要定义一个包含下列内容的 CustomInfoType
对象:
- 您希望在
InfoType
对象中为自定义 infoType 检测器指定的名称。 - (可选)
Likelihood
值。如果省略此字段,正则表达式匹配项将返回默认可能性VERY_LIKELY
。如果您发现正则表达式自定义 infoType 检测器返回太多误报,请尝试减小基本可能性,并通过检测规则和上下文信息来提高可能性。如需了解详情,请参阅对发现结果的可能性进行自定义。 - (可选)
DetectionRule
或热词规则。这些规则可在指定热词的一定接近范围内调整结果的可能性。详细了解对发现结果的可能性进行自定义中的热词规则。 (可选)
SensitivityScore
值。如果省略此字段,则与正则表达式匹配的项将返回默认敏感度级别HIGH
。敏感度得分用于数据分析。在分析数据时,敏感数据保护功能会使用 infoType 的敏感度得分来计算敏感度级别。
一个
Regex
对象,由定义正则表达式的单个模式构成。
作为一个 JSON 对象,包含所有可选组件的正则表达式自定义 infoType 检测器如下所示:
{
"customInfoTypes":[
{
"infoType":{
"name":"CUSTOM_INFOTYPE_NAME"
},
"likelihood":"LIKELIHOOD_LEVEL",
"detectionRules":[
{
"hotwordRule":{
HOTWORD_RULE
}
},
"sensitivityScore":{
"score": "SENSITIVITY_SCORE"
},
],
"regex":{
"pattern":"REGULAR_EXPRESSION_PATTERN"
}
}
],
...
}
正则表达式示例:匹配医疗记录编号
下面采用以下多种语言的 JSON 代码段和代码显示了一个正则表达式自定义 infoType 检测器,它指示敏感数据保护功能匹配输入文本“Patient's MRN 444-5-22222”中的医疗记录编号 (MRN),并为每个匹配项分配可能性 POSSIBLE
。
C#
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用敏感数据保护客户端库,请参阅 敏感数据保护客户端库。
如需向 Sensitive Data Protection 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
REST
要详细了解如何将 DLP API 与 JSON 结合使用,请参阅 JSON 快速入门。
JSON 输入:
POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:inspect?key={YOUR_API_KEY}
{
"item":{
"value":"Patients MRN 444-5-22222"
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"C_MRN"
},
"regex":{
"pattern":"[1-9]{3}-[1-9]{1}-[1-9]{5}"
},
"likelihood":"POSSIBLE"
}
]
}
}
JSON 输出:
{
"result":{
"findings":[
{
"infoType":{
"name":"C_MRN"
},
"likelihood":"POSSIBLE",
"location":{
"byteRange":{
"start":"13",
"end":"24"
},
"codepointRange":{
"start":"13",
"end":"24"
}
},
"createTime":"2018-11-30T01:29:37.799Z"
}
]
}
}
输出显示,借助我们命名为 C_MRN
的自定义 infoType 检测器及其自定义正则表达式,敏感数据保护功能正确识别了医疗记录编号并按照指示为其分配了确定性 POSSIBLE
。
基于此示例构建自定义匹配可能性,使其包含上下文字词。