將大量發現項目匯出至 BigQuery

本文說明如何啟動安全指揮中心發現項目的隨選大量匯出作業,將資料匯出至 BigQuery。

BigQuery 是 Google Cloud的全代管 PB 級數據分析資料倉儲,不僅具成本效益,還能近乎即時地分析大量資料。如要進一步瞭解 BigQuery,請參閱 BigQuery 說明文件

總覽

這項功能會提供特定時間點的調查結果快照。 這項功能可與持續匯出至 BigQuery 功能互補,提供完整的分析和報表。

使用大量匯出功能,您可以執行下列操作:

資料集結構

系統會將調查結果匯出至 BigQuery,做為 findings 資料表中的資料列,並依 source_idfinding_idevent_time 分類。

每個資料集都包含 findings 資料表,其中含有下列欄位:

欄位 說明
source_id

Security Command Center 指派給 發現項目來源的專屬 ID。舉例來說,Cloud 異常偵測來源的所有發現項目都具有相同的 source_id 值。

範例:1234567890

finding_id 代表調查結果的專屬 ID。在機構的來源中不得重複。為英數字元,且長度不得超過 32 個字元。
event_time

事件發生時間或發現項目更新時間。舉例來說,如果發現項目代表開放的防火牆,則 event_time 會擷取偵測器認為防火牆開放的時間。如果發現項目隨後解決,這個時間會反映該發現項目的解決時間。

範例:2019-09-26 12:48:00.985000 UTC

bulk_export_id

如果是大量匯出 (預覽版),則為 UUID。

如果是持續匯出作業,這個欄位會是空的。

finding

評估資料記錄,例如安全性、風險、健康狀態或隱私權,這些資料會匯入 Security Command Center 以供呈現、通知、分析、政策測試和強制執行。舉例來說,App Engine 應用程式中的跨網站指令碼攻擊 (XSS) 安全漏洞就是一項發現。

如要進一步瞭解巢狀欄位,請參閱 Finding 物件的 API 參考資料。

resource

與這項發現項目相關聯的 Google Cloud 資源資訊。

如要進一步瞭解巢狀欄位,請參閱 Resource 物件的 API 參考資料。

費用

將資料儲存到 BigQuery 時,系統會向您收取與這項功能相關的 BigQuery 費用。詳情請參閱 BigQuery 儲存空間定價一文。

事前準備

您必須先完成這些步驟,才能啟用這項功能。

設定權限

如要完成本指南,您必須具備下列 Identity and Access Management (IAM) 角色:

建立 BigQuery 資料集

按照「建立資料集」一文中的步驟建立 BigQuery 資料集。

啟用 Security Command Center API

如要匯出發現項目,請按照下列步驟啟用 Security Command Center API:

  1. 前往 Google Cloud 控制台的「API 程式庫」頁面。

    前往 API 程式庫

  2. 選取要啟用 Security Command Center API 的專案。

  3. 在「搜尋」欄位中輸入 Security Command Center,然後點選搜尋結果中的「Security Command Center」。

  4. 在隨即顯示的 API 頁面中,按一下「啟用」

專案已啟用 Security Command Center API。

在 VPC Service Controls 中授予範圍存取權

如果您使用 VPC Service Controls,請參閱「在 VPC Service Controls 中授予範圍存取權」,並視需要採取這些步驟。

如果使用者要為特定服務周邊建立大量匯出作業,就必須為每位使用者重複這個步驟。

為新的 BigQuery 大量匯出作業建立連入規則

如果您使用 VPC Service Controls,請參閱「為匯出至 BigQuery 的新資料建立連入規則」,並視需要採取這些步驟。

BigQuery 大量匯出作業的限制

建立 BigQuery 大量匯出作業時,請注意下列限制:

  • 單一機構一次只能進行三項大量匯出作業。
  • 如果您要求將多個非並行的大量匯出作業匯出至同一個 BigQuery 資料集,匯出作業中較新的發現項目會附加至 BigQuery findings 資料表。發現項目不會遭到覆寫。

建立 BigQuery 大量匯出作業

只能在機構層級大量匯出調查結果。

