監査イベント

GitLabでは、有料プランのオーナーや管理者向けに、GitLabサーバー内で行われた変更を表示する方法を提供しています。

GitLab システム管理者は、ファイルシステム上にあるログを活用することもできます。 詳しくはログシステムのドキュメントをご覧ください。

概要

Audit Eventsは、GitLabオーナーや管理者が、誰が特定のアクションを実行したか、そしてそれが起こった時間などの重要なイベントを追跡するためのツールです。 例えば、これらのアクションは、ユーザーの権限レベルの変更、新しいユーザーの追加、ユーザーの削除などです。

ユースケース

  • GitLabプロジェクトの特定のユーザーの権限レベルを誰が変更したかを確認します。
  • GitLabの特定のプロジェクトグループにアクセスできるユーザーと、その権限レベルを与えたユーザーを追跡します。

イベント一覧

記録されるイベントには2種類あります:

  • グループやプロジェクトにスコープされたイベントで、グループマネージャーやプロジェクトマネージャーが誰が変更を行ったかを調べるために使用します。
  • GitLabインスタンス全体にスコープされたインスタンスイベントで、コンプライアンスチームが正式な監査を行う際に使用します。

なりすましデータ

GitLab Premium13.0から導入されました

なりすましとは、管理者が認証情報を使用して別のユーザーとしてアクションを実行することです。

グループイベント

注:グループの監査イベントページを表示するには、オーナー権限が必要です。

グループの監査イベントを表示するには、[グループ] > [設定] > [監査イベント]に移動します。 そこから、以下のアクションを確認できます:

  • グループ名またはパスの変更
  • グループリポジトリのサイズ制限が変更されました。
  • グループの作成または削除
  • グループの可視性を変更
  • ユーザがグループに追加されました。
  • グループSAML経由のユーザ・サインイン
  • グループに割り当てられたユーザーの権限変更
  • グループからユーザーを削除
  • グループにインポートされたプロジェクトリポジトリ
  • グループで共有されているプロジェクトとその権限
  • プロジェクトと共有されていたグループの削除
  • LFSの有効/無効
  • 共有ランナーの分数制限変更
  • 会員ロックの有効・無効
  • リクエストアクセスの有効・無効
  • 2FAの実施または猶予期間の変更
  • プロジェクトを作成できるロールが変更されました。

グループイベントは、Group Audit Events APIからもアクセスできます。

プロジェクトイベント

注:プロジェクトの監査イベントページを表示するには、メンテナー権限以上が必要です。

プロジェクトの監査イベントを表示するには、[Project] > [Settings] > [Audit Events] を選択します。 そこから、以下のアクションを確認できます:

  • デプロイキーの追加と削除
  • プロジェクトの作成、削除、名前の変更、移動(転送)、パスの変更
  • プロジェクトの可視性レベルを変更
  • プロジェクトに追加されたユーザーと権限
  • プロジェクトに割り当てられたユーザーの権限変更
  • ユーザーがプロジェクトから削除されました。
  • プロジェクトエクスポートがダウンロードされました。
  • プロジェクトリポジトリをダウンロードしました。
  • プロジェクトのアーカイブ化
  • プロジェクトはアーカイブされませんでした。
  • 保護ブランチの追加、削除、更新
  • プロジェクトにリリースが追加されました。
  • リリースを更新しました
  • リリースマイルストーンの関連付けが変更されました。
  • コミッターによるマージリクエストの承認権限が更新されました(GitLab 12.9 で導入)
  • 作成者によるマージリクエストの承認権限が更新されました(GitLab 12.9 で導入)
  • 必要な承認者数を更新しました(GitLab 12.9で導入)

プロジェクトイベントは、Project Audit Events APIからもアクセスできます。

インスタンスイベント

GitLab Premium9.3で導入されました

サーバー全体の監査ロギングは、GitLabサーバーのインスタンス全体のユーザーアクションを観察する機能を導入し、監査目的のために誰がいつ何を変更したかを簡単に理解できるようにします。

サーバー全体の管理ログを表示するには、管理エリア > 監視 > 監査ログにアクセスします。

グループやプロジェクトのイベントに加え、以下のユーザーアクションも記録されます:

  • ログイン失敗
  • サインインイベントと認証タイプ(標準、LDAP、OmniAuthなど)
  • SSHキーの追加
  • 電子メールの追加または削除
  • パスワード変更
  • パスワードの再設定を依頼
  • OAuth アクセスの許可
  • ユーザーなりすましの開始または停止
  • ユーザー名の変更(GitLab 12.8 で導入)
  • ユーザが削除されました(GitLab 12.8で導入)
  • ユーザを追加しました(GitLab 12.8で導入)
  • GitLab 12.8で導入されました
  • API経由でユーザーがブロックされました(GitLab 12.9で導入)

フィルタのドロップダウンボックスから監査データタイプを選択することで、特定のアクションをフィルタリングすることができます。 さらに、特定のグループ、プロジェクト、またはユーザー(認証イベントの場合)でフィルタリングすることができます。

audit log

インスタンスイベントは、Instance Audit Events APIからもアクセスできます。

欠場イベント

監査イベント(Audit Events)で追跡されていないイベントもあります。 追跡されていないイベントの詳細と、これらのイベントをGitLabに追加する進捗については、以下のエピックを見てください:

障害者イベント

リポジトリプッシュ

現在の監査イベントのアーキテクチャは、非常に大量のレコードを受け取る準備ができていません。 プロジェクトや監査ログのユーザーインターフェイスが非常に混雑し、audit_events PostgreSQLテーブルによって消費されるディスク容量が大幅に増加する可能性があります。 GitLabインスタンスでGitの書き込みトラフィックが非常に多い場合にパフォーマンスが低下するのを防ぐため、デフォルトで無効になっています。

今後のリリースでは、git プッシュイベントの監査ログがデフォルトで有効になります。 アップデートは#7865に従ってください。

インスタンスでリポジトリのプッシュイベントを有効にしたい場合は、以下の手順に従ってください。

オムニバスのインストールで:

  1. Railsコンソールに入ります:

    sudo gitlab-rails console
    
  2. スイッチを入れ、機能フラグを有効にします:

    Feature.enable(:repository_push_audit_event)