使用 Feed 界面

支持的平台:

本文档介绍了如何在 Feed 管理界面中创建、排查和管理 Feed,包括有关修改、启用和删除 Feed 的说明。

准备工作

在 Google Security Operations 中设置每个数据 Feed 之前,需要满足特定的前提条件。如需了解 Feed 的要求,请参阅按来源类型划分的配置,然后搜索您的特定数据源。

支持的压缩格式和文件大小

Feed 提取支持的压缩格式包括 .gz、.tar.gz、.tar 和 solr.gz。 下表列出了 Google SecOps Feed 转换支持的不同文件大小:

操作 输入类型 推荐大小 预期时长 最大大小
数据建模 CSV < 5 GB < 7 分钟 10 GB
数据建模 CSV < 5 GB 约 30 分钟 10 GB
数据建模 CSV 待定 待定 2 GB
数据建模 XML / JSON < 1 GB < 10 分钟 2 GB
数据建模 XLS / XLSX < 50 MB 约 1 分钟 50 MB
合并文件 不限 < 1 GB 因文件数量而异 100 GB
解压缩文件 非 ZIP < 5 GB 因文件数量而异 10 GB(未压缩)
解压缩文件 ZIP - 因文件数量而异 4 GB(未压缩)

日志行限制和分隔符

在提取基于文本的日志(JSON、CSV 或 Syslog)时,请确保您的数据符合以下特定提取限制:

  • 行大小上限:单行日志不得超过 4MB。如果单行内容超出此限制,Feed 将失败并显示错误 MaxLogLineSize4MBExceeded
  • 支持的分隔符:支持换行符 (\n) 和回车符 + 换行符 (\r\n)。

更改关联的 Cloud 项目对数据 Feed 的影响

如果您要更新与 Google SecOps 实例关联的 Google Cloud 项目,则所有使用以下连接器注入数据的 Feed 都会停止,并且必须手动重新创建:

  • AMAZON_S3_V2
  • AMAZON_SQS_V2
  • GOOGLE_CLOUD_STORAGE_V2
  • AZURE_BLOBSTORE_V2
  • GOOGLE_CLOUD_STORAGE_EVENT_DRIVEN

对于未使用这些连接器的所有其他 Feed,数据提取将继续进行,不会受到任何中断。客户无需采取任何行动。

迁移期间会发生什么

对于受影响的 Feed,您会发现以下变化:

  • Feed 状态:迁移之前创建的 Feed 将立即停止提取实时数据,并变为只读。
  • 现有数据:迁移之前已转移到 Google SecOps 的所有数据都会自动注入,不会丢失任何数据。
  • 错误消息:如果您尝试修改或删除旧 Feed,系统会显示一条消息,指出:This feed is read-only because this SecOps has now moved to a new Google Cloud Project (BYOP). To continue ingesting data from this source, please create a new feed

客户需要采取的行动

为确保持续数据注入,您必须在新环境中手动重新创建 Feed。请按照以下步骤操作,最大限度地减少中断:

  1. 重新创建 Feed:您必须创建新 Feed 来替换迁移前存在的 Feed。
  2. 配置最长文件存在时间:设置新 Feed 时,请将最长文件存在时间设置为在启动 BYOP 更新前大约 2 小时。此时间缓冲可确保顺利完成过渡。
  3. 管理重复数据:根据您选择的最长文件保留时间,您可能会遇到一些重复的数据转移。如需详细了解 Google SecOps 如何过滤这些冗余日志,请参阅防止重复数据删除

  4. 记录并删除现有 Feed(迁移前):在开始 BYOP 迁移之前,请记录使用受影响的连接器(例如 Amazon S3 V2)的所有现有 Feed 的配置设置,然后删除这些 Feed。如果您不删除迁移之前创建的 Feed,这些 Feed 将变得无法管理,并以孤立设置的形式保留在 Google SecOps 网络界面中。

设置 Feed 的方式

Google SecOps 客户可以通过两种方式在平台中设置 Feed。使用最适合您环境的方法:

  • SIEM 设置 > Feed(标准)
  • 内容中心 > 内容包(高级版)

配置 Feed

本部分介绍了如何大致配置 Feed,首先从标准程序化流程开始。Feed 页面上列出的数据 Feed 包含 Google 为您的账号配置的所有 Feed,包括您配置的 Feed。

添加 Feed

如需向您的 Google SecOps 账号添加 Feed,请完成以下步骤:

  1. 在 Google SecOps 菜单中,依次选择 SIEM 设置 > Feed

  2. 点击添加新 Feed

  3. 在下一页上,点击配置单个 Feed。注意:对于使用 Google SecOps SIEM 独立平台的客户,此步骤不适用。

  4. 添加 Feed 名称。

  5. 来源类型列表中,选择将数据导入 Google SecOps 的来源类型。 您可以从以下 Feed 源类型中进行选择:

    • Amazon Data Firehose
    • Amazon S3(已弃用)
    • Amazon S3 (V2)
    • Amazon SQS(已弃用)
    • Amazon SQS (V2)
    • Azure Blob Storage(已弃用)
    • Azure Blob Storage (V2)
    • 自定义 API
    • Google Cloud Pub/Sub
    • Cloud Storage(已弃用)
    • Cloud Storage (V2)
    • Cloud Storage 事件驱动型
    • 第三方 API
    • 网络钩子

    重要提示:

    • 使用 Amazon S3(已弃用)、Amazon SQS(已弃用)、Azure Blob Storage(已弃用)和 Google Cloud Cloud Storage(已弃用)Feed 时,请确保您拥有有效的目录路径。
    • 使用 Amazon SQS(已弃用)或 Amazon SQS (V2) 时,请明确授予 Google SecOps 从 Amazon SQS 队列中删除消息的权限。
    • 使用 Amazon SQS(已弃用)Feed 时,请确保只有一个 Feed 从队列中提取消息。被其他应用或 Feed 读取的消息不会被提取到当前 Feed 中。
    • 使用 Amazon SQS(已弃用)作为 Feed 源类型仅支持 Amazon S3 存储分区中的日志。
  6. 日志类型列表中,选择与要注入的日志对应的日志类型。可供搜索的日志会因您之前选择的来源类型而异。

    如果您选择 Cloud Storage 作为数据源类型,请使用获取服务账号选项来获取唯一的服务账号。请参阅 Google Cloud Storage Feed 设置示例

  7. 点击下一步

  8. 输入参数标签页中指定所需的参数。此处显示的选项因您在设置属性标签页上选择的来源和日志类型而异。将鼠标指针悬停在每个字段的问号图标上,即可获取有关您需要提供的信息的更多信息。

  9. 可选:您可以在设置属性标签页中指定命名空间。如需详细了解命名空间,请参阅使用资源命名空间

  10. 点击下一步

  11. 最终确定标签页上查看新的 Feed 配置。

  12. 点击提交。Google SecOps 完成对新 Feed 的验证检查。如果 Feed 通过检查,系统会为该 Feed 生成一个名称,并将其提交给 Google SecOps,然后 Google SecOps 会开始尝试提取数据。

    完成 Feed 请求

