Sensitive Data Protection 的內建 infoType 偵測工具可有效找出常見的機密資料類型。自訂 infoType 偵測工具可讓您完全自訂機密資料偵測工具。檢查規則可修改特定 infoType 偵測工具的偵測機制,進而精細調整 Sensitive Data Protection 傳回的掃描結果。
如要從內建 infoType 偵測工具傳回的結果中排除或納入更多值,可以從頭建立新的自訂 infoType,並定義 Sensitive Data Protection 應尋找的所有條件。或者,您也可以根據指定條件,精確調整 Sensitive Data Protection 內建或自訂偵測工具傳回的發現項目。您可以新增檢查規則,減少雜訊、提高精確度和喚回度,或調整掃描結果的可能性確定性。
本主題將討論如何使用兩種檢查規則,以根據您指定的自訂條件,排除某些發現項目或額外增加發現項目。本主題也會提供幾種情況,讓您衡量是否可能要更改現有的 infoType 偵測工具。
可用的檢查規則類型如下:
目標和情境 infoType
本文使用下列字詞來指稱規則集中的 infoType。
- 目標 infoType:符合規則集定義的條件時,Sensitive Data Protection 會排除或調整的 infoType。
- 情境 infoType:如果偵測到這類 infoType,則會提供目標 infoType 的情境資訊。Sensitive Data Protection 會使用背景資訊 infoType,判斷是否必須排除或調整目標 infoType。
規則排序和鏈結
Sensitive Data Protection 會按照您在規則集中指定的順序套用規則。因此,規則順序可能會影響 Sensitive Data Protection 作業的結果。如需範例,請參閱本文件中的「提高健康文件中人名的可能性,並排除健康文件」。
排除規則
排除規則適用於下列情況:
- 希望在結果中排除 infoType 偵測工具重疊所造成的重複掃描相符項目。舉例來說,您要掃描電子郵件地址和電話號碼,但收到兩個電子郵件地址含有電話號碼的命中結果,例如「206-555-0764@example.org」。
- 掃描結果中出現雜訊。舉例來說,您發現掃描合法電子郵件地址時,傳回相同虛擬電子郵件地址 (例如 example@example.com) 或網域 (例如 example.com) 的次數過多。
- 您有一份清單,列出要從結果中排除的字詞、詞組或字元組合。
- 您想從結果中排除整欄資料。
- 您想排除與規則運算式相符的字串附近的發現項目。
- 您想根據圖片中發現項目與其他偵測到的發現項目之間的空間關係,排除圖片中的發現項目。
排除規則 API 總覽
Sensitive Data Protection 會在 ExclusionRule 物件中定義排除規則。在 ExclusionRule 中,指定下列其中一項:
Dictionary物件,其中包含要從結果中排除的字串清單。Regex物件,用於定義規則運算式模式。與模式相符的字串會從結果中排除。ExcludeInfoTypes物件,其中包含 infoType 偵測工具陣列。如果發現項目與此處列出的任何 infoType 偵測工具相符,就會從結果中排除。ExcludeByHotword物件,其中包含下列項目:- 定義熱字的規則運算式。
- 鄰近值,定義啟動字詞與發現項目的距離。
如果發現項目在設定的鄰近範圍內,則會從結果中排除。如果是資料表,這類排除規則可讓您從結果中排除整欄資料。
ExcludeByImageFindings物件,其中包含下列項目:情境 infoType 清單,用於判斷是否要排除目標 infoType 發現項目。
ImageContainmentType物件,用於指定目標和背景發現項目定界框之間所需的空間關係。如未符合這項規定,Sensitive Data Protection 就不會排除目標 infoType 發現項目。
如果內容 infoType 的定界框與目標 infoType 發現項目具有指定關係,Sensitive Data Protection 就會排除目標 infoType 發現項目。使用
ExcludeByImageFindings時,必須將matchingType欄位設為MATCHING_TYPE_RULE_SPECIFIC。TIFF 圖片不支援
ExcludeByImageFindings。如果content.inspect要求包含這項規則,則 TIFF 圖片會失敗。
排除規則的情境範例
下列每個 JSON 程式碼片段都說明如何針對特定情境設定 Sensitive Data Protection。
在 EMAIL_ADDRESS 偵測工具掃描中省略特定電子郵件地址
下列 JSON 程式碼片段和多種語言的程式碼,說明如何使用 InspectConfig 指示 Sensitive Data Protection,在採用 infoType 偵測工具 EMAIL_ADDRESS 的掃描作業中,避免比對「example@example.com」:
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
REST
如要進一步瞭解如何透過 JSON 使用 DLP API,請參閱 JSON 快速入門導覽課程。
...
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"rules":[
{
"exclusionRule":{
"dictionary":{
"wordList":{
"words":[
"example@example.com"
]
}
},
"matchingType": "MATCHING_TYPE_FULL_MATCH"
}
}
]
}
]
}
...
在 EMAIL_ADDRESS 偵測工具掃描中省略結尾是特定網域的電子郵件地址
下列 JSON 程式碼片段和多種語言的程式碼,說明如何使用 InspectConfig 指示 Sensitive Data Protection,在使用 infoType 偵測工具 EMAIL_ADDRESS 進行掃描時,應避免比對任何結尾為「@example.com」的電子郵件地址:
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
REST
如要進一步瞭解如何透過 JSON 使用 DLP API,請參閱 JSON 快速入門導覽課程。
...
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"rules":[
{
"exclusionRule":{
"regex":{
"pattern":".+@example.com"
},
"matchingType": "MATCHING_TYPE_FULL_MATCH"
}
}
]
}
]
}
...
略過包含子字串「TEST」的掃描比對結果
下列 JSON 程式碼片段和多種語言的程式碼,說明如何使用 InspectConfig 指示 Sensitive Data Protection,從指定的 infoType 清單中,排除包含「TEST」權杖的所有結果。
請注意,這會比對「TEST」做為權杖,而非子字串,因此雖然「TEST@email.com」之類的內容會相符,但「TESTER@email.com」不會。如要比對子字串,請在排除規則中使用規則運算式,而非字典。
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
REST
如要進一步瞭解如何透過 JSON 使用 DLP API,請參閱 JSON 快速入門導覽課程。
...
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
},
{
"name":"DOMAIN_NAME"
},
{
"name":"PHONE_NUMBER"
},
{
"name":"PERSON_NAME"
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
},
{
"name":"DOMAIN_NAME"
},
{
"name":"PHONE_NUMBER"
},
{
"name":"PERSON_NAME"
}
],
"rules":[
{
"exclusionRule":{
"dictionary":{
"wordList":{
"words":[
"TEST"
]
}
},
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
}
}
]
}
]
}
...
在自訂 infoType 偵測工具掃描中,略過包含子字串「Jimmy」的掃描相符項目
下列 JSON 程式碼片段和多種語言的程式碼,說明如何使用 InspectConfig 指示 Sensitive Data Protection,在採用指定自訂規則運算式偵測工具的掃描作業中,避免比對「Jimmy」這個名稱:
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
REST
如要進一步瞭解如何透過 JSON 使用 DLP API,請參閱 JSON 快速入門導覽課程。
...
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"CUSTOM_NAME_DETECTOR"
},
"regex":{
"pattern":"[A-Z][a-z]{1,15}, [A-Z][a-z]{1,15}"
}
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"CUSTOM_NAME_DETECTOR"
}
],
"rules":[
{
"exclusionRule":{
"dictionary":{
"wordList":{
"words":[
"Jimmy"
]
}
},
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
}
}
]
}
]
}
...
在與自訂偵測工具重疊的 PERSON_NAME 偵測工具掃描中省略掃描相符項目
在這個情境中,使用者不希望 Sensitive Data Protection 掃描作業使用 PERSON_NAME 內建偵測工具傳回相符項目,如果該項目也會在使用程式碼片段第一部分定義的自訂規則運算式偵測工具掃描時相符。
下列 JSON 程式碼片段和多種語言的程式碼,在 InspectConfig 中同時指定了自訂規則運算式偵測工具和排除規則。自訂規則運算式偵測工具會指定要從結果中排除的名稱。排除規則會指定,如果自訂規則運算式偵測工具也比對出 PERSON_NAME 掃描傳回的任何結果,則會省略這些結果。請注意,本例中的 VIP_DETECTOR 標示為 EXCLUSION_TYPE_EXCLUDE,因此不會自行產生結果。只會影響 PERSON_NAME 偵測工具產生的結果。
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
REST
如要進一步瞭解如何透過 JSON 使用 DLP API,請參閱 JSON 快速入門導覽課程。
...
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"customInfoTypes":[
{
"infoType":{
"name":"VIP_DETECTOR"
},
"regex":{
"pattern":"Dana Williams|Quinn Garcia"
},
"exclusionType":"EXCLUSION_TYPE_EXCLUDE"
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"rules":[
{
"exclusionRule":{
"excludeInfoTypes":{
"infoTypes":[
{
"name":"VIP_DETECTOR"
}
]
},
"matchingType": "MATCHING_TYPE_FULL_MATCH"
}
}
]
}
]
}
...
如果與 EMAIL_ADDRESS 偵測工具的相符項目相同時,則省略 PERSON_NAME 偵測工具的相符項目
下列 JSON 程式碼片段和多種語言的程式碼,說明如何使用 InspectConfig 指示 Sensitive Data Protection,在 PERSON_NAME 偵測工具的比對結果與 EMAIL_ADDRESS 偵測工具的比對結果重疊時,只傳回一個相符項目。這樣做是為了避免「james@example.com」這類電子郵件地址同時與 PERSON_NAME 和 EMAIL_ADDRESS 偵測工具相符。
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
REST
如要進一步瞭解如何透過 JSON 使用 DLP API,請參閱 JSON 快速入門導覽課程。
...
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
},
{
"name":"EMAIL_ADDRESS"
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"rules":[
{
"exclusionRule":{
"excludeInfoTypes":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
},
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
}
}
]
}
]
}
...
在 DOMAIN_NAME 偵測工具掃描中省略網域名稱是電子郵件地址一部分的相符項目
下列 JSON 程式碼片段和多種語言的程式碼,說明如何
使用
InspectConfig
指示 Sensitive Data Protection,只有在
偵測工具掃描的比對結果與 EMAIL_ADDRESS 偵測工具掃描的比對結果不重疊時,才傳回 DOMAIN_NAME 偵測工具掃描的比對結果。在這個情境中,主要掃描作業是 DOMAIN_NAME 偵測工具掃描。如果網域名稱用於電子郵件地址,使用者不希望在發現項目中傳回相符的網域名稱:
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
REST
如要進一步瞭解如何透過 JSON 使用 DLP API,請參閱 JSON 快速入門導覽課程。
...
"inspectConfig":{
"infoTypes":[
{
"name":"DOMAIN_NAME"
},
{
"name":"EMAIL_ADDRESS"
}
],
"customInfoTypes":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"exclusionType":"EXCLUSION_TYPE_EXCLUDE"
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"DOMAIN_NAME"
}
],
"rules":[
{
"exclusionRule":{
"excludeInfoTypes":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
},
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
}
}
]
}
]
}
...
如果相符項目位於字串附近,則略過
以下範例說明如何排除 US_SOCIAL_SECURITY_NUMBER infoType 偵測工具的比對結果 (如果「SKU」一詞位於發現項目之前或之後 10 個字元內)。
由於排除規則,這個範例不會將 222-22-2222 歸類為可能的美國身分證字號。
{
"item": {
"value": "The customer sent the product SKU 222-22-2222"
},
"inspectConfig": {
"infoTypes": [
{
"name": "US_SOCIAL_SECURITY_NUMBER"
}
],
"ruleSet": [
{
"infoTypes": [
{
"name": "US_SOCIAL_SECURITY_NUMBER"
}
],
"rules": [
{
"exclusionRule": {
"excludeByHotword": {
"hotwordRegex": {
"pattern": "(SKU)"
},
"proximity": {
"windowBefore": 10,
"windowAfter": 10
}
},
"matchingType": "MATCHING_TYPE_FULL_MATCH"
}
}
]
}
],
"includeQuote": true
}
}
略過整欄資料中的發現項目
以下範例說明如何排除表格型資料中,名稱符合規則運算式的整個資料欄。在這裡,如果符合 US_SOCIAL_SECURITY_NUMBER infoType 偵測工具的發現項目位於「Fake Social Security Number」(假身分證字號) 欄,就會從結果中排除。
這個範例只會傳回 222-22-2222,因為 111-11-1111 位於「Fake Social Security Number」(假身分證字號) 欄中。
{
"item": {
"table": {
"headers": [
{
"name": "Fake Social Security Number"
},
{
"name": "Real Social Security Number"
}
],
"rows": [
{
"values": [
{
"stringValue": "111-11-1111"
},
{
"stringValue": "222-22-2222"
}
]
}
]
}
},
"inspectConfig": {
"infoTypes": [
{
"name": "US_SOCIAL_SECURITY_NUMBER"
}
],
"includeQuote": true,
"ruleSet": [
{
"infoTypes": [
{
"name": "US_SOCIAL_SECURITY_NUMBER"
}
],
"rules": [
{
"exclusionRule": {
"excludeByHotword": {
"hotwordRegex": {
"pattern": "(Fake Social Security Number)"
},
"proximity": {
"windowBefore": 1
}
},
"matchingType": "MATCHING_TYPE_FULL_MATCH"
}
}
]
}
],
"minLikelihood": "POSSIBLE"
}
}
根據空間關係,省略圖片中的發現項目
下列 JSON 程式碼片段說明如何設定 Sensitive Data Protection,根據圖片與其他偵測到的物件之間的空間關係,排除圖片中的發現項目。
如果護照中含有個人資訊,請排除
這項規則會排除護照發現項目 (OBJECT_TYPE/PERSON/PASSPORT) 中包含的人員發現項目 (OBJECT_TYPE/PERSON)。
{
"inspectConfig": {
"infoTypes": [
{
"name": "OBJECT_TYPE/PERSON"
},
{
"name": "OBJECT_TYPE/PERSON/PASSPORT"
}
],
"ruleSet": [
{
"infoTypes": [
{
"name": "OBJECT_TYPE/PERSON"
}
],
"rules": [
{
"exclusionRule": {
"excludeByImageFindings": {
"infoTypes": [
{
"name": "OBJECT_TYPE/PERSON/PASSPORT"
}
],
"imageContainmentType": {
"encloses": {}
}
},
"matchingType": "MATCHING_TYPE_RULE_SPECIFIC"
}
}
]
}
]
}
}
如果車牌偵測結果包含車輛識別號碼,則排除該結果
如果 VEHICLE_IDENTIFICATION_NUMBER 發現項目完全位於車牌 (OBJECT_TYPE/LICENSE_PLATE) 發現項目內,這項規則會排除車牌發現項目。
{
"inspectConfig": {
"infoTypes": [
{
"name": "OBJECT_TYPE/LICENSE_PLATE"
},
{
"name": "VEHICLE_IDENTIFICATION_NUMBER"
}
],
"ruleSet": [
{
"infoTypes": [
{
"name": "OBJECT_TYPE/LICENSE_PLATE"
}
],
"rules": [
{
"exclusionRule": {
"excludeByImageFindings": {
"infoTypes": [
{
"name": "VEHICLE_IDENTIFICATION_NUMBER"
}
],
"imageContainmentType": {
"fullyInside": {}
}
},
"matchingType": "MATCHING_TYPE_RULE_SPECIFIC"
}
}
]
}
]
}
}
啟動字詞規則
啟動字詞規則適用於下列情況:
- 您想根據比對結果與熱門字詞的接近程度,變更指派給掃描比對結果的可能性值。舉例來說,您可能想根據病患姓名與「病患」一詞的接近程度,為相符的病患姓名設定較高的可能性值。
- 檢查結構化表格型資料時,您想根據資料欄標頭名稱,變更指派給相符項目的可能性值。舉例來說,如果
US_SOCIAL_SECURITY_NUMBER位於標題為ACCOUNT_ID的資料欄中,您可能想提高其可能性值。
Hotword Rules API 總覽
在 Sensitive Data Protection 的 InspectionRule 物件中,您可以指定 HotwordRule 物件,調整在特定熱字附近發現項目的可能性。
InspectionRule 物件會與規則集適用的 infoType 偵測工具清單,一起分組為 InspectionRuleSet 物件中的「規則集」。一個規則集中的多個規則會按照指定順序套用。
啟動字詞規則的情境範例
下列程式碼片段說明如何設定啟動字詞規則。
如果附近有「病患」這個熱門字詞,則提高 PERSON_NAME 比對成功的可能性
下列 JSON 程式碼片段和多種語言的程式碼,說明如何使用 InspectConfig 屬性掃描醫療資料庫中的病患姓名。您可以使用 Sensitive Data Protection 內建的 PERSON_NAME infoType 偵測工具,但這會導致 Sensitive Data Protection 比對所有人名,而不只是病患姓名。如要修正這個問題,您可以加入熱門字詞規則,在潛在相符項目的第一個字元附近,尋找「病患」這個字詞。接著,您可以將符合此模式的發現項目指派為「極可能」可能性,因為這些項目符合您的特殊條件。將 InspectConfig 中的 Likelihood 最小值設為 VERY_LIKELY,確保系統只在發現項目中傳回符合這項設定的結果。
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
REST
如要進一步瞭解如何透過 JSON 使用 DLP API,請參閱 JSON 快速入門導覽課程。
...
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"rules":[
{
"hotwordRule":{
"hotwordRegex":{
"pattern":"patient"
},
"proximity":{
"windowBefore":50
},
"likelihoodAdjustment":{
"fixedLikelihood":"VERY_LIKELY"
}
}
}
]
}
],
"minLikelihood":"VERY_LIKELY"
}
...
如需進一步瞭解啟動字詞,請參閱自訂相符可能性一文。
調整規則
調整規則可根據發現項目出現的情境,提高 (也稱為「提升」) 或降低發現項目的可能性值,進而提高偵測準確度。
調整規則適用於下列情況:
如果目標 infoType 發現項目與情境 infoType 發現項目重疊,您想變更目標 infoType 發現項目的可能性值。舉例來說,如果文件符合
DOCUMENT_TYPE/CONTEXT/HEALTH,則提高在文件中偵測到的PERSON_NAME發現項目的可能性值。您想根據目標 infoType 發現項目與圖片中其他偵測到的發現項目之間的空間關係,變更目標 infoType 發現項目的可能性值。舉例來說,如果偵測到的
GENERIC_ID發現項目位於與OBJECT_TYPE/PERSON/PHOTO_ID_CARD相符的圖片中,則提高其可能性值。
Adjustment Rules API 總覽
Sensitive Data Protection 會在 AdjustmentRule 物件中定義調整規則。在 AdjustmentRule 中,您需要指定下列項目:
可以是下列其中一項:
AdjustByMatchingInfoTypes物件:如果目標 infoType 發現項目與情境 infoType 發現項目重疊,則調整目標 infoType 發現項目的可能性值。這個物件包含下列項目:- 脈絡資訊 infoType 清單,用於判斷是否要調整目標 infoType 發現項目。
- 情境 infoType 的
min_likelihood值。如果偵測到的情境發現項目可能性值低於這個值,Sensitive Data Protection 就不會調整目標發現項目的可能性。 matching_type值,必須設為MATCHING_TYPE_PARTIAL_MATCH。
AdjustByImageFindings物件:如果情境 infoType 的定界框與目標 infoType 發現項目具有指定關係,則調整目標 infoType 發現項目的可能性值。這個物件包含下列項目:脈絡資訊 infoType 清單,用於判斷是否要調整目標 infoType 發現項目。
ImageContainmentType物件,用於指定目標和情境發現項目定界框之間的必要空間關係。如未符合這項規定,Sensitive Data Protection 就不會調整目標 infoType 發現項目的可能性。情境 infoType 的
min_likelihood值。如果偵測到的情境發現項目可能性值低於這個值,Sensitive Data Protection 就不會調整目標發現項目的可能性。
TIFF 圖片不支援
AdjustByImageFindings。如果content.inspect要求包含這項規則,則 TIFF 圖片會失敗。
likelihood_adjustment物件,將新的可能性指定為固定值或相對調整值。
調整規則情境範例
下列 JSON 程式碼片段說明如何針對各種情境設定調整規則。
提高健康文件中人名的可能性
在以下範例中,如果 PERSON_NAME 發現項目與 DOCUMENT_TYPE/CONTEXT/HEALTH 發現項目重疊,系統會將該發現項目的可能性值提高至 VERY_LIKELY。
{
"parent": "projects/PROJECT_ID",
"inspectConfig": {
"infoTypes": [
{
"name": "PERSON_NAME"
},
{
"name": "DOCUMENT_TYPE/CONTEXT/HEALTH"
}
],
"ruleSet": [
{
"infoTypes": [
{
"name": "PERSON_NAME"
}
],
"rules": [
{
"adjustmentRule": {
"adjustByMatchingInfoTypes": {
"infoTypes": [
{
"name": "DOCUMENT_TYPE/CONTEXT/HEALTH"
}
],
"minLikelihood": "POSSIBLE",
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
},
"likelihoodAdjustment": {
"fixedLikelihood": "VERY_LIKELY"
}
}
}
]
}
]
},
"item": {
"value": "My name is John and my arm is broken."
}
}
將 PROJECT_ID 替換為與要求相關聯的專案 ID。
提高健康文件中人名的可能性,並排除健康文件
在以下範例中,如果 發現項目與 DOCUMENT_TYPE/CONTEXT/HEALTH
發現項目重疊,系統會將 PERSON_NAME 發現項目的可能性值提高至
VERY_LIKELY。為減少雜訊,這個範例指定了第二項規則,從檢查結果中排除 DOCUMENT_TYPE/CONTEXT/HEALTH 發現項目。
規則集中規則的指定順序很重要。在這個範例中,調整規則是在排除規則之前指定,因此 DOCUMENT_TYPE/CONTEXT/HEALTH 發現項目可用於為調整規則提供背景資訊。如果先指定排除規則,系統會先從結果集中排除 DOCUMENT_TYPE/CONTEXT/HEALTH 發現項目,然後才使用這些項目為調整規則提供背景資訊。
{
"parent": "projects/PROJECT_ID",
"inspectConfig": {
"infoTypes": [{
"name": "PERSON_NAME"
}, {
"name": "DOCUMENT_TYPE/CONTEXT/HEALTH"
}],
"minLikelihood": "VERY_UNLIKELY",
"ruleSet": [{
"infoTypes": [{
"name": "PERSON_NAME"
}],
"rules": [{
"adjustmentRule": {
"adjustByMatchingInfoTypes": {
"infoTypes": [{
"name": "DOCUMENT_TYPE/CONTEXT/HEALTH"
}],
"minLikelihood": "VERY_UNLIKELY",
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
},
"likelihoodAdjustment": {
"fixedLikelihood": "VERY_LIKELY"
}
}
}]
}, {
"infoTypes": [{
"name": "DOCUMENT_TYPE/CONTEXT/HEALTH"
}],
"rules": [{
"exclusionRule": {
"excludeInfoTypes": {
"infoTypes": [{
"name": "DOCUMENT_TYPE/CONTEXT/HEALTH"
}]
},
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
}
}]
}]
},
"item": {
"value": "My name is John and my arm is broken."
}
}
將 PROJECT_ID 替換為與要求相關聯的專案 ID。
提高附相片身分證件上人物的相似度
以下範例會將 OBJECT_TYPE/PERSON 發現項目的可能性值提高至 VERY_LIKELY (如果該項目出現在 OBJECT_TYPE/PERSON/PHOTO_ID_CARD 發現項目的定界框內)。
...
"inspectConfig": {
"infoTypes": [
{
"name": "OBJECT_TYPE/PERSON"
},
{
"name": "OBJECT_TYPE/PERSON/PHOTO_ID_CARD"
}
],
"ruleSet": [
{
"infoTypes": [
{
"name": "OBJECT_TYPE/PERSON"
}
],
"rules": [
{
"adjustmentRule": {
"adjustByImageFindings": {
"infoTypes": [
{
"name": "OBJECT_TYPE/PERSON/PHOTO_ID_CARD"
}
],
"imageContainmentType": {
"encloses": {}
},
"minLikelihood": "POSSIBLE"
},
"likelihoodAdjustment": {
"fixedLikelihood": "VERY_LIKELY"
}
}
}
]
}
]
}
...
提高護照含有個人 ID 的可能性
在下列範例中,如果 PERSON_NAME 或 DATE_OF_BIRTH 發現項目完全位於 OBJECT_TYPE/PERSON/PASSPORT 發現項目內,則會將 OBJECT_TYPE/PERSON/PASSPORT 發現項目的可能性值提高至 VERY_LIKELY。
...
"inspectConfig": {
"infoTypes": [
{
"name": "OBJECT_TYPE/PERSON/PASSPORT"
},
{
"name": "PERSON_NAME"
},
{
"name": "DATE_OF_BIRTH"
}
],
"ruleSet": [
{
"infoTypes": [
{
"name": "OBJECT_TYPE/PERSON/PASSPORT"
}
],
"rules": [
{
"adjustmentRule": {
"adjustByImageFindings": {
"infoTypes": [
{
"name": "PERSON_NAME"
},
{
"name": "DATE_OF_BIRTH"
}
],
"imageContainmentType": {
"fullyInside": {}
},
"minLikelihood": "POSSIBLE"
},
"likelihoodAdjustment": {
"fixedLikelihood": "VERY_LIKELY"
}
}
}
]
}
]
}
...
多個檢查規則情境
下列 InspectConfig JSON 程式碼片段和多種語言的程式碼,說明如何同時套用排除和啟動字詞規則。這個程式碼片段的規則集包含啟動字詞規則,以及字典和規則運算式排除規則。請注意,這四項規則是在 rules 元素內的陣列中指定。
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
REST
如要進一步瞭解如何透過 JSON 使用 DLP API,請參閱 JSON 快速入門導覽課程。
...
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"ruleSet":[
{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"rules":[
{
"hotwordRule":{
"hotwordRegex":{
"pattern":"patient"
},
"proximity":{
"windowBefore":10
},
"likelihoodAdjustment":{
"fixedLikelihood":"VERY_LIKELY"
}
}
},
{
"hotwordRule":{
"hotwordRegex":{
"pattern":"doctor"
},
"proximity":{
"windowBefore":10
},
"likelihoodAdjustment":{
"fixedLikelihood":"UNLIKELY"
}
}
},
{
"exclusionRule":{
"dictionary":{
"wordList":{
"words":[
"Quasimodo"
]
}
},
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
}
},
{
"exclusionRule":{
"regex":{
"pattern":"REDACTED"
},
"matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
}
}
]
}
]
}
...
infoType 偵測工具重疊
定義自訂 infoType 偵測工具時,有可能用了與內建 infoType 偵測工具相同的名稱。如「啟動字詞規則的情境範例」一節中的範例所示,當您建立自訂 infoType 偵測工具時,如果名稱與內建 infoType 偵測工具的名稱相同,那麼由新的 infoType 偵測工具所偵測到的任何發現項目都會新增到內建偵測工具所偵測到的結果中。只有在 InspectConfig 物件的 infoType 清單中指定內建 infoType 時,才適用這項規則。
建立新的自訂 infoType 偵測工具時,請在範例內容上進行全面測試,以確保偵測工具如您預期發揮作用。