監査イベント

監査イベントを使用して、誰がいつ関連アクションを実行したかなど、重要なイベントを追跡します。監査イベントを使用して、たとえば次のようなイベントを追跡できます:

  • GitLabプロジェクトの特定のユーザーの権限レベルを誰がいつ変更したか。
  • 誰がいつ新しいユーザーを追加したり、ユーザーを削除したか。

監査イベントはログシステムに似ています。

GitLab API、データベース、audit_json.log は多くの監査イベントを記録します。監査イベントの中には、監査イベントのストリーミングを通してのみ利用できるものもあります。

監査イベントの監査レポートを作成することもできます。

note
監査イベントの保存ポリシーは設定できませんが、エピック7917はこれを変更することを提案しています。

タイムゾーン

GitLab 15.7で導入されたGitLab UIは、日付と時間をUTCではなくユーザーのローカルタイムゾーンで表示します。

監査イベントに使用されるタイムゾーンは、表示する場所によって異なります:

  • GitLab UIでは、ローカルタイムゾーン(GitLab 15.7以降)またはUTC(GitLab 15.6以前)が使用されます。
  • Audit Events APIはデフォルトでUTCの日時を返すか、セルフマネージドGitLabインスタンスでは設定されたタイムゾーンを返します。
  • audit_json.logでは UTC が使われます。
  • CSVエクスポートでは、UTCが使用されます。

監査イベントの表示

閲覧したいイベントにもよりますが、最低限必要なものは以下の通りです:

  • グループ内の全ユーザーのグループ監査イベントの場合、グループのオーナーロール。
  • プロジェクト内のすべてのユーザーのプロジェクト監査イベントについては、プロジェクトのメンテナーのロール。
  • 自分自身のアクションに基づくグループやプロジェクトの監査イベントに対しては、グループやプロジェクトの開発者ロール。
  • 監査役ユーザーは、すべてのユーザーのグループおよびプロジェクトイベントを見ることができます。

グループまたはプロジェクトにスコープされた監査イベントを表示できます。

グループの監査イベントを表示するには、以下の手順に従います:

  1. グループに移動します。
  2. 左側のサイドバーで、[セキュリティ] > [監査イベント]を選択します。

グループイベントにはプロジェクト監査イベントは含まれません。グループイベントには、Group Audit Events API を使用してアクセスすることもできます。グループイベントのクエリは、最大 30 日間に制限されます。

プロジェクトの監査イベントを表示するには:

  1. プロジェクトに移動します。
  2. 左側のサイドバーで、[セキュリティ] > [監査イベント]を選択します。

プロジェクト・イベントは、Project Audit Events APIを使用してアクセスすることもできます。プロジェクトイベントのクエリは最大30日間に制限されています。

インスタンス監査イベントの表示

GitLabインスタンス全体のユーザーアクションによる監査イベントを見ることができます。

インスタンスの監査イベントを見るには

  1. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  2. Admin Areaを選択します。
  3. 左サイドバーで、[モニタリング] > [監査イベント]を選択します。

CSVエクスポート

インスタンス監査イベントの現在のビュー(フィルタを含む)をCSVファイルとしてエクスポートすることができます。インスタンス監査イベントをCSVにエクスポートするには:

  1. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  2. Admin Areaを選択します。
  3. 左サイドバーで、[モニタリング] > [監査イベント]を選択します。
  4. 利用可能な検索フィルタを選択します。
  5. CSVエクスポートを選択します。

エクスポートされたファイルです:

  • created_at で昇順にソートされます。
  • 最大100,000イベントに制限されています。この制限に達すると、残りのレコードは切り捨てられます。

データは

  • カラムの区切り文字はカンマです。
  • " 必要に応じてフィールドを引用符で囲みます。
  • 改行で行を区切ります。

最初の行にはヘッダーが含まれ、以下の表に値の説明とともに記載されています:

カラム説明
ID監査イベントid.
作成者ID作成者のID。
作成者名作成者のフルネーム。
エンティティIDスコープのID
エンティティ・タイプスコープのタイプ (Project,Group,User, またはGitlab::Audit::InstanceScope)。
エンティティパススコープのパス。
ターゲットIDターゲットのID
ターゲットタイプターゲットのタイプ
ターゲットの詳細ターゲットの詳細
アクションアクションの説明。
IPアドレスアクションを実行した作成者のIPアドレス。
作成日時(UTC)書式はYYYY-MM-DD HH:MM:SS

サインインイベントを見る

サインインに成功したイベントは、すべての階層で利用可能な唯一の監査イベントです。サインインに成功したイベントを表示するには、以下の手順に従います:

  1. 左のサイドバーで、自分のアバターを選択してください。
  2. プロフィールの編集 > 認証ログを選択します。

有料レベルにアップグレードすると、監査イベントページでサインイン成功イベントを確認することもできます。

