將日誌記錄與 Google SecOps 集成

本文檔說明如何將雲端日誌記錄與 Google 安全營運整合。

用途

Logging 整合利用 Google SecOps 功能支援以下用例:

  • 取證日誌檢索: 在調查期間執行進階查詢,以在您的 Google Cloud 環境中尋找特定的安全事件。

  • 自動化威脅狩獵:使用劇本定期查詢日誌,尋找已知的入侵指標 (IoC) 或可疑模式。

事前準備

在 Google SecOps 中設定 Logging 整合之前,請完成以下先決條件步驟:

  1. 建立服務帳戶並授予其必要的角色。

  2. 選擇並設定下列其中一種驗證方法:

    • 選項 1:Workload Identity (建議做法):這個方法會透過服務帳戶模擬使用短期臨時存取權杖,因此您不需要儲存密鑰。

    • 選項 2:服務帳戶 JSON 金鑰:這個方法依賴靜態的長期密鑰檔案。只有在環境中無法使用 Workload Identity 驗證時,才使用這個方法。

建立服務帳戶

如要為整合服務建立服務帳戶,請完成下列步驟:

  1. 在 Google Cloud 控制台中,依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)

    前往「Service Accounts」(服務帳戶)

  2. 按一下「add」(新增)「Create service account」(建立服務帳戶)

  3. 提供名稱(例如,「SecOps 日誌整合」)和描述,然後按一下 建立並繼續

  4. 授予此服務帳戶對項目的存取權限步驟,新增日誌檢視器roles/logging.viewer ) 角色。

  5. 點按「Done」(完成)。此服務帳戶的電子郵件地址在設定過程中使用。

設定 Workload Identity 憑證

選擇這個方法或 JSON 金鑰方法,驗證整合服務。 建議使用 Workload Identity,因為這項功能會使用

使用服務帳戶模擬功能取得短期臨時存取權杖。

找出專屬執行個體 ID

授予 Google SecOps 執行個體模擬服務帳戶的權限,是確保存取安全的最後一個步驟。

  1. 在 Google SecOps 中,依序前往「Content Hub」>「Response Integrations」

  2. 搜尋並選取「Cloud Logging」整合服務,然後在「Workload Identity Email」中輸入服務帳戶電子郵件地址。

  3. 在「配額專案 ID」中輸入有效的專案 ID。

  4. 依序點選「儲存」>「測試」。測試預計會失敗。

  5. 按一下「測試」旁邊的 close_small 按鈕,找出開頭為 gke-init-python@...soar-python@... 的身分識別電子郵件。

    複製這個專屬電子郵件地址,並在整合設定期間貼到 Workload Identity Email 中。

在 Google Cloud中授權執行個體身分

授權擷取的專屬身分識別資訊後,即可模擬服務帳戶,讓平台代表您執行作業,不必使用靜態金鑰。

  1. 在 Google Cloud 控制台中,依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)

    前往「Service Accounts」(服務帳戶)

  2. 選取目標服務帳戶,然後依序前往「權限」> 授予存取權

  3. 將不重複的電子郵件地址貼到「New principals」(新增主體) 欄位。

  4. 指派「服務帳戶憑證建立者」角色 (roles/iam.serviceAccountTokenCreator)。

授予配額專案存取權

如要使用 Workload Identity 進行驗證,必須提供 Quota Project ID,才能追蹤 API 使用量和帳單。

  1. 在 Google Cloud 控制台中,依序前往 「IAM & Admin」(IAM 與管理) >「IAM」(身分與存取權管理),然後選取 用於配額專案 ID 的專案。

    前往「IAM」(身分與存取權管理) 頁面

  2. 找到您的服務帳戶,然後按一下 編輯主體

  3. 點選 新增另一個角色,然後選擇 服務使用消費者 (roles/serviceusage.serviceUsageConsumer)。

  4. 按一下 [儲存]

設定 JSON 金鑰

靜態的、長期存在的密鑰檔案需要手動管理。僅當工作負載身分憑證不可用時才應使用此方法。

  1. 在 Google Cloud 控制台中,依序前往「IAM 與管理」>「服務帳戶」,然後選取您的服務帳戶。

    前往「Service Accounts」(服務帳戶)

  2. 前往「金鑰」分頁,依序點按「新增金鑰 > 建立新的金鑰」。

  3. 選取「JSON」做為金鑰類型,然後按一下「建立」

  4. 複製下載檔案的全部內容,並在設定過程中將其貼上到 User's Service Account 中。

整合參數

Logging 整合需要以下參數:

參數 說明
API Root

選填。

