日本語

シークレットのコミット前フック

Aikido は、シークレットが本番環境に到達する前に、IDE、pre-commit、PR ゲーティングの3つの段階でシークレットの流出を防ぎます。当社の pre-commit githook は、ステージングされたコードをスキャンしてシークレット、パスワード、API キーを検出します。機密データがリポジトリに到達することを防ぎ、漏洩や意図しない露出のリスクを低減します。

インストール

Aikido IDE プラグインがインストールされている場合、Aikido Expansion Packs を使用してワンクリックで pre-commit フックをインストールできます。

詳しくは Expansion Packs のドキュメントをご覧ください。

スクリプトのソースとその動作に関する詳細情報は Github で公開されています。

pre-commit フックのテスト

セットアップ後に pre-commit フックをテストするには、リポジトリ内に sample.js ファイルを作成します:

const password = "eRwjQKVUSRX7uYV017B0cRHVKv45Gv8G"

このファイルをステージングされた変更に追加します。このファイルをコミットしようとすると、pre-commit フックが実行され、次のメッセージとともにコミットがブロックされます:

Detected secrets in staged files!
Secret #1:
  File: sample.js
  Line: 1
  Secret: password = "****************************Gv8G"
  Description: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

特定のシークレットをスキップする

特定のシークレットが検出されないようにスキップするには、検出されたシークレットの行にコメントを追加します:

const password = "eRwjQKVUSRX7uYV017B0cRHVKv45Gv8G" // gitleaks:allow

Aikido Secrets pre-commit スキャンを無効化する

単一のコミットで pre-commit フックを一時的にバイパスする

git commit --no-verify

単一のコミットで Aikido Secrets pre-commit フックを一時的にバイパスする

AIKIDO_SKIP_PRE_COMMIT=1 git commit

アンインストール

アンインストールスクリプトを使用するか、以下の手順に従ってフックを手動でアンインストールします。

インストールスクリプトを使用して Aikido pre-commit フックをインストールし、アンインストールしたい場合は、次を実行します:

curl -fsSL https://raw.githubusercontent.com/AikidoSec/pre-commit/e6f541e65378dd30f3f320628000f837cfba0ec4/installation-samples/install-global/uninstall-aikido-hook.sh | bash

グローバル pre-commit フックの手動アンインストール

これにより、すべてのグローバル Git フックと Aikido バイナリが完全に削除されます。

  1. グローバルフックディレクトリを削除します:
    • Unix/Linux/macOS: rm -rf ~/.git-hooks
    • Windows: Remove-Item -Recurse -Force $env:USERPROFILE\.git-hooks
  2. Git フックのパスをリセットします:git config --global --unset core.hooksPath
  3. 必要に応じてバイナリを削除します:
    • Unix/Linux/macOS: rm ~/.local/bin/aikido-local-scanner
    • Windows: Remove-Item $env:USERPROFILE\.local\bin\aikido-local-scanner.exe

Aikido Git Hook のみの手動アンインストール

すでに独自のグローバル Git フックがあり、それらを残したい場合は、フックディレクトリを削除しないでください。

代わりに:

  1. グローバルフックディレクトリ内の pre-commit ファイルを開きます(例:~/.git-hooks/pre-commit)。
  2. aikido-local-scanner を呼び出している行、または Aikido によって追加されたことが明示されている行のみを削除します。
  3. ファイルを保存します。

Git は Aikido Secrets を実行せずに、既存のフックを引き続き使用します。

関連記事