审计事件

使用审计事件来跟踪重要事件,包括执行相关操作的人员和时间。您可以使用审计事件来跟踪例如:

  • 谁更改了极狐GitLab 项目的特定用户的权限级别,以及何时更改。
  • 谁添加了新用户或删除了用户,以及何时更改。

极狐GitLab API、数据库和 audit_json.log 记录了许多审计事件。一些审计事件只能通过审计事件流获得。

您还可以生成审计事件的审计报告

事件列表

记录两种事件:

  • 范围为群组或项目的事件,由群组和项目经理用于查找进行更改的人员。
  • 范围为整个极狐GitLab 实例的实例事件,由您的合规团队用于执行正式审计。
note一些事件被记录下来并且只能作为审计事件流使用。

模拟数据

当用户被模拟时,他们的操作像往常一样被记录为审计事件,还有两个额外的细节:

  1. 通常的审计事件包括有关模拟管理员的信息。这些审计事件在其各自的审计事件页面中可见,具体取决于它们的类型(群组、项目或用户)。
  2. 为管理员模拟会话的开始和停止记录额外的审计事件。这些审计事件可见于:
    • 实例审计事件。
    • 用户所属的所有群组的群组审计事件(14.8 及更高版本)。出于性能原因,群组审计事件仅限于您所属的最早的 20 个群组。

audit events

群组事件

对于以下用户:

  • 所有者角色(或以上)可以检索所有用户的群组审计事件。
  • 开发者或维护者角色,限制基于其各自的操作的群组审计事件。

群组事件不包括项目审计事件。

查看群组的审计事件:

  1. 转到群组。
  2. 在左侧边栏上,选择 安全与合规 > 审计事件

从那里,您可以看到以下操作:

  • 群组名或路径的更改。
  • 群组仓库大小限制的更改。
  • 群组创建或删除。
  • 群组可见性的更改
  • 用户已添加到群组中以及具有哪些权限。
  • 用户通过群组 SAML 登录。
  • 于 14.5 版本,引入以下群组 SAML 配置的更改:
    • 启用状态
    • 对 Web 活动强制执行仅 SSO 身份验证。
    • 对 Git 和依赖代理活动强制执行仅 SSO 身份验证。
    • 强制用户拥有专用的群组管理帐户。
    • 禁止外部派生。
    • Identity provider SSO URL。
    • 证书指纹。
    • 默认成员角色。
    • SSO-SAML 群组同步配置。
  • 将用户分配到群组的权限更改。
  • 从群组中删除用户。
  • 项目仓库导入群组。
  • 与群组共享的项目以及权限。
  • 删除以前与项目共享的群组。
  • LFS 启用或禁用。
  • 共享 runner 的分钟限制已更改。
  • 启用或禁用成员锁定。
  • 启用或禁用请求访问。
  • 2FA 是否强制执行或宽限期已更改。
  • 允许创建项目的角色已更改。
  • 群组 CI/CD 变量添加、删除或受保护状态已更改。引入于 13.3 版本。
  • 创建、更新或删除合规框架。引入于 14.5 版本。
  • 创建、更新或删除的事件流目的地。引入于 14.6 版本。
  • 实例管理员开始或停止模拟群组成员。引入于 14.8 版本。
  • 群组部署令牌已成功创建、撤销或删除。引入于 14.9 版本。
  • 尝试创建群组部署令牌失败。引入于 14.9 版本。
  • IP 限制变更。引入于 15.0 版本。
  • 推送规则的变更。引入于 15.0 版本。
  • 引入于 15.1 版本,更改以下合并请求批准设置:
    • 阻止作者批准。
    • 阻止添加提交的用户批准。
    • 阻止编辑项目中的批准规则和合并请求。
    • 需要用户密码才能批准。
    • 将提交添加到源分支时删除所有批准。
  • 对审计事件流目的地的自定义 HTTP header 的更改。引入于 15.3 版本。
  • 群组已关联、更改或取消关联安全策略项目。引入于 15.6 版本。

项目事件

具有维护者角色(或以上)的用户可以检索所有用户的项目审计事件。 具有开发者角色的用户仅限于基于其个人操作的项目审计事件。

查看项目的审计事件:

  1. 进入项目。
  2. 在左侧边栏中,选择 安全与合规 > 审计事件

