本主題說明 Sensitive Data Protection 提供的去識別化技術或轉換。
去識別化技術類型
選擇要去識別化的轉換方式時,應考量要去識別化的資料類型,以及去識別化的目的。Sensitive Data Protection 支援的去識別化技術大致分為下列類別:
- 刪減:刪除所有或部分偵測到的機密值。
- 替換:將偵測到的機密值替換為指定代理值。
- 遮蔽:將機密值的多個字元替換為指定代理字元,例如井字號 (#) 或星號 (*)。
- 加密式代碼化:使用加密編譯金鑰加密原始機密資料值。Sensitive Data Protection 支援多種代碼化類型,包括可反轉或「重新識別」的轉換。
- 特徵分塊:將機密值替換為某個範圍的值,藉此將機密值「一般化」(例如,將特定年齡替換為某個年齡層,或是將溫度替換為對應至「熱」、「適中」和「冷」的範圍)。
- 日期轉移:將機密資料值轉移隨機時間長度。
- 時間擷取:擷取或保留日期和時間值的指定部分。
本主題的其餘部分將介紹各種去識別化轉換類型,並提供使用範例。
轉換方法
下表列出 Sensitive Data Protection 提供的轉換功能,可用於去識別化機密資料:
| 轉換 | 物件 | 說明 | 可反向1 | 參照完整性2 | 輸入類型 |
|---|---|---|---|---|---|
| 刪減 | RedactConfig |
透過移除的方式刪減值。 | 不限 | ||
| 替換 | ReplaceValueConfig |
將每個輸入值替換為指定的值。 | 不限 | ||
| 替換為字典 | ReplaceDictionaryConfig
|
將輸入值替換為從字詞清單中隨機選取的值。 | 不限 | ||
| 替換為 infoType | ReplaceWithInfoTypeConfig |
將輸入值替換為其 infoType 名稱。 | 不限 | ||
| 使用字元遮蔽 | CharacterMaskConfig |
將指定的字元數替換為指定的固定字元,以完全或局部遮蔽字串。 | 不限 | ||
| 將輸入值替換為加密編譯雜湊以進行匿名化 | CryptoHashConfig |
使用指定的資料加密金鑰,將輸入值替換為產生的 32 位元組十六進位字串。詳情請參閱匿名化概念說明文件一文。 | ✔ | 字串或整數 | |
| 替換為保留代碼的加密編譯格式以進行匿名化 | CryptoReplaceFfxFpeConfig |
使用格式保留加密 (FPE) 和 FFX 作業模式,將輸入值替換為長度相同的權杖或代理值。這樣一來,輸出內容就能用於對長度進行格式驗證的系統。這項功能適用於必須維持字串長度的舊版系統。重要事項:如果輸入內容長度不一或長度超過 32 個位元組,請使用 CryptoDeterministicConfig。為確保安全,美國國家標準暨技術研究院建議採用下列限制:
|
✔ | ✔ | 字元數有限且長度一致的字串或整數。字母表必須由至少 2 個字元組成,且不得超過 95 個字元。 |
| 替換為加密編譯代碼以進行匿名化 | CryptoDeterministicConfig |
使用合成初始向量模式的 AES (AES-SIV),將輸入值替換為相同長度的代碼或代理值。與格式保留權杖化不同,這種轉換方法對於支援的字串字元集沒有限制、會為每個相同的輸入值產生相同的權杖,並且會使用代理值,在有原始加密金鑰的情況下進行重新識別化。 | ✔ | ✔ | 不限 |
| 根據固定大小範圍對值進行特徵分塊 | FixedSizeBucketingConfig |
將輸入值替換為值區或輸入值落入的範圍,以遮蔽輸入值。 | 不限 | ||
| 根據自訂大小範圍的值區值 | BucketingConfig |
根據可由使用者設定的範圍及替換值的值區輸入值。 | 不限 | ||
| 日期轉移 | DateShiftConfig |
按隨機天數轉移日期,並提供讓相同背景資訊保持一致的選項。 | ✔ 保留順序和時間長度 |
日期/時間 | |
| 擷取時間資料 | TimePartConfig |
擷取或保留 Date、Timestamp 和 TimeOfDay 值的一部分。 |
日期/時間 |
註腳
content.reidentify 方法重新識別機密資料。
遮蓋
如要直接從輸入內容中移除機密資料,Sensitive Data Protection 支援遮蓋轉換 (DLP API 中的 RedactConfig)。
舉例來說,假設您想對所有 EMAIL_ADDRESS infoType 執行簡單的遮蓋作業,並將下列字串傳送至 Sensitive Data Protection:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
傳回的字串將顯示以下內容:
My name is Alicia Abernathy, and my email address is .
下列 JSON 範例和多種語言的程式碼,說明如何建立 API 要求,以及 DLP API 傳回的內容。
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
如要進一步瞭解如何搭配使用 DLP API 和 JSON,請參閱 JSON 快速入門導覽課程。
HTTP 方法和網址
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
將 PROJECT_ID 替換為專案 ID。
JSON 輸入
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"redactConfig":{
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
JSON 輸出內容
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is ."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"redactConfig":{
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
替換
替換轉換會將每個輸入值替換為指定代碼值,或是其 infoType 的名稱。
基本替換
基本替換轉換 (DLP API 中的 ReplaceValueConfig) 會將偵測到的機密資料值替換為您指定的值。舉例來說,假設您指示 Sensitive Data Protection 使用「[fake@example.com]」取代所有偵測到的 EMAIL_ADDRESS infoType,並將下列字串傳送至 Sensitive Data Protection:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
傳回的字串將顯示以下內容:
My name is Alicia Abernathy, and my email address is [fake@example.com].
下列 JSON 範例和多種語言的程式碼,說明如何建立 API 要求,以及 DLP API 傳回的內容。
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
如要進一步瞭解如何搭配使用 DLP API 和 JSON,請參閱 JSON 快速入門導覽課程。
HTTP 方法和網址
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
將 PROJECT_ID 替換為專案 ID。
JSON 輸入
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"replaceConfig":{
"newValue":{
"stringValue":"[email-address]"
}
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
JSON 輸出內容
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is [email-address]."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"replaceConfig":{
"newValue":{
"stringValue":"[email-address]"
}
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
字典替換
字典替換 (ReplaceDictionaryConfig) 會將偵測到的每項機密資料,替換為 Sensitive Data Protection 從您提供的字詞清單中隨機選取的值。如要使用實際的替代值,這個轉換方法就很實用。
假設您希望 Sensitive Data Protection 偵測電子郵件地址,並將偵測到的每個值替換為三個代理電子郵件地址之一。
您將下列輸入字串和替代電子郵件地址清單傳送至 Sensitive Data Protection:
輸入字串
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
字詞清單
- izumi@example.com
- alex@example.com
- tal@example.com
傳回的字串可以是下列任一值:
My name is Alicia Abernathy, and my email address is izumi@example.com.
My name is Alicia Abernathy, and my email address is alex@example.com.
My name is Alicia Abernathy, and my email address is tal@example.com.
下列 JSON 範例說明如何建立 API 要求,以及 DLP API 傳回的內容。
如要進一步瞭解如何透過 JSON 使用 DLP API,請參閱 JSON 快速入門導覽課程。
HTTP 方法和網址
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
將 PROJECT_ID 替換為專案 ID。
JSON 輸入
{
"item": {
"value": "My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig": {
"infoTypeTransformations": {
"transformations": [
{
"infoTypes": [
{
"name": "EMAIL_ADDRESS"
}
],
"primitiveTransformation": {
"replaceDictionaryConfig": {
"wordList": {
"words": [
"izumi@example.com",
"alex@example.com",
"tal@example.com"
]
}
}
}
}
]
}
},
"inspectConfig": {
"infoTypes": [
{
"name": "EMAIL_ADDRESS"
}
]
}
}
JSON 輸出內容
{
"item": {
"value": "My name is Alicia Abernathy, and my email address is izumi@example.com."
},
"overview": {
"transformedBytes": "22",
"transformationSummaries": [
{
"infoType": {
"name": "EMAIL_ADDRESS"
},
"transformation": {
"replaceDictionaryConfig": {
"wordList": {
"words": [
"izumi@example.com",
"alex@example.com",
"tal@example.com"
]
}
}
},
"results": [
{
"count": "1",
"code": "SUCCESS"
}
],
"transformedBytes": "22"
}
]
}
}
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 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
InfoType 替換
您也可以指定 infoType 替換 (DLP API 中的 ReplaceWithInfoTypeConfig)。這種轉換與基本替換轉換的作用相同,但會將每個偵測到的機密資料值替換為該值的 infoType。
舉例來說,假設您指示 Sensitive Data Protection 偵測電子郵件地址和姓氏,並將偵測到的每個值替換為該值的 infoType。您將下列字串傳送至 Sensitive Data Protection:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
傳回的字串將顯示以下內容:
My name is Alicia LAST_NAME, and my email address is EMAIL_ADDRESS.
遮罩
您可以設定 Sensitive Data Protection,將偵測到的機密值 (DLP API 中的 CharacterMaskConfig) 完全或部分遮蓋,方法是以固定的單一遮蓋字元 (例如星號 (*) 或井字號 (#)) 替換每個字元。遮蓋可以從字串的開頭或結尾開始。這種轉換也適用於長整數等數字類型。
Sensitive Data Protection 的遮蓋轉換功能提供下列選項:
- 遮罩字元 (DLP API 中的
maskingCharacter引數):用於遮蓋機密值中每個字元的字元。舉例來說,您可以指定星號 (*) 或貨幣符號 ($) 來遮蔽一系列數字,例如信用卡號碼的數字。 - 要遮蓋的字元數 (
numberToMask):如未指定這個值,系統會遮蓋所有字元。 - 是否反轉順序 (
reverseOrder):是否以反向順序遮蓋字元。如果選擇反轉順序,系統會依相符值結尾至開頭的方向遮蔽值中的字元。 - 要忽略的字元 (
charactersToIgnore):遮蓋值時要略過的一或多個字元。舉例來說,您可以指示 Sensitive Data Protection 在遮蓋電話號碼時保留連字號。您也可以指定一組常見字元 (CharsToIgnore),在遮蓋時忽略這些字元。
假設您將下列字串傳送至 Sensitive Data Protection,並指示其對電子郵件地址使用字元遮蓋轉換:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
將遮蓋字元設為「#」,要忽略的字元設為通用字元集,其他設定則保留預設值,Sensitive Data Protection 會傳回下列內容:
My name is Alicia Abernathy, and my email address is ##########@#######.###.
以下 JSON 和程式碼範例示範遮蔽轉換的運作方式。
Java
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
REST
如要進一步瞭解如何搭配使用 DLP API 和 JSON,請參閱 JSON 快速入門導覽課程。
HTTP 方法和網址
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
將 PROJECT_ID 替換為專案 ID。
JSON 輸入
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"characterMaskConfig":{
"maskingCharacter":"#",
"reverseOrder":false,
"charactersToIgnore":[
{
"charactersToSkip":".@"
}
]
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
JSON 輸出內容
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is ##########@#######.###."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"characterMaskConfig":{
"maskingCharacter":"#",
"charactersToIgnore":[
{
"charactersToSkip":".@"
}
]
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
加密式權杖化轉換
加密型權杖化 (也稱為「匿名化」) 轉換是一種去識別化方法,會將原始機密資料值替換為已加密值。Sensitive Data Protection 支援下列類型的代碼化,包括可反轉及重新識別的轉換:
- 密碼雜湊:如果提供
CryptoKey,Sensitive Data Protection 會對輸入值使用以 SHA-256 為基礎的訊息驗證碼 (HMAC-SHA-256),然後將輸入值替換為以 Base64 編碼的雜湊值。與其他類型的加密轉換不同,這類轉換無法復原。 - 格式保留加密:使用 FFX 作業模式,以格式保留加密 (FPE) 產生的權杖取代輸入值。這種轉換方法只能使用與輸入值相同的字母表產生代碼,且產生的代碼長度與輸入值相同。FPE 也支援重新識別化,前提是要有原始加密金鑰。
- 確定性加密:將輸入值替換為使用合成初始化向量模式 (AES-SIV) 的 AES 產生的權杖。這種轉換方法對於支援的字串字元集沒有限制、會為每個相同的輸入值產生相同的代碼,並且會使用代理值,在有原始加密金鑰的情況下進行重新識別化。
密碼雜湊
密碼雜湊轉換作業 (DLP API 中的 CryptoHashConfig) 會擷取輸入值 (Sensitive Data Protection 偵測到的機密資料),並以雜湊值取代。雜湊值的產生方式,是使用以 SHA-256 為基礎的訊息驗證碼 (HMAC-SHA-256),對輸入值和 CryptoKey 進行雜湊處理。
Sensitive Data Protection 會輸出經雜湊處理的輸入值,並以 Base64 編碼表示,取代原始值。
使用密碼雜湊轉換前,請注意下列事項:
- 輸入值未經過加密,而是經過雜湊處理。
- 這項轉換無法復原,也就是說,即使有經過雜湊處理的轉換輸出值和原始加密編譯金鑰,也無法還原原始值。
- 目前,您只能對字串與整數值進行雜湊處理。
- 經過雜湊處理的轉換輸出長度一律相同,實際長度則視加密編譯金鑰大小而定。舉例來說,如果您對 10 位數的電話號碼使用密碼雜湊轉換,每個電話號碼都會替換為固定長度的 Base64 編碼雜湊值。
格式保留加密
格式保留加密 (FPE) 轉換方法 (DLP API 中的 CryptoReplaceFfxFpeConfig) 會擷取輸入值 (Sensitive Data Protection 偵測到的機密資料),使用 FFX 模式和CryptoKey中的格式保留加密進行加密,然後將原始值替換為加密值或權杖。
輸入值具有以下特性:
- 至少必須要有兩個字元的長度 (或空字串)。
- 必須採 ASCII 編碼。
- 由「字母」指定的字元組成,也就是輸入值中允許的 2 到 95 個字元。詳情請參閱
CryptoReplaceFfxFpeConfig中的 alphabet 欄位。
產生的代碼具有以下特性:
- 是經過加密的輸入值。
- 加密後會保留輸入值的字元集 (「字母表」) 和長度。
- 使用 FFX 模式的格式保留加密,並以指定的加密編譯金鑰為金鑰,計算出雜湊值。
- 可能會重複,這是因為每個相同輸入值都會去識別化為相同代碼。這可確保參照完整性,進而提高去識別化資料的搜尋效率。如要變更這項行為,請使用「情境」一節所述的情境「調整」功能。
如果來源內容中某個輸入值出現多次,每個值都會去識別化為相同代碼。FPE 會保留長度和字母空間 (字元集),上限為 95 個字元。您可以使用情境「調整項」變更這項行為,進而提升安全性。在轉換中加入情境調整,可讓 Sensitive Data Protection 將相同輸入值的多個執行個體去識別化為不同權杖。如果不需要保留原始值的長度和字母空間,請使用確定性加密,如下所述。
Sensitive Data Protection 會使用加密編譯金鑰計算替換權杖。您可透過以下三種方式的其中之一提供這個金鑰:
- 將未加密的金鑰嵌入 API 要求。我們不建議這麼做。
- 要求 Sensitive Data Protection 生成。
- 將加密金鑰嵌入 API 要求中。
如果選擇在 API 要求中嵌入金鑰,則必須建立金鑰,並使用 Cloud Key Management Service (Cloud KMS) 金鑰包裝 (加密) 該金鑰。詳情請參閱「建立包裝金鑰」。根據預設,傳回的值是以 Base64 編碼的字串。如要在 Sensitive Data Protection 中設定這個值,必須將其解碼為位元組字串。下列程式碼片段說明如何以多種語言執行這項操作。這些程式碼片段後方會提供端對端範例。
Java
KmsWrappedCryptoKey.newBuilder()
.setWrappedKey(ByteString.copyFrom(BaseEncoding.base64().decode(wrappedKey)))
Python
# The wrapped key is base64-encoded, but the library expects a binary
# string, so decode it here.
import base64
wrapped_key = base64.b64decode(wrapped_key)
PHP
// Create the wrapped crypto key configuration object
$kmsWrappedCryptoKey = (new KmsWrappedCryptoKey())
->setWrappedKey(base64_decode($wrappedKey))
->setCryptoKeyName($keyName);
C#
WrappedKey = ByteString.FromBase64(wrappedKey)
如要進一步瞭解如何使用 Cloud KMS 加密及解密資料,請參閱加密及解密資料一文。
格式保留加密範例:去識別化
這個範例使用 CryptoReplaceFfxFpeConfig 轉換方法,將機密資料去識別化。詳情請參閱本頁的「格式保留加密」一節。
Java
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
格式保留加密範例:使用代理類型去識別化
這個範例使用 CryptoReplaceFfxFpeConfig 轉換方法,將機密資料去識別化。詳情請參閱本頁的「格式保留加密」一節。
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 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
格式保留加密範例:將資料表中的機密資料去識別化
這個範例使用 CryptoReplaceFfxFpeConfig 轉換方法,將資料表中的機密資料去識別化。詳情請參閱本頁的「格式保留加密」一節。
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 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
格式保留加密範例:重新識別
以下是多種語言的程式碼範例,示範如何使用 Sensitive Data Protection,重新識別透過 CryptoReplaceFfxFpeConfig 轉換方法去識別化的機密資料。詳情請參閱本頁的「格式保留加密」一節。
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 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
格式保留加密範例:重新識別文字
以下是多種語言的程式碼範例,示範如何使用 Sensitive Data Protection,重新識別透過 CryptoReplaceFfxFpeConfig 轉換方法去識別化的機密文字。詳情請參閱本頁的「格式保留加密」一節。
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 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
格式保留加密範例:使用代理類型重新識別
以下是多種語言的程式碼範例,示範如何使用 Sensitive Data Protection,重新識別透過 CryptoReplaceFfxFpeConfig 轉換方法去識別化的機密資料。詳情請參閱本頁的「格式保留加密」一節。
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 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
格式保留加密範例:重新識別資料表中的機密資料
以下是多種語言的程式碼範例,示範如何使用 Sensitive Data Protection,在透過 CryptoReplaceFfxFpeConfig 轉換方法去識別化的資料表中,重新識別機密資料。詳情請參閱本頁的「格式保留加密」一節。
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 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
確定性加密
DLP API 中的確定性加密轉換方法 CryptoDeterministicConfig 會擷取輸入值 (Sensitive Data Protection 偵測到的機密資料),使用 AES-SIV 和 CryptoKey 加密,然後將原始值替換為加密值的 Base64 編碼表示法。
使用確定性加密轉換可提升搜尋加密資料的效率。
輸入值具有以下特性:
- 長度至少要有 1 個字元。
- 沒有字元集限制。
產生的代碼具有以下特性:
- 加密值的 Base64 編碼表示法。
- 加密後不會保留輸入值的字元集 (「字母表」) 或長度。
- 使用 SIV 模式 (AES-SIV) 的 AES 加密和
CryptoKey計算。 - 可能會重複,這是因為每個相同輸入值都會去識別化為相同代碼。這可提升搜尋加密資料的效率。您可以使用結構定義「修正項」來變更這項行為,如結構定義一節所述。
- 產生時會加上前置字串,格式為
[SURROGATE_TYPE]([LENGTH]):,其中[SURROGATE_TYPE]代表描述輸入值的代理 infoType,[LENGTH]則代表其字元長度。代理值可讓系統使用去識別化時所用的原始加密金鑰,重新識別代碼。
以下是使用確定性加密進行去識別化的 JSON 設定示例。請注意,由於我們正在對電話號碼進行去識別化,因此選擇使用「PHONE_SURROGATE」做為描述性代理類型。[CRYPTO_KEY] 代表從 Cloud KMS 取得的未包裝加密編譯金鑰。
{
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"primitiveTransformation":{
"cryptoDeterministicConfig":{
"cryptoKey":{
"unwrapped":{
"key":"[CRYPTO_KEY]"
}
},
"surrogateInfoType":{
"name":"PHONE_SURROGATE"
}
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
]
},
"item":{
"value":"My phone number is 206-555-0574, call me"
}
}
使用這個轉換將「My phone number is 206-555-0574」(我的電話號碼是 206-555-0574) 這個字串去識別化後,會產生如下的去識別化字串:
My phone number is PHONE_SURROGATE(36):ATZBu5OCCSwo+e94xSYnKYljk1OQpkW7qhzx, call me
如要將這個字串重新識別化,您可以使用如下的 JSON 要求,其中 [CRYPTO_KEY] 是用來將字串內容去識別化的加密編譯金鑰。
{
"reidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"PHONE_SURROGATE"
}
],
"primitiveTransformation":{
"cryptoDeterministicConfig":{
"cryptoKey":{
"unwrapped":{
"key":"[CRYPTO_KEY]"
}
},
"surrogateInfoType":{
"name":"PHONE_SURROGATE"
}
}
}
}
]
}
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"PHONE_SURROGATE"
},
"surrogateType":{
}
}
]
},
"item":{
"value":"My phone number is [PHONE_SURROGATE](36):ATZBu5OCCSwo+e94xSYnKYljk1OQpkW7qhzx, call me"
}
}
將這個字串重新識別化後會產生原始字串:
My phone number is 206-555-0574, call me
如要改用包裝 (加密) 的 CryptoKey 以提高安全性,請參閱「快速入門導覽課程:去識別化及重新識別機密文字」中的範例。準備好使用用戶端程式庫去識別化內容時,請記得解碼包裝金鑰 (預設為 base64 編碼字串),如本頁「格式保留加密」一節所示。
確定性加密範例:去識別化
這個範例使用 CryptoDeterministicConfig 轉換方法,將機密資料去識別化。詳情請參閱本頁的「確定性加密」一節。
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 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
確定性加密範例:重新識別
這個範例說明如何重新識別透過 CryptoDeterministicConfig 轉換方法去識別化的機密資料。詳情請參閱本頁的「確定性加密」一節。
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 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
資料分組
特徵分塊轉換可將數值型資料「特徵分塊」為範圍,藉此將其去識別化。產生的數字範圍是以連字號連接的字串,其中包含下限、連字號和上限。
固定大小特徵分塊
Sensitive Data Protection 可根據固定大小範圍,將數值輸入值分桶 (在 DLP API 中為 FixedSizeBucketingConfig)。您必須指定下列項目來進行固定大小特徵分塊設定:
- 所有特徵分塊的下限值。系統會將小於這個下限的任何值歸為一個特徵分塊。
- 所有特徵分塊的上限值。系統會將大於這個上限的任何值歸為一個特徵分塊。
- 最小與最大特徵分塊以外的每個特徵分塊大小。
舉例來說,如果將下限設為 10、將上限設為 89,並將特徵分塊大小設為 10,則會使用下列特徵分塊:小於 10、10 到 20、20 到 30、30 到 40、40 到 50、50 到 60、60 到 70、70 到 80、80 到 89、大於 89。
如要進一步瞭解特徵分塊的概念,請參閱一般化與特徵分塊一文。
可自訂的特徵分塊
可自訂的分桶 (DLP API 中的 BucketingConfig) 比固定大小的分桶更具彈性。您不必指定上下限和間隔值來建立大小相同的值區,而是指定要建立的每個值區的最大值和最小值。每個最大與最小值組合必須是相同的類型。
如要設定可自訂的特徵分塊,您必須指定個別特徵分塊。每個特徵分塊都具有下列屬性:
- 特徵分塊範圍的下限。省略這個值可建立沒有下限的特徵分塊。
- 特徵分塊範圍的上限。省略這個值可建立沒有上限的特徵分塊。
- 這個特徵分塊範圍的替換值。這個值會取代所有偵測到的值,只要這些值落在下限和上限之間。如未提供替代值,系統會改為產生以連字號分隔的最小值和最大值範圍。
以下方的特徵分塊轉換 JSON 設定為例:
"bucketingConfig":{
"buckets":[
{
"min":{
"integerValue":"1"
},
"max":{
"integerValue":"30"
},
"replacementValue":{
"stringValue":"LOW"
}
},
{
"min":{
"integerValue":"31"
},
"max":{
"integerValue":"65"
},
"replacementValue":{
"stringValue":"MEDIUM"
}
},
{
"min":{
"integerValue":"66"
},
"max":{
"integerValue":"100"
},
"replacementValue":{
"stringValue":"HIGH"
}
}
]
}
這會定義以下行為:
- 系統會將介於 1 到 30 之間的整數值替換為
LOW以遮蔽這些值。 - 系統會將介於 31 到 65 之間的整數值替換為
MEDIUM以遮蔽這些值。 - 系統會將介於 66 到 100 之間的整數值替換為
HIGH以遮蔽這些值。
如要進一步瞭解特徵分塊的概念,請參閱一般化與特徵分塊一文。
日期偏移
在日期輸入值上使用日期移位轉換 (DLP API 中的 DateShiftConfig) 時,Sensitive Data Protection 會將日期移位隨機天數。
日期轉移的做法是隨機移動一組日期,但仍保留日期的順序和日期之間的時間長度。日期的轉移通常是依個人或單一實體來進行。也就是說,您可以使用相同的轉移差異為特定個人轉移所有日期,但要為其他每一個人分別使用不同的轉移差異。
如要進一步瞭解日期轉移,請參閱日期轉移一文。
以下是多種語言的程式碼範例,示範如何使用 Cloud DLP API 透過日期移位來去識別化日期。
Java
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
PHP
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱「Sensitive Data Protection 用戶端程式庫」。
如要向 Sensitive Data Protection 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
時間擷取
執行時間擷取 (DLP API 中的 TimePartConfig) 物件會保留日期、時間或時間戳記中相符值的一部分。您可以向 Sensitive Data Protection 指定要擷取的時間值類型,包括年、月、日等 (列舉在 TimePart 物件中)。
舉例來說,假設您設定了 timePartConfig 轉換,並將要擷取的時間部分設為 YEAR。將下表第一欄的資料傳送至 Sensitive Data Protection 後,您會得到第二欄的轉換值:
| 原始值 | 轉換值 |
|---|---|
9/21/1976 |
1976 |
6/7/1945 |
1945 |
1/20/2009 |
2009 |
7/4/1776 |
1776 |
8/1/1984 |
1984 |
4/21/1982 |
1982 |
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 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。