收集 Azure API 管理記錄

剖析器版本:1.0

支援的國家/地區:

本文說明如何建立 Azure 事件中樞動態饋給,將 Azure API 管理記錄擷取至 Google Security Operations。

Azure API 管理是混合式多雲管理平台,可管理所有環境中的 API。協助機構向外部、合作夥伴和內部開發人員發布 API,充分發揮資料和服務的潛力。API 管理服務提供 API 探索、閘道功能、安全政策、數據分析和開發人員參與度等工具。診斷記錄會擷取 API 閘道作業的詳細資訊,包括要求、回應和錯誤。

事前準備

請確認您已完成下列事前準備事項:

  • Google SecOps 執行個體
  • 具備下列權限的 Microsoft Azure 入口網站特殊存取權:
    • 建立 Event Hub 命名空間
    • 建立事件中樞
    • 設定 Azure API 管理的診斷設定
    • 管理存取權政策
  • 現有的 Azure API 管理服務執行個體

建立 Event Hubs 命名空間

事件中樞命名空間是管理容器,可容納一或多個事件中樞。

  1. Azure 入口網站中,搜尋 Event Hubs
  2. 點選「+ 建立」
  3. 請提供下列設定詳細資料:

    設定
    訂閱項目 選取 Azure 訂閱項目
    資源群組 選取現有資料庫或建立新資料庫
    命名空間名稱 輸入不重複的名稱 (例如 secops-apim-eventhub)
    位置 選取區域 (例如 East US)
    定價方案 標準 (建議用於正式環境)
    處理量單位 從 1 開始,啟用自動增加功能 (建議)
  4. 按一下「Review + create」

  5. 查看總覽,然後按一下「建立」

  6. 等待部署作業完成 (1 到 2 分鐘)。

建立事件中樞

  1. 部署命名空間後,請前往 Event Hub 命名空間。
  2. 在左側導覽面板中,選取「實體」下方的「事件中樞」
  3. 按一下「+ Event Hub」
  4. 請提供下列設定詳細資料:

    設定
    名稱 輸入不重複的名稱 (例如 apim-logs)
    分區數量 40 (建議使用,可發揮 Google SecOps 的最大效益)
    訊息保留時間 7 天 (建議至少)
    擷取 已停用 (Google SecOps 不需要)
  5. 點選「建立」

取得事件中樞連線字串

Google SecOps 需要連線字串,才能向事件中樞驗證。

  1. 前往 Event Hub 命名空間
  2. 在左側導覽中,選取「設定」下方的「共用存取權政策」
  3. 按一下預設政策「RootManageSharedAccessKey」RootManageSharedAccessKey
  4. 複製「連線字串 - 主要金鑰」
  5. 請妥善儲存這個連線字串。
  • 範例:

    Original: Endpoint=sb://secops-apim-eventhub.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123==;EntityPath=apim-logs
    
    Remove EntityPath: Endpoint=sb://secops-apim-eventhub.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123==
    

選項 B:事件中樞層級的連線字串

  1. 前往「Event Hub」(不是命名空間)。
  2. 在左側導覽中,選取「設定」下方的「共用存取權政策」
  3. 按一下「+ 新增」建立新政策。
  4. 請提供下列設定詳細資料:
    • 政策名稱:輸入描述性名稱 (例如 chronicle-read)
    • 權限:僅選取「收聽」 (唯讀存取權)
  5. 點選「建立」
  6. 按一下新建立的政策。
  7. 複製「連線字串 - 主要金鑰」
  8. 請妥善儲存這個連線字串。

