妥善管理儲存在儲存空間存放區的機密資料,首先要進行儲存空間分類:找出存放區中的機密資料位置、類型和使用方式。這項知識有助於您正確設定存取控管和共用權限,並可納入持續監控計畫。
Sensitive Data Protection 可偵測及分類儲存在 Cloud Storage 位置、Datastore 種類或 BigQuery 資料表中的機密資料。掃描 Cloud Storage 位置中的檔案時,Sensitive Data Protection 支援掃描二進位、文字、圖片、Microsoft Word、Microsoft Excel、Microsoft PowerPoint、PDF 和 Apache Avro 檔案。系統會將無法辨識的檔案類型視為二進位檔案掃描。如要進一步瞭解支援的檔案類型,請參閱「支援的檔案類型」。
如要檢查儲存空間和資料庫中的機密資料,請指定資料位置,以及 Sensitive Data Protection 應尋找的機密資料類型。Sensitive Data Protection 會啟動工作,檢查指定位置的資料,然後提供在內容中找到的 infoTypes、可能性值等詳細資料。
您可以使用 Google Cloud 控制台中的 Sensitive Data Protection,透過 RESTful DLP API,或以程式輔助方式,使用多種語言的 Sensitive Data Protection 用戶端程式庫,設定儲存空間和資料庫的檢查作業。
本主題包括以下內容:
- 設定掃描 Google Cloud 儲存空間存放區和資料庫的最佳做法。
- 操作說明:在 Google Cloud 控制台使用 Sensitive Data Protection 設定檢查掃描作業,以及排定定期重複檢查掃描作業 (選用)。
- 各儲存空間存放區類型的 JSON 和程式碼範例:(Cloud Storage、Datastore 模式的 Firestore (Datastore) 和 BigQuery)。 Google Cloud
- 掃描工作的設定選項詳細總覽。
- 說明如何擷取掃描結果,以及如何管理透過每項成功要求建立的掃描工作。
最佳做法
找出並優先掃描
請務必先評估資產,並指定哪些資產的掃描優先順序最高。剛開始時,您可能會有大量待分類的資料,無法立即全部掃描。一開始請選擇潛在風險最高的資料,例如經常存取、可供廣泛存取或不明的資料。
確認 Sensitive Data Protection 能存取您的資料
Sensitive Data Protection 必須能存取要掃描的資料。請確認 Sensitive Data Protection 服務帳戶有權讀取您的資源。
限制首次掃描的範圍
為獲得最佳結果,請限制第一項工作的範圍,不要掃描所有資料。先從一個資料表、一個 bucket 或幾個檔案開始,並使用取樣功能。限制首次掃描的範圍,有助於判斷要啟用哪些偵測器,以及可能需要哪些排除規則來減少偽陽性,讓結果更有意義。如果不需要所有 infoType,請避免全部啟用,因為偽陽性或無法使用的發現項目可能會增加評估風險的難度。雖然 DATE、TIME、DOMAIN_NAME 和 URL 等 infoType 在某些情況下很有用,但這類 infoType 會比對廣泛的發現項目,因此可能不適合用於大型資料掃描。
對結構化檔案 (例如 CSV、TSV 或 Avro 檔案) 進行取樣時,請確保樣本大小足以涵蓋檔案的完整標頭和一列資料。詳情請參閱「在結構化剖析模式中掃描結構化檔案」。
安排掃描時間
使用 Sensitive Data Protection 作業觸發條件,每天、每週或每季自動執行掃描並產生結果。您也可以設定這些掃描作業,只檢查上次掃描後變更的資料,這樣就能節省時間並降低成本。定期執行掃描,有助於找出掃描結果的趨勢或異常狀況。
工作延遲時間
我們不保證作業和作業觸發程序會達到任何服務水準目標 (SLO)。延遲時間會受到多種因素影響,包括要掃描的資料量、掃描的儲存空間存放區、要掃描的 infoType 類型和數量、處理作業的區域,以及該區域可用的運算資源。因此,檢查工作的延遲時間無法事先確定。
如要縮短工作延遲時間,可以嘗試下列做法:
- 如果工作或工作觸發條件支援取樣功能,請啟用。
請避免啟用不需要的 infoType。雖然下列資訊類型在特定情境中很有用,但與不含這些資訊類型的要求相比,這些資訊類型可能會導致要求執行速度慢上許多:
PERSON_NAMEFEMALE_NAMEMALE_NAMEFIRST_NAMELAST_NAMEDATE_OF_BIRTHLOCATIONSTREET_ADDRESSORGANIZATION_NAME
請務必明確指定 infoType。請勿使用空白的 infoTypes 清單。
請盡可能改用其他處理區域。
如果嘗試這些技術後,工作仍有延遲問題,請考慮使用 content.inspect 或 content.deidentify 要求,而非工作。這些方法適用服務水準協議。詳情請參閱「Sensitive Data Protection 服務水準協議」。
事前準備
本主題提供的操作說明假設如下:
您已啟用計費功能。
您已啟用 Sensitive Data Protection。
儲存空間分類需要下列 OAuth 範圍:
https://www.googleapis.com/auth/cloud-platform。詳情請參閱「向 DLP API 進行驗證」。
檢查 Cloud Storage 位置
您可以透過 Google Cloud 控制台、透過 REST 或 RPC 要求使用 DLP API,或以多種語言透過用戶端程式庫,設定 Cloud Storage 位置的 Sensitive Data Protection 檢查。如要瞭解下列 JSON 和程式碼範例中包含的參數,請參閱本主題稍後的「設定儲存空間檢查」一節。
Sensitive Data Protection 會根據檔案副檔名和媒體 (MIME) 類型,判斷要掃描的檔案類型,以及要套用的掃描模式。舉例來說,Sensitive Data Protection 會以純文字模式掃描 .txt 檔案,即使檔案結構為 CSV 檔案 (通常以結構化剖析模式掃描) 也是如此。
如要使用 Sensitive Data Protection 設定 Cloud Storage bucket 的掃描工作,請按照下列步驟操作:
控制台
本節說明如何檢查 Cloud Storage bucket 或資料夾。如要讓 Sensitive Data Protection 建立去識別化的資料副本,請參閱「使用 Google Cloud 控制台將儲存在 Cloud Storage 的機密資料去識別化」。
在 Google Cloud 控制台的「Sensitive Data Protection」專區中,前往「Create job or job trigger」(建立工作或工作觸發條件) 頁面。
輸入 Sensitive Data Protection 工作資訊,然後點選「Continue」(繼續),完成各個步驟:
在「選擇輸入資料」部分,在「名稱」欄位中輸入值,為工作命名。在「位置」中,從「儲存空間類型」選單選擇 Cloud Storage,然後輸入要掃描的資料位置。 「取樣」部分已預先設定,可對您的資料執行範例掃描。如果您有大量資料,可以調整「Percentage of objects scanned within bucket」(在 bucket 中掃描的物件百分比) 欄位,節省資源。詳情請參閱「選擇輸入資料」。
(選用) 在「設定偵測作業」部分,您可以設定要尋找的資料類型,稱為「infoTypes」。您可以從預先定義的 infoType 清單中選取,也可以選取現有範本。詳情請參閱「設定偵測功能」。
在「新增動作」部分,選取一或多個動作,讓 Sensitive Data Protection 功能在工作完成後執行。詳情請參閱「啟用檢查或風險分析動作」。
選取動作後,按一下「繼續」。
(選用) 如要排程,但只想執行一次掃描,請將選單設為「無」。如要排定定期執行掃描作業,請按一下「Create a trigger to run the job on a periodic schedule」(建立觸發條件來定期執行工作)。詳情請參閱「排程」。
點選「建立」。
Sensitive Data Protection 工作完成後,系統會將您重新導向至工作詳細資料頁面,並透過電子郵件通知您。您可以在工作詳細資料頁面查看檢查結果。
(選用) 如果您選擇將 Sensitive Data Protection 發現項目發布至 BigQuery,請在「Job details」(工作詳細資料) 頁面中,按一下「View Findings in BigQuery」(在 BigQuery 中查看發現項目),在 BigQuery 網頁版 UI 中開啟資料表。接著,您可以查詢資料表並分析結果。如要進一步瞭解如何在 BigQuery 中查詢結果,請參閱「在 BigQuery 中查詢 Sensitive Data Protection 發現項目」。
通訊協定
以下是 JSON 範例,可透過 POST 要求傳送至指定的 Sensitive Data Protection REST 端點。這個 JSON 範例示範如何使用 DLP API 檢查 Cloud Storage 值區。如要瞭解要求中包含的參數,請參閱本主題後續的「設定儲存空間檢查」一節。
您可以在 content.inspect 的參考頁面上,透過 APIs Explorer 快速試用這項功能:
請注意,即使是在 APIs Explorer 中,成功的要求也會建立新的掃描工作。如要瞭解如何控管掃描作業,請參閱本主題稍後的「擷取檢查結果」。如要瞭解如何使用 JSON 向 DLP API 傳送要求,請參閱 JSON 快速入門導覽課程。
JSON 輸入:
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET-NAME]/*"
},
"bytesLimitPerFile":"1073741824"
},
"timespanConfig":{
"startTime":"2017-11-13T12:34:29.965633345Z",
"endTime":"2018-01-05T04:45:04.240912125Z"
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"excludeInfoTypes":false,
"includeQuote":true,
"minLikelihood":"LIKELY"
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[DATASET-ID]"
}
}
}
}
]
}
}
JSON 輸出內容:
{
"name":"projects/[PROJECT-ID]/dlpJobs/[JOB-ID]",
"type":"INSPECT_JOB",
"state":"PENDING",
"inspectDetails":{
"requestedOptions":{
"snapshotInspectTemplate":{
},
"jobConfig":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET-NAME]/*"
},
"bytesLimitPerFile":"1073741824"
},
"timespanConfig":{
"startTime":"2017-11-13T12:34:29.965633345Z",
"endTime":"2018-01-05T04:45:04.240912125Z"
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"minLikelihood":"LIKELY",
"limits":{
},
"includeQuote":true
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[DATASET-ID]",
"tableId":"[NEW-TABLE-ID]"
}
}
}
}
]
}
}
},
"createTime":"2018-11-07T18:01:14.225Z"
}
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 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
檢查 Datastore 種類
您可以透過Google Cloud 控制台、透過 REST 或 RPC 要求使用 DLP API,或以多種語言透過用戶端程式庫,設定檢查 Datastore 種類。
如要使用 Sensitive Data Protection 設定 Datastore 類型的掃描工作,請按照下列步驟操作:
控制台
如要使用 Sensitive Data Protection 設定 Datastore 類型的掃描工作,請按照下列步驟操作:
在 Google Cloud 控制台的「Sensitive Data Protection」部分,前往「Create job or job trigger」(建立工作或工作觸發條件) 頁面。
輸入 Sensitive Data Protection 工作資訊,然後按一下「繼續」,完成下列步驟:
在「Choose input data」(選擇輸入資料) 部分,輸入要掃描的專案、命名空間 (選用) 和種類 ID。詳情請參閱「選擇輸入資料」。
(選用) 在「設定偵測作業」部分,您可以設定要尋找的資料類型,也就是「infoTypes」。您可以從預先定義的 infoType 清單中選取,也可以選取現有範本。詳情請參閱「設定偵測功能」。
在「Add actions」(新增動作) 部分,選取一或多個動作,讓 Sensitive Data Protection 在工作完成後執行。詳情請參閱「啟用檢查或風險分析動作」。
選取動作後,按一下「繼續」。
(選用) 在「時間表」部分,選取「指定時間範圍」或「建立觸發條件來定期執行工作」,設定時間範圍或時間表。詳情請參閱「時間表」。
點選「建立」。
Sensitive Data Protection 工作完成後,系統會將您重新導向至工作詳細資料頁面,並透過電子郵件通知您。您可以在工作詳細資料頁面查看檢查結果。
(選用) 如果您選擇將 Sensitive Data Protection 發現結果發布至 BigQuery,請在「工作詳細資料」頁面中,按一下「在 BigQuery 中查看發現結果」,在 BigQuery 網頁版 UI 中開啟資料表。接著,您可以查詢資料表並分析結果。如要進一步瞭解如何在 BigQuery 中查詢結果,請參閱「查詢 Sensitive Data Protection 在 BigQuery 的發現結果」。
通訊協定
以下是 JSON 範例,可透過 POST 要求傳送至指定的 DLP API REST 端點。這個 JSON 範例說明如何使用 DLP API 檢查 Datastore 種類。如要瞭解要求中包含的參數,請參閱本主題稍後的「設定儲存空間檢查」一節。
您可以在 dlpJobs.create 的參考頁面上,透過 APIs Explorer 快速試用這項功能:
請注意,即使是在 APIs Explorer 中,只要要求成功,就會建立新的掃描工作。如要瞭解如何控管掃描工作,請參閱本主題後續的「擷取檢查結果」一節。如要瞭解如何使用 JSON 將要求傳送至 DLP API,請參閱 JSON 快速入門指南。
JSON 輸入:
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"datastoreOptions":{
"kind":{
"name":"Example-Kind"
},
"partitionId":{
"namespaceId":"[NAMESPACE-ID]",
"projectId":"[PROJECT-ID]"
}
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"excludeInfoTypes":false,
"includeQuote":true,
"minLikelihood":"LIKELY"
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[BIGQUERY-DATASET-NAME]",
"tableId":"[BIGQUERY-TABLE-NAME]"
}
}
}
}
]
}
}
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 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
檢查 BigQuery 資料表
您可以透過 REST 要求,使用 Sensitive Data Protection 設定 BigQuery 資料表檢查作業,也可以使用用戶端程式庫,以多種語言透過程式輔助方式進行設定。
如要使用 Sensitive Data Protection 設定 BigQuery 資料表的掃描作業,請按照下列步驟操作:
控制台
如要使用 Sensitive Data Protection 設定 BigQuery 資料表的掃描作業,請按照下列步驟操作:
在 Google Cloud 控制台的「Sensitive Data Protection」專區中,前往「Create job or job trigger」頁面。
輸入 Sensitive Data Protection 工作資訊,然後點選「Continue」(繼續),完成各個步驟:
在「Choose input data」(選擇輸入資料) 部分,在「Name」(名稱) 欄位中輸入值,為工作命名。在「Location」(位置) 中,從「Storage type」(儲存空間類型) 選單中選擇「BigQuery」,然後輸入要掃描的資料表資訊。
「取樣」部分已預先設定,可對資料執行樣本掃描。如果您有大量資料,可以調整「Limit rows by」(資料列限制依據) 和「Maximum number of rows」(資料列數量上限) 欄位,節省資源。詳情請參閱「選擇輸入資料」。
(選用) 如果您希望將每個發現項目連結至包含該項目的資料列,請設定「Identifying fields」(識別欄位) 欄位。
輸入資料欄名稱,用於唯一識別資料表中的每個資料列。如有需要,請使用點標記法指定巢狀結構欄位。您可以視需要新增多個欄位。
您也必須開啟「儲存至 BigQuery」動作,才能將發現項目匯出至 BigQuery。發現項目匯出至 BigQuery 時,每個發現項目都會包含識別欄位的對應值。詳情請參閱
identifyingFields的說明。(選用) 在「設定偵測作業」部分,您可以設定要尋找的資料類型,也就是「infoTypes」。您可以從預先定義的 infoType 清單中選取,也可以選取現有範本。詳情請參閱「設定偵測功能」。
在「Add actions」(新增動作) 部分,選取一或多項動作,讓 Sensitive Data Protection 在工作完成後執行。詳情請參閱「啟用檢查或風險分析動作」。
選取動作後,按一下「繼續」。
(選用) 如要排程,但只想執行一次掃描,請將選單設為「無」。如要排定定期執行掃描作業,請按一下「Create a trigger to run the job on a periodic schedule」(建立觸發條件來定期執行工作)。詳情請參閱「排程」。
點選「建立」。
Sensitive Data Protection 工作完成後,系統會將您重新導向至工作詳細資料頁面,並透過電子郵件通知您。您可以在工作詳細資料頁面查看檢查結果。
(選用) 如果您選擇將 Sensitive Data Protection 發現結果發布至 BigQuery,請在「工作詳細資料」頁面中,按一下「在 BigQuery 中查看發現結果」,在 BigQuery 網頁版 UI 中開啟資料表。接著,您可以查詢資料表並分析結果。如要進一步瞭解如何在 BigQuery 中查詢結果,請參閱「查詢 Sensitive Data Protection 在 BigQuery 的發現結果」。
通訊協定
以下是 JSON 範例,可透過 POST 要求傳送至指定的 DLP API REST 端點。這個 JSON 範例說明如何使用 DLP API 檢查 BigQuery 資料表。如要瞭解要求中包含的參數,請參閱本主題後續的「設定儲存空間檢查」一節。您可以在 dlpJobs.create 的參考頁面上,透過 APIs Explorer 快速試用這項功能:
請注意,即使是在 APIs Explorer 中,成功的要求也會建立新的掃描工作。如要瞭解如何控管掃描工作,請參閱本主題稍後的「擷取檢查結果」。如需使用 JSON 向 DLP API 傳送要求的一般資訊,請參閱 JSON 快速入門導覽課程。
JSON 輸入:
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"bigQueryOptions":{
"tableReference":{
"projectId":"[PROJECT-ID]",
"datasetId":"[BIGQUERY-DATASET-NAME]",
"tableId":"[BIGQUERY-TABLE-NAME]"
},
"identifyingFields":[
{
"name":"id"
}
]
},
"timespanConfig":{
"startTime":"2017-11-13T12:34:29.965633345Z ",
"endTime":"2018-01-05T04:45:04.240912125Z "
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"excludeInfoTypes":false,
"includeQuote":true,
"minLikelihood":"LIKELY"
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[BIGQUERY-DATASET-NAME]",
"tableId":"[BIGQUERY-TABLE-NAME]"
},
"outputSchema": "BASIC_COLUMNS"
}
}
}
]
}
}
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 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
設定儲存空間檢查
如要檢查 Cloud Storage 位置、Datastore 種類或 BigQuery 資料表,請將要求傳送至 DLP API 的 projects.dlpJobs.create 方法,其中至少包含要掃描的資料位置和掃描內容。除了這些必要參數以外,您也可以指定寫入掃描結果的位置、大小和可能性門檻等項目。要求成功後,系統會建立 DlpJob 物件執行個體,詳情請參閱「擷取檢查結果」。
以下摘要說明可用的設定選項:
InspectJobConfig物件:包含檢查工作的設定資訊。請注意,InspectJobConfig物件也會由JobTriggers物件用於排定DlpJob的建立作業。這個物件包含:StorageConfig物件:必要。包含要掃描的儲存空間存放區的相關詳細資料:StorageConfig物件必須包含下列其中一項,具體取決於要掃描的儲存空間存放區類型:CloudStorageOptions物件:包含要掃描的 Cloud Storage bucket 相關資訊。DatastoreOptions物件:包含要掃描的 Datastore 資料集相關資訊。BigQueryOptionsobject:包含要掃描的 BigQuery 資料表相關資訊 (以及選用的識別欄位)。這個物件也能啟用結果取樣。詳情請參閱下方的「啟用結果取樣」。TimespanConfigobject:選用。指定要納入掃描的項目時間範圍。
InspectConfig物件:必要。指定要掃描的內容,例如 infoTypes 和可能性值。InfoType物件: 必要欄位。要掃描的一或多個 infoType 值。Likelihoodenumeration:選用。設定後,Sensitive Data Protection 只會傳回等於或高於這個可能性門檻的發現項目。如果省略這個列舉,預設值為POSSIBLE。FindingLimitsobject:選用。設定後,這個物件可讓您指定傳回的調查結果數量上限。includeQuote參數:選用。預設為false。如果設為true,每個發現項目都會包含觸發該項目的資料情境引用內容。excludeInfoTypes參數:選用。預設值為false。如果設為true,掃描結果就不會包含發現項目的類型資訊。CustomInfoType物件:一或多個使用者建立的自訂 infoType。如要進一步瞭解如何建立自訂 infoType,請參閱「建立自訂 infoType 偵測工具」。
inspectTemplateName字串:選用。指定用於在InspectConfig物件中填入預設值的範本。如果您已指定InspectConfig,範本值會合併到其中。Actionobjects:選用。完成工作時要執行的一或多個動作。系統會按照列出的順序執行各項動作。您可以在這裡指定結果的寫入位置,或是否要將通知發布至 Pub/Sub 主題。
jobId:選用。Sensitive Data Protection 傳回的工作 ID。如果省略jobId或留空,系統會為工作建立 ID。如果指定,工作會指派這個 ID 值。工作 ID 必須是專屬 ID,且只能包含大小寫英文字母、數字和連字號,也就是必須符合下列規則運算式:[a-zA-Z\\d-]+。
限制檢查的內容量
如要掃描 BigQuery 資料表或 Cloud Storage bucket,Sensitive Data Protection 提供掃描資料集子集的方法。這可提供掃描結果樣本,而不會產生掃描整個資料集的潛在費用。
下列各節說明如何限制 Cloud Storage 掃描和 BigQuery 掃描的大小。
限制 Cloud Storage 掃描
您可以限制掃描的資料量,以啟用 Cloud Storage 中的取樣功能。您可以指示 DLP API 只掃描特定大小以下的檔案、特定檔案類型,以及輸入檔案集中特定百分比的檔案總數。如要這麼做,請在 CloudStorageOptions 中指定下列選填欄位:
bytesLimitPerFile:設定要從檔案掃描的位元組數量上限。如果掃描的檔案大小超過這個值,系統會省略其餘位元組。設定這個欄位不會影響特定檔案類型。詳情請參閱「每個檔案的掃描位元組數上限」。fileTypes[]:列出要納入掃描作業的FileTypes。這項屬性可以設為下列一或多個列舉類型。filesLimitPercent:將掃描的檔案數量限制為輸入FileSet的指定百分比。 在此指定0或100,表示沒有限制。sampleMethod:如果未掃描所有位元組,如何取樣位元組。只有在與bytesLimitPerFile搭配使用時,指定這個值才有意義。如未指定,掃描會從頂端開始。這個欄位可設為下列其中一個值:TOP:掃描會從頂端開始。RANDOM_START:針對每個大於bytesLimitPerFile中指定大小的檔案,隨機挑選開始掃描的位移。掃描的位元組會是連續的。
下列範例示範如何使用 DLP API,掃描 Cloud Storage bucket 中 90% 的子集,找出人名。掃描會從資料集的隨機位置開始,而且只會包含 200 位元組以下的文字檔案。
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
JSON 輸入:
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET-NAME]/*"
},
"bytesLimitPerFile":"200",
"fileTypes":[
"TEXT_FILE"
],
"filesLimitPercent":90,
"sampleMethod":"RANDOM_START"
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"excludeInfoTypes":true,
"includeQuote":true,
"minLikelihood":"POSSIBLE"
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"testingdlp"
},
"outputSchema":"BASIC_COLUMNS"
}
}
}
]
}
}
在 POST 要求中將 JSON 輸入內容傳送至指定端點後,系統會建立 Sensitive Data Protection 工作,API 則會傳送下列回應。
JSON 輸出內容:
{
"name":"projects/[PROJECT-ID]/dlpJobs/[JOB-ID]",
"type":"INSPECT_JOB",
"state":"PENDING",
"inspectDetails":{
"requestedOptions":{
"snapshotInspectTemplate":{
},
"jobConfig":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET_NAME]/*"
},
"bytesLimitPerFile":"200",
"fileTypes":[
"TEXT_FILE"
],
"sampleMethod":"TOP",
"filesLimitPercent":90
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
}
],
"minLikelihood":"POSSIBLE",
"limits":{
},
"includeQuote":true,
"excludeInfoTypes":true
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"[DATASET-ID]",
"tableId":"[TABLE-ID]"
},
"outputSchema":"BASIC_COLUMNS"
}
}
}
]
}
}
},
"createTime":"2018-05-30T22:22:08.279Z"
}
限制 BigQuery 掃描
如要在 BigQuery 中啟用取樣功能,限制掃描的資料量,請在 BigQueryOptions 中指定下列選用欄位:
rowsLimit:要掃描的資料列數量上限。如果表格有比這個值更多的資料列,則會省略其餘的資料列。如未設定,或已設定為 0,則會掃描所有資料列。rowsLimitPercent:要掃描的列數百分比上限 (介於 0 和 100 之間)。其餘資料列則會省略。將這個值設為 0 或 100,表示沒有限制。預設值為 0。只能指定rowsLimit和rowsLimitPercent其中之一。sampleMethod:如果未掃描所有資料列,如何取樣資料列。如未指定,掃描會從頂端開始。這個欄位可設為下列其中一個值:TOP:掃描會從頂端開始。RANDOM_START:掃描會從隨機選取的資料列開始。
excludedFields:資料表欄位,可明確識別要排除讀取的資料欄。這有助於減少掃描的資料量,並降低檢查工作的整體成本。includedFields:資料表欄位,可專屬識別要掃描的資料表內特定資料列。
另一項有助於限制掃描資料量的功能是 TimespanConfig,特別是在掃描分區資料表時。TimespanConfig 可讓您提供開始和結束時間值來定義時間範圍,藉此篩除 BigQuery 資料表列。Sensitive Data Protection 則只會掃描時間戳記落在該時間範圍內的資料列。
下列範例示範如何使用 DLP API 掃描 BigQuery 資料表中 1000 列的子集。掃描會從隨機列開始。
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 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
REST
JSON 輸入:
POST https://dlp.googleapis.com/v2/projects/[PROJECT-ID]/dlpJobs?key={YOUR_API_KEY}
{
"inspectJob":{
"storageConfig":{
"bigQueryOptions":{
"tableReference":{
"projectId":"bigquery-public-data",
"datasetId":"usa_names",
"tableId":"usa_1910_current"
},
"rowsLimit":"1000",
"sampleMethod":"RANDOM_START",
"includedFields":[
{
"name":"name"
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"FIRST_NAME"
}
],
"includeQuote":true
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT-ID]",
"datasetId":"testingdlp",
"tableId":"bqsample3"
},
"outputSchema":"BASIC_COLUMNS"
}
}
}
]
}
}
在 POST 要求中將 JSON 輸入內容傳送至指定端點後,系統會建立 Sensitive Data Protection 工作,API 則會傳送下列回應。
JSON 輸出內容:
{
"name": "projects/[PROJECT-ID]/dlpJobs/[JOB-ID]",
"type": "INSPECT_JOB",
"state": "PENDING",
"inspectDetails": {
"requestedOptions": {
"snapshotInspectTemplate": {},
"jobConfig": {
"storageConfig": {
"bigQueryOptions": {
"tableReference": {
"projectId": "bigquery-public-data",
"datasetId": "usa_names",
"tableId": "usa_1910_current"
},
"rowsLimit": "1000",
"sampleMethod": "RANDOM_START",
"includedFields": [
{
"name": "name"
}
]
}
},
"inspectConfig": {
"infoTypes": [
{
"name": "FIRST_NAME"
}
],
"limits": {},
"includeQuote": true
},
"actions": [
{
"saveFindings": {
"outputConfig": {
"table": {
"projectId": "[PROJECT-ID]",
"datasetId": "[DATASET-ID]",
"tableId": "bqsample"
},
"outputSchema": "BASIC_COLUMNS"
}
}
}
]
}
},
"result": {}
},
"createTime": "2022-11-04T18:53:48.350Z"
}
檢查工作執行完畢,且 BigQuery 處理完結果後,掃描結果就會顯示在指定的 BigQuery 輸出資料表中。如要進一步瞭解如何擷取檢查結果,請參閱下一節。
擷取檢查結果
您可以使用 projects.dlpJobs.get 方法擷取 DlpJob 的摘要。傳回的 DlpJob 包含 InspectDataSourceDetails 物件,其中包含工作設定的摘要 (RequestedOptions) 和工作結果的摘要 (Result)。結果摘要包括:
processedBytes:已處理的總大小 (以位元組為單位)。totalEstimatedBytes:預估剩餘待處理的位元組數。InfoTypeStatistics物件:檢查工作中找到的各個 infoType 例項數量統計資料。
如要查看完整的檢查工作結果,可以採取以下任一做法:檢查工作的執行方式取決於您選擇的Action:
- 儲存至 BigQuery (
SaveFindings物件),並存放在指定的資料表中。查看或分析結果前,請先使用projects.dlpJobs.get方法 (如下所述),確認工作已完成。請注意,您可以使用OutputSchema物件指定儲存發現項目的結構定義。 - 發布至 Pub/Sub 主題 (即
PublishToPubSub物件)。主題必須將發布存取權授予執行DlpJob傳送通知的 Sensitive Data Protection 服務帳戶。 - 已發布至 Security Command Center。
- 發布至 Cloud Monitoring。
為協助篩選 Sensitive Data Protection 產生的大量資料,您可以使用內建的 BigQuery 工具執行豐富的 SQL 分析,或使用數據分析等工具產生報表。詳情請參閱「分析及回報 Sensitive Data Protection 發現項目」。如需查詢範例,請參閱「在 BigQuery 中查詢調查結果」。
將儲存空間存放區檢查要求傳送至 Sensitive Data Protection,會建立並執行 DlpJob 物件執行個體做為回應。視您的資料大小及指定的設定而定,執行這些工作可能需要幾秒、幾分或幾小時。如果選擇發布至 Pub/Sub 主題 (在 Action 中指定 PublishToPubSub),系統會在工作狀態變更時,自動將通知傳送至指定名稱的主題。Pub/Sub 主題名稱的指定格式為 projects/[PROJECT-ID]/topics/[PUBSUB-TOPIC-NAME]。
您可以使用以下管理方法充分控管自己建立的工作:
projects.dlpJobs.cancelmethod:停止目前正在進行的工作。伺服器會盡力取消工作,但不保證一定會成功。工作和設定會保留到您刪除為止 (使用projects.dlpJobs.delete方法:刪除工作及其設定。projects.dlpJobs.get方法:擷取單一工作,並傳回其狀態、設定,以及摘要結果 (如果工作已完成)。projects.dlpJobs.list方法:擷取所有工作的清單,並提供篩選結果的功能。
後續步驟
- 如要進一步瞭解如何建立儲存空間檢查工作,請參閱「建立及排定 Sensitive Data Protection 檢查工作」。
- 進一步瞭解如何在儲存空間建立去識別化的資料副本。
- 如要進一步瞭解檢查 Cloud Storage bucket 時支援的檔案類型,請參閱「支援的檔案類型」。