为产品系列配置多个 Feed(仅限 Google SecOps 客户)

您可以根据日志类型,为每个产品系列配置多个 Feed。

  • 基准日志类型:标记为推荐。建议将这些日志类型用于核心平台功能。
  • 补充日志类型:标记为可选。这些日志类型可提供更多背景信息。

为简化设置,该平台针对每种配置提供了具体的设置说明和预定义参数。 例如,对于 CrowdStrike Falcon,您可以在推荐可选日志类型下创建多个唯一 Feed,以确保有足够全面的数据覆盖范围。

为 CrowdStrike EDR 配置 Feed

请按照以下步骤为 CrowdStrike EDR 配置日志 Feed。

  1. 设置 > Feed 中,点击添加新 Feed
    1. 点击 CrowdStrike Falcon 产品:
    2. 选择 CrowdStrike EDR 日志类型。
  2. 或者,依次前往内容中心 > 内容包,然后点击 CrowdStrike Falcon 产品:
    1. 点击开始使用
    2. 选择 CrowdStrike EDR 日志类型。
  3. 为以下字段指定值:

    字段 说明
    Source Type Amazon SQS
    Region 与 URI 关联的 AWS S3 区域。
    Queue Name 要从中读取数据的 SQS 队列名称。
    Account Number SQS 账号。
    Source Deletion Option 指示是否在转移后删除文件和目录。
    Queue Access Key ID 相应账号的 20 字符字母数字访问密钥,例如 AKIAOSFOODNN7EXAMPLE
    Queue Secret Access Key 相应账号的 40 个字符的字母数字私密访问密钥,例如 wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

  4. 可选:配置以下参数:

    • Feed 名称:预填充的 Feed 唯一名称。
    • 素材资源命名空间:与 Feed 关联的命名空间。
    • 提取标签:应用于此 Feed 中事件的标签。
  5. 点击创建 Feed

您可以重复此流程,为同一日志类型创建其他 Feed。您还可以直接在此页面上为其他可用的日志类型配置 Feed。完成后,前往 Feed 管理页面,查看所有已配置的日志类型的详细摘要。

IP 许可名单

启用许可名单,并为从第三方 API 注入数据的所有日志类型添加 Google IP 范围

删除源文件

借助源删除选项,您可以在成功转移后从存储空间中删除 Feed 源对象(文件和文件夹)。此选项仅适用于部分 Feed 源类型,包括 Cloud Storage。这些 Feed 源类型在其添加新 Feed修改 Feed 工作流中包含来源删除选项字段。

来源删除选项

  • 对于受支持的 Feed 源类型(包括 Cloud Storage),SOURCE DELETION OPTION 字段提供以下选项:

    • 永不删除文件
    • 删除已转移的文件和空目录
    • 删除已传输的文件
  • Microsoft Azure Blob Storage (AZURE_BLOBSTORE) 不支持删除源文件。对于源删除选项字段,请仅选择永不删除文件选项。

  • 对于以下 Feed 来源 ("feedSourceType"):GOOGLE_CLOUD_STORAGE_V2GOOGLE_CLOUD_STORAGE_EVENT_DRIVENAMAZON_S3_V2AMAZON_SQS_V2AZURE_BLOBSTORE_V2SOURCE DELETION OPTION 字段提供以下两个选项:

    • 永不:转移后永不删除任何文件。
    • ON_SUCCESS:在转移后删除所有文件和空目录。

特定来源的设置和权限

不同的来源类型需要特定的身份验证和网络配置才能与 Google SecOps 通信。本部分介绍了如何配置权限和设置服务账号。下面概述的设置重点介绍了 Cloud Storage 注入(基于拉取)、多云注入(跨云拉取)和基于推送的注入(API 或实时)。

Google Cloud Storage Feed 设置示例

  1. 在 Google SecOps 菜单中,选择设置,然后点击 Feed
  2. 点击添加新 Feed
  3. 在下一页上,点击配置单个 Feed。如果您使用的是 Google SecOps SIEM 独立平台,则无需执行此步骤。
  4. 选择 Cloud Storage v2 作为来源类型
  5. 选择日志类型。例如,如需为 Google Kubernetes Engine 审核日志创建 Feed,请选择 Google Kubernetes Engine 审核日志作为日志类型
  6. 点击获取服务账号。Google SecOps 提供了一个唯一的服务账号,Google SecOps 使用该账号来注入数据。或者,您也可以使用 API 以编程方式获取此服务账号。请参阅获取服务账号
  7. 可选:配置服务账号。如需了解详情,请参阅向 Google SecOps 服务账号授予访问权限
  8. 点击下一步
  9. 根据您创建的 Cloud Storage 配置,为以下字段指定值:

    • 存储桶 URI

    • 来源删除选项

    如需详细了解如何设置 Cloud Storage 存储分区,请参阅创建存储分区

  10. 点击下一步,然后点击提交

向 Google SecOps 服务账号授予访问权限

  1. 在 Google Cloud 控制台中,转到 Cloud Storage 存储桶页面。

    进入“存储桶”

  2. 向服务账号授予对相关 Cloud Storage 对象的访问权限。

    • 如需向特定文件授予读取权限,请完成以下步骤:

      1. 选择相应文件,然后点击修改权限
      2. 点击添加主账号
      3. 新的主账号字段中,输入 Google SecOps 服务账号的名称。
      4. 为 Google SecOps 服务账号分配包含读取权限的角色。例如,Storage Object Viewer (roles/storage.objectViewer)。只有在未启用统一存储桶级访问权限的情况下,才能执行此操作。
      5. 点击保存
    • 如需向多个文件授予读取权限,请按如下方式授予存储桶级访问权限:

      • 对于 "feedSourceType": "GOOGLE_CLOUD_STORAGE"

        1. 将 Google SecOps 服务账号添加为主账号,并向其授予 IAM Storage Object Viewer (roles/storage.objectViewer) 角色。
        2. 如果您将 Feed 配置为删除源文件,则必须将 Google SecOps 服务账号添加为存储桶的主账号,并为其授予 IAM Storage Object Admin (roles/storage.objectAdmin) 角色。
      • 对于 "feedSourceType": "GOOGLE_CLOUD_STORAGE_V2",请授予以下角色:

        1. 授予此角色:

          • Storage Object Viewer (roles/storage.objectViewer)(如果要转移到其他 Cloud Storage 存储桶)。
        2. 根据您为源删除选项选择的内容,授予以下角色之一。如果您选择成功时,请授予 Storage Legacy Bucket Writer 角色。如果您选择从不,请授予 Storage Legacy Bucket Reader 角色:

          • Storage Legacy Bucket Writer (roles/storage.legacyBucketWriter)(如果需要对象删除权限)。
          • Storage Legacy Bucket Reader (roles/storage.legacyBucketReader)(如果不需要对象删除权限)。
      • 对于 "feedSourceType": "GOOGLE_CLOUD_STORAGE_EVENT_DRIVEN"

        1. 授予以下任一角色:

          • Storage Object Viewer (roles/storage.objectViewer)(如果要转移到其他 Cloud Storage 存储桶)。
          • Storage Object Creator (roles/storage.objectCreator)(如果要转移到文件系统)。
        2. 授予以下任一角色:

          • Storage Legacy Bucket Writer (roles/storage.legacyBucketWriter)(如果需要对象删除权限)。
          • Storage Legacy Bucket Reader (roles/storage.legacyBucketReader)(如果不需要对象删除权限)。

