將記錄匯出至 SIEM 系統

本頁說明如何將 Google Distributed Cloud (GDC) 實體隔離環境的記錄檔匯出至外部安全資訊與事件管理 (SIEM) 系統。這項整合機制可集中分析記錄,並強化安全監控。

記錄檔匯出的核心是部署SIEMOrgForwarder自訂資源。這個資源會做為設定檔,指定要接收記錄的外部 SIEM 執行個體詳細資料。管理員可以在 SIEMOrgForwarder 檔案中定義這些參數,建立簡化且安全的記錄檔匯出管道。

事前準備

如要取得管理SIEMOrgForwarder自訂資源所需的權限,請要求組織 IAM 管理員授予您相關聯的 SIEM 匯出組織角色。

視您需要的存取層級和權限而定,您可能會在專案命名空間中取得這項資源的建立者、編輯者或檢視者角色。詳情請參閱「準備 IAM 權限」。

取得必要權限後,請先完成下列步驟,再將記錄匯出至外部 SIEM 系統:

  1. 建立連線:請確認 GDC 與外部 SIEM 目的地之間存在連線。如有需要,請與基礎架構營運商 (IO) 合作,建立連至客戶網路的上行鏈路連線。

  2. 設定環境變數:設定下列環境變數,以便執行本頁面的指令:

    • kubeconfig 檔案的路徑:

      export KUBECONFIG=KUBECONFIG_PATH
      

      將 KUBECONFIG_PATH 替換為 Management API 伺服器的 kubeconfig 檔案路徑。

    • 專案命名空間:

      export PROJECT_NAMESPACE=PROJECT_NAMESPACE
      

設定記錄匯出功能

將記錄匯出至外部 SIEM 系統:

  1. 提供權杖,將記錄堆疊連線至 SIEM 系統。如要執行這項動作,您必須在專案命名空間中建立密碼,以便儲存權杖 (適用於 Splunk) 和密碼 (適用於 Elastic SIEM):

    cat <<EOF | kubectl --kubeconfig=${KUBECONFIG} apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: SECRET_NAME
      namespace: ${PROJECT_NAMESPACE}
    type: Opaque
    stringData:
      SECRET_FIELD: FIELD_VALUE
    EOF
    

    更改下列內容:

    • SECRET_NAME:密鑰名稱。
    • SECRET_FIELD:要儲存密鑰的欄位名稱。如果是 Elastic,則為使用者名稱。
    • FIELD_VALUE:FIELD_VALUE 是 Splunk 的權杖,以及 Elastic 的密碼。
    • TOKEN:您的權杖。
  2. 在專案命名空間中部署 SIEMOrgForwarder 自訂資源。您必須選擇稽核記錄或作業記錄,指定記錄類型。如要為這兩種記錄類型設定記錄匯出功能,您必須為每種類型部署 SIEMOrgForwarder 資源。

    [!WARNING] 從 1.17 版開始,系統不支援在 spec 下直接指定 splunkOutputs。您必須在 destinations 欄位下使用 splunkOutputs。

    以下範例說明如何將設定套用至 Splunk 的 SIEMOrgForwarder 自訂資源:

      cat <<EOF | kubectl --kubeconfig=${KUBECONFIG} apply -f -
      apiVersion: logging.gdc.goog/v1
      kind: SIEMOrgForwarder
      metadata:
        name: SIEM_ORG_FORWARDER
        namespace: ${PROJECT_NAMESPACE}
      spec:
        source: LOG_TYPE
        destinations:
          splunkOutputs:
            - host: SIEM_HOST
              token:
                name: SECRET_NAME
                field: SECRET_FIELD
              tls: "TLS"
              netConnectTimeout: NET_CONNECT_TIMEOUT
      EOF
    

    更改下列內容:

    • SIEM_ORG_FORWARDER:SIEMOrgForwarder 定義檔案的名稱。
    • LOG_TYPE:要匯出的記錄類型。可接受的值為 audit 和 operational。
    • SIEM_HOST:SIEM 主機的名稱。
    • SECRET_NAME:密鑰名稱。
    • SECRET_FIELD:儲存密鑰的欄位名稱。
    • TLS:傳輸層安全標準 (TLS) 的狀態。可接受的值為 "On" 和 "Off"。
    • NET_CONNECT_TIMEOUT:等待建立連線的時間上限 (以秒為單位)。舉例來說,值為 180 代表要等待 180 秒。

    以下範例說明如何將設定套用至 Elastic 的 SIEMOrgForwarder 自訂資源:

      cat <<EOF | kubectl --kubeconfig=${KUBECONFIG} apply -f -
      apiVersion: logging.gdc.goog/v1
      kind: SIEMOrgForwarder
      metadata:
        name: SIEM_ORG_FORWARDER
        namespace: ${PROJECT_NAMESPACE}
      spec:
        source: LOG_TYPE
        destinations:
          elasticOutputs:
            - host: SIEM_HOST
              port: SIEM_PORT
              http_credential:
                http_user: HTTP_USER_NAME
                http_passwd: SECRET_NAME
              tls: "TLS"
              netConnectTimeout: NET_CONNECT_TIMEOUT
              index: INDEX
      EOF
    

    更改下列內容:

    • SIEM_ORG_FORWARDER:SIEMOrgForwarder 定義檔案的名稱。
    • LOG_TYPE:要匯出的記錄類型。可接受的值為 audit 和 operational。
    • SIEM_HOST:SIEM 主機的名稱。
    • SIEM_PORT:SIEM 執行個體的通訊埠。
    • HTTP_USER_NAME:SIEM 執行個體的使用者名稱。
    • SECRET_NAME:密鑰名稱。
    • TLS:傳輸層安全標準 (TLS) 的狀態。可接受的值為 "On" 和 "Off"。
    • NET_CONNECT_TIMEOUT:等待建立連線的時間上限 (以秒為單位)。舉例來說,值為 180 代表要等待 180 秒。
    • INDEX:Elastic 執行個體的索引。如未指定,系統會使用記錄類型 (audit 或 operational)。這個欄位為選填。
  3. 驗證部署的 SIEMOrgForwarder 自訂資源狀態:

      kubectl --kubeconfig=${KUBECONFIG} describe siemorgforwarder/SIEM_ORG_FORWARDER \
          -n ${PROJECT_NAMESPACE}
    

    根據記錄類型,檢查下列狀態:

    • 稽核記錄:檢查 AuditLoggingReady 狀態。
    • 作業記錄:檢查 OperationalLoggingReady 狀態。