顶级组的审计事件流
- 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 角色。
为顶级组添加流式目标:
- 在左侧边栏,选择 Search or go to 并找到您的组。
- 选择 Secure > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择 Add streaming destination,然后选择 HTTP endpoint 以显示添加目标的区域。
- 在 Name 和 Destination URL 字段中,添加目标名称和 URL。
- 可选。找到 Custom HTTP headers 表格。
- 要使头文件生效,请选择 Active 复选框。该头文件将随审计事件一起发送。
- 选择 Add header 创建新的名称和值对。根据需要输入尽可能多的名称和值对。每个流式目标最多可以添加 20 个头。
- 填写完所有头后,选择 Add 添加新的流式目标。
更新 HTTP 目标
先决条件:
- 组的 Owner 角色。
更新流式目标的名称:
- 在左侧边栏,选择 Search or go to 并找到您的组。
- 选择 Secure > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的流。
- 在 Name 字段中,输入要更新的目标名称。
- 选择 Save 更新流式目标。
更新流式目标的自定义 HTTP 头:
- 在左侧边栏,选择 Search or go to 并找到您的组。
- 选择 Secure > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的流。
- 找到 Custom HTTP headers 表格。
- 找到您要更新的头。
- 要使头文件生效,请选择 Active 复选框。该头文件将随审计事件一起发送。
- 选择 Add header 创建新的名称和值对。根据需要输入尽可能多的名称和值对。每个流式目标最多可以添加 20 个头。
- 选择 Save 更新流式目标。
验证事件真实性
每个流式目标都有一个唯一的验证令牌 (verificationToken),可用于验证事件的真实性。此令牌由所有者指定或在创建事件目标时自动生成,且无法更改。
verificationToken 参数只能通过使用 GraphQL API 来设置。
每个流式事件都在 X-Gitlab-Event-Streaming-Token HTTP 头中包含验证令牌,可以在列出流式目标时与目标值进行验证。
先决条件:
- 组的 Owner 角色。
列出流式目标并查看验证令牌:
- 在左侧边栏,选择 Search or go to 并找到您的组。
- 选择 Secure > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的流。
- 找到 Verification token 输入框。
更新事件过滤器
当为组启用此功能时,您可以允许用户按目标过滤流式审计事件。如果启用功能但未设置过滤器,目标将接收所有审计事件。
设置了事件类型过滤器的流式目标会有一个 filtered ( ) 标签。
更新流式目标的事件过滤器:
- 在左侧边栏,选择 Search or go to 并找到您的组。
- 选择 Secure > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的流。
- 找到 Filter by audit event type 下拉列表。
- 选择下拉列表并选择或清除所需的事件类型。
- 选择 Save 更新事件过滤器。
更新命名空间过滤器
当为组启用此功能时,您可以允许用户按目标过滤流式审计事件。如果启用功能但未设置过滤器,目标将接收所有审计事件。
设置了命名空间过滤器的流式目标会有一个 filtered ( ) 标签。
更新流式目标的命名空间过滤器:
- 在左侧边栏,选择 Search or go to 并找到您的组。
- 选择 Secure > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的流。
- 找到 Filter by groups or projects 下拉列表。
- 选择下拉列表并选择或清除所需的命名空间。
- 选择 Save 更新命名空间过滤器。
覆盖默认内容类型头
默认情况下,流式目标使用 application/x-www-form-urlencoded 的 content-type 头。但是,您可能希望将 content-type 头设置为其他值,例如 application/json。
要覆盖顶级组流式目标的 content-type 头默认值,请使用以下任一方法:
Google Cloud Logging 目标
管理顶级组的 Google Cloud Logging 目标。
先决条件
在设置 Google Cloud Logging 流式审计事件之前,您必须:
- 在您的 Google Cloud 项目上启用 Cloud Logging API。
- 为 Google Cloud 创建具有适当凭据和权限的服务账户。此账户用于配置审计日志流式身份验证。 更多信息,请参阅 Google Cloud 文档中创建和管理服务账户。
- 为服务账户启用 Logs Writer 角色,以在 Google Cloud 上启用日志记录。更多信息,请参阅 使用 IAM 进行访问控制。
- 为服务账户创建 JSON 密钥。更多信息,请参阅 创建服务账户密钥。
添加新的 Google Cloud Logging 目标
先决条件:
- 顶级组的 Owner 角色。
为顶级组添加 Google Cloud Logging 流式目标:
- 在左侧边栏,选择 Search or go to 并找到您的组。
- 选择 Secure > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择 Add streaming destination,然后选择 Google Cloud Logging 以显示添加目标的区域。
- 输入一个随机字符串用作新目标的名称。
- 输入之前创建的 Google Cloud 服务账户密钥中的 Google 项目 ID、Google 客户端邮箱和 Google 私钥,以添加到新目标中。
- 输入一个随机字符串用作新目标的日志 ID。您稍后可以在 Google Cloud 中使用此 ID 过滤日志结果。
- 选择 Add 添加新的流式目标。
更新 Google Cloud Logging 目标
先决条件:
- 顶级组的 Owner 角色。
为顶级组更新 Google Cloud Logging 流式目标:
- 在左侧边栏,选择 Search or go to 并找到您的组。
- 选择 Secure > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的 Google Cloud Logging 流。
- 输入一个随机字符串用作目标的名称。
- 输入之前创建的 Google Cloud 服务账户密钥中的 Google 项目 ID 和 Google 客户端邮箱,以更新目标。
- 输入一个随机字符串更新目标的日志 ID。您稍后可以在 Google Cloud 中使用此 ID 过滤日志结果。
- 选择 Add a new private key 并输入 Google 私钥以更新私钥。
- 选择 Save 更新流式目标。
AWS S3 目标
管理顶级组的 AWS S3 目标。
先决条件
在设置 AWS S3 流式审计事件之前,您必须:
- 为 AWS 创建具有适当凭据和权限的访问密钥。此账户用于配置审计日志流式身份验证。 更多信息,请参阅 管理访问密钥。
- 创建 AWS S3 存储桶。此存储桶用于存储审计日志流式数据。更多信息,请参阅 创建存储桶。
添加新的 AWS S3 目标
先决条件:
- 顶级组的 Owner 角色。
为顶级组添加 AWS S3 流式目标:
- 在左侧边栏,选择 Search or go to 并找到您的组。
- 选择 Secure > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择 Add streaming destination,然后选择 AWS S3 以显示添加目标的区域。
- 输入一个随机字符串用作新目标的名称。
- 输入之前创建的 AWS 访问密钥和存储桶中的 Access Key ID、Secret Access Key、Bucket Name 和 AWS Region,以添加到新目标中。
- 选择 Add 添加新的流式目标。
更新 AWS S3 目标
先决条件:
- 顶级组的 Owner 角色。
为顶级组更新 AWS S3 流式目标:
- 在左侧边栏,选择 Search or go to 并找到您的组。
- 选择 Secure > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的 AWS S3 流。
- 输入一个随机字符串用作目标的名称。
- 要更新目标,请输入之前创建的 AWS 访问密钥和存储桶中的 Access Key ID、Secret Access Key、Bucket Name 和 AWS Region。
- 要更新 Secret Access Key,请选择 Add a new Secret Access Key 并输入 AWS Secret Access Key。
- 选择 Save。
列出流式目标
先决条件:
- 顶级组的 Owner 角色。
列出顶级组的流式目标:
- 在左侧边栏,选择 Search or go to 并找到您的组。
- 选择 Secure > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的流。
激活或停用流式目标
您可以临时停用向目标的审计事件流,而无需删除目标配置。当流式目标被停用时:
- 审计事件立即停止流向该目标。
- 目标配置被保留。
- 您可以随时重新激活该目标。
- 其他活动目标继续接收事件。
停用流式目标
先决条件:
- 顶级组的 Owner 角色。
停用流式目标:
- 在左侧边栏,选择 Search or go to 并找到您的组。
- 选择 Secure > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的流。
- 清除 Active 复选框。
- 选择 Save。
目标停止接收审计事件。
激活流式目标
重新激活之前停用的流式目标:
- 在左侧边栏,选择 Search or go to 并找到您的组。
- 选择 Secure > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的流。
- 选择 Active 复选框。
- 选择 Save。
目标立即恢复接收审计事件。
删除流式目标
删除顶级组的流式目标。当最后一个目标成功删除后,顶级组的流式功能将被禁用。
先决条件:
- 顶级组的 Owner 角色。
删除顶级组的流式目标:
- 在左侧边栏,选择 Search or go to 并找到您的组。
- 选择 Secure > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的流。
- 选择 Delete destination。
- 确认选择 Delete destination。
仅删除自定义 HTTP 头
先决条件:
- 顶级组的 Owner 角色。
仅删除流式目标的自定义 HTTP 头:
- 在左侧边栏,选择 Search or go to 并找到您的组。
- 选择 Secure > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的流。
- 找到 Custom HTTP headers 表格。
- 找到您要删除的头。
- 在头的右侧,选择 Delete ( )。
- 选择 Save。