設定 Azure API 管理服務,將串流傳輸至 Event Hub

  1. Azure 入口網站中,搜尋 API 管理服務
  2. 選取 API 管理服務執行個體。
  3. 在左側導覽面板中,選取「監控」下方的「診斷設定」
  4. 按一下「+ 新增診斷設定」
  5. 請提供下列設定詳細資料:
    • 診斷設定名稱:輸入描述性名稱 (例如 apim-to-secops)。
    • 在「記錄」部分中,選取下列類別:
      • GatewayLogs:API 閘道要求和回應記錄
      • WebSocketConnectionLogs:WebSocket 連線記錄 (如適用)
      • DeveloperPortalAuditLogs:開發人員入口網站稽核記錄 (如適用)
      • GatewayLlmLogs:生成式 AI 閘道記錄 (如適用)
      • GatewayMCPLogs:Model Context Protocol (MCP) 伺服器記錄 (如適用)
    • 在「目的地詳細資料」部分,勾選「將資料串流至事件中樞」核取方塊。
    • 「Subscription」(訂閱項目):選取包含 Event Hub 命名空間的訂閱項目。
    • Event Hubs 命名空間:選取您先前建立的命名空間 (例如 secops-apim-eventhub)。
    • 事件中樞名稱:選取您建立的事件中樞 (例如 apim-logs)。
    • 事件中樞政策名稱:選取「RootManageSharedAccessKey」或具有傳送權限的自訂政策。
  6. 按一下 [儲存]

(選用) 設定 Azure Blob 儲存體以進行檢查點作業

Google SecOps 可使用 Azure Blob Storage 儲存事件中樞檢查點,追蹤已處理的事件。如果動態饋給暫時中斷,可避免重複擷取資料。

建立檢查點的儲存空間帳戶

  1. Azure 入口網站中,搜尋「儲存體帳戶」
  2. 點選「+ 建立」
  3. 請提供下列設定詳細資料:

    設定
    訂閱項目 選取 Azure 訂閱項目
    資源群組 使用與事件中樞相同的資源群組
    儲存體帳戶名稱 輸入不重複的名稱 (例如 secopsapimcheckpoint)
    區域 與事件中樞相同的區域
    效能 標準
    備援功能 LRS (本地備援儲存體)
  4. 按一下「Review + create」

  5. 點選「建立」

建立 Blob 容器

  1. 前往您剛建立的儲存空間帳戶。
  2. 在左側導覽中,選取「資料儲存」下方的「容器」
  3. 按一下「+ 容器」
  4. 請提供下列設定詳細資料:
    • 「Name」(名稱):輸入 checkpoints
    • 公開存取層級:私人 (不允許匿名存取)
  5. 點選「建立」

取得儲存空間帳戶憑證

  1. 在儲存空間帳戶中,選取「安全性 + 網路」下方的「存取金鑰」
  2. 按一下「顯示金鑰」
  3. 複製並儲存:
    • 儲存體帳戶名稱:儲存體帳戶的名稱
    • 金鑰 1:存取金鑰值

建立 Google SecOps 資訊提供時,您會提供這些值。

(選用) 建立專屬的消費者群組

根據預設,事件中樞會提供名為 $Default 的消費者群組。如果是正式環境,建議為 Google SecOps 建立專屬的消費者群組。

  1. 前往「Event Hub」(不是命名空間)。
  2. 在左側導覽面板中,選取「實體」下方的「消費者群組」
  3. 按一下「+ 消費者群組」
  4. 請提供下列設定詳細資料:
    • 名稱:輸入描述性名稱 (例如 chronicle)
  5. 點選「建立」

