修改 InfoType 偵測工具以修正掃描結果

Cloud Data Loss Prevention (DLP) 的內建 infoType 偵測工具能有效找出常見的機密資料類型。自訂 infoType 偵測工具可讓您充分自訂自己的機密資料偵測工具,而「檢查規則」則可藉由修改指定 infoType 偵測工具的偵測機制,協助微調 Cloud DLP 傳回的掃描結果。

如果希望內建 infoType 偵測工具傳回的結果中排除或納入更多值,您可以從頭建立新的自訂 infoType,並定義 Cloud DLP 應尋找的所有條件。或者,您可以修正 Cloud DLP 內建或自訂偵測工具根據指定條件而傳回的發現項目,方法是新增有助於減少雜訊、提高查準率和查全率,或可調整掃描發現項目的可能性確定性等的檢查規則。

本主題將討論如何使用兩種檢查規則,以根據您指定的自訂條件,排除某些發現項目或額外增加發現項目。本主題也會提供幾種情況,讓您衡量是否可能要更改現有的 infoType 偵測工具。

檢查規則有以下兩種類型:

排除規則

排除規則適用於下列情況:

  • 希望在結果中排除 infoType 偵測工具重疊所造成的重複掃描相符項目。例如,掃描電子郵件地址和電話號碼,但電子郵件地址含有電話號碼,像是「206-555-0764@example.org」,所以會收到兩個相符項目。
  • 掃描發現項目發生雜訊。例如,您看到某個掃描作業針對合法的電子郵件地址,毫無節制頻繁地傳回同一個虛擬電子郵件地址 (如「example@example.com」) 或網域 (如「example.com」)。
  • 手上有希望從發現項目中排除的字詞、詞組或字元組合清單。

Exclusion Rules API 總覽

Cloud DLP 會在 ExclusionRule 物件中定義排除規則。您可以在 ExclusionRule 中指定下列其中一項:

  • Dictionary 物件:表示排除規則為一般字典規則。
  • Regex 物件:表示排除規則為規則運算式規則。
  • ExcludeInfoTypes 物件:包含 infoType 偵測工具陣列。如果這裡所列的任一 infoType 偵測工具發現相符項目,該發現項目將會從掃描結果中排除。

排除規則的情境範例

下列每個 JSON 程式碼片段都說明如何針對特定情境設定 Cloud DLP。

在 EMAIL_ADDRESS 偵測工具掃描中省略特定電子郵件地址

下列 JSON 程式碼片段說明如何使用 InspectConfig 指示 Cloud DLP 在使用 infoType 偵測工具 EMAIL_ADDRESS 進行掃描作業時,避免比對「example@example.com」:

...
    "inspectConfig":{
      "ruleSet":[
        {
          "infoTypes":[
            {
              "name":"EMAIL_ADDRESS"
            }
          ],
          "rules":[
            {
              "exclusionRule":{
                "dictionary":{
                  "wordList":{
                    "words":[
                      "example@example.com"
                    ]
                  }
                },
                "matchingType": "MATCHING_TYPE_FULL_MATCH"
              }
            }
          ]
        }
      ]
    }
...

在 EMAIL_ADDRESS 偵測工具掃描中省略結尾是特定網域的電子郵件地址

下列 JSON 程式碼片段說明如何使用 InspectConfig 指示 Cloud DLP 在使用 infoType 偵測工具 EMAIL_ADDRESS 進行掃描作業時,避免比對結尾是「@example.com」的任何電子郵件地址:

...
    "inspectConfig":{
      "ruleSet":[
        {
          "infoTypes":[
            {
              "name":"EMAIL_ADDRESS"
            }
          ],
          "rules":[
            {
              "exclusionRule":{
                "regex":{
                  "pattern":".+@example.com"
                },
                "matchingType": "MATCHING_TYPE_FULL_MATCH"
              }
            }
          ]
        }
      ]
    }
...

省略任何包含子字串「REDACTED」的掃描相符項目

下列 JSON 程式碼片段說明如何使用 InspectConfig 指示 Cloud DLP 排除任何包含子字串「REDACTED」的發現項目:

...
    "inspectConfig":{
      "ruleSet":[
        {
          "infoTypes":[
            {
              "name":"ALL_BASIC"
            }
          ],
          "rules":[
            {
              "exclusionRule":{
                "dictionary":{
                  "wordList":{
                    "words":[
                      "REDACTED"
                    ]
                  }
                },
                "matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
              }
            }
          ]
        }
      ]
    }
...

在自訂 infoType 偵測工具掃描中省略包含子字串「Jimmy」的掃描相符項目

下列 JSON 程式碼片段說明如何使用 InspectConfig 指示 Cloud DLP 在使用指定自訂規則運算式偵測工具的掃描作業中,避免比對名字「Jimmy」:

...
    "inspectConfig":{
      "customInfoTypes":[
        {
          "infoType":{
            "name":"CUSTOM_NAME_DETECTOR"
          },
          "regex":{
            "pattern":"\d{2,6}\s\w.\s(\b\w*\b\s){2,4}\w*\."
          }
        }
      ],
      "ruleSet":[
        {
          "infoTypes":[
            {
              "name":"CUSTOM_NAME_DETECTOR"
            }
          ],
          "rules":[
            {
              "exclusionRule":{
                "dictionary":{
                  "wordList":{
                    "words":[
                      "jimmy"
                    ]
                  }
                },
                "matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
              }
            }
          ]
        }
      ]
    }
...

在與自訂偵測工具重疊的 PERSON_NAME 偵測工具掃描中省略掃描相符項目

