Help us learn about your current experience with the documentation. Take the survey.

顶级组的审计事件流

  • Tier: Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

通过顶级组的审计事件流功能,组所有者可以:

  • 为顶级组设置流式目标,以接收关于该组、子组和所有项目的审计事件,数据格式为结构化 JSON。
  • 在第三方系统中管理其审计日志。任何能够接收结构化 JSON 数据的服务都可以用作流式目标。

每个流式目标:

  • 最多可以包含 20 个自定义 HTTP 头,每个流式事件都会附带这些头。
  • 对于 GitLab.com,必须允许来自 GitLab.com IP 地址范围 的流量。

GitLab 可能会对同一目标多次发送同一个事件。使用负载中的 id 键来去重传入的数据。

审计事件使用 HTTP 支持的 POST 请求方法协议发送。

流式目标会接收所有审计事件数据,其中可能包含敏感信息。请确保您信任该流式目标。

HTTP 目标

先决条件:

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

管理顶级组的 HTTP 流式目标。

添加新的 HTTP 目标

为顶级组添加新的 HTTP 流式目标。

先决条件:

  • 顶级组的 Owner 角色。

为顶级组添加流式目标:

  1. 在左侧边栏,选择 Search or go to 并找到您的组。
  2. 选择 Secure > Audit events
  3. 在主区域,选择 Streams 标签页。
  4. 选择 Add streaming destination,然后选择 HTTP endpoint 以显示添加目标的区域。
  5. NameDestination URL 字段中,添加目标名称和 URL。
  6. 可选。找到 Custom HTTP headers 表格。
  7. 要使头文件生效,请选择 Active 复选框。该头文件将随审计事件一起发送。
  8. 选择 Add header 创建新的名称和值对。根据需要输入尽可能多的名称和值对。每个流式目标最多可以添加 20 个头。
  9. 填写完所有头后,选择 Add 添加新的流式目标。

更新 HTTP 目标

先决条件:

  • 组的 Owner 角色。

更新流式目标的名称:

  1. 在左侧边栏,选择 Search or go to 并找到您的组。
  2. 选择 Secure > Audit events
  3. 在主区域,选择 Streams 标签页。
  4. 选择要展开的流。
  5. Name 字段中,输入要更新的目标名称。
  6. 选择 Save 更新流式目标。

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

  1. 在左侧边栏,选择 Search or go to 并找到您的组。
  2. 选择 Secure > Audit events
  3. 在主区域,选择 Streams 标签页。
  4. 选择要展开的流。
  5. 找到 Custom HTTP headers 表格。
  6. 找到您要更新的头。
  7. 要使头文件生效,请选择 Active 复选框。该头文件将随审计事件一起发送。
  8. 选择 Add header 创建新的名称和值对。根据需要输入尽可能多的名称和值对。每个流式目标最多可以添加 20 个头。
  9. 选择 Save 更新流式目标。

验证事件真实性

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

verificationToken 参数只能通过使用 GraphQL API 来设置。

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

先决条件:

  • 组的 Owner 角色。

列出流式目标并查看验证令牌:

  1. 在左侧边栏,选择 Search or go to 并找到您的组。
  2. 选择 Secure > Audit events
  3. 在主区域,选择 Streams 标签页。
  4. 选择要展开的流。
  5. 找到 Verification token 输入框。

更新事件过滤器

当为组启用此功能时,您可以允许用户按目标过滤流式审计事件。如果启用功能但未设置过滤器,目标将接收所有审计事件。

设置了事件类型过滤器的流式目标会有一个 filtered ( filter ) 标签。

更新流式目标的事件过滤器:

  1. 在左侧边栏,选择 Search or go to 并找到您的组。
  2. 选择 Secure > Audit events
  3. 在主区域,选择 Streams 标签页。
  4. 选择要展开的流。
  5. 找到 Filter by audit event type 下拉列表。
  6. 选择下拉列表并选择或清除所需的事件类型。
  7. 选择 Save 更新事件过滤器。

更新命名空间过滤器

当为组启用此功能时,您可以允许用户按目标过滤流式审计事件。如果启用功能但未设置过滤器,目标将接收所有审计事件。

设置了命名空间过滤器的流式目标会有一个 filtered ( filter ) 标签。

更新流式目标的命名空间过滤器:

  1. 在左侧边栏,选择 Search or go to 并找到您的组。
  2. 选择 Secure > Audit events
  3. 在主区域,选择 Streams 标签页。
  4. 选择要展开的流。
  5. 找到 Filter by groups or projects 下拉列表。
  6. 选择下拉列表并选择或清除所需的命名空间。
  7. 选择 Save 更新命名空间过滤器。

覆盖默认内容类型头

默认情况下,流式目标使用 application/x-www-form-urlencodedcontent-type 头。但是,您可能希望将 content-type 头设置为其他值,例如 application/json

要覆盖顶级组流式目标的 content-type 头默认值,请使用以下任一方法:

Google Cloud Logging 目标

管理顶级组的 Google Cloud Logging 目标。

先决条件

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

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

添加新的 Google Cloud Logging 目标

先决条件:

  • 顶级组的 Owner 角色。