監査イベントのフィルタリング

監査イベントのページでは、ページによって異なるフィルタが利用できます。

監査イベントページ利用可能なフィルタ
プロジェクトアクションを実行したユーザー(プロジェクトのメンバー)。
グループアクションを実行したユーザー(グループのメンバー)。
インスタンスグループ、プロジェクト、またはユーザー。
全て日付範囲ボタンとピッカー(最大31日間)。デフォルトは月の初日から今日の日付までです。

ユーザーのなりすまし

  • GitLab 13.0から導入されました
  • GitLab 14.8でグループ監査イベントに含まれるインパーソネーションセッションイベント。

ユーザーがなりすまされると、そのアクションが監査イベントとして記録され、さらに詳細が追加されます:

  • 監査イベントには、なりすました管理者に関する情報が含まれます。これらの監査イベントは、監査イベントの種類(グループ、プロジェクト、ユーザー)に応じて、監査イベントページに表示されます。
  • 追加の監査イベントは、管理者のなりすましセッションの開始時と終了時に記録されます。これらの監査イベントは、次のように表示されます:
    • インスタンス監査イベント。
    • ユーザーが所属するすべてのグループのグループ監査イベント。パフォーマンス上の理由から、グループ監査イベントは、所属するグループのうち最も古い20グループに制限されます。

Audit event with impersonated user

利用可能な監査イベント

GitLabのバージョンによって表示できるイベントが異なります。

グループイベント

グループに対する以下のアクションは、グループ監査イベントを生成します:

グループ管理

  • グループ名またはパスが変更されました。
  • グループのリポジトリサイズの上限が変更されました。
  • グループが作成または削除されました。
  • グループの可視性が変更されました。
  • ユーザーがグループに追加され、権限も変更されました。
  • ユーザーをグループから削除しました。
  • プロジェクトリポジトリをグループにインポートしました。
  • プロジェクトがグループと共有され、どの権限で共有されているか。
  • プロジェクトと共有されていたグループの削除。
  • LFSの有効化または無効化。
  • 会員ロックが有効または無効。
  • アクセス要求の有効化または無効化。
  • プロジェクトを作成できるロールが変更されました。
  • グループデプロイトークンの作成、取り消し、削除に成功しました。GitLab 14.9 で導入されました
  • グループデプロイトークンの作成に失敗しました。GitLab 14.9 で導入
  • IP 制限を変更しました。GitLab 15.0 で導入
  • グループのセキュリティポリシープロジェクトがリンク、変更、またはリンク解除されました。GitLab 15.6 で導入
  • 環境が保護されているか保護されていないか。GitLab 15.8 で導入

認証と作成者

  • グループ SAML を使用したユーザーサインイン。
  • GitLab 14.5で導入され、以下のグループSAMLの設定に変更されました:
    • 有効ステータス。
    • WebアクティビティにSSOのみの認証を強制します。
    • Gitと依存プロキシのアクティビティに対してSSOのみの認証を強制します。
    • グループに管理された専用アカウントをユーザーに強制します。
    • 外部フォークの禁止。
    • ID プロバイダの SSO URL。
    • 証明書のフィンガープリント。
    • デフォルトの会員ロール。
    • SSO-SAML グループ同期設定。
  • グループに割り当てられたユーザーの権限変更。
  • 2FAの実施または猶予期間が変更されました。

コンプライアンスとセキュリティ

  • コンプライアンスフレームワークの作成、更新、削除。GitLab 14.5 で導入されました
  • イベントストリーミングデスティネーションの作成、更新、削除。GitLab 14.6 で導入
  • プッシュルールの変更。GitLab 15.0 で導入
  • ストリーミング監査先のカスタムHTTPヘッダに関する変更。GitLab 15.3 で導入
  • インスタンス管理者がグループメンバーのなりすましを開始または停止。GitLab 14.8 で導入

CI/CD

  • 共有ランナーの分数制限を変更しました。
  • グループ CI/CD 変数の追加、削除、保護ステータスを変更しました。GitLab 13.3 で導入されました

コードコラボレーション

  • GitLab 15.1 で導入された、以下のマージリクエスト承認者設定の変更:
    • 作成者による承認を防止します。
    • コミットを追加したユーザーによる承認を防止します。
    • プロジェクトやマージリクエストの承認ルールを編集できないようにします。
    • 承認者にユーザーパスワードを要求します。
    • ソースブランチにコミットが追加されたときに、すべての承認者を削除します。
  • コードサジェストへの変更。GitLab 15.11 で導入されました

プロジェクトイベント

プロジェクトに対する以下のアクションは、プロジェクト監査イベントを生成します:

