实例审计事件流

  • 引入于极狐GitLab 16.1,使用名为 ff_external_audit_events 的功能标志。默认禁用。
  • 在极狐GitLab 16.2 中默认启用 ff_external_audit_events 功能标志。
  • 示例流目的地在极狐GitLab 16.4 中 GA。功能标志 ff_external_audit_events 被移除。
  • 自定义 HTTP 标头 UI 引入于极狐GitLab 15.2,使用名为 custom_headers_streaming_audit_events_ui 的功能标志。默认禁用。
  • 自定义 HTTP 标头 UI 在极狐GitLab 15.3 中 GA。功能标志 custom_headers_streaming_audit_events_ui 被移除。
  • 在极狐GitLab 15.3 中改善了用户体验。
  • HTTP 目的地 名称 字段添加自极狐GitLab 16.3。
  • 活动 复选框的功能添加自极狐GitLab 16.5。

有了实例审计事件流,管理员可以:

  • 为整个实例设置流目的地来接受 JSON 格式的所有审计事件。
  • 在第三方系统中管理审计日志。任何可以接受 JSON 数据的服务都可以被用作流目的地。

每个流目的地的自定义 HTTP 标头上线为 20 个。

极狐GitLab 可能会将单个事件多次传输到同一目的地。请使用有效载荷中的 id 键来对传入数据进行去重。

审计事件使用 HTTP POST 方法发送。

caution 流式传输目标接收所有审核事件数据,其中可能包括敏感信息。确保您信任流目的地。

HTTP 目的地

先决条件:

  • 为了更好的安全,您应该在目标 URL 上使用 SSL 证书。

管理整个实例的 HTTP 流目的地。

添加新的 HTTP 目的地

向实例添加新的 HTTP 流目的地。

先决条件:

  • 具有实例的管理员访问权限。

要将流传输目的地添加到顶级群组:

  1. 在左侧导航栏,底部,选择 管理员
  2. 选择 监控 > 审计事件
  3. 在主区域中,选择 事件流 选项卡。
  4. 选择 添加流目的地 并选择 HTTP 端点 以显示添加目的地部分。
  5. 名称目的地 URL 字段中,填写目的地名称和 URL。
  6. 可选。找到 自定义 HTTP header 表。
  7. 要使 header 生效,请选择 启用 复选框。Header 将与审计事件一起发送。
  8. 选择 添加 header 创建新的名称和值对。根据需要输入任意数量的名称和值对。每个流传输目的地最多可以添加 20 个 headers。
  9. 填写完所有 header 后,选择 添加 可以添加新的流目的地。

列出 HTTP 目的地

先决条件:

  • 具有实例的管理员访问权限。

要列出顶级群组的流目的地:

  1. 在左侧导航栏,底部,选择 管理员
  2. 选择 监控 > 审计事件
  3. 在主区域中,选择 事件流 选项卡。
  4. 选择事件流将其展开并查看所有自定义 HTTP 标头。

更新 HTTP 目的地

先决条件:

  • 具有实例的管理员访问权限。

要更新流目的地的名称:

  1. 在左侧导航栏,底部,选择 管理员
  2. 选择 监控 > 审计事件
  3. 在主区域中,选择 事件流 选项卡。
  4. 选择要扩展的流。
  5. 名称 字段中,添加要更新的目标名称。
  6. 选择 保存 以更新流目的地。

要更新流目的地的自定义 HTTP 标头:

  1. 在左侧导航栏,底部,选择 管理员
  2. 选择 监控 > 审计事件
  3. 在主区域中,选择 事件流 选项卡。
  4. 选择要扩展的流。
  5. 找到 自定义 HTTP 标头 表。
  6. 找到您要更新的标头。
  7. 要使 header 生效,请选择 启用 复选框。Header 将与审计事件一起发送。
  8. 选择 添加标头 以创建新的名称和值对。根据需要输入任意数量的名称和值对。每个流目的地最多可以添加 20 个标头。
  9. 选择 保存 以更新流目的地。

删除 HTTP 目的地

删除顶级群组的流目的地。当最后一个目的地删除成功后,禁用顶级群组的事件流。

先决条件:

  • 具有实例的管理员访问权限。

要删除流目的地:

  1. 在左侧导航栏,底部,选择 管理员
  2. 选择 监控 > 审计事件
  3. 在主区域中,选择 事件流 选项卡。
  4. 选择要扩展的流。
  5. 选择 删除目的地
  6. 通过在对话框中选择 删除目的地 进行确认。