在這個情境中,如果使用程式碼片段第一部分中定義的自訂規則運算式偵測工具進行掃描時傳回的相符項目,與使用 PERSON_NAME 內建偵測工具從 Cloud DLP 掃描作業傳回的相符項目相同,則使用者不希望有這類相符項目。下列 JSON 程式碼片段同時在 InspectConfig 中指定自訂規則運算式偵測工具和排除規則。自訂規則運算式偵測工具會指定結果中所要排除的名稱。排除規則指定針對 PERSON_NAME 掃描所傳回的任何結果與自訂規則運算式偵測工具相同時,會省略這些結果。請注意,這裡的 VIP_DETECTOR 標示為 EXCLUSION_TYPE_EXCLUDE,所以本身不會產生結果,只會影響 PERSON_NAME 偵測工具所產生的結果。

...
    "inspectConfig":{
      "customInfoTypes":[
        {
          "infoType":{
            "name":"VIP_DETECTOR"
          },
          "regex":{
            "pattern":"Larry Page|Sergey Brin"
          },
          "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 指示 Cloud DLP 在 PERSON_NAME 偵測工具的相符項目和 EMAIL_ADDRESS 偵測工具的相符項目重疊時,只要傳回一個相符項目。這樣做可以避免 PERSON_NAMEEMAIL_ADDRESS 這兩個偵測工具的相符項目是同一個電子郵件地址,例如「james@example.com」。

...
    "inspectConfig":{
      "ruleSet":[
        {
          "infoTypes":[
            {
              "name":"PERSON_NAME"
            }
          ],
          "rules":[
            {
              "exclusionRule":{
                "excludeInfoTypes":{
                  "infoTypes":[
                    {
                      "name":"EMAIL_ADDRESS"
                    }
                  ]
                },
                "matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
              }
            }
          ]
        }
      ]
    }
...

在 DOMAIN_NAME 偵測工具掃描中省略網域名稱是電子郵件地址一部分的相符項目

下列 JSON 程式碼片段說明如何使用 InspectConfig 指示 Cloud DLP 只有在相符項目不會與 EMAIL_ADDRESS 偵測工具掃描出的相符項目重疊時,才應該傳回 DOMAIN_NAME 偵測工具掃描的相符項目。在這個情況下,主要掃描會是 DOMAIN_NAME 偵測工具掃描。使用者希望網域名稱在電子郵件地址中使用的情況下,於發現項目中不要傳回網域名稱相符項目:

...
    "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"
              }
            }
          ]
        }
      ]
    }
...

啟動字詞規則

啟動字詞規則適合用於下列情況:

  • 您希望根據相符項目與啟動字詞的鄰近程度,來變更指派給掃描相符項目的可能性值。例如,您想根據姓名與「患者」一詞的鄰近程度,對患者姓名的相符項目設定高一點的可能性值。

Hotword Rules API 總覽

在 Cloud DLP 的 InspectionRule 物件中,您可以指定 HotwordRule 物件,藉此將發現項目的可能性調整在與啟動字詞有一定的鄰近程度內。

InspectionRule 物件會在 InspectionRuleSet 物件中分組成「規則集」,並列出會套用規則集的 infoType 偵測工具。一個規則集中的多個規則會按照指定順序套用。

啟動字詞規則的情境範例

下列 JSON 程式碼片段說明如何針對特定情境設定 Cloud DLP。

如果附近有啟動字詞「患者」,則增加 PERSON_NAME 相符項目的可能性

下列 JSON 程式碼片段使用 InspectConfig 說明掃描醫療資料庫以找出患者姓名的情境。您可以使用 Cloud DLP 的內建 PERSON_NAME infoType 偵測工具,不過這會造成 Cloud DLP 比對所有人的姓名,而不是只比對患者的姓名。為修正這種情況,您可以加入啟動字詞規則,在潛在相符項目第一個字元的特定字元鄰近範圍內尋找「患者」一詞。然後,您可以為符合這個模式的發現項目,指派「非常可能」的可能性,因為這對應到您的特殊條件。在 InspectConfig 中將最小 Likelihood 設為 VERY_LIKELY,可確保在發現項目中只會傳回與這項設定相符的項目。

...
  "inspectConfig":{
    "ruleSet":[
      {
        "infoTypes":[
          {
            "name":"PERSON_NAME"
          }
        ],
        "rules":[
          {
            "hotwordRule":{
              "hotwordRegex":{
                "pattern":"patient"
              },
              "proximity":{
                "windowBefore":50
              },
              "likelihoodAdjustment":{
                "fixedLikelihood":"VERY_LIKELY"
              }
            }
          }
        ]
      }
    ],
    "minLikelihood":"VERY_LIKELY"
  }
...

如需進一步瞭解啟動字詞,請參閱自訂相符可能性一文。

多個檢查規則情境

下列 InspectConfig JSON 程式碼片段說明同時套用排除和啟動字詞規則。這個程式碼片段的規則集包括啟動字詞規則和字典,以及規則運算式排除規則。請注意,在陣列的 rules 元素中指定了四個規則。

...
  "inspectConfig":{
    "ruleSet":[
      {
        "infoTypes":[
          {
            "name":"PERSON_NAME"
          }
        ],
        "rules":[
          {
            "hotwordRule":{
              "hotwordRegex":{
                "pattern":"patient"
              },
              "proximity":{
                "windowBefore":5
              },
              "likelihoodAdjustment":{
                "fixedLikelihood":"VERY_LIKELY"
              }
            }
          },
          {
            "hotwordRule":{
              "hotwordRegex":{
                "pattern":"doctor"
              },
              "proximity":{
                "windowBefore":5
              },
              "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 偵測工具時,請在範例內容上進行全面測試,以確保偵測工具如您預期發揮作用。

本頁內容對您是否有任何幫助?請提供意見:

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

這個網頁
Cloud Data Loss Prevention