如要正確地管理儲存在儲存空間存放區中的機密資料,必須從儲存空間分類找出機密資料在存放區的所在位置、機密資料是哪種類型,以及機密資料的使用方式。這些資訊可協助您正確設定存取權控管與共用權限,而且可以成為持續監控方案的一部分。
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 設定檢查掃描,並視需要排定週期性的重複檢查掃描作業。
- 每種 Google Cloud 儲存空間存放區類型的 JSON 和程式碼範例:(Cloud Storage、Datastore 模式的 Firestore (Datastore) 和 BigQuery)。
- 掃描工作的設定選項詳細總覽。
- 說明如何擷取掃描結果,以及如何管理透過每項成功要求建立的掃描工作。
最佳做法
找出並優先處理掃描作業
請務必先評估資產,並指定掃描優先順序最高的資產。剛開始使用時,您可能會有大量待分類的資料積壓,無法立即掃描所有資料。請先選擇潛在風險最高的資料,例如經常存取、可供廣泛存取或不明的資料。
確認 Sensitive Data Protection 可以存取您的資料
Sensitive Data Protection 必須能夠存取要掃描的資料。請務必允許 Sensitive Data Protection 服務帳戶讀取您的資源。
限制首次掃描的範圍
為獲得最佳效果,請限制第一份工作的範圍,不要掃描所有資料。從一個資料表、一個值區或幾個檔案開始,然後使用取樣。限制首次掃描的範圍,有助於判斷要啟用哪些偵測器,以及可能需要哪些排除規則來減少誤報,讓結果更有意義。如果不需要所有資訊類型,請避免全部開啟,否則誤判或無用的發現可能會導致風險評估更加困難。雖然在某些情況下很有用,但 DATE
、TIME
、DOMAIN_NAME
和 URL
等 infoType 會比對範圍廣泛的結果,因此不適合用於大型資料掃描。
取樣結構化檔案 (例如 CSV、TSV 或 Avro 檔案) 時,請確認樣本大小足以涵蓋檔案的完整標題和資料列。詳情請參閱以結構化剖析模式掃描結構化檔案。
排定掃描時間
使用 Sensitive Data Protection 工作觸發條件,每天、每週或每季自動執行掃描並產生結果。您也可以設定這些掃描作業,只檢查上次掃描後變更的資料,藉此節省時間並降低成本。定期執行掃描有助於找出掃描結果的趨勢或異常狀況。
工作延遲
作業和作業觸發程序不提供服務等級目標 (SLO) 保證。延遲時間會受到多種因素影響,包括要掃描的資料量、掃描的儲存空間存放區、掃描的 infoType 類型和數量、處理作業的區域,以及該區域可用的運算資源。因此,無法預先判斷檢查工作的延遲時間。
如要縮短工作延遲時間,可以嘗試下列方法:
- 如果工作或工作觸發條件提供取樣功能,請啟用這項功能。
請避免啟用不需要的 infoType。雖然下列 infoType 在特定情境中很有用,但與不含這些 infoType 的要求相比,包含這些 infoType 的要求執行速度會慢上許多:
PERSON_NAME
FEMALE_NAME
MALE_NAME
FIRST_NAME
LAST_NAME
DATE_OF_BIRTH
LOCATION
STREET_ADDRESS
ORGANIZATION_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 位置
如要設定 Cloud Storage 位置的 Sensitive Data Protection 檢查作業,可以使用 Google Cloud 控制台、透過 REST 或 RPC 要求使用 DLP API,或透過幾種程式語言使用用戶端程式庫進行。如要進一步瞭解下列 JSON 和程式碼範例包含的參數,請參閱本主題後面的「設定儲存空間檢查」一節。
Sensitive Data Protection 會根據檔案副檔名和媒體 (MIME) 類型,判斷要掃描的檔案類型,以及要套用的掃描模式。舉例來說,即使檔案結構為 CSV 檔案 (通常會以結構化剖析模式掃描),機密資料保護服務仍會以純文字模式掃描 .txt
檔案。
如要使用 Sensitive Data Protection 設定 Cloud Storage bucket 的掃描工作,請按照下列步驟操作:
控制台
本節說明如何檢查 Cloud Storage 值區或資料夾。如要讓 Sensitive Data Protection 建立資料的去識別化副本,請參閱使用 Google Cloud 控制台將儲存在 Cloud Storage 中的私密資料去識別化。
在 Google Cloud 控制台的「Sensitive Data Protection」專區中,前往「Create job or job trigger」(建立工作或工作觸發條件) 頁面。
輸入機密資料防護工作資訊,然後按一下「繼續」來完成各個步驟:
在「Choose input data」(選擇輸入資料) 中,於「Name」(名稱) 欄位輸入值,為工作命名。在「Location」(位置) 中,從「Storage type」(儲存空間類型) 選單選擇 Cloud Storage,然後輸入要掃描的資料位置。「Sampling」(取樣) 部分已預先設定,可針對資料執行範例掃描。如果您有大量資料,可以調整「值區內掃描的物件百分比」欄位,以節省資源。詳情請參閱「選擇輸入資料」。
(選用) 您可以在「Configure detection」(設定偵測作業) 中設定要尋找的資料類型 (稱為「infoTypes」infoTypes)。做法是從預先定義的 infoTypes 清單中選擇類型,或是選擇範本 (如果有的話)。詳情請參閱「設定偵測」。
在「Add actions」(新增動作) 步驟中,選取工作完成後要讓 Sensitive Data Protection 執行的一或多個動作。詳情請參閱「啟用檢查或風險分析動作」。
選取動作後,按一下「繼續」。
(選用) 如要「排程」只執行一次掃描,請將選單設為「無」。如要排定定期執行掃描作業,請按一下「建立觸發條件來定期執行工作」。詳情請參閱時間表。
點選「建立」。
Sensitive Data Protection 工作完成後,系統會將您重新導向至工作詳細資料頁面,並且透過電子郵件通知您。您可以在工作詳細資料頁面上查看檢查結果。
(選用) 如果您選擇將 Sensitive Data Protection 發現項目發布至 BigQuery,請在「Job details」(工作詳細資料) 頁面上按一下「View Findings in BigQuery」(在 BigQuery 中查看發現項目),藉此在 BigQuery 網頁版 UI 中開啟資料表。接下來,您可以查詢資料表和分析發現項目。如要進一步瞭解如何在 BigQuery 中查詢結果,請參閱「在 BigQuery 中查詢 Sensitive Data Protection 發現項目」一文。
通訊協定
您可以在傳送 POST 要求時將以下 JSON 範例傳送至指定的 Sensitive Data Protection REST 端點。這個 JSON 範例示範如何使用 DLP API 檢查 Cloud Storage 值區。如要進一步瞭解要求包含的參數,請參閱本主題後面的「設定儲存空間檢查」一節。
您可以在參考頁面的 APIs Explorer 中快速試用:content.inspect
請注意,即使在 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,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Go
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
PHP
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
檢查 Datastore 種類
如要設定 Datastore 種類的檢查作業,您可以透過Google Cloud 控制台、DLP API (透過 REST 或 RPC 要求),或透過幾種程式語言使用用戶端程式庫進行。
如要使用 Sensitive Data Protection 設定 Datastore 種類的掃描工作,請按照下列步驟操作:
控制台
如要使用 Sensitive Data Protection 設定 Datastore 種類的掃描工作,請按照下列步驟操作:
在 Google Cloud 控制台的「Sensitive Data Protection」專區中,前往「Create job or job trigger」頁面。
輸入 Sensitive Data Protection 工作資訊,然後按一下「繼續」來完成各個步驟:
在「選擇輸入資料」部分,輸入要掃描的專案、命名空間 (選用) 和種類的 ID。詳情請參閱「選擇輸入資料」。
(選用) 您可以在「Configure detection」(設定偵測作業) 中設定要尋找的資料類型 (稱為「infoTypes」infoTypes)。做法是從預先定義的 infoTypes 清單中選擇類型,或是選擇範本 (如果有的話)。詳情請參閱「設定偵測」。
在「Add actions」(新增動作) 步驟中,選取工作完成後要讓 Sensitive Data Protection 執行的一或多個動作。詳情請參閱「啟用檢查或風險分析動作」。
選取動作後,按一下「繼續」。
(選用) 在「Schedule」(排程) 中,選取「Specify time span」(指定時距) 或「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 發現項目」一文。
通訊協定
您可以在傳送 POST 要求時將以下 JSON 範例傳送至指定的 DLP API REST 端點。這個 JSON 範例示範如何使用 DLP API 檢查 Datastore 種類。如要進一步瞭解要求包含的參數,請參閱本主題後面的「設定儲存空間檢查」一節。
您可以在參考頁面的 APIs Explorer 中快速試用:dlpJobs.create
請注意,即使在 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,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Go
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
PHP
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
C#
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
檢查 BigQuery 資料表
如要設定 BigQuery 表格的檢查作業,您可以透過 REST 要求使用 Sensitive Data Protection 進行,或透過幾種程式語言使用用戶端程式庫進行。
如要使用「敏感資料保護」設定 BigQuery 資料表的掃描工作,請按照下列步驟操作:
控制台
如要使用「敏感資料保護」設定 BigQuery 資料表的掃描工作,請按照下列步驟操作:
在 Google Cloud 控制台的「Sensitive Data Protection」專區中,前往「Create job or job trigger」頁面。
輸入 Sensitive Data Protection 工作資訊,然後按一下「繼續」來完成各個步驟:
在「Choose input data」(選擇輸入資料) 中,於「Name」(名稱) 欄位輸入值,為工作命名。在「Location」(位置) 中,從「Storage type」(儲存空間類型) 選單選擇 BigQuery,然後輸入要掃描的資料表資訊。
「Sampling」(取樣) 區段已預先設定,可針對資料執行範例掃描。如果資料量龐大,可以調整「Limit rows by」(資料列限制依據) 和「Maximum number of rows」(資料列數量上限) 欄位,節省資源。詳情請參閱選擇輸入資料。
(選用) 如要將每個發現項目連結至包含該項目的資料列,請設定「識別欄位」欄位。
輸入可唯一識別資料表中每個資料列的資料欄名稱。如有需要,請使用點標記法指定巢狀欄位。您可以視需要新增任意數量的欄位。
您也必須開啟「儲存至 BigQuery」動作,才能將發現項目匯出至 BigQuery。將發現項目匯出至 BigQuery 時,每個發現項目都會包含識別欄位的相應值。詳情請參閱
identifyingFields
的說明。(選用) 您可以在「Configure detection」(設定偵測作業) 中設定要尋找的資料類型 (稱為「infoTypes」infoTypes)。做法是從預先定義的 infoTypes 清單中選擇類型,或是選擇範本 (如果有的話)。詳情請參閱「設定偵測」。
在「Add actions」(新增動作) 步驟中,選取工作完成後要讓 Sensitive Data Protection 執行的一或多個動作。詳情請參閱「啟用檢查或風險分析動作」。
選取動作後,按一下「繼續」。
(選用) 如要「排程」只執行一次掃描,請將選單設為「無」。如要排定定期執行掃描作業,請按一下「建立觸發條件來定期執行工作」。詳情請參閱時間表。
點選「建立」。
Sensitive Data Protection 工作完成後,系統會將您重新導向至工作詳細資料頁面,並且透過電子郵件通知您。您可以在工作詳細資料頁面上查看檢查結果。
(選用) 如果您選擇將 Sensitive Data Protection 發現項目發布至 BigQuery,請在「Job details」(工作詳細資料) 頁面上按一下「View Findings in BigQuery」(在 BigQuery 中查看發現項目),藉此在 BigQuery 網頁版 UI 中開啟資料表。接下來,您可以查詢資料表和分析發現項目。如要進一步瞭解如何在 BigQuery 中查詢結果,請參閱「在 BigQuery 中查詢 Sensitive Data Protection 發現項目」一文。
通訊協定
您可以在傳送 POST 要求時將以下 JSON 範例傳送至指定的 DLP API REST 端點。這個 JSON 範例示範如何使用 DLP API 檢查 BigQuery 表格。 如要進一步瞭解要求包含的參數,請參閱本主題後面的「設定儲存空間檢查」一節。您可以在參考頁面的 APIs Explorer 中快速試用:dlpJobs.create
請注意,即使在 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,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Go
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
PHP
如要瞭解如何安裝及使用 Sensitive Data Protection 的用戶端程式庫,請參閱這篇文章。
如要驗證 Sensitive Data Protection,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
C#
如要瞭解如何安裝及使用 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 值區相關資訊。DatastoreOptions
物件:包含要掃描的 Datastore 資料集相關資訊。BigQueryOptions
物件:包含要掃描的 BigQuery 資料表相關資訊 (而且可選擇是否要識別欄位)。這個物件也能啟用結果取樣。詳情請參閱下方的「啟用結果取樣」說明。TimespanConfig
物件:選用。指定掃描中要包含的項目時間範圍。
InspectConfig
物件:必要。指定要掃描的內容,例如 infoTypes 和可能性值。InfoType
物件: 必要。要掃描的一或多個 infoType 值。Likelihood
列舉:選用。如已設定,Sensitive Data Protection 只會傳回大於或等於這個可能性門檻的發現項目。如果省略這個列舉,預設值為POSSIBLE
。FindingLimits
物件:選用。如已設定,這個物件可讓您指定傳回的發現項目數量上限。includeQuote
參數:選用。預設值為false
。設為true
時,每個發現項目都會包含觸發它的資料中的內容相關引言。excludeInfoTypes
參數:選用。預設值為false
。設為true
時,掃描結果將排除發現項目的類型資訊。CustomInfoType
物件:一或多個使用者建立的自訂 infoType。要進一步瞭解如何建立自訂 infoType,請參閱建立自訂 InfoType 偵測工具一文。
inspectTemplateName
字串:選用。指定要用來在InspectConfig
物件中填入預設值的範本。如果您已經指定InspectConfig
,將會合併範本值。Action
物件:選用。完成工作時要執行的一或多個動作。每個動作都會按照列出的順序執行。 您可以在這裡指定要將結果寫入哪個位置,或是否要將通知發布至 Pub/Sub 主題。
jobId
:選用。Sensitive Data Protection 傳回的工作的識別碼。如果省略了jobId
或為空白,系統則會為工作建立 ID。如已指定,工作會獲派這個 ID 值。 工作 ID 不得重複,而且可包含大寫和小寫字母、數字及連字號,也就是必須符合以下規則運算式:[a-zA-Z\\d-]+
。
限制檢查的內容量
如果您掃描的是 BigQuery 表格或 Cloud Storage 值區,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 值區中 90% 的子集以查詢人名。掃描會從資料集的隨機位置開始,而且只會包含 200 位元組以下的文字檔案。
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
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,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
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,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
C#
如要瞭解如何安裝及使用 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。
- 發布到 Data Catalog。
- 已發布至 Cloud Monitoring。
為了仔細檢查敏感資料保護所產生的大量資料,您可以使用內建的 BigQuery 工具來執行各種 SQL 數據分析或工具,例如運用 Looker Studio 來產生報表。詳情請參閱「分析及回報 Sensitive Data Protection 發現項目」。如需查詢範例,請參閱在 BigQuery 中查詢發現項目一文。
將儲存空間存放區檢查要求傳送至 Sensitive Data Protection 時,系統會建立並執行 DlpJob
物件執行個體以做為回應。視您的資料大小及指定的設定而定,執行這些工作可能需要幾秒、幾分或幾小時。選擇發布至 Pub/Sub 主題 (在 Action
中指定 PublishToPubSub
),則會在工作狀態變更時,自動傳送通知給指定名稱的主題。Pub/Sub 主題名稱會指定為 projects/[PROJECT-ID]/topics/[PUBSUB-TOPIC-NAME]
的格式。
您可以使用以下管理方法充分控管自己建立的工作:
projects.dlpJobs.cancel
方法:停止目前正在進行中的工作。伺服器會盡可能嘗試取消工作,但不保證一定能成功。工作及其設定會保留至您將工作刪除為止。projects.dlpJobs.delete
方法:刪除工作及其設定。projects.dlpJobs.get
方法:擷取單一工作並傳回其狀態、設定,以及在工作完成時傳回摘要結果。projects.dlpJobs.list
方法:擷取所有工作的清單,並提供篩選結果的功能。
後續步驟
- 如要進一步瞭解如何建立儲存空間檢查工作,請參閱建立及排定 Sensitive Data Protection 檢查工作。
- 進一步瞭解如何在儲存空間中建立去識別化的資料副本。
- 如要進一步瞭解檢查 Cloud Storage bucket 時支援的檔案類型,請參閱「支援的檔案類型」。