要仅删除流目的地的自定义 HTTP 标头:

  1. 在左侧导航栏,底部,选择 管理员
  2. 选择 监控 > 审计事件
  3. 在主区域中,选择 事件流 选项卡。
  4. 选择要扩展的流。
  5. 找到 自定义 HTTP 标头 表。
  6. 找到您要删除的标头。
  7. 在标题右侧,选择 删除 ( )。
  8. 选择 保存 以更新流目的地。

验证事件真实性

  • 引入于极狐GitLab 16.1,使用名为 ff_external_audit_events 的功能标志。默认禁用。
  • 功能标志 ff_external_audit_events 在极狐GitLab 16.2 中默认启用。
  • 实例流目的地在极狐GitLab 16.4 中 GA。功能标志 ff_external_audit_events 被移除。

每个流目的地都有一个唯一的验证令牌(verificationToken),可用于验证事件的真实性。这个令牌由所有者指定或在创建事件目标时自动生成,并且无法更改。

每个流事件都在 X-Gitlab-Event-Streaming-Token HTTP 标头中包含验证令牌,可以在列出流目的地时根据目标值进行验证。

先决条件:

  • 具有实例的管理员访问权限。

要列出流目的地并查看验证令牌:

  1. 在左侧导航栏,底部,选择 管理员
  2. 选择 监控 > 审计事件
  3. 在主区域中,选择 事件流
  4. 在每个条目的右侧进行验证。

更新事件过滤器

  • 使用定义的审计事件类型列表在 UI 中过滤审计事件引入于极狐GitLab 16.3。

为群组启用此功能后,您可以允许用户过滤每个目标的流审计事件。如果在没有过滤器的情况下启用该功能,则目标端将收到所有审计事件。

具有事件类型过滤器集的流目的地具有 已过滤 ( ) 标记。

要更新流目的地的事件过滤器:

  1. 在左侧导航栏,底部,选择 管理员
  2. 选择 监控 > 审计事件
  3. 在主区域中,选择 事件流 选项卡。
  4. 选择要扩展的流。
  5. 找到 按审计事件类型过滤 下拉列表。
  6. 选择下拉列表并选择或清除所需的事件类型。
  7. 选择 保存 以更新事件过滤器。

覆盖默认内容类型标头

默认情况下,流目的地使用 application/x-www-form-urlencodedcontent-type 标头。然而,您可能想将 content-type 标头设置为其他内容。例如,application/json

要覆盖顶级群组流目的地的 content-type 标头默认值,请使用:

Google Cloud 日志记录目的地

  • 引入于极狐GitLab 16.5。

管理顶级群组的 Google Cloud Logging 目的地。

先决条件

在设置 Google Cloud Logging 流审计事件之前,您必须:

  1. 使用适当的凭据和权限为 Google Cloud 创建服务账户。该账户用于配置审核日志流身份验证。 有关更多信息,请参阅 Google Cloud 文档中创建和管理服务账户
  2. 为服务账户启用 Logs Writer 角色,以在 Google Cloud 上启用日志记录。有关更多信息,请参阅使用 IAM 进行访问控制
  3. 为服务账户创建 JSON 密钥。有关更多信息,请参阅创建服务账户密钥

添加新的 Google Cloud Logging 目的地

先决条件:

  • 具有实例的管理员访问权限。

将 Google Cloud Logging 流目的地添加到实例:

  1. 在左侧导航栏,底部,选择 管理员
  2. 选择 监控 > 审计事件
  3. 在主区域中,选择 事件流 选项卡。
  4. 选择 添加流目的地,然后选择 Google Cloud Logging 以显示添加目的地的部分。
  5. 输入一个随机字符串,用作新目的地的名称。
  6. 输入要添加的 Google 项目 ID、Google 客户端电子邮件、日志 ID 和 Google 私钥。
  7. 输入一个随机字符串,用作新目的地的日志ID。之后,您可以使用它在 Google Cloud 中筛选日志结果。
  8. 选择 添加 可以添加新的流目的地。

列出 Google Cloud Logging 目的地

先决条件:

  • 具有实例的管理员访问权限。

要列出顶级群组的 Google Cloud Logging 流目的地:

  1. 在左侧导航栏,底部,选择 管理员
  2. 选择 监控 > 审计事件
  3. 在主区域中,选择 事件流 选项卡。
  4. 选择 Google Cloud Logging 流以展开所有字段。

