Sensitive Data Protection 可協助您找出、瞭解及管理基礎架構中的機密資料。使用 Sensitive Data Protection 掃描內容中的機密資料後,您可以選擇多種方式處理這些資料情報。本主題說明如何運用 BigQuery、Cloud SQL 和數據分析等其他 Google Cloud 功能,達成下列目標:
- 直接將 Sensitive Data Protection 掃描結果儲存在 BigQuery。
- 針對基礎架構中的機密資料存放位置產生報表。
- 執行功能強大的 SQL 數據分析來瞭解機密資料的儲存位置和種類。
- 根據一組發現項目或發現項目組合,自動向觸發條件發出快訊或採取動作。
本主題也提供已完成樣本,說明如何使用 Sensitive Data Protection 和其他 Google Cloud 功能,完成上述所有工作。
掃描儲存空間值區
首先針對資料執行掃描作業。以下是使用 Sensitive Data Protection 掃描儲存空間存放區的基本資訊。如需掃描儲存空間存放區的完整操作說明 (包括使用用戶端程式庫),請參閱「檢查儲存空間與資料庫內私密資料」。
如要對Google Cloud 儲存空間存放區執行掃描作業,請組合包含下列設定物件的 JSON 物件:
InspectJobConfig:設定 Sensitive Data Protection 掃描工作,包含:StorageConfig:要掃描的儲存空間存放區。InspectConfig:掃描方式和掃描內容。您也可以使用檢查範本來定義檢查設定。Action:工作完成時要執行的任務。包括將發現項目儲存至 BigQuery 資料表,或將通知發布至 Pub/Sub。
在本範例中,您將掃描 Cloud Storage bucket,找出人名、電話號碼、美國身分證字號和電子郵件地址。接著,您會將發現項目傳送至專門儲存 Sensitive Data Protection 輸出的 BigQuery 資料表。下列 JSON 可儲存至檔案,或直接傳送至 DlpJob Sensitive Data Protection 資源的 create 方法。
JSON 輸入:
POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/dlpJobs
{
"inspectJob":{
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
},
{
"name":"PHONE_NUMBER"
},
{
"name":"US_SOCIAL_SECURITY_NUMBER"
},
{
"name":"EMAIL_ADDRESS"
}
],
"includeQuote":true
},
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET_NAME]/**"
}
}
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT_ID]",
"datasetId":"[DATASET_ID]",
"tableId":"[TABLE_ID]"
}
}
}
}
]
}
}
在 Cloud Storage bucket 位址 (gs://[BUCKET_NAME]/**) 後方指定兩個星號 (**),即可指示掃描工作以遞迴方式掃描。如果只放置一個星號 (*),工作就只會掃描指定的目錄層級,不會深入掃描。
系統會將輸出內容儲存到特定資料集和專案內的指定資料表。指定特定資料表 ID 的後續工作會將發現項目附加至相同的資料表。如果想指示 Sensitive Data Protection 在每次執行掃描時建立新資料表,也可以省略 "tableId" 鍵。
透過指定網址,在傳送至 projects.dlpJobs.create 方法的要求中傳送這個 JSON 後,您會收到下列回應:
JSON 輸出內容:
{
"name":"projects/[PROJECT_ID]/dlpJobs/[JOB_ID]",
"type":"INSPECT_JOB",
"state":"PENDING",
"inspectDetails":{
"requestedOptions":{
"snapshotInspectTemplate":{
},
"jobConfig":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET_NAME]/**"
}
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
},
{
"name":"PHONE_NUMBER"
},
{
"name":"US_SOCIAL_SECURITY_NUMBER"
},
{
"name":"EMAIL_ADDRESS"
}
],
"minLikelihood":"POSSIBLE",
"limits":{
},
"includeQuote":true
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT_ID]",
"datasetId":"[DATASET_ID]",
"tableId":"[TABLE_ID]"
}
}
}
}
]
}
}
},
"createTime":"2018-11-19T21:09:07.926Z"
}
工作完成後,會將結果儲存至指定的 BigQuery 資料表。
如要取得工作狀態,請呼叫 projects.dlpJobs.get 方法,或傳送 GET 要求至下列網址,並將 [PROJECT_ID] 替換為您的專案 ID,[JOB_ID] 則替換為 Cloud Data Loss Prevention API 回應工作建立要求時提供的工作 ID (工作 ID 前面會加上「i-」):
GET https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/dlpJobs/[JOB_ID]
針對您剛建立的工作,這項要求會傳回下列 JSON。請注意,系統會在檢查詳細資料後傳回掃描結果摘要。如果掃描尚未完成,其 "state" 鍵會指定 "RUNNING"。
JSON 輸出內容:
{
"name":"projects/[PROJECT_ID]/dlpJobs/[JOB_ID]",
"type":"INSPECT_JOB",
"state":"DONE",
"inspectDetails":{
"requestedOptions":{
"snapshotInspectTemplate":{
},
"jobConfig":{
"storageConfig":{
"cloudStorageOptions":{
"fileSet":{
"url":"gs://[BUCKET_NAME]/**"
}
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PERSON_NAME"
},
{
"name":"PHONE_NUMBER"
},
{
"name":"US_SOCIAL_SECURITY_NUMBER"
},
{
"name":"EMAIL_ADDRESS"
}
],
"minLikelihood":"POSSIBLE",
"limits":{
},
"includeQuote":true
},
"actions":[
{
"saveFindings":{
"outputConfig":{
"table":{
"projectId":"[PROJECT_ID]",
"datasetId":"[DATASET_ID]",
"tableId":"[TABLE_ID]"
}
}
}
}
]
}
},
"result":{
"processedBytes":"536734051",
"totalEstimatedBytes":"536734051",
"infoTypeStats":[
{
"infoType":{
"name":"PERSON_NAME"
},
"count":"269679"
},
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"count":"256"
},
{
"infoType":{
"name":"PHONE_NUMBER"
},
"count":"7"
}
]
}
},
"createTime":"2018-11-19T21:09:07.926Z",
"startTime":"2018-11-19T21:10:20.660Z",
"endTime":"2018-11-19T22:07:39.725Z"
}
在 BigQuery 中執行數據分析
您已使用 Sensitive Data Protection 掃描結果建立新的 BigQuery 資料表,下一步是對資料表執行分析。
在 Google Cloud 控制台左側的「大數據」下方,按一下「BigQuery」BigQuery。開啟專案和資料集,然後找出新建立的資料表。
您可以對這個資料表執行 SQL 查詢,進一步瞭解 Sensitive Data Protection 在資料 bucket 中找到的內容。舉例來說,執行下列程式碼並使用適當的實際值取代預留位置,即可按照 infoType 計算所有掃描結果數:
SELECT
info_type.name,
COUNT(*) AS iCount
FROM
`[PROJECT_ID].[DATASET_ID].[TABLE_ID]`
GROUP BY
info_type.name
此查詢會產生該值區的發現項目摘要,看起來與下列表格相似:

在數據分析中建立報表
您可以使用數據分析,根據 BigQuery 資料表建立自訂報表。在本節中,您將在數據分析中建立簡單的表格報表,其中包含儲存在 BigQuery 的 Sensitive Data Protection 發現項目。
- 開啟數據分析並啟動新報表。
- 按一下 [Create New Data Source] (建立新資料來源)。
- 在連接器清單中按一下 [BigQuery]。如有需要,請按一下「Authorize」(授權),授權數據分析連結至您的 BigQuery 專案。
- 現在選擇要搜尋的資料表,視專案的所在位置而定,按一下 [My Projects] (我的專案) 或 [Shared Projects] (共用專案),並在頁面上的清單中找到您的專案、資料集和資料表。
- 按一下 [Connect] (連結) 以執行報表。
- 按一下 [Add to Report] (加入報表)。
您現在要建立顯示每個 infoType 頻率的資料表,選取「info_type.name」欄位做為「Dimension」(維度)。產生的資料表看起來類似下列內容:

後續步驟
這只是使用數據分析和 Sensitive Data Protection 輸出內容,以圖表呈現資料的初步成果。您可以加入其他圖表元素和細查篩選器,建立資訊主頁和報表。如要進一步瞭解數據分析提供的功能,請參閱數據分析產品總覽。