收集 Azure API 管理日志

解析器版本:1.0

支持的平台:

本文档介绍了如何创建 Azure 事件中心 Feed,以将 Azure API 管理日志注入到 Google Security Operations。

Azure API 管理是一个混合式多云管理平台,可用于管理所有环境中的 API。它可帮助组织向外部、合作伙伴和内部开发者发布 API,以充分发挥其数据和服务的潜力。API 管理提供用于 API 发现、网关功能、安全政策、分析和开发者互动的工具。诊断日志会捕获有关 API 网关操作的详细信息,包括请求、响应和错误。

准备工作

请确保您满足以下前提条件:

  • Google SecOps 实例
  • Microsoft Azure 门户的特权访问权限,包括:
    • 创建事件中心命名空间
    • 创建事件中心
    • 为 Azure API 管理配置诊断设置
    • 管理访问权限政策
  • 现有的 Azure API 管理服务实例

创建事件中心命名空间

事件中心命名空间是一个管理容器,用于容纳一个或多个事件中心。

  1. Azure 门户中,搜索事件中心
  2. 点击 + 创建
  3. 提供以下配置详细信息:

    设置
    订阅 选择您的 Azure 订阅
    资源组 选择现有组或创建新组
    命名空间名称 输入唯一名称(例如 secops-apim-eventhub
    位置 选择区域(例如 East US
    价格层级 标准(建议用于生产环境)
    吞吐量单位 从 1 开始,启用自动充气功能(推荐)
  4. 点击 Review + create(检查 + 创建)。

  5. 查看概览,然后点击创建

  6. 等待部署完成(1-2 分钟)。

创建事件中心

  1. 部署命名空间后,前往事件中心命名空间。
  2. 在左侧导航栏中,选择实体下的事件中心
  3. 点击 + 活动中心
  4. 提供以下配置详细信息:

    设置
    名称 输入唯一名称(例如 apim-logs
    分区数 40(建议采用此值,以便实现最佳的 Google SecOps 伸缩)
    消息保留 7 天(建议的最低限度)
    拍摄 已停用(Google SecOps 不需要)
  5. 点击创建

获取事件中心连接字符串

Google SecOps 需要连接字符串才能向事件中心进行身份验证。

  1. 前往事件中心命名空间
  2. 在左侧导航栏中,选择设置下的共享访问权限政策
  3. 点击默认政策 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. 前往事件中心(而非命名空间)。
  2. 在左侧导航栏中,选择设置下的共享访问权限政策
  3. 点击 + 添加以创建新政策。
  4. 提供以下配置详细信息:
    • 政策名称:输入一个描述性名称(例如 chronicle-read
    • 权限:仅选择收听(只读权限)
  5. 点击创建
  6. 点击新创建的政策。
  7. 复制连接字符串 - 主密钥
  8. 请妥善保存此连接字符串。

将 Azure API 管理配置为流式传输到事件中心

  1. Azure 门户中,搜索 API 管理服务
  2. 选择您的 API 管理服务实例。
  3. 在左侧导航栏中,选择监控下的诊断设置
  4. 点击 + 添加诊断设置
  5. 提供以下配置详细信息:
    • 诊断设置名称:输入一个描述性名称(例如 apim-to-secops)。
    • 日志部分,选择以下类别:
      • GatewayLogs:API 网关请求和响应日志
      • WebSocketConnectionLogs:WebSocket 连接日志(如果适用)
      • DeveloperPortalAuditLogs:开发者门户审核日志(如果适用)
      • GatewayLlmLogs:生成式 AI 网关日志(如果适用)
      • GatewayMCPLogs:Model Context Protocol (MCP) 服务器日志(如果适用)
    • 目标详细信息部分中,选中流式传输到事件中心复选框。
    • 订阅:选择包含 Event Hub 命名空间的订阅。
    • 事件中心命名空间:选择您之前创建的命名空间(例如 secops-apim-eventhub)。
    • 事件中心名称:选择您创建的事件中心(例如 apim-logs)。
    • 事件中心政策名称:选择 RootManageSharedAccessKey 或具有发送权限的自定义政策。
  6. 点击保存

(可选)配置 Azure Blob Storage 以进行检查点设置

Google SecOps 可以使用 Azure Blob Storage 来存储事件中心检查点,这些检查点用于跟踪已处理的事件。这样可以防止在 Feed 暂时中断时重复提取数据。

创建用于检查点设置的存储账号

  1. Azure 门户中,搜索存储账号
  2. 点击 + 创建
  3. 提供以下配置详细信息:

    设置
    订阅 选择您的 Azure 订阅
    资源组 使用与事件中心相同的资源组
    存储账号名称 输入唯一名称(例如 secopsapimcheckpoint
    区域 与事件中心位于同一区域
    性能 标准
    冗余 LRS(本地冗余存储)
  4. 点击 Review + create(检查 + 创建)。

  5. 点击创建

创建 Blob 容器

  1. 前往您刚刚创建的存储账号。
  2. 在左侧导航栏中,选择数据存储区下的容器
  3. 点击 + 容器
  4. 提供以下配置详细信息:
    • 名称:输入 checkpoints
    • 公开访问权限级别:私密(不允许匿名访问)
  5. 点击创建

获取存储账号凭据

  1. 在存储账号中,选择安全性 + 网络下的访问密钥
  2. 点击显示密钥
  3. 复制并保存:
    • 存储账号名称:存储账号的名称
    • 密钥 1:访问密钥值

您将在创建 Google SecOps Feed 时提供这些值。

(可选)创建专用消费者群组

默认情况下,事件中心提供名为 $Default 的消费者群组。对于生产环境,建议为 Google SecOps 创建专用消费者群组。

  1. 前往事件中心(而非命名空间)。
  2. 在左侧导航栏中,选择实体下的消费群体
  3. 点击 + 消费群体
  4. 提供以下配置详细信息:
    • 名称:输入一个描述性名称(例如 chronicle
  5. 点击创建

在 Google SecOps 中配置 Feed 以注入 Azure API 管理日志

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 在下一页上,点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称(例如 Azure API Management Logs)。
  5. 选择 Microsoft Azure Event Hub 作为来源类型
  6. 选择 Azure API 管理作为日志类型
  7. 点击下一步
  8. 为以下输入参数指定值:

    • Event Hub 连接字符串:输入您之前捕获的 Event Hub 连接字符串

    • 如果使用命名空间级连接字符串

      • 确保您已移除 EntityPath 参数
      • 您还必须在下一个字段中提供事件中心名称
    • 如果使用 Event Hub 级连接字符串

      • 按原样使用连接字符串(包括 EntityPath
      • 事件中心名称字段可以留空
    • Event Hub 名称:输入 Event Hub 名称(例如 apim-logs

      • 如果使用命名空间级连接字符串,则为必需属性。
      • 如果使用事件中心级连接字符串,则为可选。
    • 消费群体(可选):输入消费群体名称

      • 留空可使用默认的 $Default 使用方群组
      • 如果您创建了专用消费群组,请输入其名称(例如 chronicle
    • Blob Storage 容器名称(可选):对于检查点,请输入容器名称(例如 checkpoints

    如果提供 Blob 存储空间用于检查点设置

    • Azure 存储账号名称:输入来自检查点配置的存储账号名称
    • Azure 存储账号密钥:输入来自检查点配置的访问密钥

    • 资产命名空间资产命名空间

    • 注入标签:要应用于此 Feed 中事件的标签

  9. 点击下一步

  10. 最终确定界面中查看新的 Feed 配置,然后点击提交

如需详细了解 Google SecOps Feed,请参阅 Google SecOps Feed 文档

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 专业人士的解答。