为顶级组添加 Google Cloud Logging 流式目标:

  1. 在左侧边栏,选择 Search or go to 并找到您的组。
  2. 选择 Secure > Audit events
  3. 在主区域,选择 Streams 标签页。
  4. 选择 Add streaming destination,然后选择 Google Cloud Logging 以显示添加目标的区域。
  5. 输入一个随机字符串用作新目标的名称。
  6. 输入之前创建的 Google Cloud 服务账户密钥中的 Google 项目 ID、Google 客户端邮箱和 Google 私钥,以添加到新目标中。
  7. 输入一个随机字符串用作新目标的日志 ID。您稍后可以在 Google Cloud 中使用此 ID 过滤日志结果。
  8. 选择 Add 添加新的流式目标。

更新 Google Cloud Logging 目标

先决条件:

  • 顶级组的 Owner 角色。

为顶级组更新 Google Cloud Logging 流式目标:

  1. 在左侧边栏,选择 Search or go to 并找到您的组。
  2. 选择 Secure > Audit events
  3. 在主区域,选择 Streams 标签页。
  4. 选择要展开的 Google Cloud Logging 流。
  5. 输入一个随机字符串用作目标的名称。
  6. 输入之前创建的 Google Cloud 服务账户密钥中的 Google 项目 ID 和 Google 客户端邮箱,以更新目标。
  7. 输入一个随机字符串更新目标的日志 ID。您稍后可以在 Google Cloud 中使用此 ID 过滤日志结果。
  8. 选择 Add a new private key 并输入 Google 私钥以更新私钥。
  9. 选择 Save 更新流式目标。

AWS S3 目标

管理顶级组的 AWS S3 目标。

先决条件

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

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

添加新的 AWS S3 目标

先决条件:

  • 顶级组的 Owner 角色。

为顶级组添加 AWS S3 流式目标:

  1. 在左侧边栏,选择 Search or go to 并找到您的组。
  2. 选择 Secure > Audit events
  3. 在主区域,选择 Streams 标签页。
  4. 选择 Add streaming destination,然后选择 AWS S3 以显示添加目标的区域。
  5. 输入一个随机字符串用作新目标的名称。
  6. 输入之前创建的 AWS 访问密钥和存储桶中的 Access Key IDSecret Access KeyBucket NameAWS Region,以添加到新目标中。
  7. 选择 Add 添加新的流式目标。

更新 AWS S3 目标

先决条件:

  • 顶级组的 Owner 角色。

为顶级组更新 AWS S3 流式目标:

  1. 在左侧边栏,选择 Search or go to 并找到您的组。
  2. 选择 Secure > Audit events
  3. 在主区域,选择 Streams 标签页。
  4. 选择要展开的 AWS S3 流。
  5. 输入一个随机字符串用作目标的名称。
  6. 要更新目标,请输入之前创建的 AWS 访问密钥和存储桶中的 Access Key IDSecret Access KeyBucket NameAWS Region
  7. 要更新 Secret Access Key,请选择 Add a new Secret Access Key 并输入 AWS Secret Access Key。
  8. 选择 Save

列出流式目标

先决条件:

  • 顶级组的 Owner 角色。

列出顶级组的流式目标:

  1. 在左侧边栏,选择 Search or go to 并找到您的组。
  2. 选择 Secure > Audit events
  3. 在主区域,选择 Streams 标签页。
  4. 选择要展开的流。

激活或停用流式目标

您可以临时停用向目标的审计事件流,而无需删除目标配置。当流式目标被停用时:

  • 审计事件立即停止流向该目标。
  • 目标配置被保留。
  • 您可以随时重新激活该目标。
  • 其他活动目标继续接收事件。

停用流式目标

先决条件:

  • 顶级组的 Owner 角色。

停用流式目标:

  1. 在左侧边栏,选择 Search or go to 并找到您的组。
  2. 选择 Secure > Audit events
  3. 在主区域,选择 Streams 标签页。
  4. 选择要展开的流。
  5. 清除 Active 复选框。
  6. 选择 Save

目标停止接收审计事件。

激活流式目标

重新激活之前停用的流式目标:

  1. 在左侧边栏,选择 Search or go to 并找到您的组。
  2. 选择 Secure > Audit events
  3. 在主区域,选择 Streams 标签页。
  4. 选择要展开的流。
  5. 选择 Active 复选框。
  6. 选择 Save

目标立即恢复接收审计事件。

删除流式目标

删除顶级组的流式目标。当最后一个目标成功删除后,顶级组的流式功能将被禁用。

先决条件:

  • 顶级组的 Owner 角色。

删除顶级组的流式目标:

  1. 在左侧边栏,选择 Search or go to 并找到您的组。
  2. 选择 Secure > Audit events
  3. 在主区域,选择 Streams 标签页。
  4. 选择要展开的流。
  5. 选择 Delete destination
  6. 确认选择 Delete destination

仅删除自定义 HTTP 头

先决条件:

  • 顶级组的 Owner 角色。

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

  1. 在左侧边栏,选择 Search or go to 并找到您的组。
  2. 选择 Secure > Audit events
  3. 在主区域,选择 Streams 标签页。
  4. 选择要展开的流。
  5. 找到 Custom HTTP headers 表格。
  6. 找到您要删除的头。
  7. 在头的右侧,选择 Delete ( remove )。
  8. 选择 Save

相关主题