プロジェクト管理

  • デプロイキーを追加または削除しました。
  • プロジェクトの作成、削除、名前の変更、移動(転送)、パスの変更。
  • プロジェクトの可視レベルが変更されました。
  • プロジェクトのエクスポートをダウンロードしました。
  • プロジェクトリポジトリをダウンロードしました。
  • プロジェクトがアーカイブされました。
  • プロジェクトはアーカイブされませんでした。
  • プロジェクトにセキュリティポリシープロジェクトがリンク、変更、リンク解除されました。GitLab 15.6 で導入
  • プロジェクトが非アクティブのため削除予定。GitLab 15.0 で導入
  • プロジェクトのデプロイトークンの作成、取り消し、削除に成功しました。GitLab 14.9 で導入されました。GitLabチームメンバーはこの機密イシューで詳細をご覧いただけます:https://gitlab.com/gitlab-org/gitlab/-/issues/353451.
  • プロジェクトデプロイトークンの作成に失敗しました。GitLab 14.9 で導入されました。GitLab チームメンバーはこの機密のイシューで詳細を見ることができます:https://gitlab.com/gitlab-org/gitlab/-/issues/353451.
  • 機能フラグのストラテジーが変更された場合。GitLab 14.3 で導入されました。

ユーザー管理

  • ユーザーがプロジェクトに追加され、どの権限で追加されたか。
  • プロジェクトに割り当てられたユーザーの権限変更。
  • ユーザーがプロジェクトから削除されました。
  • 保護されたブランチへのマージとプッシュを許可されたユーザーとグループが追加または削除されました。GitLab 14.3 で導入

アクセス制御

  • ブランチ保護が追加、削除、更新されました。
  • プロジェクトアクセストークンの作成または失効に失敗しました。GitLab 13.9 で導入されました
  • 保護ブランチへの強制プッシュを許可するように変更。GitLab 14.3 で導入
  • 環境が保護されているか保護されていないか。GitLab 15.8 で導入
  • 承認者に必要なユーザーパスワードを更新しました。GitLab 14.2 で導入
  • プロジェクトアクセストークンの作成または失効に成功しました。GitLab 13.9 で導入

コードコラボレーション

  • マージリクエストのデフォルトの説明テンプレートが更新されました。GitLab 15.0 で導入されました
  • マージコミットメッセージテンプレートが更新されました。GitLab 15.0 で導入
  • Squashコミットメッセージテンプレートが更新されました。GitLab 15.0 で導入
  • ソースブランチの削除オプションをデフォルトで有効または無効に。GitLab 14.9 で導入
  • マージが更新されたときにコミットを消去します。GitLab 14.9 で導入
  • 全てのディスカッションは有効または無効に解決しなければなりません。GitLab 14.9 で導入
  • コミットメッセージの提案が更新されました。GitLab 14.9 で導入されました
  • マージリクエストの差分ディスカッションの自動解決の有効/無効。GitLab 14.9 で導入
  • コマンドラインからのプッシュ時にマージリクエストを作成または表示するリンクを表示する 有効/無効。GitLab 14.9 で導入
  • マージメソッドが更新されたとき。GitLab 14.9 で導入
  • マージトレインの有効/無効。GitLab 14.9 で導入
  • 保護ブランチを対象としたマージリクエストのコードオーナー承認者要件が変更されました。GitLab 14.3 で導入
  • マージリクエストの承認ルールを変更する権限が更新されました。GitLab 14.2 で導入
  • MR に新しいコミットが追加された場合の新しい承認者が更新されました。GitLab 14.2 で導入
  • プロジェクト承認グループからユーザーとグループを追加または削除しました。GitLab 13.2 で導入
  • コミッターによるマージリクエストの承認権限を更新しました。GitLab 12.9 で導入
    • GitLab 14.6 でイベントのメッセージを変更しました。
  • 作成者によるマージリクエストの承認権限を更新しました。GitLab 12.9 で導入
  • 必要な承認者数を更新しました。GitLab 12.9 で導入

リリース管理

  • プロジェクトにリリースが追加されました。
  • リリースが更新されました。
  • リリースを削除しました。GitLab 15.3 で導入されました
  • リリースマイルストーンの関連付けを変更しました。

CI/CD

  • プロジェクトのCI/CD変数が追加、削除、保護ステータスが変更されました。GitLab 13.4 で導入されました
  • プロジェクトのデフォルトブランチが変更された時。GitLab 13.9 で導入
  • パイプラインが有効または無効になった場合。GitLab 14.9 で導入
  • スキップされたパイプラインは成功したとみなされます。GitLab 14.9 で導入
  • ステータスチェックの追加、編集、削除。GitLab 15.0 で導入
  • マージ結果のパイプラインの有効/無効。GitLab 14.9 で導入

コンプライアンスとセキュリティ

  • DASTプロファイル、DASTスキャナプロファイル、DASTサイトプロファイルの作成、更新、削除。GitLab 14.1で導入されました
  • プロジェクトのコンプライアンスフレームワークを変更しました。GitLab 14.1 で導入