为 Amazon S3 和 Azure Storage 启用 STS 访问权限

以下 Google Cloud Storage Feed 使用 STS 将数据从 Amazon S3 和 Azure Storage Blob 存储区转移到 Google SecOps:

  • Amazon S3 (V2)
  • Amazon SQS (V2)
  • Azure Blob Storage (V2)

STS 会通过一组已定义的 STS IP 地址范围向 Amazon S3 和 Azure 存储服务发送数据转移请求。这些 STS IP 地址范围发布在以下 JSON 文件中: IP 范围

如需使用这些 STS Feed 源类型,您可能需要调整 IP 访问限制,以使 STS 能够访问您的 Amazon S3 和 Azure 存储服务:

  1. 从 JSON 文件中拉取最新的 IP 范围。

    我们建议您至少每周从该 JSON 文件中读取一次数据,以确保您的安全配置保持最新。向文件添加新范围后,系统至少会等待 7 天,之后才会使用该范围处理来自 STS 的请求。

    如需查看从 JSON 文件提取 IP 范围的示例 Python 脚本,请参阅默认网域的 IP 地址

  2. 将当前 IP 范围 creationTime 与从上一个 JSON 文件读取的 IP 范围 creationTime 进行比较。如果这些 IP 地址不同,请更新 Amazon S3 和 Azure Storage Blob 存储区中的 IP 访问权限限制。

    • 对于 Amazon S3

      如需更新 Amazon S3 Blobstore 中的 IP 访问限制,请执行以下操作:

      如果您的 AWS 项目通过 IP 来限制对存储空间的访问权限,您必须将 STS 工作器使用的 IP 范围添加到允许的 IP 列表。

      如需将这些范围添加为允许的 IP,请在 bucket policy 中使用 Condition 字段,详情请参阅 AWS S3 文档:基于特定 IP 地址管理访问权限

    • 对于 Azure Storage

      如需更新 Azure Storage Blobstore 中的 IP 访问限制,请执行以下操作:

      如果您使用 Azure Storage 防火墙限制对 Azure 资源的访问,则必须将 STS 工作器使用的 IP 范围添加到允许的 IP 列表。

      如需将这些范围添加为允许的 IP,请按照以下说明操作:配置 Azure 存储防火墙和虚拟网络

设置 Pub/Sub 推送 Feed

如需设置 Pub/Sub 推送 Feed,请执行以下操作:

  1. 创建 Pub/Sub 推送 Feed。
  2. 在 Pub/Sub 订阅中指定端点网址。

创建 Pub/Sub 推送 Feed

  1. 在 Google SecOps 菜单中,选择设置,然后点击 Feed
  2. 点击新增
  3. Feed 名称字段中,输入 Feed 的名称。
  4. 来源类型列表中,选择 Google Cloud Pub/Sub 推送
  5. 选择日志类型。例如,如需为开放网络安全架构框架创建 Feed,请选择开放网络安全架构框架 (OCSF) 作为日志类型
  6. 点击下一步
  7. 可选:为以下输入参数指定值:
    • 拆分定界符:用于分隔日志行的定界符。您只能使用 \n
    • 资源命名空间资源命名空间
    • 注入标签:要应用于此 Feed 中事件的标签。
  8. 点击下一步
  9. 最终确定界面中查看新的 Feed 配置,然后点击提交
  10. 详情标签页中,从端点信息字段复制 Feed 端点网址。 您需要此端点网址才能在 Pub/Sub 中创建推送订阅。
  11. 可选:点击已启用 Feed 切换开关以停用 Feed。该 Feed 默认处于启用状态。
  12. 点击完成

指定端点网址

创建 Pub/Sub 推送 Feed 后,请按以下方式指定端点网址:

  1. 在 Pub/Sub 中,创建推送订阅。如需详细了解如何创建推送订阅,请参阅创建推送订阅
  2. 指定端点网址,该网址可在 Google Cloud Pub/Sub 推送 Feed 中找到。
  3. 选择启用身份验证,然后选择一个服务账号。
  4. 同时停用推送载荷解封推送载荷解封写入消息元数据选项。

设置 Amazon Data Firehose Feed

如需设置 Amazon Data Firehose Feed,请执行以下操作:

  1. 创建 Amazon Data Firehose Feed,然后复制端点网址和密钥。
  2. 创建 API 密钥,以便向 Google SecOps 进行身份验证。您还可以重复使用现有的 API 密钥向 Google SecOps 进行身份验证。
  3. 在 Amazon Data Firehose 中指定端点网址

创建 Amazon Data Firehose Feed

  1. 在 Google SecOps 菜单中,选择设置,然后点击 Feed
  2. 点击新增
  3. Feed 名称字段中,输入 Feed 的名称。
  4. 来源类型列表中,选择 Amazon Data Firehose
  5. 选择日志类型。例如,如需为开放网络安全架构框架创建 Feed,请选择开放网络安全架构框架 (OCSF) 作为日志类型
  6. 点击下一步
  7. 可选:为以下输入参数指定值:
    • 拆分定界符:用于分隔日志行的定界符。您只能使用 \n
    • 资源命名空间资源命名空间
    • 注入标签:要应用于此 Feed 中事件的标签。
  8. 点击下一步
  9. 最终确定界面中查看新的 Feed 配置,然后点击提交
  10. 点击生成密钥,生成用于对此 Feed 进行身份验证的密钥。
  11. 复制并存储此密钥,因为您无法再次查看此密钥。您可以再次生成新的密钥,但重新生成密钥会使之前的密钥失效。
  12. 详细信息标签页中,从端点信息字段复制 Feed 端点网址。 在 Amazon Data Firehose 中为交付流指定目标设置时,您需要此端点网址。
  13. 可选:点击已启用 Feed 切换开关以停用 Feed。默认情况下,Feed 处于启用状态。
  14. 点击完成

