Cloud DLP 掃描發現項目的分析與報表

Cloud Data Loss Prevention (DLP) 可協助您尋找、瞭解及管理存放在基礎架構中的機密資料。使用 Cloud DLP 掃描內容並取得機密資料後,您可以選擇幾種不同的方式來處理這類資料情報。本主題說明如何運用諸如 BigQuery、Cloud SQL 和 Google 數據分析等其他 Google Cloud Platform 的強大功能來執行下列操作:

  • 在 BigQuery 中直接儲存 Cloud DLP 掃描結果。
  • 針對基礎架構中的機密資料存放位置產生報表。
  • 執行功能強大的 SQL 數據分析來瞭解機密資料的儲存位置和種類。
  • 根據一組發現項目或發現項目組合,自動向觸發條件發出快訊或採取動作。

本主題也含有完整範例,說明如何搭配其他 GCP 功能來使用 Cloud DLP 完成上述所有操作。

掃描儲存空間值區

首先針對資料執行掃描作業。下列內容為使用 Cloud DLP 掃描儲存空間存放區的基本資訊。如需掃描儲存空間存放區的完整操作說明,包含用戶端程式庫的使用方式,請參閱檢查儲存空間與資料庫以找出機密資料

如要在 GCP 儲存空間存放區上執行掃描作業,請組合含有下列設定物件的 JSON 物件:

  • InspectJobConfig:設定 DLP 掃描工作,並由下列項目組成:

    • StorageConfig:要掃描的儲存空間存放區。
    • InspectConfig:掃描方式及內容。您也可以使用檢查範本來定義檢查設定。
    • Action:完成工作時要執行的作業,包含將發現項目儲存到 BigQuery 表格,或是向 Cloud Pub/Sub 發佈通知。

在這個範例中,您會掃描 Cloud Storage 值區,檢查其中是否有個人姓名、電話號碼、美國社會安全號碼和電子郵件地址,接著將發現項目傳送至專門用來儲存 DLP 輸出內容的 BigQuery 表格。您可以將下列 JSON 內容儲存成檔案或直接傳送至 DlpJob Cloud DLP 資源的 create 方法。

JSON 輸入:

POST https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/dlpJobs?key={YOUR_API_KEY}

{
  "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 的後續工作會將發現項目附加至相同的資料表。如果您想要指示 Cloud DLP 在每次執行掃描作業時建立新的資料表,也可以不填寫 "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 要求傳送至下列網址。操作時,請使用專案 ID 來取代 [PROJECT_ID],並使用工作 ID 來取代 [JOB_ID],該 ID 會在 Cloud Data Loss Prevention API 針對工作建立要求的回應中提供 (工作 ID 前方會加上「i-」):

GET https://dlp.googleapis.com/v2/projects/[PROJECT_ID]/dlpJobs/[JOB_ID]?key={YOUR_API_KEY}

此要求會針對剛建立的工作傳回下列 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 中執行數據分析

現在您已使用 Cloud DLP 掃描結果建立新的 BigQuery 表格,下一步要在資料表上執行數據分析。

在 Google Cloud Console 左側的「大數據」底下,按一下 [BigQuery]。接著開啟專案和資料集,並找到新建立的資料表。

您可以在這個資料表上執行 SQL 查詢,以進一步瞭解 Cloud DLP 在資料值區中找到的項目。舉例來說,執行下列程式碼並使用適當的實際值取代預留位置,即可按照 infoType 計算所有掃描結果數:

SELECT
  info_type.name,
  COUNT(*) AS iCount
FROM
  `[PROJECT_ID].[DATASET_ID].[TABLE_ID]`
GROUP BY
  info_type.name

此查詢會產生該值區的發現項目摘要,看起來與下列表格相似:

Cloud DLP 發現項目的摘要範例。

在 Data Studio 中建立報表

數據分析可讓您根據 BigQuery 表格建立自訂報表。在本節中,您會根據 BigQuery 中儲存的 Cloud DLP 發現項目,在數據分析內建立簡易的資料表報表。

  1. 開啟數據分析並啟動新報表。
  2. 按一下 [Create New Data Source] (建立新資料來源)
  3. 在連接器清單中按一下 [BigQuery]。視需要點選 [Authorize] (授權),授權數據分析連接至您的 BigQuery 專案。
  4. 現在選擇要搜尋的資料表,視專案的所在位置而定,按一下 [My Projects] (我的專案) 或 [Shared Projects] (共用專案),並在頁面上的清單中找到您的專案、資料集和資料表。
  5. 按一下 [Connect] (連結) 以執行報表。
  6. 按一下 [Add to Report] (加入報表)

您現在要建立顯示每個 infoType 頻率的資料表,請選取 info_type.name 欄位做為維度。產生的資料表看起來類似下列內容:

Data Studio 中的資料表範例。

後續步驟

透過數據分析和 Cloud DLP 的輸出內容,您不僅能夠將上述內容視覺化,也可以加入其他圖表元素和精細的篩選器,以建立資訊主頁和報表。如要進一步瞭解數據分析提供的功能,請參閱數據分析產品總覽

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Data Loss Prevention