Kubernetesイベント用のGitLabエージェント。

GitLab 15.10 で導入されました

GitLabはクラスター・エージェント・トークンが作成されたり、取り消されたりしたときに監査イベントを生成します。

インスタンスイベント

  • GitLab 13.5で導入された、二要素認証に失敗した場合の監査イベント。
  • GitLab 13.6で導入れた、ユーザーが管理エリアを使って承認された時の監査イベント。
  • GitLab 13.6で導入れた、ユーザーの個人アクセストークンの作成に成功した時、失敗した時、失効した時の監査イベント。
  • GitLab 13.9で導入れた、ユーザーが管理エリアを使ってインスタンスへのアクセスを要求した時や拒否された時の監査イベント。
  • GitLab 15.1で導入れた、ユーザーの二要素認証が無効になった時の監査イベント。
  • GitLab 16.2で導入れた、ユーザーのアクセスがロックされた時の監査イベント。
  • GitLab 16.2で導入れた、ユーザーのアクセスがロック解除された時の監査イベント。

GitLabインスタンスに対する以下のユーザーアクションは、インスタンス監査イベントを生成します:

認証

  • サインインイベントと、標準、LDAP、OmniAuthなどの認証タイプ。
  • 失敗したサインイン
  • パスワードのリセットをお願いします。
  • OAuthアクセスを許可します。
  • 二要素認証に失敗しました。
  • ユーザーの個人アクセストークンの作成または失効に成功または失敗しました。
  • ユーザーの二要素認証が無効になりました。
  • ユーザーのアクセスがロックされました。
  • ユーザーのアクセスがロック解除されました。

ユーザー管理

  • SSHキーを追加しました。
  • メールを追加または削除しました。
  • パスワードを変更しました。
  • ユーザーなりすましの開始または停止。
  • ユーザー名を変更しました。
  • ユーザーが追加または削除されました。
  • ユーザーがインスタンスへのアクセスを要求しました。
  • ユーザーが管理領域を使用して承認者、拒否者、またはブロックされました。
  • ユーザーがAPIを使用してブロックされました。
  • 管理者が追加または削除されました。GitLab 14.1 で導入されました
  • SSHキーを削除。GitLab 14.1 で導入
  • GPGキーを追加または削除。GitLab 14.1 で導入
  • 管理者モードを有効化。GitLab 15.7 で導入
  • すべてのグループイベントと プロジェクトイベント
  • ユーザーが管理エリアまたはAPIを使用してブロックを解除しました。GitLab 15.11で導入されました
  • ユーザーが管理エリアまたはAPIを使用して禁止されました。GitLab 15.11で導入
  • ユーザーが管理エリアまたはAPIを使って禁止を解除されました。GitLab 15.11で導入
  • ユーザーが管理エリアまたはAPIを使用して非アクティブ化されました。GitLab 16.0 で導入
  • ユーザーが管理エリアまたはAPIを使ってアクティブ化されました。GitLab 16.1 で導入

インスタンスイベントには、Instance Audit Events API を使ってもアクセスできます。

アプリケーションの設定

GitLab 16.2 で導入されました

ユーザーがインスタンス、プロジェクト、グループのアプリケーション設定を変更すると、その変更と変更を行ったユーザーが監査ログに記録されます。

GitLab Runnerのイベント

  • GitLab 14.8で導入された、Runnerが登録された時の監査イベントです。
  • GitLab 14.9で導入れた、Runnerが登録されていない時の監査イベント。
  • GitLab 14.9で導入れた、Runnerがプロジェクトに割り当てられたり、プロジェクトから割り当て解除された時の監査イベント。
  • GitLab 15.0で導入された、Runner登録トークンがリセットされた時の監査イベント。

GitLabは以下のGitLab Runnerアクションに対して監査イベントを生成します:

  • インスタンス、グループ、プロジェクトのRunnerが登録されたとき。
  • インスタンス、グループ、またはプロジェクトランナーが未登録です。
  • ランナーがプロジェクトに割り当てられているか、プロジェクトから割り当てられていません。
  • インスタンス、グループ、プロジェクトのRunner登録トークンがリセットされました。GitLab 15.6 で非推奨

「削除ユーザー” イベント

ユーザーが削除された後に作成される監査イベントは、”Deleted User “に対して作成されます。例えば、削除されたユーザーのプロジェクトへのアクセスが期限切れにより自動的に削除された場合などです。

イシュー343933はこの動作を変更することを提案しています。

サポートされていないイベント

監査イベントでは追跡されないイベントがあります。以下のエピックとイシューは、より多くのイベントのサポートを提案しています:

どのエピックにも希望のイベントがない場合は、以下の方法があります: