「一般化」程序會擷取易於識別的值並將該值進行抽象化處理,轉換為較為一般且識別性較低的值。一般化程序會降低資料的可識別性,但同時嘗試保留資料的效用。
一般化可分為許多層級,視資料類型而定。透過 Sensitive Data Protection 的風險分析中含有的技術,您可以測量整個資料集或實際世界人口,藉此得知需要的一般化程度。
「特徵分塊」為 Sensitive Data Protection 支援且常見的一般化技術。如要嘗試降低攻擊者透過識別資訊竊取機密資訊的風險,您可以使用特徵分塊將記錄分組為較小的特徵分塊。這麼做可以保留資料的意義和效用,而且也會隱藏關聯者過少的個別值。
值區分類情境 1
設想下列數值的值區分類情境:資料庫儲存了使用者滿意度分數,範圍從 0 至 100。資料庫看起來與以下內容相似:
user_id | score |
---|---|
1 | 100 |
2 | 100 |
3 | 92 |
… | ... |
掃描資料後,您發現使用者很少使用某些值。事實上,有幾個分數只對應到一位使用者。舉例來說,大部分使用者均選擇 0、25、50、75 或 100,但有五位使用者選擇 95,而且有一位使用者選擇 92。您可以透過一般化程序將這些值進行分類,並消除關聯者過少的任何群組,而非保留原始資料。視資料的使用方式而定,以這種方式將資料一般化有助於防止資料遭到重新識別。
您可以選擇移除這些離群值資料列,也可以嘗試使用分組保留這些資料的實用性。在本範例中,讓我們按照下列項目為所有值進行值區分類:
- 0 至 25:「低」
- 26-75:「中」
- 76-100:「高」
Sensitive Data Protection 中的特徵分塊是一種可用於去識別化的原始轉換作業。下列 JSON 設定說明如何在 DLP API 中實際呈現這個特徵分塊情境。您可將這項 JSON 設定加入傳送給 content.deidentify
方法的要求中:
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
... { "primitiveTransformation": { "bucketingConfig": { "buckets": [ { "min": { "integerValue": "0" }, "max": { "integerValue": "25" }, "replacementValue": { "stringValue": "Low" } }, { "min": { "integerValue": "26" }, "max": { "integerValue": "75" }, "replacementValue": { "stringValue": "Medium" } }, { "min": { "integerValue": "76" }, "max": { "integerValue": "100" }, "replacementValue": { "stringValue": "High" } } ] } } } ...
特徵分塊情境 2
值區分類也適用於字串或列舉值。假設您想要分享薪資資料並加入職稱,但是 CEO 或傑出工程師等職稱會連結至單一使用者或一小群使用者,因此這類職稱很容易比對出擁有該職稱的員工。
值區分類在這種情況下也能提供助益。您可以選擇不加入確切的職位名稱,而是將職稱一般化並進行值區分類。舉例來說,「資深工程師」、「初級工程師」和「傑出工程師」會歸類為「工程師」。下表說明如何將特定職稱歸類至職稱系列。
其他情境
我們在這些範例中將轉換作業套用至結構化資料,但值區分類也適用於非結構化範例,前提是所有值皆可使用預先定義或自訂的 infoType 來分類。下面是部分情境範例:
- 將日期分類,並特徵分塊為不同的年份範圍
- 將名稱分類,並根據第一個字母 (A-M、N-Z) 特徵分塊為不同群組
資源
如要進一步瞭解一般化和值區分類,請參閱將文字內容中的機密資料去識別化。
如需 API 說明文件,請參閱:
projects.content.deidentify
方法BucketingConfig
轉換:根據自訂範圍對值進行特徵分塊。FixedSizeBucketingConfig
轉換:根據固定大小範圍對值進行特徵分塊。