为 Amazon Data Firehose Feed 创建 API 密钥

如需为 Amazon Data Firehose Feed 创建 API 密钥,请执行以下操作:

  1. 前往 Google Cloud 控制台中的凭据页面。
  2. 点击创建凭据,然后选择 API 密钥
  3. 将 API 密钥访问权限限制为 Chronicle API。

指定端点网址

在 Amazon Data Firehose 中,指定 HTTPS 端点和访问密钥,如下所示:

  1. 将 API 密钥附加到 Feed 端点网址,并指定此网址作为 HTTP 端点网址,格式如下:

      ENDPOINT_URL?key=API_KEY
    

    替换以下内容:

    • ENDPOINT_URL:Feed 端点网址。
    • API_KEY:用于向 Google SecOps 进行身份验证的 API 密钥。
  2. 对于访问密钥,请指定您在创建 Amazon Data Firehose Feed 时获得的密钥。

设置 HTTPS Webhook Feed

准备工作:

如需设置 HTTPS 网络钩子 Feed,请执行以下操作:

  1. 创建 HTTPS 网络钩子 Feed,然后复制端点网址和密钥。
  2. 创建指定了端点网址的 API 密钥。您还可以重复使用现有的 API 密钥向 Google SecOps 进行身份验证。
  3. 在应用中指定端点网址

在单个 webhook 请求中发送多个事件

以下代码示例展示了如何设置单个请求正文的格式,在 curl --location 项后包含多个以换行符分隔的 JSON 对象:

--header 'Content-Type: application/json' \
--header 'X-goog-api-key: API_KEY' \
--header 'X-Webhook-Access-Key: SECRET' \
--data '{"principal": {"asset_id": "asset 123"}, "metadata": {"event_type": "GENERIC_EVENT", "product_name": "Product Acme"}}
{"principal": {"asset_id": "asset 123"}, "metadata": {"event_type": "GENERIC_EVENT", "product_name": "Product Acme"}}'

创建 HTTPS 网络钩子 Feed

  1. 在 Google SecOps 菜单中,选择设置,然后点击 Feed
  2. 点击新增
  3. Feed 名称字段中,输入 Feed 的名称。
  4. 来源类型列表中,选择 Webhook
  5. 选择日志类型。例如,如需为开放网络安全架构框架创建 Feed,请选择开放网络安全架构框架 (OCSF) 作为日志类型
  6. 点击下一步
  7. 可选:为以下输入参数指定值:
    • 拆分定界符:用于分隔日志行的定界符。您只能使用 \n
    • 资源命名空间资源命名空间
    • 注入标签:要应用于此 Feed 中事件的标签。
  8. 点击下一步
  9. 最终确定界面中查看新的 Feed 配置,然后点击提交
  10. 点击生成密钥,生成用于对此 Feed 进行身份验证的密钥。
  11. 复制并存储此密钥,因为您无法再次查看此密钥。您可以再次生成新的密钥,但重新生成密钥会使之前的密钥失效。
  12. 详情标签页中,从端点信息字段复制 Feed 端点网址。 您需要在客户端应用中指定此端点网址。
  13. 可选:点击已启用 Feed 切换开关以停用 Feed。该 Feed 默认处于启用状态。
  14. 点击完成

为 webhook Feed 创建 API 密钥

  1. 前往 Google Cloud 控制台中的凭据页面。
  2. 点击创建凭据,然后选择 API 密钥
  3. 将 API 密钥访问权限限制为 Chronicle API。

指定端点网址

  1. 在客户端应用中,指定 HTTPS 端点(可在 Webhook Feed 中找到)。
  2. 通过在自定义标头中指定 API 密钥和密钥来启用身份验证,格式如下:

    X-goog-api-key = API_KEY

    X-Webhook-Access-Key = SECRET

    我们建议您将 API 密钥指定为标头,而不是在网址中指定。如果您的 Webhook 客户端不支持自定义标头,您可以使用以下格式的查询参数指定 API 密钥和密钥:

      ENDPOINT_URL?key=API_KEY&secret=SECRET
    

    替换以下内容:

    • ENDPOINT_URL:Feed 端点网址。
    • API_KEY:用于向 Google SecOps 进行身份验证的 API 密钥。
    • SECRET:您生成的用于验证 Feed 的密钥。

设置自定义 API Feed

借助 Google Security Operations 自定义 API Feed(也称为“无代码连接器”),您可以采用灵活的基于配置的模型,从第三方 REST API 注入遥测数据。您可以在控制台中直接定义端点、身份验证、分页策略和状态管理,从而配置数据提取。

主要优势

  • 加快集成速度:通过向导式流程在几分钟内添加新的遥测数据源,无需等待后端更新。
  • 有状态检查点:确保在整个轮询周期内不会出现数据重复和日志丢失的情况。
  • 父级-子级扇出:支持两层发现工作流,例如列出资源并提取其关联的遥测数据。
  • 自动实现弹性和速率限制:防止供应商限制和配额耗尽。为了实现可靠、不间断的提取,自定义 API Feed 会自动处理 HTTP 429 响应(采用指数退避算法)、通过可配置的速率限制和任务延迟交错来控制请求速度,并强制执行安全防护措施。如需了解详情,请参阅速率限制和节流安全措施

前提条件

