Sensitive Data Protection 的內建 infoType 偵測工具能有效找出常見的機密資料類型。自訂 infoType 偵測工具可讓您充分自訂自己的機密資料偵測工具,而「檢查規則」則可藉由修改指定 infoType 偵測工具的偵測機制,協助微調 Sensitive Data Protection 傳回的掃描結果。
如果希望內建 infoType 偵測工具傳回的結果中排除或納入更多值,您可以從頭建立新的自訂 infoType,並定義機密資料保護功能應尋找的所有條件。或者,您可以修正私密資料防護內建或自訂偵測工具根據指定條件而傳回的發現項目,方法是新增有助於減少雜訊、提高查準率和查全率,或可調整掃描發現項目的可能性確定性等的檢查規則。
本主題將討論如何使用兩種檢查規則,以根據您指定的自訂條件,排除某些發現項目或額外增加發現項目。本主題也會提供幾種情況,讓您衡量是否可能要更改現有的 infoType 偵測工具。
檢查規則有以下幾種類型:
目標和脈絡資訊 infoType
本文使用下列術語指稱規則集中的 infoType。
- 目標 infoType:當符合規則集中定義的條件時,Sensitive Data Protection 會排除或調整的 infoType。
- 脈絡資訊 infoType:如果偵測到這類 infoType,可提供目標 infoType 的脈絡資訊。Sensitive Data Protection 會使用內容 infoType,判斷是否要排除或調整目標 infoType。
規則排序和鏈結
Sensitive Data Protection 會按照您在規則集中指定的順序套用規則。因此,規則的順序可能會影響機密資料防護作業的結果。如需範例,請參閱本文中的「提高健康文件中的人名出現機率,並排除健康文件」。
排除規則
排除規則適用於下列情況:
- 希望在結果中排除 infoType 偵測工具重疊所造成的重複掃描相符項目。例如,掃描電子郵件地址和電話號碼,但電子郵件地址含有電話號碼,像是「206-555-0764@example.org」,所以會收到兩個相符項目。
- 掃描結果發生雜訊。例如,您看到某個掃描作業針對合法的電子郵件地址,毫無節制頻繁地傳回同一個虛擬電子郵件地址 (如「example@example.com」) 或網域 (如「example.com」)。
- 手上有希望從結果中排除的字詞、詞組或字元組合清單。
- 您想從結果中排除整欄資料。
- 您想排除與規則運算式相符的字串附近的發現項目。
- 您想根據圖像中發現項目與其他偵測到的發現項目的空間關係,排除圖像中的發現項目。
Exclusion Rules API 總覽
Sensitive Data Protection 會在 ExclusionRule 物件中定義排除規則。您可以在 ExclusionRule 中指定下列其中一項:
Dictionary物件,其中包含要從結果中排除的字串清單。Regex物件,定義規則運算式模式。符合模式的字串會從結果中排除。ExcludeInfoTypes物件:包含 infoType 偵測工具陣列。如果這裡所列的任一 infoType 偵測工具發現相符項目,該發現項目將會從結果中排除。ExcludeByHotword物件,其中包含下列項目:- 定義熱字的規則運算式。
- proximity 值,用於定義熱字與搜尋結果的距離。
如果發現項目位於設定的鄰近範圍內,該項目就會從結果中排除。如果是資料表,這類排除規則可讓您從結果中排除整欄資料。
ExcludeByImageFindings物件,其中包含下列項目:脈絡資訊 infoType 清單,用於判斷是否要排除目標 infoType 發現項目。
ImageContainmentType物件,用於指定目標和內容發現項目定界框之間的必要空間關係。如未符合這項規定,機密資料保護功能不會排除目標 infoType 發現項目。
如果內容 infoType 的周框與目標 infoType 發現項目具有指定關係,Sensitive Data Protection 就會排除目標 infoType 發現項目。使用
ExcludeByImageFindings時,必須將matchingType欄位設為MATCHING_TYPE_RULE_SPECIFIC。
排除規則的情境範例
下列每個 JSON 程式碼片段都說明如何針對特定情境設定 Sensitive Data Protection。
在 EMAIL_ADDRESS 偵測工具掃描中省略特定電子郵件地址
下列 JSON 程式碼片段和幾種程式語言的程式碼,說明如何使用 InspectConfig 指示機密資料保護服務,在掃描作業中使用 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 指示機密資料保護服務,在掃描作業中使用 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 指示機密資料保護服務,排除指定 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 指示機密資料保護服務,在使用指定自訂規則運算式偵測工具的掃描作業中,避免比對名字「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 偵測工具掃描中省略掃描相符項目
在這個情境中,如果使用程式碼片段第一部分中定義的自訂規則運算式偵測工具進行掃描時傳回的相符項目,與使用 PERSON_NAME 內建偵測工具從 Sensitive Data Protection 掃描作業傳回的相符項目相同,則使用者不希望有這類相符項目。
下列 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 指示機密資料保護服務,在 PERSON_NAME 偵測工具的相符項目和 EMAIL_ADDRESS 偵測工具的相符項目重疊時,只要傳回一個相符項目。這樣做可以避免 PERSON_NAME 和 EMAIL_ADDRESS 這兩個偵測工具的相符項目是同一個電子郵件地址,例如「james@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":"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 指示機密資料保護服務,只有在相符項目不會與 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 個字元或後 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
}
}
略過整欄資料中的發現項目
以下範例說明如何排除表格資料整欄的結果,前提是該欄的名稱符合規則運算式。在此範例中,如果發現項目位於「Fake Social Security Number」(偽造的社會安全號碼) 欄中,系統會從結果中排除與 US_SOCIAL_SECURITY_NUMBER infoType 偵測工具相符的任何發現項目。
這個範例只會傳回 222-22-2222,因為「Fake Social Security Number」(假的社會安全號碼) 資料欄中含有 111-11-1111。
{
"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 物件會在 InspectionRuleSet 物件中分組成「規則集」,並列出會套用規則集的 infoType 偵測工具。一個規則集中的多個規則會按照指定順序套用。
啟動字詞規則的情境範例
以下程式碼片段說明如何設定熱字詞規則。
如果附近有啟動字詞「患者」,則增加 PERSON_NAME 相符項目的可能性
下列 JSON 程式碼片段和幾種程式語言的程式碼,說明如何使用 InspectConfig 屬性掃描醫療資料庫,找出患者姓名。您可以使用 Sensitive Data Protection 的內建 PERSON_NAME infoType 偵測工具,不過這會造成 Sensitive Data Protection 比對所有人的姓名,而不是只比對患者的姓名。為修正這種情況,您可以加入啟動字詞規則,在潛在相符項目第一個字元的特定字元鄰近範圍內尋找「患者」一詞。然後,您可以為符合這個模式的發現項目,指派「非常可能」的可能性,因為這對應到您的特殊條件。將最低Likelihood設為 VERY_LIKELY InspectConfig,可確保在發現項目中只會傳回與這項設定相符的項目。
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 發現項目的可能性值。舉例來說,如果圖片符合
OBJECT_TYPE/PERSON/PHOTO_ID_CARD,則可提高圖片中偵測到的GENERIC_ID發現項目可能性值。
調整規則 API 總覽
Sensitive Data Protection 會在 AdjustmentRule 物件中定義調整規則。在 AdjustmentRule 中,指定下列項目:
可以是下列其中一項:
AdjustByMatchingInfoTypes物件:如果目標 infoType 發現項目與內容 infoType 的發現項目重疊,這個物件會調整目標 infoType 發現項目的可能性值。這個物件包含下列項目:- 脈絡資訊 infoType 清單,用於判斷是否要調整目標 infoType 發現項目。
- 脈絡資訊 infoType 的
min_likelihood值。如果偵測到的任何內容發現項目的可能性值低於這個值,敏感資料保護功能就不會調整目標發現項目的可能性。 matching_type值,必須設為MATCHING_TYPE_PARTIAL_MATCH。
AdjustByImageFindings物件,可調整目標 infoType 發現項目的可能性值,前提是內容 infoType 的周框與目標 infoType 發現項目具有指定關係。這個物件包含下列項目:脈絡資訊 infoType 清單,用於判斷是否要調整目標 infoType 發現項目。
ImageContainmentType物件,用於指定目標和內容發現項目的定界框之間必要的空間關係。如未符合這項規定,機密資料保護服務不會調整目標 infoType 發現項目的可能性。脈絡資訊 infoType 的
min_likelihood值。如果偵測到的任何內容發現項目的可能性值低於這個值,敏感資料保護功能就不會調整目標發現項目的可能性。
likelihood_adjustment物件,指定新的可能性,可以是固定值或相對調整值。
調整規則的情境範例
下列 JSON 程式碼片段說明如何針對各種情境設定調整規則。
提高在健康文件使用人名的可能性
如果 PERSON_NAME 發現項目與 DOCUMENT_TYPE/CONTEXT/HEALTH 發現項目重疊,下列範例會將 PERSON_NAME 發現項目的可能性值提升至 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。
提高健康文件中出現人名的可能性,並排除健康文件
在下列範例中,如果 PERSON_NAME 發現項目與 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 發現項目出現在 OBJECT_TYPE/PERSON/PHOTO_ID_CARD 發現項目周框內時的可能值提升至 VERY_LIKELY。
...
"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"
}
}
}
]
}
]
}
...
提高護照含有個人識別資訊的可能性
在下列範例中,如果 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 物件的 infoTypes 清單中指定了內建 infoType 時才會如此。
建立新的自訂 infoType 偵測工具時,請在範例內容上進行全面測試,以確保偵測工具如您預期發揮作用。