Feed 管理用户指南

概览和前提条件

通过 Google 安全运营 Feed 管理,您可以为自己的 Google 安全运营账号创建和管理数据 Feed。Feed 管理界面是基于 Feed Management API 构建的。如需了解更多信息,请参阅 Feed Management API 文档。

每个数据 Feed 都有自己的一组前提条件,在 Google Security Operations 中设置 Feed 之前必须完成这些前提条件。Feed Management API 文档的按类型划分的 Feed 配置部分列出了这些前提条件。搜索您需要设置的数据 Feed 类型,然后按照所提供的说明进行操作。

删除源文件

概览部分所述,不同类型的 Feed 具有不同的前提条件。

对于多种 Feed 类型(包括 Cloud Storage),新增修改 Feed 工作流中提供了一个名为源删除选项的字段。此菜单有三个选项:

  1. 永不删除文件
  2. 删除传输的文件和空目录
  3. 删除传输的文件

方法 2 和 3 涉及删除:一个用于删除文件,一个用于文件及任何空目录。如果您选择上述任一选项,则需要添加特定于您的 Feed 类型的权限(具体可参阅 Feed Management API 文档的按类型配置 Feed 配置部分)。

通过此选项,您可以在转移对象后将其从存储系统中删除。Feed 始终会记住它们已传输哪些对象(或文件),且绝不会两次传输同一文件(除非已更新),但如果您希望系统在(成功)传输源对象后将其删除,则必须设置此选项。

Microsoft Azure Blob Storage 不支持删除源文件。以下来源删除选项不得与 Microsoft Azure Blob Storage 来源类型一起使用:

  • 删除传输的文件和空目录
  • 删除传输的文件

使用 Microsoft Azure Blob Storage 源创建 Feed 时,请仅选择永不删除文件选项。

创建和修改 Feed

如需访问 Feed 管理界面,请按以下步骤操作:

  1. 点击导航栏中的设置

  2. 设置下,点击 Feed

除了您已配置的 Feed 之外,该页面上列出的数据 Feed 还包含 Google 为您的帐号配置的所有 Feed。

添加 Feed

如需向您的 Google Security Operations 帐号添加 Feed,请完成以下步骤。在尝试在此处添加新 Feed 之前,请务必满足您要添加的数据 Feed 类型的前提条件。如需了解详情,请参阅概览和前提条件部分。

您最多可以为每种日志类型添加五个 Feed。

  1. 点击 Add New(新增)。系统随即会显示添加 Feed 窗口。

  2. 添加 Feed 名称。
    注意:新 Feed 需要 Feed 名称。现有 Feed 将在“Feed”页面上显示[未配置]

  3. 从菜单中选择来源类型。来源类型是您希望将数据引入 Google Security Operations 的机制。您可以从以下 Feed 来源类型中进行选择:

    • Amazon Data Firehose
    • Amazon S3
    • Amazon SQS
    • Google Cloud Pub/Sub
    • Google Cloud Storage
    • HTTP(S) 文件(非 API)
    • Microsoft Azure Blob Storage
    • 第三方 API
    • Webhook
  4. 从菜单中选择日志类型。可用的日志因您之前选择的来源类型而异。点击下一步

    如果选择 Google Cloud Storage 作为来源类型,请使用获取服务帐号选项获取唯一的服务帐号。在本文档中,请参阅 Google Cloud Storage Feed 设置示例

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

  6. (可选)您可以在此处指定命名空间。如需详细了解命名空间,请参阅资产命名空间文档

  7. 点击下一步

  8. 敲定标签页中,检查新的 Feed 配置。准备就绪后,点击提交。Google 安全运维人员会完成新 Feed 的验证检查。如果 Feed 通过检查,系统会为该 Feed 生成一个名称,并将其提交给 Google 安全运维套件,Google 安全运维团队会开始尝试提取数据。

    完成 Feed 请求

    图 4. 完成 Feed 请求

设置 Pub/Sub 推送 Feed

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

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

创建 Pub/Sub 推送 Feed

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

指定端点网址

创建 Pub/Sub 推送 Feed 后,在 Pub/Sub 中,创建推送订阅、指定 HTTPS 端点并启用身份验证。

  1. 在 Pub/Sub 中创建推送订阅。如需详细了解如何创建推送订阅,请参阅创建推送订阅
  2. 指定端点网址,该网址可在 Google Cloud Pub/Sub 推送 Feed 中找到。
  3. 选择启用身份验证,然后选择一个服务帐号。