在创建自定义 API Feed 之前,请验证以下前提条件:

  • 权限:如需创建或修改 Feed,您必须拥有 Chronicle API Admin (roles/chronicle.admin) 或 Chronicle API Editor (roles/chronicle.editor) 角色。
  • 第三方 API 要求
    • 有效的 API 基本网址(必须使用 https://)。
    • API 凭据(API 密钥、基本身份验证凭据或 OAuth 2.0 客户端 ID/密钥)。
    • 供应商 API 文档,详细介绍了端点路径、请求参数、JSON 响应结构和速率限制。
  • Secret Manager 访问权限:凭据在 Secret Manager 中经过加密并得到安全管理。执行连接器的服务身份会自动与 Secret Manager(roles/secretmanager.secretAccessorroles/secretmanager.admin)互动。

配置自定义 API Feed

如需配置自定义 API Feed,请执行以下操作:

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 点击配置单个 Feed
  4. Feed 名称字段中,输入一个唯一的描述性名称(例如 1Password-Audit-Events)。
  5. 来源类型列表中,选择自定义 API
  6. 日志类型列表中,选择目标 Google SecOps 日志类型。
  7. 点击下一步
  8. 常规设置下,配置以下内容:

    • 基本网址:输入主要主机(例如 https://events.1password.com)。该网址必须以 https:// 开头。请勿附加子路径或尾随斜杠。

    • 轮询频率:指定平台检查 API 以获取新遥测数据的频率(以分钟为单位)。支持的范围:5 到 2880 分钟(默认值:15 分钟)。对于标准 API(顺序)Feed,标准时间为 10-15 分钟;对于列表和详情(父子)Feed,建议时间为 30-60 分钟,以便在不重叠的情况下充分执行扇出任务。

  9. 身份验证下,选择一种受支持的身份验证方法,然后配置必填字段:

    • 基本身份验证:输入用户名(API 账号身份)和密钥(即密钥密码或令牌)。
    • OAuth 2.0 客户端凭据:使用 OAuth 2.0 客户端凭据授权流程进行身份验证。在每个提取周期之前,Google SecOps 会自动请求、缓存和刷新不记名访问令牌。输入 OAuth 令牌端点(例如 https://auth.vendor.com/oauth/token)、OAuth 客户端 IDOAuth 客户端密钥
    • API 密钥请求标头:使用注入到请求标头中的自定义 API 密钥进行身份验证(最常见的企业 REST 模式)。输入标头名称(例如 AuthorizationX-API-Key)和标头值(例如 Bearer <SECRET_TOKEN><SECRET_KEY>)。
    • API 密钥查询参数:使用注入到网址查询参数中的自定义 API 密钥进行身份验证。输入查询参数名称(例如 api_key)和查询参数值(例如 <SECRET_KEY>)。
  10. 选择自定义 API 使用的连接器模型:

    • 标准 API(顺序):一种线性轮询流程,其中每次轮询都直接基于上一次轮询的状态。在此模型中,下一次轮询会使用从上一次轮询中提取的光标、令牌或时间戳来仅提取新数据。如果供应商提供的端点可直接返回遥测事件记录,请选择此卡片(例如 1Password、Okta、SentinelOne、GitHub 或 Slack)。
    • 列表和详情(父级-子级):一种双层发现流程。Feed 会进行初始调用(父级),以检索资源或对象的列表(例如用户 ID 或区域的列表)。然后,Feed 会自动生成依赖性后续调用(子级),以提取每个已识别资源的详细遥测数据。如果供应商 API 需要两层发现模式,请选择此卡片:首先调用端点以获取实体(例如,区域、账号、项目、设备)的动态列表,然后针对每个实体执行后续的详细信息请求以检索遥测数据(例如,Cloudflare、AWS CloudWatch 或 Tenable)。
  11. 如果您选择了标准 API(依序),请执行以下操作:

    1. API 端点下,配置以下参数以定义请求的技术路由和速率步调:
      • 端点路径:附加到基础网址的特定 API 路由(例如 /api/v1/auditevents)。此路径用于定义要查询的确切遥测资源。
      • HTTP 方法:选择 GET 可使用网址查询参数检索数据,选择 POST 可提交搜索载荷或过滤条件正文。
    2. 请求正文:对于 POST 请求,请提供 JSON 数据载荷。您可以嵌入动态检查点变量,例如 {"limit": 100, "start_time": "{{.last_timestamp}}"}
    3. 每分钟的请求数上限:输入每分钟要发送的请求数上限。这是客户端速率限制器,用于遵守供应商 API 速率限制(默认值:5 RPM = 每 12 秒 1 个请求)。此设置可防止在多页分页期间出现配额耗尽的情况。
    4. 可选:在自定义标头下,配置标头名称,然后点击添加,以定义目标 API 所需的专用 HTTP 标头(例如 Content-Type: application/json, Accept: application/json)。
    5. 可选:在查询参数下,配置,然后点击添加,以指定附加到网址查询字符串的额外过滤条件或选项(例如 count=1000status=active),或绑定动态模板变量(例如 start={{.last_run_time}})。
    6. 分页策略下:选择第三方 API 处理多页结果集所需的分页机制,然后配置必需的字段:
      • :在单个请求中提取数据,不进行分页。
      • 令牌分页:使用令牌(自定义键)获取下一页。输入下一页令牌 JSON 路径(例如 meta.next_cursor)和令牌分页查询参数名称(例如 cursor)。
      • 链接分页:按照回答中提供的网址获取更多数据。输入下一页链接 JSON 路径(例如 links.next@odata.nextLink)。
      • 偏移分页:跳过一定数量的记录以获取下一组记录。输入偏移量查询参数名称(例如 offset)。
      • 页码分页:前往下一个连续的页码。输入网页编号查询参数名称(例如 page)。
    7. 检查点设置下,配置相关设置,以便连接器记住在重复轮询周期之间中断的位置:

      • 策略:选择以下策略之一,然后配置必需的字段:
        • :提取所有可用数据,而不跟踪各个周期的进度。
        • 最新时间戳:跟踪最新记录的时间戳。输入检查点值 JSON 路径(例如 timestampevent_time)和检查点变量(例如 last_run_time,在后续轮询中引用为 {{.last_run_time}})。
        • 最新记录:跟踪最高记录 ID,以便仅提取新记录。输入检查点值 JSON 路径(例如 idevent_id)和检查点变量(例如 last_id,引用为 {{.last_id}})。
        • 迭代器令牌:使用 API 提供的持久性续传令牌。输入检查点值 JSON 路径检查点变量(例如 iterator_token,引用为 {{.iterator_token}})。
    8. 响应映射下,提供用于告知平台如何查找和提取日志的规则:

      • 目标数据 JSON 路径:输入 API 响应载荷中目标日志条目列表所在的准确路径。对于对象封装的数组(例如 {"items": [...]}),请输入 items。对于直接返回根 JSON 数组的 API(例如 [{...}, {...}]),请将此字段完全留空 ([])。
  12. 如果您选择了列表和详情(父级-子级),请执行以下操作:

    1. 父级请求(发现):配置用于返回项列表的端点:
      1. API 端点下,配置以下参数以定义请求的技术路由和速率步调:
        • 端点路径:附加到基础网址的特定 API 路由(例如 /api/v1/auditevents)。此路径用于定义要查询的确切遥测资源。
        • HTTP 方法:选择 GET 可使用网址查询参数检索数据,选择 POST 可提交搜索载荷或过滤条件正文。
        • 请求正文:对于 POST 请求,请提供 JSON 数据载荷。您可以嵌入动态检查点变量,例如 {"limit": 100, "start_time": "{{.last_timestamp}}"}
      2. 每分钟的请求数上限:输入每分钟要发送的请求数上限。这是客户端速率限制器,用于遵守供应商 API 速率限制(默认值:5 RPM = 每 12 秒 1 个请求)。此设置可防止在多页分页期间出现配额耗尽的情况。
      3. 可选:在自定义标头下,配置标头名称,然后点击添加,以定义目标 API 所需的专用 HTTP 标头(例如 Content-Type: application/json, Accept: application/json)。
      4. 可选:在查询参数下,配置,然后点击添加,以指定附加到网址查询字符串的额外过滤条件或选项(例如 count=1000status=active),或绑定动态模板变量(例如 start={{.last_run_time}})。
      5. 分页策略下:选择第三方 API 处理多页结果集所需的分页机制,然后配置必需的字段:
        • :在单个请求中提取数据,不进行分页。
        • 令牌分页:使用令牌(自定义键)获取下一页。输入下一页令牌 JSON 路径(例如 meta.next_cursor)和令牌分页查询参数名称(例如 cursor)。
        • 链接分页:按照回答中提供的网址获取更多数据。输入下一页链接 JSON 路径(例如 links.next@odata.nextLink)。
        • 偏移分页:跳过一定数量的记录以获取下一组记录。输入偏移量查询参数名称(例如 offset)。
        • 页码分页:前往下一个连续的页码。输入网页编号查询参数名称(例如 page)。
      6. Checkpointing 下,配置以下设置,以便连接器能够记住在重复轮询周期之间中断的位置:
        • 策略:选择以下策略之一,然后配置必需的字段:
          • :提取所有可用数据,而不跟踪各个周期的进度。
          • 最新时间戳:跟踪最新记录的时间戳。输入检查点值 JSON 路径(例如 timestampevent_time)和检查点变量(例如 last_run_time,在后续轮询中引用为 {{.last_run_time}})。
          • 最新记录:跟踪最高记录 ID,以便仅提取新记录。输入检查点值 JSON 路径(例如 idevent_id)和检查点变量(例如 last_id,引用为 {{.last_id}})。
          • 迭代器令牌:使用 API 提供的持久性续传令牌。输入检查点值 JSON 路径检查点变量(例如 iterator_token,引用为 {{.iterator_token}})。
    2. 数据提取(桥接):配置以下内容:
      • 商品标识符 JSON 路径:父响应中可唯一标识单个实体的特定字段(例如 idzone_id)。连接器会从父数组中的每个商品提取此标识符。
      • 模板变量名称:指定用于保存提取的 ID 的自定义变量名称(例如 zone_id)。界面会显示动态徽章:在下面的子请求中使用 {{.zone_id}}
    3. 子级请求(详细信息):配置用于返回每个项目的详细日志的端点:
      1. API 端点下,配置以下参数以定义请求的技术路由和速率步调:
        • 端点路径:附加到基础网址的特定 API 路由(例如 /client/v4/zones/{{.zone_id}}/logs/received)。此路径用于定义要查询的确切遥测资源。
        • HTTP 方法:选择 GET 可使用网址查询参数检索数据,选择 POST 可提交搜索载荷或过滤条件正文。
        • 请求正文:对于 POST 请求,请提供 JSON 数据载荷。您可以嵌入动态检查点变量,例如 {"limit": 100, "start_time": "{{.last_timestamp}}"}
      2. 每分钟的请求数上限:输入每分钟要发送的请求数上限。这是客户端速率限制器,用于遵守供应商 API 速率限制(默认值:5 RPM = 每 12 秒 1 个请求)。此设置可防止在多页分页期间出现配额耗尽的情况。
      3. 可选:在自定义标头下,配置标头名称,然后点击添加,以定义目标 API 所需的专用 HTTP 标头(例如 Content-Type: application/json, Accept: application/json)。
      4. 可选:在查询参数下,配置,然后点击添加,以指定附加到网址查询字符串的额外过滤条件或选项(例如 count=1000status=active),或绑定动态模板变量(例如 start={{.last_run_time}})。
      5. 分页策略下:选择第三方 API 处理多页结果集所需的分页机制,然后配置必需的字段:
        • :在单个请求中提取数据,不进行分页。
        • 令牌分页:使用令牌(自定义键)获取下一页。输入下一页令牌 JSON 路径(例如 meta.next_cursor)和令牌分页查询参数名称(例如 cursor)。
        • 链接分页:按照回答中提供的网址获取更多数据。输入下一页链接 JSON 路径(例如 links.next@odata.nextLink)。
        • 偏移分页:跳过一定数量的记录以获取下一组记录。输入偏移量查询参数名称(例如 offset)。
        • 页码分页:前往下一个连续的页码。输入网页编号查询参数名称(例如 page)。
      6. Checkpointing 下,配置以下设置,以便连接器能够记住在重复轮询周期之间中断的位置:
        • 策略:选择以下策略之一,然后配置必需的字段:
          • :提取所有可用数据,而不跟踪各个周期的进度。
          • 最新时间戳:跟踪最新记录的时间戳。输入检查点值 JSON 路径(例如 timestampevent_time)和检查点变量(例如 last_run_time,在后续轮询中引用为 {{.last_run_time}})。
  13. 配置以下安排和标签设置:

    • 轮询频率:选择标准间隔(例如 5m1h)。
    • 命名空间:可选的组织标记。
    • 提取标签:数据 RBAC 的键值对。
  14. 点击提交。Google SecOps 会执行自动凭据和端点验证检查。如果验证成功,Feed 会开始轮询。

配置示例 1:1Password 审核事件(标准 API [顺序] 模型)

以下声明性 JSON 配置展示了 Standard API (Sequential) 模型,其中包含基于光标的 1Password 检查点:

{
  "base_url": "https://events.1password.com",
  "polling_frequency": 15,
  "header_auth": {
    "header_key_values": [
      {
        "key": "Authorization",
        "value": "Bearer <SECRET_STORED_IN_SECRET_MANAGER>"
      }
    ]
  },
  "primary_request": {
    "request_settings": {
      "endpoint_path": "/api/v1/auditevents",
      "http_method": "POST",
      
      "request_body": "{\"limit\": 1000, \"start_time\": \"{{.last_run_time}}\"}",
      
      "custom_headers": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "max_requests_per_minute": 5
    },
    "pagination_strategy": {
      "token": {
        "next_page_token_json_path": "additional_items_url",
        "query_param": "cursor"
      }
    },
    "checkpointing": {
      "latest_timestamp_strategy": {
        "checkpoint_value_path": "timestamp",
        "checkpoint_variable": "last_run_time"
      }
    },
    "response_mapping": {
      "target_data_path": ["items"]
    }
  }
}

具体示例配置 2:Cloudflare 区域遥测(列表和详情 [父级-子级] 模型)

以下声明性 JSON 配置展示了 Cloudflare 的列表和详情(父子)扇出模型:

{
 "base_url": "https://api.cloudflare.com",
 "polling_frequency": 30,
 "header_auth": {
   "header_key_values": [
     {
       "key": "Authorization",
       "value": "Bearer <SECRET_STORED_IN_SECRET_MANAGER>"
     }
   ]
 },

 "primary_request": {
   "request_settings": {
     "endpoint_path": "/client/v4/zones",
     "http_method": "GET"
   },
   "response_mapping": {
     "target_data_path": ["result"]
   },
   "pagination_strategy": {
     "none": {}
   },
   "checkpointing": {
     "none_strategy": {}
   },
   "dependent_requests_config": {
     "item_id_json_path": "id",
     "item_id_variable": "zone_id",
     "dependent_requests": [
       {
         "request_settings": {
           "endpoint_path": "/client/v4/zones/{{.zone_id}}/logs/received",
           "http_method": "GET",
           "query_parameters": [
             {
               "key": "start",
               "value": "{{.last_run_time}}"
             },
             {
               "key": "count",
               "value": "1000"
             }
           ],
           "max_requests_per_minute": 5
         },

         "pagination_strategy": {
           "none": {}
         },
         "checkpointing": {
           "latest_timestamp_strategy": {
             "checkpoint_value_path": "EdgeStartTimestamp",
             "checkpoint_variable": "last_run_time"
           }
         },
         "response_mapping": {
           "target_data_path": []
         }
       }
     ]
   }
 }
}

自定义 API 最佳实践

  • 轮询频率指南
    • 从适中的轮询间隔开始:对于高流量端点,请将初始轮询间隔设置为 15 分钟或 30 分钟,以便在将轮询间隔缩短为 5 分钟之前观察供应商 API 配额行为。
    • 针对大批量扇出进行优化:对于发现数十个或数百个资源的父子(列表和详情)Feed,Google 强烈建议您将轮询频率设置为 30 到 60 分钟,以便所有按节奏执行的子任务在启动下一个发现周期之前顺利完成。
  • 验证提取路径:在配置状态检查点之前,请使用供应商文档或 API 测试工具确认时间戳的准确 JSON 字段名称。
  • 分解多子级 API:如果第三方 API 需要提取单个用户列表的提醒审核日志,请创建两个单独的单子级 Feed(一个用于提醒,一个用于审核日志),以保持最佳隔离度。

速率限制和限流安全措施

为防止客户 Feed 配置超出第三方供应商配额或垄断系统资源,自定义 API Feed 类型实现了以下自动化安全措施:

  • 可配置的请求步调(速率限制):系统会自动调整出站 HTTP 请求的步调,以防止超出供应商的速率限制。默认步调速率为每分钟 5 个请求(每 12 秒 1 个请求)。您可以根据需要,在端点设置中使用每分钟最多请求数字段来调整此设置,以符合供应商发布的 API 配额。
  • 子级请求上限:对于父级-子级(列表和详情)Feed,一个发现请求在每个轮询周期内最多可以调度 500 个子级请求。
  • 单级扇出深度:连接器严格强制执行 1 级的最大扇出深度(父级发现 → 子级详情)。不支持嵌套的相关请求(孙子级调用)。
  • 响应载荷大小上限:任何单个请求或网页的 HTTP 响应大小上限为 50 MB。如果未分页的 API 返回的响应超过 50 MB,提取操作将失败并显示资源耗尽错误。为防止出现这种情况,请始终配置分页查询参数(例如 limitpage_size),以分批检索记录。
  • 自动 HTTP 429 回退:如果第三方供应商 API 返回 HTTP 429(请求过多)响应,Google SecOps 会自动捕获该状态并启动指数回退期,暂停任务执行,直到供应商配额窗口重新填充。

自定义 API 限制

规划数据提取路径时,请注意自定义 API Feed 类型具有以下限制:

  • 严格的 JSON 支持:仅支持 JSON API 响应。不支持 XML、CSV、Parquet 和 Avro 等其他格式。
  • 不支持动态请求签名:不支持需要为每个请求提供动态加密签名的 API(例如 AWS SigV4、Akamai 或 Oracle OCI)。
  • 无多步身份验证:不支持需要先进行初始程序化登录调用以交换凭据来获取临时会话令牌(例如 Saviynt)然后再进行轮询的 API。
  • 不支持 WebSocket 或推送提取:自定义 API Feed 支持标准 HTTPS 拉取轮询。不支持持久性流式连接 (WebSocket) 和传入 Webhook。
  • 无双向 TLS (mTLS):身份验证必须依赖于 API 密钥、基本身份验证或标准 OAuth 2.0 客户端凭据。不支持客户端证书握手。

排查自定义 API Feed 问题

如需在 Cloud Logging Logs Explorer 中调查自定义 API Feed 的错误,请使用以下查询:

resource.type="gce_instance" OR resource.type="generic_task"
jsonPayload.service="gopher"
jsonPayload.feed_id="FEED_ID"

FEED_ID 替换为您的 Feed ID。

如需专门过滤失败的 HTTP 请求,请使用以下查询:

jsonPayload.service="gopher"
jsonPayload.feed_id="FEED_ID"
jsonPayload.http_status_code >= 400

FEED_ID 替换为您的 Feed ID。

常见故障模式和解决方案

症状 / 错误 根本原因 解决方案 / 补救措施
HTTP 401 未授权 / HTTP 403 禁止 API 密钥、密码或 OAuth 凭据过期或无效。 修改 Feed,重新输入有效凭据,然后点击提交
HTTP 404 未找到 基本网址或端点路径模板不正确。 查看供应商 API 文档中的 endpoint。确保基础网址以干净利落的方式结束,并且端点路径以“/”开头。
HTTP 429 Too Many Requests 超出供应商 API 速率限制。 提高轮询频率或减少查询参数中的 limit 参数。
JSON 提取错误(items_path 为空) 响应配置路径不匹配。 验证 API 响应载荷结构,并更新目标数据 JSON 路径。
重复数据注入 无效的状态配置时间戳或 ID 提取器路径。 检查日志记录字段名称中的时间戳,然后更新提取器路径。

管理 Feed

配置数据 Feed 后,您可以使用管理工具来监控提取健康状况、修改现有参数和管理 Feed 生命周期。本部分概述了如何解读 Feed 状态以及执行必要的维护任务,以确保数据持续可见。

Feed 页面提供了多种工具,可帮助您浏览和整理已配置的 Feed 列表:

  • 搜索:使用搜索栏按 Feed 名称Feed ID来源类型查找 Feed。

  • 过滤:点击过滤图标可根据特定 Feed 属性缩小列表范围。

  • 下载 CSV 文件:点击下载为 CSV,将当前的 Feed 列表导出为 CSV 文件。

  • 分页:使用分页控件可执行以下操作:

    • 更改每页行数

    • 使用页面标签页和箭头浏览多个信息流页面。

  • 上次刷新时间:查看时间戳,了解 Feed 列表上次更新的时间。

查看已配置的 Feed

Feed 页面会显示您配置的所有 Feed。

  1. 依次前往 SIEM 设置 > Feed。主页面会显示您配置的所有 Feed。
  2. 将指针悬停在每一行上,以显示 more_vert 更多菜单。
  3. 在该菜单中,您可以查看 Feed 详情、修改、停用或删除 Feed。

监控 Feed 状态

您可以在初始Feed页面上监控 Feed 的状态,Feed 可以具有以下状态:

  • 有效:Feed 已配置完毕,可以开始将数据注入到您的 Google SecOps 账号中。
  • InProgress:Google SecOps 尝试从已配置的第三方拉取数据。
  • 已完成:此 Feed 已成功检索到数据。
  • 已归档:已停用的 Feed。
  • 失败:Feed 无法成功提取数据。这很可能是由于配置问题造成的。点击相应问题以显示配置错误。更正错误并重新提交 Feed 后,请返回Feed 页面,确定 Feed 现在是否正常运行。

修改现有 Feed

Feed页面上,您可以按如下方式修改现有 Feed:

  1. 将光标悬停在现有 Feed 上,然后点击右列中的 more_vert

  2. 点击 Edit Feed(修改 Feed)。现在,您可以修改 Feed 的输入参数,然后将其重新提交给 Google SecOps,后者会尝试使用更新后的 Feed。

启用(恢复)和停用(暂停)Feed

停用 Feed 后,Google SecOps 会停止从相应来源提取新数据。如需立即停止数据注入,您应删除 Feed。现有有效或受限的转移会继续进行,直到完成。重新启用 Feed 后,Google SecOps 可以检索在 Feed 停用期间错过的任何数据。此功能称为“回填能力”。

状态列中,已启用的 Feed 会标记为有效正在进行已完成失败。已停用的字段会标记为已归档。如需了解说明,请参阅监控 Feed 状态

Feed 页面上,您可以启用(恢复)或停用(暂停)任何现有 Feed:

  1. 将光标悬停在现有 Feed 上,然后点击右列中的 more_vert

  2. 可选:点击已启用 Feed 切换开关以启用 Feed。

  3. 可选:点击停用 Feed 切换开关以停用 Feed。相应 Feed 现已标记为已归档

重新启用 Feed 时的数据恢复(回填功能)

Google SecOps 是否能够回填数据取决于您的 Feed 是基于拉取(支持)还是基于推送(不支持)。

基于拉取的 Feed

借助这些 Feed,Google SecOps 可以从外部来源提取数据。拉取 Feed 包括:

  • 云存储分区,例如 Amazon S3、 Google Cloud Storage、Azure Blob Storage
  • SFTP 服务器
  • 第三方 API,例如 Microsoft 365、Okta、Proofpoint

    重新启用基于拉取的 Feed 后,Google SecOps 可以检索在 Feed 停用期间生成的数据。

基于推送的 Feed

借助这些 Feed,外部系统可将数据“推送”到 Google SecOps。推送 Feed 包括:

  • HTTPS 网络钩子
  • Google Cloud Pub/Sub
  • Amazon Kinesis Data Firehose
  • 直接 API/代理提取,例如 Bindplane

Google SecOps 无法自动从基于推送的 Feed 中启动数据回填。当 Feed 处于停用状态且您的系统推送数据时,Google SecOps 会发送 HTTP 403 Forbidden 错误或一般性 4xx 错误。

如果您的系统不存储数据并重试将数据发送到 Google SecOps,数据将会丢失。此外,如果您的系统设置为“失败时丢弃”或清除其缓冲区,则相应时间段内的数据将永久丢失。为避免数据丢失,您应将系统配置为在重新启用 Feed 后缓冲并重新发送数据。然后,当 Feed 恢复时,Google SecOps 可以注入错失的数据。

回填注意事项

  • 源系统限制:Google SecOps 可以从基于拉取的 Feed 中回填的历史数据量取决于源系统保留数据的时间以及其 API 允许的范围。例如,某些 API 仅提供对过去 7 天数据的访问权限。
  • Google SecOps 缓冲区:对于自动恢复,Google SecOps 基于拉取的 Feed 的内部缓冲区最多可保留 90 天的数据,之后数据会被丢弃。
  • 租户限制:非付费租户(例如概念验证)在回填旧数据方面可能会受到限制。
  • 注入配额:为避免影响实时数据注入,回填数据的处理优先级低于实时数据。基于拉取的数据回填也受到速率限制,通常为每个日志类型租户突发限制的三分之一 (33%)。这可确保关键的基于推送的 Feed(例如 EDR 代理)不会受到负面影响。
  • 动态速率限制:如果回填消耗了所有可用的拉取配额,则注入会在剩余的 5 分钟间隔内暂停,并在间隔重新开始时自动恢复。
  • 云存储:您可以使用 Feed 设置来控制回填,例如针对新文件或更新文件的过滤条件,或者日期范围过滤条件,例如“最长文件存在时间”。
  • 大量积压内容:如果重新启用基于拉取的 Feed 后,大量积压内容导致出现问题,您可以与 Google 支持团队联系以清除积压内容。这意味着,Feed 将仅开始注入未来的新数据,而不会回填错失的数据。
  • 修改已停用的 Feed:在 Feed 处于停用状态时对其所做的任何配置更改都会在 Feed 重新启用后立即生效。

删除 Feed

Feed页面上,您还可以删除现有 Feed:

  1. 将光标悬停在现有 Feed 上,然后点击右列中的 more_vert

  2. 点击删除 Feed。系统会打开 DELETE FEED 窗口。如需永久删除该 Feed,请点击是,删除

对于自定义 API Feed,系统会显示一个对话框窗口,其中包含一个可选的复选框:删除待处理的积压数据

  • 未选中(默认):系统会删除 Feed 配置和凭据,但允许排队积压的数据继续处理,直至被提取。
  • 已选中:Feed 配置、凭据和所有待处理的积压数据都会被永久移除。

控制注入速率

当租户的数据注入速率达到一定阈值时,Google Security Operations 会限制新数据 Feed 的注入速率,以防止注入速率较高的来源影响其他数据源的注入速率。在这种情况下,虽然会有延迟,但不会丢失数据。阈值由提取量和租户的使用情况历史记录决定。

您可以联系 Cloud Customer Care 来申请提高速率限制。

排查失败的 Feed

Feed页面上,您可以查看现有 Feed 的详细信息,例如来源类型、日志类型、Feed ID 和状态,如下所示:

  1. 将光标悬停在现有 Feed 上,然后点击右列中的 more_vert

  2. 点击查看 Feed。系统会显示一个对话框,其中包含 Feed 详细信息。对于失败的 Feed,您可以在详情 > 状态下找到错误详情。

对于失败的 Feed,详细信息包括错误原因和修正步骤。

如需了解使用数据 Feed 时可能会遇到的错误消息,请参阅来源和提取错误表。

如需详细分析和排查 Feed 活动方面的问题,您可以在 Cloud Logging 中查看日志。请参阅使用 Cloud Logging 分析 Feed 活动

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。