实例的审计事件流
- Tier: Ultimate
- Offering: GitLab Self-Managed, GitLab Dedicated
实例的审计事件流,管理员可以:
- 为整个实例设置流式目标,以接收关于该实例的所有审计事件,格式为结构化 JSON。
- 在第三方系统中管理他们的审计日志。任何可以接收结构化 JSON 数据的服务都可以用作流式目标。
每个流式目标最多可以包含 20 个自定义 HTTP 头部,随每个流式事件一起发送。
GitLab 可能会将单个事件多次流式传输到同一目标。使用负载中的 id 键来去重传入的数据。
审计事件使用 HTTP 支持的 POST 请求方法协议发送。
流式目标会接收所有审计事件数据,这可能包含敏感信息。请确保您信任该流式目标。
管理整个实例的流式目标。
HTTP 目标
先决条件:
- 为了更好的安全性,您应该在目标 URL 上使用 SSL 证书。
管理整个实例的 HTTP 流式目标。
添加新的 HTTP 目标
为实例添加新的 HTTP 流式目标。
先决条件:
- 实例上的管理员权限。
为实例添加流式目标:
- 在左侧边栏底部,选择 Admin。
- 选择 Monitoring > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择 Add streaming destination 并选择 HTTP endpoint 以显示添加目标的区域。
- 在 Name 和 Destination URL 字段中,添加目标名称和 URL。
- 可选。要添加自定义 HTTP 头部,选择 Add header 创建新的名称和值对,并输入它们的值。根据需要重复此步骤。每个流式目标最多可以添加 20 个头部。
- 要使头部生效,选择 Active 复选框。该头部将随审计事件一起发送。
- 选择 Add header 创建新的名称和值对。根据需要重复此步骤。每个流式目标最多可以添加 20 个头部。
- 所有头部填写完成后,选择 Add 添加新的流式目标。
更新 HTTP 目标
先决条件:
- 实例上的管理员权限。
更新实例流式目标的名称:
- 在左侧边栏底部,选择 Admin。
- 选择 Monitoring > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的流。
- 在 Name 字段中,添加要更新的目标名称。
- 选择 Save 更新流式目标。
更新实例流式目标的自定义 HTTP 头部:
- 在左侧边栏底部,选择 Admin。
- 选择 Monitoring > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的流。
- 找到 Custom HTTP headers 表格。
- 找到您要更新的头部。
- 要使头部生效,选择 Active 复选框。该头部将随审计事件一起发送。
- 选择 Add header 创建新的名称和值对。根据需要添加尽可能多的名称和值对。每个流式目标最多可以添加 20 个头部。
- 选择 Save 更新流式目标。
验证事件真实性
每个流式目标都有一个唯一的验证令牌 (verificationToken),可用于验证事件的真实性。此令牌由所有者指定或在创建事件目标时自动生成,且无法更改。
每个流式事件在 X-Gitlab-Event-Streaming-Token HTTP 头部中包含验证令牌,可以在列出流式目标时与目标的值进行验证。
先决条件:
- 实例上的管理员权限。
列出实例的流式目标并查看验证令牌:
- 在左侧边栏底部,选择 Admin。
- 选择 Monitoring > Audit events。
- 在主区域,选择 Streams 标签页。
- 查看每个项目右侧的验证令牌。
更新事件过滤器
启用此功能后,您可以允许用户按目标过滤流式审计事件。 如果功能启用但没有过滤器,目标将接收所有审计事件。
设置了事件类型过滤器的流式目标具有 filtered ( ) 标签。
更新流式目标的事件过滤器:
- 在左侧边栏底部,选择 Admin。
- 选择 Monitoring > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的流。
- 找到 Filter by audit event type 下拉列表。
- 选择下拉列表并选择或清除所需的事件类型。
- 选择 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 目标
先决条件:
- 实例上的管理员权限。
为实例添加 Google Cloud Logging 流式目标:
- 在左侧边栏底部,选择 Admin。
- 选择 Monitoring > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择 Add streaming destination 并选择 Google Cloud Logging 以显示添加目标的区域。
- 输入随机字符串用作新目标的名称。
- 输入之前创建的 Google Cloud 服务账户密钥中的 Google 项目 ID、Google 客户端电子邮件和 Google 私钥,以添加到新目标中。
- 输入随机字符串用作新目标的日志 ID。您稍后可以在 Google Cloud 中使用它来过滤日志结果。
- 选择 Add 添加新的流式目标。
更新 Google Cloud Logging 目标
先决条件:
- 实例上的管理员权限。
更新实例的 Google Cloud Logging 流式目标:
- 在左侧边栏底部,选择 Admin。
- 选择 Monitoring > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的 Google Cloud Logging 流。
- 输入随机字符串用作目标的名称。
- 输入之前创建的 Google Cloud 服务账户密钥中的 Google 项目 ID 和 Google 客户端电子邮件,以更新目标。
- 输入随机字符串以更新目标的日志 ID。您稍后可以在 Google Cloud 中使用它来过滤日志结果。
- 选择 Add a new private key 并输入 Google 私钥以更新私钥。
- 选择 Save 更新流式目标。
AWS S3 目标
管理整个实例的 AWS S3 目标。
先决条件
在设置 AWS S3 流式审计事件之前,您必须:
- 为 AWS 创建具有适当凭据和权限的访问密钥。此账户用于配置审计日志流式传输身份验证。 有关更多信息,请参阅 管理访问密钥。
- 创建 AWS S3 存储桶。此存储桶用于存储审计日志流式传输数据。有关更多信息,请参阅 创建存储桶
添加新的 AWS S3 目标
先决条件:
- 实例上的管理员权限。
为实例添加 AWS S3 流式目标:
- 在左侧边栏底部,选择 Admin。
- 选择 Monitoring > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择 Add streaming destination 并选择 AWS S3 以显示添加目标的区域。
- 输入随机字符串用作新目标的名称。
- 输入之前创建的 AWS 访问密钥和存储桶中的 Access Key ID、Secret Access Key、Bucket Name 和 AWS Region,以添加到新目标中。
- 选择 Add 添加新的流式目标。
更新 AWS S3 目标
先决条件:
- 实例上的管理员权限。
更新实例的 AWS S3 流式目标:
- 在左侧边栏底部,选择 Admin。
- 选择 Monitoring > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的 AWS S3 流。
- 输入随机字符串用作目标的名称。
- 要更新目标,输入之前创建的 AWS 访问密钥和存储桶中的 Access Key ID、Secret Access Key、Bucket Name 和 AWS Region。
- 选择 Add a new Secret Access Key 并输入 AWS Secret Access Key 以更新 Secret Access Key。
- 选择 Save。
列出流式目标
先决条件:
- 实例上的管理员权限。
列出实例的流式目标:
- 在左侧边栏底部,选择 Admin。
- 选择 Monitoring > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的流。
激活或停用流式目标
您可以临时停用审计事件向目标的流式传输,而无需删除目标配置。当流式目标被停用时:
- 审计事件立即停止流式传输到该目标。
- 目标配置被保留。
- 您可以随时重新激活该目标。
- 其他活动目标继续接收事件。
停用流式目标
先决条件:
- 实例上的管理员权限。
停用流式目标:
- 在左侧边栏底部,选择 Admin。
- 选择 Monitoring > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的流。
- 清除 Active 复选框。
- 选择 Save。
目标停止接收审计事件。
激活流式目标
重新激活之前停用的流式目标:
- 在左侧边栏底部,选择 Admin。
- 选择 Monitoring > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的流。
- 选择 Active 复选框。
- 选择 Save。
目标立即恢复接收审计事件。
删除流式目标
删除整个实例的流式目标。当最后一个目标成功删除后,实例的流式传输将被禁用。
先决条件:
- 实例上的管理员权限。
删除实例上的流式目标:
- 在左侧边栏底部,选择 Admin。
- 选择 Monitoring > Audit events。
- 在主区域,选择 Streams 标签页。
- 选择要展开的流。
- 选择 Delete destination。
- 确认选择 Delete destination。
仅删除自定义 HTTP 头部
先决条件:
- 实例上的管理员权限。
仅删除流式目标的自定义 HTTP 头部:
- 在左侧边栏底部,选择 Admin。
- 选择 Monitoring > Audit events。
- 在主区域,选择 Streams 标签页。
- 在项目右侧,选择 Edit ( )。
- 找到 Custom HTTP headers 表格。
- 找到您要删除的头部。
- 在头部右侧,选择 Delete ( )。
- 选择 Save。