设置 Amazon Data Firehose Feed

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

  1. 创建 Amazon Data Firehose Feed 并复制端点网址和密钥。
  2. 创建 API 密钥以向 Google 安全运维人员进行身份验证。您还可以重复使用现有的 API 密钥向 Google Security Operations 进行身份验证。
  3. 在 Amazon Data Firehose 中指定端点网址。

创建 Amazon Data Firehose Feed

  1. 在 Google 安全运营菜单中,选择设置,然后点击 Feed
  2. 点击新增
  3. Feed 名称字段中,输入 Feed 的名称。
  4. 来源类型列表中,选择 Amazon Data Firehose
  5. 选择日志类型。例如,如需为 Open Cybersecurity Schema Framework 创建 Feed,请选择 Open Cybersecurity Schema Framework (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 密钥

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

指定端点网址

在 Amazon Data Firehose 中,指定 HTTPS 端点和访问密钥。

  1. 将 API 密钥附加到 Feed 端点网址,然后按照以下格式将此网址指定为 HTTP 端点网址:

      ENDPOINT_URL?key=API_KEY
    

    请替换以下内容:

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

设置 HTTPS 网络钩子 Feed

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

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

创建 HTTPS 网络钩子 Feed

  1. 在 Google 安全运营菜单中,选择设置,然后点击 Feed
  2. 点击新增
  3. Feed 名称字段中,输入 Feed 的名称。
  4. 来源类型列表中,选择 Webhook
  5. 选择日志类型。例如,如需为 Open Cybersecurity Schema Framework 创建 Feed,请选择 Open Cybersecurity Schema Framework (OCSF) 作为日志类型
  6. 点击下一步
  7. 可选:为以下输入参数指定值:
    • 拆分分隔符:用于分隔日志行的分隔符,例如 \n
    • 素材资源命名空间素材资源命名空间
    • 提取标签:要为此 Feed 中的事件应用的标签。
  8. 点击下一步
  9. 敲定屏幕中检查新的 Feed 配置,然后点击提交
  10. 点击生成密钥以生成密钥以验证此 Feed。
  11. 请复制并存储该密钥,因为您无法再查看此密钥。您可以再次生成新的密钥,但重新生成密钥会使以前的密钥过时。
  12. 详细信息标签页中,复制端点信息字段中的 Feed 端点网址。 您需要在客户端应用中指定此端点网址。
  13. 要停用 Feed,请点击已启用 Feed 切换开关。默认情况下,Feed 处于启用状态。
  14. 点击完成

为网络钩子 Feed 创建 API 密钥

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

指定端点网址

  1. 在客户端应用中,指定 HTTPS 端点,该端点可通过 webhook Feed 获取。
  2. 按以下格式在自定义标头中指定 API 密钥和密钥,即可启用身份验证:

    X-goog-api-key = API_KEY

    X-Webhook-Access-Key = SECRET

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

      ENDPOINT_URL?key=API_KEY&secret=SECRET
    

    请替换以下内容:

    • ENDPOINT_URL:Feed 端点网址。
    • API_KEY:用于向 Google 安全运维人员进行身份验证的 API 密钥。
    • SECRET:您为了对 Feed 进行身份验证而生成的密钥。

Google Cloud Storage Feed 设置示例

  1. 在 Google 安全运营菜单中,选择设置,然后点击 Feed
  2. 点击 Add New(新增)。
  3. 选择 Google Cloud Storage 作为来源类型
  4. 选择日志类型。例如,如需为 Google Kubernetes Engine 审核日志创建 Feed,请选择 Google Kubernetes Engine 审核日志作为日志类型
  5. 点击获取服务帐号。Google Security Operations 提供一个唯一的服务帐号,供 Google Security Operations 用来注入数据。
  6. 为服务帐号配置访问 Cloud Storage 对象的权限。 在本文档中,请参阅授予对 Google Security Operations 服务帐号的访问权限
  7. 点击下一步
  8. 根据您创建的 Cloud Storage 配置,为以下字段指定值:
    • 存储桶 URI
    • URI 是一种
    • 源删除选项
  9. 点击下一步,然后点击提交

授予对 Google Security Operations 服务帐号的访问权限

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

    进入“存储桶”

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

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

      1. 选择相应文件,然后点击编辑权限
      2. 点击添加主账号
      3. 新的主帐号字段中,输入 Google Security Operations 服务帐号的名称。
      4. 为 Google Security Operations 服务帐号分配具有读取权限的角色。例如,Storage Object Viewer (roles/storage.objectViewer)。只有在未启用统一存储桶级访问权限的情况下,才能执行此操作。
      5. 点击保存
    • 如需授予对多个文件的读取权限,您必须授予存储桶级别的访问权限。您必须将 Google Security Operations 服务帐号作为主帐号添加到存储桶中,并向其授予 IAM Storage Object Viewer (roles/storage.objectViewer) 角色。

      如果您将 Feed 配置为删除源文件,则必须在存储桶上将 Google Security Operations 服务帐号添加为主帐号,并向其授予 IAM Storage Object Admin (roles/storage.objectAdmin) 角色。

配置 VPC Service Controls

如果启用了 VPC Service Controls,则需要使用入站规则,才能提供对 Cloud Storage 存储桶的访问权限。

入站流量规则中必须允许使用以下 Cloud Storage 方法:

  • google.storage.objects.list。对单个文件 Feed 而言是必需的。
  • google.storage.objects.get。对于需要目录或子目录访问权限的 Feed 是必需的。
  • google.storage.objects.delete。对于需要删除源文件的 Feed 而言是必需的。

示例入站流量规则

- ingressFrom:
  identities:
    - serviceAccount:8911409095528497-0-account@partnercontent.gserviceaccount.com
  sources:
  - accessLevel: "*"
  ingressTo:
  operations:
  - serviceName: storage.googleapis.com
    methodSelectors:
    - method: google.storage.objects.list
    - method: google.storage.objects.get
    - method: google.storage.objects.delete
  resources:
  - projects/PROJECT_ID

Feed 状态

您可以在初始 Feed 页面中监控 Feed 的状态。Feed 可能具有以下状态:

  • 有效 - Feed 已配置完毕,可以将数据注入到您的 Google Security Operations 账号中了。
  • 处理中 - Google 安全运营团队现在正尝试从已配置的第三方提取数据。
  • 已完成 - 此 Feed 已成功检索到数据。
  • 已归档 - 已停用的 Feed。
  • 失败 - Feed 未能成功提取数据。这可能是由于配置问题造成的。点击相应题目以显示配置错误。更正错误并重新提交 Feed 后,请返回 Feed 页面以确定 Feed 现在是否正常运行。

修改 Feed

Feed 页面中,您可以修改现有 Feed:

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

  2. 点击修改 Feed。现在,您可以更改 Feed 的输入参数,并将其重新提交给 Google 安全运营部门。Google 安全运营团队将尝试使用修改后的 Feed。

启用和停用 Feed

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

Feed 页面中,您可以启用或停用任何现有 Feed:

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

  2. 要启用 Feed,请点击启用 Feed 切换开关。

  3. 要停用 Feed,请点击停用 Feed 切换开关。该 Feed 现在会被标记为已归档

删除 Feed

此外,您还可以从 Feed 页面删除现有 Feed:

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

  2. 点击删除 Feed。此时将打开“删除 Feed”窗口。要永久删除此 Feed,请点击是,删除

控制注入速率

当租户的数据注入速率达到特定阈值时,Google 安全运维套件会限制新数据 Feed 的注入速率,以防止注入速率较高的来源影响其他数据源的提取速率。在这种情况下,会出现延迟,但不会丢失任何数据。此阈值取决于提取量和租户的使用记录。

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

问题排查

Feed 页面中,您可以查看来源类型、日志类型、Feed ID 和现有 Feed 状态等详细信息:

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

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

对于失败的 Feed,详细信息包括错误原因以及修正步骤。 下表介绍了您在使用数据 Feed 时可能会遇到的错误消息。

错误代码 原因 问题排查
ACCESS_DENIED Feed 配置中提供的身份验证帐号缺少必需的权限。 验证 Feed 配置中提供的身份验证帐号是否具有所需权限。请参阅 Feed 文档以获得所需权限。
ACCESS_TOO_FREQUENT Feed 失败,因为尝试访问该来源的次数过多。 与 Google 安全运营支持团队联系。
CONNECTION_DROPPED 已与来源建立连接,但该连接在 Feed 完成之前关闭了。 此错误是暂时性的,应用将重试请求。如果问题仍然存在,请与支持团队联系。
CONNECTION_FAILED 应用无法连接到来源 IP 地址和端口。

请检查以下各项:

  • 来源可用。
  • 防火墙未阻止连接。
  • 与服务器关联的 IP 地址正确无误。
  • 如果问题仍然存在,请与 Google 安全运营支持团队联系。

DNS_ERROR 无法解析来源主机名。 服务器主机名可能拼写有误。请检查网址并验证拼写是否正确无误。
FILE_FAILED 已建立与来源的连接,但文件或资源存在问题。

请检查以下各项:

  • 文件未损坏。
  • 文件级权限正确无误。

如果问题仍然存在,请与 Google 安全运营支持团队联系。

FILE_NOT_FOUND 已建立与来源的连接,但找不到文件或资源。

请检查以下各项:

  • 源文件已存在。
  • 相应用户可以访问该文件。

如果问题仍然存在,请与 Google 安全运营支持团队联系。

GATEWAY_ERROR API 对 Google 安全运维套件的调用返回了网关错误。 验证 Feed 的来源详情。应用将重试请求。
INTERNAL_ERROR 由于内部错误,无法注入数据。 如果问题仍然存在,请与 Google 安全运营支持团队联系。
INVALID_ARGUMENT 已建立与来源的连接,但由于参数无效,Feed 失败。 检查 Feed 配置。请参阅 Feed 文档,详细了解如何设置 Feed。如果问题仍然存在,请与 Google 安全运营支持团队联系。
INVALID_FEED_CONFIG Feed 配置包含无效值。 请检查 Feed 配置中是否存在不正确的设置。如需了解正确的语法,请参阅 Feed 文档。
INVALID_REMOTE_RESPONSE 已建立与来源的连接,但响应不正确。 检查 Feed 配置。详细了解如何设置 Feed。如果问题仍然存在,请与 Google 安全运营支持团队联系。
LOGIN_FAILED 已建立与来源的连接,但凭据不正确或缺失。 重新输入来源凭据,确认其正确无误。
NO_RESPONSE 已建立与来源的连接,但来源未响应。 请确保来源可以支持来自 Google 安全运维套件的请求。如果问题仍然存在,请与 Google 安全运营支持团队联系。
PERMISSION_DENIED 已建立与来源的连接,但授权出现问题。 验证是否已添加所需的访问权限和权限。
REMOTE_SERVER_ERROR 已与来源建立连接,但来源未响应数据。 请确保来源可用且正在响应数据。如果问题仍然存在,请与 Google 安全运营支持团队联系。
REMOTE_SERVER_REPORTED_BAD_REQUEST 已与来源建立连接,但来源拒绝了请求。 检查 Feed 配置。有关详情,请参阅 Feed 文档。如果问题仍然存在,请与 Google 安全运营支持团队联系。
SOCKET_READ_TIMEOUT 已建立与来源的连接,但连接在数据传输完成之前超时了。 此错误是暂时性的,应用将重试请求。如果问题仍然存在,请与 Google 安全运营支持团队联系。
TOO_MANY_ERRORS Feed 因遇到多个来源错误而超时。 与 Google 安全运营支持团队联系。
TRANSIENT_INTERNAL_ERROR Feed 出现临时内部错误。 此错误是暂时性的,应用将重试请求。如果问题仍然存在,请与 Google 安全运营支持团队联系。
UNSAFE_CONNECTION 由于 IP 地址受到限制,因此应用无法建立连接。 此错误是暂时性的,Google 安全运维套件会重试请求。如果问题仍然存在,请与 Google 安全运营支持团队联系。
HTTP_400 由于请求无效,Feed 失败。 检查 Feed 配置。详细了解如何设置 Feed。如果问题仍然存在,请与 Google 安全运营支持团队联系。
HTTP_403 已建立与来源的连接,但授权出现问题。 验证是否已添加所需的访问权限和权限。
HTTP_404 已建立与来源的连接,但找不到文件或资源。

请检查以下各项:

  • 源文件已存在。
  • 相应用户可以访问该文件。

如果问题仍然存在,请与 Google 安全运营支持团队联系。

HTTP_429 Feed 超时,因为尝试访问该来源的次数过多。 与 Google 安全运营支持团队联系。
HTTP_500 已与来源建立连接,但来源未响应数据。 请确保来源可用且正在响应数据。如果问题仍然存在,请与 Google 安全运营支持团队联系。
HTTP_502 Feed 遇到网关错误。 此错误是暂时性的,应用将重试请求。如果问题仍然存在,请与 Google 安全运营支持团队联系。
HTTP_504 Google 安全操作无法连接到来源 IP 地址和端口。 此错误是暂时性的,应用会重试请求。

请检查以下各项:

  • 来源可用。
  • 防火墙未阻止连接。
  • 与服务器关联的 IP 地址正确无误。

如果问题仍然存在,请与 Google 安全运营支持团队联系。