如要大量匯出發現項目至 BigQuery 執行個體,請使用 gcloud CLI 並按照下列步驟操作:

  1. 前往 Google Cloud 控制台。

    前往 Google Cloud 控制台

  2. 選取您已啟用 Security Command Center API 的專案。

  3. 按一下「啟用 Cloud Shell」

  4. 如要建立新的匯出設定,請執行下列指令:

    gcloud scc findings export-to-bigquery PARENT \
        --dataset=DATASET_NAME \
        [--location=LOCATION; default="global"] \
    

    更改下列內容:

    • PARENT:匯出範圍的相對名稱。 格式範例:organizations/ORGANIZATION_ID
    • DATASET_NAME:BigQuery 資料集的名稱。格式範例:projects/PROJECT_ID/datasets/DATASET_ID
    • LOCATION: 要建立匯出設定的Security Command Center 位置;如果已啟用資料落地功能,請使用 eusaus;否則請使用 global 值。 這個變數為選用變數。

      舉例來說,如要大量匯出所有調查結果,請執行下列指令:

      gcloud scc findings export-to-bigquery organizations/123
        --dataset=projects/123/datasets/DATASET
      

      資料所在地而言,上述範例會呼叫全域端點。

      如要為 eu 端點建立相同的批次匯出作業,請執行下列指令:

      gcloud scc findings export-to-bigquery organizations/123
        --dataset=projects/123/datasets/DATASET
        --location=locations/eu
      

這項指令會傳回長時間執行的作業物件,其中包含追蹤匯出狀態時所需的 name 字串。如要追蹤這項 BigQuery 大量匯出作業的狀態,請參閱「查看大量匯出作業的狀態」。

如要查看調查結果,請參閱「查看調查結果」。

查詢

如需可用於分析發現項目資料的各種查詢,請參閱「實用查詢」。

查看大量匯出作業的狀態

如要查看大量匯出作業的狀態,您需要long running operation name建立大量匯出作業時收到的字串。

  1. 前往 Google Cloud 控制台。

    前往 Google Cloud 控制台

  2. 選取您已啟用 Security Command Center API 的專案。

  3. 按一下「啟用 Cloud Shell」

  4. 如要驗證大量匯出設定的詳細資料,請執行下列指令:

    gcloud scc operations describe LONG_RUNNING_OPERATION_NAME \
        --organization=ORGANIZATION_ID
    

    更改下列內容:

    • LONG_RUNNING_OPERATION_NAME:建立大量匯出作業時傳回的 name 字串。
    • ORGANIZATION_ID

      舉例來說,如要查看大量匯出要求 (從機構傳回 name: "long-running-operation-name",且機構 ID 設為 123) 的狀態,請執行下列指令:

      gcloud scc operations describe long-running-operation-name \
        --organization=123
      
  • 如果匯出作業成功,回應會包含 done: true
  • 如果匯出失敗,回應會包含錯誤代碼。
  • 如果匯出作業仍在進行中,回應不會包含 done: true,也不會包含錯誤代碼。

BigQuery 大量匯出和持續匯出

如要在同一個 BigQuery 資料集同時使用大量和持續 BigQuery 匯出功能,有兩種做法:

  • 請先建立持續匯出作業,然後再以大量匯出作業回填資料。

    1. 設定持續匯出至 BigQuery 資料集。成功建立匯出作業後,您就會開始即時接收 Security Command Center 發現項目。

    2. 使用相同的目的地 BigQuery 資料集建立大量匯出作業。系統會將匯出時的所有 Security Command Center 發現項目快照,匯出至所選資料集。

    大量匯出作業需要時間執行。因此,如果持續匯出作業是在 T1 建立,大量匯出作業是在 T2 觸發,而大量匯出作業的調查結果快照是在 T3 完成,那麼 T1 和 T3 之間可能會出現重複記錄。不過,沒有發現任何缺口。

  • 請先建立大量匯出作業,然後再建立持續匯出作業。

    1. 建立大量匯出作業。系統會將匯出作業執行時的所有 Security Command Center 發現項目快照,匯出至所選的 BigQuery 資料集。

    2. 設定持續匯出至同一個目的地 BigQuery 資料集。成功建立匯出作業後,您就會開始即時接收 Security Command Center 發現項目。

    如果大量匯出作業是在 T1 建立,大量匯出作業的發現項目快照會在 T2 完成,而持續匯出作業會在 T3 觸發,則 BigQuery 資料集可能會缺少 T2 和 T3 之間的發現項目。

後續步驟