本頁面說明如何將 Google Distributed Cloud (GDC) 實體隔離方案的記錄檔,匯出至外部安全資訊與事件管理 (SIEM) 系統。這項整合功能可集中分析記錄,並強化安全監控。
記錄檔匯出的核心是部署 SIEMOrgForwarder 自訂資源。這項資源會做為設定檔,指定要接收記錄檔的外部 SIEM 執行個體詳細資料。管理員只要在 SIEMOrgForwarder 檔案中定義這些參數,就能建立簡化且安全的記錄檔匯出管道。
事前準備
如要取得管理 SIEMOrgForwarder 自訂資源所需的權限,請要求 IAM 機構組織管理員授予您其中一個相關聯的 SIEM Export 組織角色。
視所需的存取層級和權限而定,您可能會在專案命名空間中取得這項資源的建立者、編輯者或檢視者角色。詳情請參閱「準備 IAM 權限」。
取得必要權限後,請先完成下列步驟,再將記錄匯出至外部 SIEM 系統:
建立連線:確認 GDC 與外部 SIEM 目的地之間已建立連線。如有需要,請與基礎架構營運商 (IO) 合作,建立與客戶網路上行連線。
設定環境變數:設定下列環境變數,以便執行本頁中的指令:
kubeconfig 檔案的路徑:
export KUBECONFIG=KUBECONFIG_PATH將
KUBECONFIG_PATH替換為 Management API 伺服器的 kubeconfig 檔案路徑。專案命名空間:
export PROJECT_NAMESPACE=PROJECT_NAMESPACE
設定記錄匯出
在同一個命名空間中建立密鑰和 SIEMOrgForwarder 自訂資源。您可以使用任何專案命名空間。每個 SIEMOrgForwarder 都會從組織中的所有叢集匯出平台記錄,因此您不必在其他專案或叢集中建立這些資源。
建議您使用 platform-obs 命名空間,因為 SIEMOrgForwarder 只會匯出平台記錄。SIEM Export Org 角色也會授予命名空間中所有 Secret 的讀取權限,因此請要求 IAM 機構組織管理員,只將這些角色授予平台管理員。
將記錄匯出至外部 SIEM 系統:
提供權杖,將記錄堆疊連結至 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 的名稱。SECRET_FIELD:要儲存密鑰的欄位名稱。如果是 Elastic,請使用與自訂資源中HTTP_USER_NAME相同的值。FIELD_VALUE::FIELD_VALUE 是 Splunk 的權杖和 Elastic 的密碼。TOKEN:您的權杖。
在專案命名空間中部署
SIEMOrgForwarder自訂資源。您必須選擇稽核記錄或作業記錄,指定記錄類型。如要為這兩種記錄類型設定記錄匯出功能,您必須為每種類型部署SIEMOrgForwarder資源。以下範例說明如何將設定套用至 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 的名稱。SECRET_FIELD:儲存 Secret 的欄位名稱。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 中的SECRET_FIELD鍵。SECRET_NAME:Secret 的名稱。TLS:傳輸層安全標準 (TLS) 的狀態。可接受的值為"On"和"Off"。NET_CONNECT_TIMEOUT:等待連線建立的時間上限,以秒為單位。例如,180值表示等待 180 秒。INDEX:Elastic 執行個體的索引。如未指定,系統會使用記錄類型 (audit或operational)。這是選填欄位。
驗證已部署的
SIEMOrgForwarder自訂資源狀態:kubectl --kubeconfig=${KUBECONFIG} describe siemorgforwarder/SIEM_ORG_FORWARDER \ -n ${PROJECT_NAMESPACE}根據記錄類型,檢查下列狀態:
- 稽核記錄:查看
AuditLoggingReady狀態。 作業記錄:查看
OperationalLoggingReady狀態。
- 稽核記錄:查看