更新 Google Cloud Logging 目的地

先决条件:

  • 具有实例的管理员访问权限。

要更新顶级群组的 Google Cloud Logging 流目的地:

  1. 在左侧导航栏,底部,选择 管理员
  2. 选择 监控 > 审计事件
  3. 在主区域中,选择 事件流 选项卡。
  4. 选择要展开的 Google Cloud Logging 流。
  5. 输入一个随机字符串,用作新目的地的名称。
  6. 输入要添加的 Google 项目 ID、Google 客户端电子邮件、日志 ID 和 Google 私钥。
  7. 输入一个随机字符串,用作新目的地的日志ID。之后,您可以使用它在 Google Cloud 中筛选日志结果。
  8. 选择 添加新私钥 并输入 Google 私钥以更新私钥。
  9. 选择 保存 以更新流目的地。

删除 Google Cloud Logging 流目的地

先决条件:

  • 具有实例的管理员访问权限。

要删除顶级群组的 Google Cloud Logging 流目的地:

  1. 在左侧导航栏,底部,选择 管理员
  2. 选择 监控 > 审计事件
  3. 在主区域中,选择 事件流 选项卡。
  4. 选择要展开的 Google Cloud Logging 流。
  5. 选择 删除目的地
  6. 通过在对话框中选择 删除目的地 进行确认。

AWS S3 目的地

  • 引入于极狐GitLab 16.7,使用名为 allow_streaming_instance_audit_events_to_amazon_s3功能标志。默认禁用。
  • 功能标志 allow_streaming_instance_audit_events_to_amazon_s3 在极狐GitLab 16.8 中被移除。

管理整个实例的 AWS S3 目的地。

先决条件

在设置 AWS S3 流审计事件之前,您必须:

  1. 使用适当的凭据和权限为 AWS 创建访问密钥。此帐户用于配置审核日志流身份验证。
  2. 创建一个 AWS S3 桶。此存储桶用于存储审核日志流数据。有关更多信息,请参阅 创建桶

添加新的 AWS S3 目的地

先决条件:

  • 具有实例的管理员访问权限。

要将新的 AWS S3 流目的地添加到实例:

  1. 在左侧导航栏,底部,选择 管理员
  2. 选择 监控 > 审计事件
  3. 在主区域中,选择 事件流 选项卡。
  4. 选择 添加流目的地,然后选择 AWS S3 以显示添加目的地的部分。
  5. 输入一个随机字符串,用作新目的地的名称。
  6. 输入之前从 AWS 创建的访问密钥的 Access Key ID 和 Secret Access Key。
  7. 选择 添加 以添加新的流目的地。

列出 AWS S3 目的地

先决条件:

  • 具有实例的管理员访问权限。

要列出实例的 AWS S3 流目的地。

  1. 在左侧导航栏,底部,选择 管理员
  2. 选择 监控 > 审计事件
  3. 在主区域中,选择 事件流 选项卡。
  4. 选择 AWS S3 流以展开并查看所有的字段。

更新 AWS S3 目的地

先决条件:

  • 具有实例的管理员访问权限。

要更新添加到实例的 AWS S3 流目的地:

  1. 在左侧导航栏,底部,选择 管理员
  2. 选择 监控 > 审计事件
  3. 在主区域中,选择 事件流 选项卡。
  4. 选择 AWS S3 流以展开。
  5. 输入一个随机字符串,用作新目的地的名称。
  6. 输入之前从 AWS 创建的访问密钥的 Access Key ID 和 Secret Access Key。
  7. 选择 添加新密钥 并输入 AWS Secret Access Key 以更新 Secret Access Key。
  8. 选择 保存 以更新流目的地。

删除 AWS S3 流目的地

先决条件:

  • 具有实例的管理员访问权限。

要删除实例的 AWS S3 流目的地:

  1. 在左侧导航栏,底部,选择 管理员
  2. 选择 监控 > 审计事件
  3. 在主区域中,选择 事件流 选项卡。
  4. 选择 AWS S3 流以展开。
  5. 选择 删除目的地
  6. 通过在对话框中选择 删除目的地 进行确认。

相关主题

极狐GitLab 技术支持

如果您在迁移过程中遇到任何问题,您可以在极狐GitLab 官方论坛上发帖求助,您也可以直接扫描下方二维码咨询专业人员:

技术支持