建立一般自訂字典偵測工具

自訂字典提供簡單卻強大的功能,可讓您比對字詞或詞組清單。這項功能可當做字典本身的獨特偵測工具,也可以用來建立內建偵測工具的例外清單。您也可以使用自訂字典來擴增內建的 infoType 偵測工具,以比對額外的發現項目。

字典自訂 infoType 偵測工具的剖析

依據 API 總覽摘要說明,如要建立字典自訂 infoType 偵測工具,則必須定義包含下列項目的 CustomInfoType 物件:

  • InfoType 物件中您要提供給自訂 infoType 偵測工具的名稱。
  • 選用的 Likelihood 值。如果省略這個值,則與字典項目進行比對時,將傳回 VERY_LIKELY 的預設可能性。
  • 選用的 DetectionRule 物件或啟動字詞規則。這些規則可在指定啟動字詞的特定字數範圍內,針對發現項目調整可能性。如要進一步瞭解啟動字詞規則,請參閱自訂相符可能性一文。
  • Dictionary,當做包含字詞清單的 WordList

做為 JSON 物件且包含所有選用元件的字典自訂 infoType 偵測工具如下所示:

{
  "customInfoTypes":[
    {
      "infoType":{
        "name":"[CUSTOM_INFOTYPE_NAME]"
      },
      "likelihood":"[LIKELIHOOD_VALUE]",
      "detectionRules":[
        {
          "hotwordRule":{
            [HOTWORDRULE_OBJECT]
          }
        },
        ...
      ],
      "dictionary":{
        "wordList":{
          "words":[
            "[DICTIONARY_WORD1]",
            "[DICTIONARY_WORD2]",
            "[ETC.]"
          ]
        }
      }
    }
  ],
  ...
}

儲存的自訂字典

Cloud DLP 也支援使用儲存的自訂字典來檢查儲存空間存放區。比方說,Cloud DLP 可以使用儲存的自訂字典來掃描數億個使用者名稱、電子郵件地址或字典比對細節中定義的任何其他字串。此外,Cloud DLP 的內建功能可讓您視需要透過程式更新儲存的自訂字典。

儲存的自訂字典是從詞組集合打造而成,這些詞組位於貴機構擁有的 Cloud Storage 值區或 BigQuery 表格中。首次建立儲存的自訂字典時,您會輸入要在 Cloud Storage 或 BigQuery 中搜尋的詞組,然後使用 Cloud DLP 來產生儲存的自訂字典,自訂字典儲存於 Cloud Storage 中。如果您從儲存字詞的 Cloud Storage 值區或 BigQuery 表格新增或移除字詞,隨後就要使用 Cloud DLP 更新儲存的自訂字典。

要進一步瞭解如何建立儲存的自訂字典,請參閱建立儲存的自訂字典偵測工具一文。

字典比對細節

以下指引描述 Cloud DLP 如何比對字典字詞和詞組。這些要點適用於一般和儲存的自訂字典:

  • 字典的字詞不區分大小寫。如果您的字典包括 Abby,就會與 abbyABBYAbby 等相符。
  • 掃描相符項目時,如果字典或掃描內容中的字元不是 Unicode 基本多語言字面 (Basic Multilingual Plane) 中包含的字母或數字,則會被視為空格字元。如果您的字典掃描 Abby Abernathy,就會與 abby abernathyAbby, AbernathyAbby (ABERNATHY) 等相符。
  • 任何相符項目周圍的字元必須是不同類型 (字母或數字),不可以是字詞中的相鄰字元。如果您的字典掃描 Abi,就會與 Abi904 的前三個字元相符,但與 Abigail 的前三個字元不相符。
  • 如果字典的字詞包含非字母或數字的大量字元,則可能會導致非預期的發現項目,原因是這些字元均被視為空白字元。

範例

簡易字詞清單

假設您手上的資料包含病人就診期間接受治療的醫院病房。這些位置可能會被視為特定資料集中的機密資料,而無法供 Cloud DLP 內建的偵測工具取用。

病房列示於下:

  • "RM-Orange"
  • "RM-Yellow"
  • "RM-Green"

下列 JSON 範例會定義自訂字典,讓您用來去識別化自訂的病房號碼。

JSON 輸入:

POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:deidentify?key={YOUR_API_KEY}

{
  "item":{
    "value":"Patient was seen in RM-YELLOW then transferred to rm green."
  },
  "deidentifyConfig":{
    "infoTypeTransformations":{
      "transformations":[
        {
          "primitiveTransformation":{
            "replaceWithInfoTypeConfig":{

            }
          }
        }
      ]
    }
  },
  "inspectConfig":{
    "customInfoTypes":[
      {
        "infoType":{
          "name":"CUSTOM_ROOM_ID"
        },
        "dictionary":{
          "wordList":{
            "words":[
              "RM-GREEN",
              "RM-YELLOW",
              "RM-ORANGE"
            ]
          }
        }
      }
    ]
  }
}

