Sensitive Data Protection 可協助您尋找、瞭解及管理存放在基礎架構中的機密資料。使用 Sensitive Data Protection 掃描內容並取得機密資料後,您可以選擇幾種不同的方式來處理這類資料情報。本主題說明如何運用諸如 BigQuery、Cloud SQL 和 Looker Studio 等其他 Google Cloud 功能來執行下列操作:
- 在 BigQuery 中直接儲存 Sensitive Data Protection 掃描結果。
- 針對基礎架構中的機密資料存放位置產生報表。
- 執行功能強大的 SQL 數據分析來瞭解機密資料的儲存位置和種類。
- 根據一組發現項目或發現項目組合,自動向觸發條件發出快訊或採取動作。
本主題也含有完整範例,說明如何搭配其他 Google Cloud 功能來使用 Sensitive Data Protection 完成上述所有操作。
掃描儲存空間值區
首先針對資料執行掃描作業。下列內容為使用 Sensitive Data Protection 掃描儲存空間存放區的基本資訊。如需掃描儲存空間存放區的完整操作說明,包含用戶端程式庫的使用方式,請參閱檢查儲存空間與資料庫以找出機密資料。
如要在Google Cloud 儲存空間存放區上執行掃描作業,請組合含有下列設定物件的 JSON 物件:
InspectJobConfig
: 設定 Sensitive Data Protection 掃描工作,並由下列項目組成:StorageConfig
:要掃描的儲存空間存放區。InspectConfig
:掃描方式及內容。您也可以使用檢查範本來定義檢查設定。Action
:完成工作時要執行的作業,包含將發現項目儲存到 BigQuery 表格,或是向 Pub/Sub 發布通知。
在這個範例中,您會掃描 Cloud Storage 值區,檢查其中是否有個人姓名、電話號碼、美國社會安全號碼和電子郵件地址,接著將發現項目傳送至專門用來儲存 Sensitive Data Protection 輸出內容的 BigQuery 表格。您可以將下列 JSON 儲存至檔案,或直接傳送至 Sensitive Data Protection 資源的 create
方法。DlpJob
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 值區位址的後方指定兩個星號 (**
),將值區位址變更為 gs://[BUCKET_NAME]/**
,即指示掃描工作以遞迴方式執行掃描。如果只放置一個星號 (*
),會指示工作只掃描指定的目錄層級,而不做深入掃描。
系統會將輸出內容儲存到特定資料集和專案內的指定資料表。指定特定資料表 ID 的後續工作會將發現項目附加至相同的資料表。如果您想要指示 Sensitive Data Protection 在每次執行掃描作業時建立新的資料表,也可以不填寫 "tableId"
金鑰。
以發出要求的方式,透過指定的網址將這個 JSON 內容傳送至 projects.dlpJobs.create
方法後,即會得到下列回應:
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 在資料值區中找到的項目。舉例來說,執行下列程式碼並使用適當的實際值取代預留位置,即可按照 infoType 計算所有掃描結果數:
SELECT
info_type.name,
COUNT(*) AS iCount
FROM
`[PROJECT_ID].[DATASET_ID].[TABLE_ID]`
GROUP BY
info_type.name
此查詢會產生該值區的發現項目摘要,看起來與下列表格相似:
在 Looker Studio 中建立報表
Looker Studio 可讓您根據 BigQuery 表格建立自訂報表。在本節中,您會根據 BigQuery 中儲存的 Sensitive Data Protection 發現項目,在 Looker Studio 內建立簡易的資料表報表。
- 開啟 Looker Studio 並啟動新報表。
- 按一下 [Create New Data Source] (建立新資料來源)。
- 在連接器清單中按一下 [BigQuery]。視需要點選「授權」,授權 Looker Studio 連接至您的 BigQuery 專案。
- 現在選擇要搜尋的資料表,視專案的所在位置而定,按一下 [My Projects] (我的專案) 或 [Shared Projects] (共用專案),並在頁面上的清單中找到您的專案、資料集和資料表。
- 按一下 [Connect] (連結) 以執行報表。
- 按一下 [Add to Report] (加入報表)。
您現在要建立顯示每個 infoType 頻率的資料表,請選取 info_type.name
欄位做為維度。產生的資料表看起來類似下列內容:
後續步驟
透過 Looker Studio 和 Sensitive Data Protection 的輸出內容,您不僅能夠將上述內容視覺化,您也可以加入其他圖表元素和精細的篩選器,以建立資訊主頁和報表。如要進一步瞭解 Looker Studio 提供的功能,請參閱 Looker Studio 產品總覽。