在 Google SecOps 中設定動態饋給,擷取 Azure API 管理記錄

  1. 依序前往「SIEM 設定」>「動態饋給」
  2. 按一下「新增動態消息」
  3. 在下一個頁面中,按一下「設定單一動態饋給」
  4. 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如 Azure API Management Logs)。
  5. 選取「Microsoft Azure Event Hub」做為「來源類型」
  6. 選取「Azure API 管理」做為「記錄類型」
  7. 點選「下一步」
  8. 指定下列輸入參數的值:

    • 事件中樞連接字串:輸入先前擷取的事件中樞連接字串

    • 如果使用命名空間層級的連線字串:

      • 請確認已移除 EntityPath 參數
      • 您也必須在下一個欄位中提供事件中樞名稱
    • 如果使用事件中心層級的連線字串:

      • 直接使用連線字串 (包括 EntityPath)
      • 「事件中樞名稱」欄位可以留空
    • 事件中樞名稱:輸入事件中樞名稱 (例如 apim-logs)

      • 如果使用命名空間層級的連線字串,則為必要項目。
      • 如果使用事件中樞層級的連線字串,則為選用屬性
    • 消費者群組 (選用):輸入消費者群組名稱

      • 如要使用預設的 $Default 消費者群組,請留空
      • 如果您建立了專屬的消費者群組,請輸入該群組的名稱 (例如 chronicle)。
    • Blob 儲存體容器名稱 (選用):如要檢查點,請輸入容器名稱 (例如 checkpoints)

    如果提供 Blob 儲存空間做為檢查點:

    • Azure 儲存體帳戶名稱:輸入檢查點設定中的儲存體帳戶名稱
    • Azure 儲存體帳戶金鑰:輸入檢查點設定中的存取金鑰

    • 資產命名空間資產命名空間

    • 擷取標籤:要套用至這個動態饋給事件的標籤

  9. 點選「下一步」

  10. 在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)

如要進一步瞭解 Google SecOps 動態消息,請參閱 Google SecOps 動態消息說明文件

UDM 對應表

記錄欄位 UDM 對應 邏輯
Level_label additional.fields 已合併
Sku_label additional.fields 已合併
apiId_label additional.fields 已合併
apiRevision_label additional.fields 已合併
apimSubscriptionId_label additional.fields 已合併
backendMethod_label additional.fields 已合併
backendProtocol_label additional.fields 已合併
backendResponseCode_label additional.fields 已合併
backendTime_label additional.fields 已合併
cache_label additional.fields 已合併
clientProtocol_label additional.fields 已合併
durationMs_label additional.fields 已合併
eventName_label additional.fields 已合併
eventid_label additional.fields 已合併
functionInvocationId_label additional.fields 已合併
functionName_label additional.fields 已合併
hostInstanceId_label additional.fields 已合併
hostVersion_label additional.fields 已合併
isRequestSuccess_label additional.fields 已合併
operationId_label additional.fields 已合併
productId_label additional.fields 已合併
properties.message metadata.description 直接對應
time metadata.event_timestamp 已剖析為 ISO8601
has_principal metadata.event_type 已對應:trueSTATUS_UPDATE
operationName metadata.product_event_type 直接對應
DeploymentVersion metadata.product_version 直接對應
properties.method network.http.method 直接對應
properties.responseCode network.http.response_code 直接對應
properties.responseSize network.received_bytes 直接對應
properties.requestSize network.sent_bytes 直接對應
correlationId network.session_id 直接對應
properties.clientTlsCipherSuite network.tls.cipher 直接對應
properties.clientTlsVersion network.tls.version 直接對應
callerIpAddress principal.asset.ip 已合併
callerIpAddress principal.ip 已合併
location principal.location.name 直接對應
properties.url principal.url 直接對應
properties.userId principal.user.userid 直接對應
action security_result.action 已合併
resultType security_result.action 已對應:Succeededaction
category security_result.category_details 已合併
properties.category security_result.category_details 已合併
level security_result.severity 直接對應
resultType security_result.summary 直接對應
properties.appName target.application 直接對應
properties.processId target.process.pid 直接對應
roleInstance_label target.resource.attribute.labels 已合併
resourceId target.resource.product_object_id 直接對應
properties.backendUrl target.url 直接對應
不適用 metadata.event_type 常數:GENERIC_EVENT
不適用 metadata.product_name 常數:AZURE API MANAGEMENT
不適用 metadata.vendor_name 常數:AZURE_API_MANAGEMENT
不適用 network.tls.version_protocol 常數:HTTP

變更記錄

查看這個剖析器的變更記錄

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