JSON 輸出:

當我們將 JSON 輸出張貼至 content:deidentify 時,其會傳回下列 JSON 回應:

{
  "item":{
    "value":"Patient was seen in [CUSTOM_ROOM_ID] then transferred to [CUSTOM_ROOM_ID]."
  },
  "overview":{
    "transformedBytes":"17",
    "transformationSummaries":[
      {
        "infoType":{
          "name":"CUSTOM_ROOM_ID"
        },
        "transformation":{
          "replaceWithInfoTypeConfig":{

          }
        },
        "results":[
          {
            "count":"2",
            "code":"SUCCESS"
          }
        ],
        "transformedBytes":"17"
      }
    ]
  }
}

Cloud DLP 已可正確地識別自訂字典的 WordList 郵件中指定的病房號碼。請注意,即使大小寫不同且缺少連字號 (-) 亦可成為相符項目,如第二個範例「rm green」所示。

例外清單

假設您的記錄資料包含客戶 ID (例如電子郵件地址),而您想要遮蓋這項資訊,但是這類記錄中也包含內部開發人員的電子郵件地址,而且不需予以遮蓋。

下列 JSON 範例會建立自訂字典,列出在 WordList 郵件中的電子郵件地址子集 (jack@example.org 和 jill@example.org),並指派自訂的 infoType 名稱 DEVELOPER_EMAIL 給這些電子郵件地址。此 JSON 會指示 Cloud DLP 忽略指定的電子郵件地址,同時使用對應至其 infoType (在此範例中為 EMAIL_ADDRESS) 的字串來取代偵測到的任何其他電子郵件地址:

JSON 輸入:

POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/content:deidentify?key={YOUR_API_KEY}

{
  "item":{
    "value":"jack@example.org accessed customer record of user5@example.com"
  },
  "deidentifyConfig":{
    "infoTypeTransformations":{
      "transformations":[
        {
          "primitiveTransformation":{
            "replaceWithInfoTypeConfig":{

            }
          },
          "infoTypes":[
            {
              "name":"EMAIL_ADDRESS"
            }
          ]
        }
      ]
    }
  },
  "inspectConfig":{
    "customInfoTypes":[
      {
        "infoType":{
          "name":"DEVELOPER_EMAIL"
        },
        "dictionary":{
          "wordList":{
            "words":[
              "jack@example.org",
              "jill@example.org"
            ]
          }
        }
      }
    ],
    "infoTypes":[
      {
        "name":"EMAIL_ADDRESS"
      }
    ]
  }
}

JSON 輸出:

當我們將此 JSON 張貼至 content:deidentify 時,其會傳回下列 JSON 回應:

{
  "item":{
    "value":"jack@example.org accessed customer record of [EMAIL_ADDRESS]"
  },
  "overview":{
    "transformedBytes":"17",
    "transformationSummaries":[
      {
        "infoType":{
          "name":"EMAIL_ADDRESS"
        },
        "transformation":{
          "replaceWithInfoTypeConfig":{

          }
        },
        "results":[
          {
            "count":"1",
            "code":"SUCCESS"
          }
        ],
        "transformedBytes":"17"
      }
    ]
  }
}

輸出已正確地將 user1@example.com 識別為與 EMAIL_ADDRESS infoType 偵測工具相符,而將 jack@example.org 識別為與 DEVELOPER_EMAIL 自訂的 infoType 偵測工具相符。請注意,由於我們選擇僅轉換 EMAIL_ADDRESS,因此 jack@example.org 會保持不變。

擴增內建 infotype 偵測工具

請試想內建的 infoType 偵測工具未傳回正確值的情況。舉例來說,您想要傳回人名的相符項目,但是 Cloud DLP 內建 PERSON_NAME 偵測工具無法傳回部分人名的相符項目,而這些姓名在您的資料集內為常見項目。

Cloud DLP 可讓您在自訂 infoType 偵測工具的宣告中加入內建偵測工具,藉以補強內建 infoType 偵測工具,如以下範例所示。這段程式碼說明如何設定 Cloud DLP,以便讓 PERSON_NAME 內建 infoType 偵測工具另行比對名字「Quasimodo」:

...
  "inspectConfig":{
    "customInfoTypes":[
      {
        "infoType":{
          "name":"PERSON_NAME"
        },
        "dictionary":{
          "wordList":{
            "words":[
              "quasimodo"
            ]
          }
        }
      }
    ]
  }
...
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Data Loss Prevention