您可以看到以下操作:

  • 添加或删除部署密钥
  • 项目创建、删除、重命名、移动(转移)、更改路径
  • 项目更改了可见性级别
  • 用户已添加到项目中以及具有哪些权限
  • 分配给项目的用户的权限更改
  • 用户已从项目中删除
  • 项目导出已下载
  • 项目仓库已下载
  • 项目已归档
  • 项目取消归档
  • 添加、删除或更新受保护的分支
  • 发布已添加到项目中
  • 发布已更新
  • 发布已删除(引入于 15.3 版本)
  • 发布里程碑关联已更改
  • 提交者批准合并请求的权限已更新
    • 事件消息更改于 14.6 版本
  • 作者批准合并请求的权限已更新
  • 所需批准的数量已更新
  • 在项目审批群组中添加或删除用户和群组
  • 项目 CI/CD 变量添加、删除或受保护状态已更改
  • 项目访问令牌已成功创建或撤销(引入于 13.9 版本)
  • 尝试创建或撤销项目访问令牌失败(引入于 13.9 版本)
  • 当项目的默认分支更改时(引入于 13.9 版本)
  • 创建、更新或删除 DAST 配置文件、DAST 扫描程序配置文件和 DAST 站点配置文件(引入于 14.1 版本)
  • 更改了项目的合规性框架(引入于 14.1 版本)
  • 批准所需的用户密码已更新(引入于 14.2 版本)
  • 合并请求中修改合并请求批准规则的权限已更新(引入于 14.2 版本)
  • 将新提交添加到 MR 时的新批准要求已更新(引入于 14.2 版本)
  • 功能标志的策略何时更改(引入于 14.3 版本)
  • 允许强制推送到受保护的分支已更改(引入于 14.3 版本)
  • 针对受保护分支的合并请求的代码所有者批准要求已更改(引入于 14.3 版本)
  • 允许合并和推送到添加或删除的受保护分支的用户和群组(引入于 14.3 版本)
  • 项目部署令牌已成功创建、撤销或删除(引入于 14.9 版本)
  • 尝试创建项目部署令牌失败(引入于 14.9 版本)
  • 添加、编辑或删除状态检查(引入于 15.0 版本)
  • 合并提交消息模板已更新(引入于 15.0 版本)
  • 压缩提交消息模板已更新(引入于 15.0 版本)
  • 合并请求的默认描述模板已更新(引入于 15.0 版本)
  • 由于不活动,项目被计划删除(引入于 15.0 版本)
  • 项目已关联、更改或取消关联安全策略项目。引入于 15.6 版本。

项目事件查询最长为 30 天。

实例事件

服务器范围的审计事件引入了在 GitLab 服务器的整个实例中观察用户操作的能力,从而以审计为目的,可以轻松了解谁以及何时更改了哪些内容。

实例事件不包括群组或项目审计事件。

查看服务器范围的审计事件:

  1. 在顶部栏上,选择 主菜单 > 管理员
  2. 在左侧边栏上,选择 监控 > 审计事件

记录以下用户操作:

  • 登录事件和身份验证类型(例如标准、LDAP 或 OmniAuth)
  • 登录失败
  • 添加了 SSH 密钥
  • 添加或删除电子邮件
  • 更改密码
  • 要求重置密码
  • 授予 OAuth 访问权限
  • 开始或停止用户模拟
  • 更改了用户名
  • 用户被删除
  • 添加了用户
  • 用户请求访问实例
  • 用户通过管理中心获得批准
  • 用户通过管理中心被拒绝
  • 用户通过管理中心被阻止
  • 用户通过 API 被阻止
  • 失败的双重身份认证尝试
  • 成功创建或撤销了用户的个人访问令牌
  • 尝试创建或撤销用户的个人访问令牌失败
  • 添加或删除管理员(引入于 14.1 版本)
  • SSH 密钥已删除(引入于 14.1 版本)
  • GPG 密钥已添加或已删除(引入于 14.1 版本)
  • 用户的双重身份验证被禁用(引入于 15.1 版本)

登录事件

成功登录事件是在所有订阅级别中都可用的唯一审计事件。要查看成功的登录事件:

  1. 选择您的头像。
  2. 选择 编辑个人资料 > 认证日志

从免费版升级到付费版后,直到记录更多事件之前,成功登录事件是审计事件视图中唯一可见的审计事件。

“已删除用户” 事件

删除用户后为用户创建审计事件。与事件关联的用户名设置为“已删除用户”,因为实际用户名是不可知的。例如,如果已删除用户对项目的访问权限由于到期而自动删除,则会为“已删除用户”创建审计事件。

已删除的事件

仓库推送事件功能:

  • 仓库推送事件废弃于 14.3 版本。
  • 仓库推送事件移除于 15.0 版本。

搜索

您可以看到的搜索过滤器取决于您所处的审计级别。

过滤器 可用选项
范围(项目级别) 执行操作的特定用户。
范围(群组级别) 执行操作的特定用户(在群组中)。
范围(实例级别) 操作范围的特定群组、项目或用户。
日期范围 通过日期范围按钮或选择器选择(最长范围为 31 天)。默认是从当月的第一天到今天的日期。

audit events

导出到 CSV

导出为 CSV 允许客户将审计事件的当前过滤视图导出为 CSV 文件,该文件以纯文本形式存储表格数据。这些数据提供了有关审计事件的全面视图。

将审计事件导出到 CSV:

  1. 在顶部栏上,选择 主菜单 > 管理员
  2. 在左侧边栏上,选择 监控 > 审计事件
  3. 选择可用的搜索过滤器
  4. 选择 导出为 CSV

分类

导出的事件始终按 created_at 升序排序。

格式

数据使用逗号作为列分隔符进行编码,如果需要,使用 " 来引用字段,并使用换行符分隔行。 第一行包含标题,下表列出了这些标题以及值的描述:

Column Description
ID 审计事件 id
Author ID 作者 ID
Author Name 作者的全名
Entity ID 事件范围 ID
Entity Type 事件范围类型 (Project/Group/User)
Entity Path 事件范围路径
Target ID 目标 ID
Target Type 目标类型
Target Details 目标详情
Action 操作描述
IP Address 执行该操作的作者的 IP 地址
Created At (UTC) 格式 YYYY-MM-DD HH:MM:SS

限制

审计事件 CSV 文件被限制为最多 100,000 个事件。 达到此限制时,将截断其余记录。