雲端日誌 API 的基本 URL(例如,https://logging.googleapis.com)。

User's Service Account

選填。

服務帳戶金鑰 JSON 檔案的完整內容。

僅當您使用 JSON 金鑰進行身份驗證時才使用此參數。

Workload Identity Email

選填。

服務帳戶的用戶端電子郵件地址。

僅當您使用工作負載身分憑證進行驗證時才使用此參數。

Project ID

選填。

整合中要使用的項目 ID。

如未提供值,整合服務會從服務帳戶憑證擷取 ID。

Quota Project ID

選填。

用於 API 使用量和帳單的專案 ID。

使用工作負載身分憑證進行驗證時,此參數為必填項。

Organization ID

選填。

用於限定查詢範圍的組織 ID。

Verify SSL

選填。

如果選中,此整合會在連接到日誌伺服器時驗證 SSL 憑證。

(預設為啟用)。

如需在 Google SecOps 中設定整合功能的操作說明,請參閱「設定整合功能」。

如有需要,您可以在稍後階段進行變更。設定整合執行個體後,您可以在應對手冊中使用該執行個體。如要進一步瞭解如何設定及支援多個執行個體,請參閱「支援多個執行個體」。

動作

如要進一步瞭解動作,請參閱「 從工作台回覆待處理動作」和「執行手動動作」。

執行查詢

使用 執行查詢 操作在日誌記錄中執行自訂查詢。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

執行查詢操作需要以下參數:

參數 說明
Project ID 選用

整合中要使用的項目 ID。

如果您未為此參數設定值,則整合將從您的 Google Cloud 服務帳戶中擷取項目 ID。

Organization ID 選用

整合過程中要使用的組織 ID。

如果您未為此參數設定值,則整合將從您的 Google Cloud 服務帳戶中擷取項目 ID。

Query 必要

查詢日誌。

Time Frame 選用

用於檢索結果的時間段。

如果選擇 Custom,則也要配置 Start Time 參數。

可能的值如下:

  • Last Hour
  • Last 6 Hours
  • Last 24 Hours
  • Last Week
  • Last Month
  • Custom
預設值為 Last Hour
Start Time 選用

開始檢索結果的時間。

如果您為 Time Frame 參數選擇了 Custom 選項,則此參數為必填項。

若要設定此參數,請使用 ISO 8601 格式。

End Time 選用

取得結果的最終時間。

如果您不為此參數設定值,並且為 Time Frame 參數選擇 Custom 選項,則操作將使用目前時間作為結束時間。

若要設定此參數,請使用 ISO 8601 格式。

Max Results To Return 選用

傳回結果的最大數量。

預設值為 50。

動作輸出內容

執行查詢操作提供以下輸出:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件牆表格 無法使用
充實資料表 無法使用
JSON 結果 可用
輸出訊息 可用
指令碼結果 可用
JSON 結果

以下範例說明使用「執行查詢」動作時收到的 JSON 結果輸出內容:

[{
    "protoPayload": {
        "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
        "authenticationInfo": {
            "principalEmail": "system:clouddns"
        },
        "authorizationInfo": [
            {
                "granted": true,
                "permission": "io.k8s.coordination.v1.leases.update",
                "resource": "coordination.k8s.io/v1/namespaces/kube-system/leases/clouddns-lock"
            }
        ],
        "methodName": "io.k8s.coordination.v1.leases.update",
        "requestMetadata": {
            "callerIp": "192.0.2.6",
            "callerSuppliedUserAgent": "clouddns-leader-election"
        },
        "resourceName": "coordination.k8s.io/v1/namespaces/kube-system/leases/clouddns-lock",
        "serviceName": "k8s.io",
        "status": {
            "code": 0
        }
    },
    "insertId": "ID",
    "resource": {
        "type": "k8s_cluster",
        "labels": {
            "cluster_name": "CLUSTER_NAME",
            "project_id": "PROJECT_ID",
            "location": "us-central1"
        }
    },
    "timestamp": "2024-09-18T09:46:38.647428Z",
    "labels": {
        "authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"system:clouddns\" of ClusterRole \"system:clouddns-role\" to User \"system:clouddns\"",
        "authorization.k8s.io/decision": "allow"
    },
    "logName": "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity",
    "operation": {
        "id": "ID",
        "producer": "k8s.io",
        "first": true,
        "last": true
    },
    "receiveTimestamp": "2024-09-18T09:46:39.063264993Z"
}]
輸出訊息

「執行查詢」動作會提供下列輸出訊息:

輸出訊息 訊息說明

Successfully executed query "QUERY" in Cloud Logging.

No results were found for the provided query.

動作成功。
Error executing action "Execute Query". Reason: ERROR_REASON

動作失敗。

檢查伺服器的連線、 輸入參數或憑證。

指令碼結果

下表說明使用「執行查詢」動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

Ping

使用「Ping」動作測試與 Logging 的連線。

這項操作不會在 Google SecOps 實體上執行。

動作輸入內容

動作輸出內容

「Ping」動作會提供下列輸出內容:

動作輸出類型 可用性
案件總覽附件 無法使用
案件總覽連結 無法使用
案件牆表格 無法使用
充實資料表 無法使用
JSON 結果 無法使用
輸出訊息 可用
指令碼結果 可用
輸出訊息

「Ping」動作會提供下列輸出訊息:

輸出訊息 訊息說明
Successfully connected to the Cloud Logging server with the provided connection parameters! 動作成功。
Failed to connect to the Cloud Logging server! Error is ERROR_REASON

動作失敗。

檢查伺服器的連線、 輸入參數或憑證。

指令碼結果

下表說明使用 Ping 動作時,指令碼結果輸出的值:

指令碼結果名稱
is_success TrueFalse

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。