您可以使用啟動字詞規則,透過功能強大的結構定義規則,進一步擴充內建和自訂 infoType 偵測工具。啟動字詞規則會指示 Sensitive Data Protection 根據啟動字詞是否出現在發現項目附近,調整發現項目的可能性。啟動字詞規則是一種檢查規則,會在規則集中指定。每項規則都會套用至一組內建或自訂的 infoType。
剖析啟動字詞規則
一個 infoType 偵測工具可以有零或多個啟動字詞規則。在檢查設定中,您可以在 rules
陣列內定義每個 HotwordRule
物件,如下所示:
"rules":[
{
"hotwordRule":{
"hotwordRegex":{
"pattern":"REGEX_PATTERN"
},
"proximity":{
"windowAfter":"NUM_CHARS_TO_CONSIDER_AFTER_FINDING",
"windowBefore":"NUM_CHARS_TO_CONSIDER_BEFORE_FINDING"
}
"likelihoodAdjustment":{
"fixedLikelihood":"LIKELIHOOD_VALUE"
-- OR --
"relativeLikelihood":"LIKELIHOOD_ADJUSTMENT"
},
}
},
...
]
更改下列內容:
- REGEX_PATTERN:定義符合啟動字詞資格的規則運算式 (
Regex
物件)。 - NUM_CHARS_TO_CONSIDER_AFTER_FINDING:發現結果後的一系列字元。Sensitive Data Protection 會分析這個範圍,判斷發現項目附近是否出現啟動字詞。
NUM_CHARS_TO_CONSIDER_BEFORE_FINDING:發現項目前的一系列字元。Sensitive Data Protection 會分析這個範圍,判斷發現項目附近是否出現啟動字詞。
LIKELIHOOD_VALUE:將發現項目設為某個固定的
Likelihood
嚴重程度。LIKELIHOOD_ADJUSTMENT:指出 Sensitive Data Protection 必須增加或減少發現項目可能性的程度。正整數會提高可能性等級,負整數則會降低。舉例來說,如果沒有偵測規則,發現項目會是
POSSIBLE
,而relativeLikelihood
為 1,則發現項目會升級為LIKELY
。 如果relativeLikelihood
為 -1,發現項目會降級為UNLIKELY
。 可能性絕不會低於VERY_UNLIKELY
或超過VERY_LIKELY
。在這些情況下,可能性等級維持不變。舉例來說,如果基本可能性為VERY_LIKELY
,且relativeLikelihood
為 1,則最終可能性仍為VERY_LIKELY
。
啟動字詞範例:相符病歷號碼
假設您想偵測自訂的 infoType,例如格式為「###-#-#####」的病歷號碼 (MRN)。此外,您也希望 Sensitive Data Protection 提高每個發現項目 (位於啟動字詞「MRN」之後) 的相符可能性。
範例值:
- 123-4-56789 會比對為
POSSIBLE
。 - MRN 123-4-56789 會比對為
VERY_LIKELY
。
下列 JSON 範例和程式碼片段說明如何設定啟動字詞規則。這個範例使用自訂規則運算式偵測工具。
在本例中,請注意下列事項:
- 要求會定義
C_MRN
自訂 infoType,也就是與規則運算式[0-9]{3}-[0-9]{1}-[0-9]{5}
相符的任何字串偵測工具。 - 規則運算式
(?i)(mrn|medical)(?-i)
定義了熱字。 Sensitive Data Protection 會在proximity
欄位定義的字元範圍內搜尋這個啟動字詞。 - 對於集合
proximity
中含有熱詞的每個C_MRN
發現項目,Sensitive Data Protection 會將可能性等級設為VERY_LIKELY
。
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Go
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Java
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
PHP
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
REST
如要進一步瞭解如何透過 JSON 使用 DLP API,請參閱 JSON 快速入門導覽課程。
HTTP 方法和網址:
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:inspect
將 PROJECT_ID
替換為專案 ID。
JSON 輸入:
{
"item":{
"value":"Patient's MRN 444-5-22222 and just a number 333-2-33333"
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"C_MRN"
},
"regex":{
"pattern":"[0-9]{3}-[0-9]{1}-[0-9]{5}"
},
"likelihood":"POSSIBLE",
}
],
"ruleSet":[
{
"infoTypes": [{"name" : "C_MRN"}],
"rules":[
{
"hotwordRule":{
"hotwordRegex":{
"pattern":"(?i)(mrn|medical)(?-i)"
},
"likelihoodAdjustment":{
"fixedLikelihood":"VERY_LIKELY"
},
"proximity":{
"windowBefore":10
}
}
}
]
}
]
}
}
JSON 輸出內容 (已縮寫):
{ "result": { "findings": [ { "infoType": { "name": "C_MRN" }, "likelihood": "VERY_LIKELY", "location": { "byteRange": { "start": "14", "end": "25" }, "codepointRange": { ... } } }, { "infoType": { "name": "C_MRN" }, "likelihood": "POSSIBLE", "byteRange": { "start": "44", "end": "55" }, "codepointRange": { ... } } } ] } }
輸出內容顯示,Sensitive Data Protection 已使用 C_MRN
自訂 infoType 偵測工具,正確識別出病歷編號。此外,由於啟動字詞規則中的結構定義比對,Sensitive Data Protection 已依照設定,為第一個結果 (在設定的 proximity
中含有 MRN) 指派 VERY_LIKELY
的可能性。第二個發現缺少脈絡,因此 likelihood
仍停留在 POSSIBLE
。
啟動字詞範例:設定表格欄的相符可能性
這個範例說明如何設定整欄資料的相符可能性。舉例來說,如果您想從檢查結果中排除資料欄,這種做法就很有幫助。
請參考下表。其中一個資料欄包含社會安全號碼 (SSN) 預留位置,另一個則包含實際的社會安全號碼。
假的社會安全號碼 | 真實社會安全號碼 |
---|---|
111-11-1111 | 222-22-2222 |
如要減少檢查結果中的干擾,可以排除 Fake Social Security Number
欄中的任何發現項目。為這個資料欄指派低可能性層級。接著設定要求,從結果中排除符合該可能性等級的相符項目。
在本例中,請注意下列事項:
- 啟動字詞規則會套用至
US_SOCIAL_SECURITY_NUMBER
infoType。 - 熱字詞規則運算式
(Fake Social Security Number)
包含具有預留位置值的資料欄名稱。 - 「
windowBefore
」屬性設為 1,表示啟動字詞位於欄標題中,且發現項目必須位於該欄。 - 對於這個資料欄中的每個
US_SOCIAL_SECURITY_NUMBER
發現項目,資訊保護服務會將可能性等級設為VERY_UNLIKELY
。 minLikelihood
屬性設為POSSIBLE
,表示系統會排除可能性低於POSSIBLE
的發現項目,不會將這些內容納入檢查結果。
如要進一步瞭解如何透過 JSON 使用 DLP API,請參閱 JSON 快速入門導覽課程。
HTTP 方法和網址:
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:inspect
將 PROJECT_ID
替換為專案 ID。
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Go
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Java
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
PHP
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
REST
JSON 輸入:{
"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": [
{
"hotwordRule": {
"hotwordRegex": {
"pattern": "(Fake Social Security Number)"
},
"likelihoodAdjustment": {
"fixedLikelihood": "VERY_UNLIKELY"
},
"proximity": {
"windowBefore": 1
}
}
}
]
}
],
"minLikelihood": "POSSIBLE"
}
}
JSON 輸出:
{ "result": { "findings": [ { "quote": "222-22-2222", "infoType": { "name": "US_SOCIAL_SECURITY_NUMBER" }, "likelihood": "VERY_LIKELY", "location": { "byteRange": { "end": "11" }, "codepointRange": { "end": "11" }, "contentLocations": [ { "recordLocation": { "fieldId": { "name": "Real Social Security Number" }, "tableLocation": {} } } ] }, "createTime": "TIMESTAMP", "findingId": "TIMESTAMP" } ] } }
Fake Social Security Number
資料欄中的值 111-11-1111 符合熱字詞規則,因此資訊保護服務為該值指派 VERY_UNLIKELY
可能性等級。這個層級低於檢查設定中設定的最低可能性 (POSSIBLE
),因此這項發現項目會從檢查結果中排除。
您可以移除規則集,嘗試使用這個範例。請注意,Sensitive Data Protection 會在結果中納入 111-11-1111。