正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitGuardian

  • プラン: Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

GitGuardianは、ソースコードリポジトリ内のAPIキーやパスワードなどの機密情報を検出するサイバーセキュリティサービスです。Gitリポジトリをスキャンし、ポリシー違反のアラートを送信し、ハッカーが悪用する前に組織がセキュリティイシューを修正するのを支援します。

GitGuardianポリシーに基づいてコミットを拒否するようにGitLabを設定できます。

GitGuardianインテグレーションをセットアップするには:

  1. GitGuardian APIトークンを作成
  2. プロジェクトのGitGuardianインテグレーションを設定

GitGuardian APIトークンを作成

前提要件:

  • GitGuardianアカウントを持っている必要があります。

APIトークンを作成するには:

  1. GitGuardianアカウントにサインインします。
  2. サイドバーのAPIセクションに移動します。
  3. APIセクションのサイドバーで、パーソナルアクセストークンページに移動します。
  4. トークンを作成を選択します。トークン作成ダイアログが開きます。
  5. トークン情報を提供します:
    • 目的を識別するために、APIトークンにわかりやすい名前を付けます。たとえばGitLab integration tokenなどです。
    • 適切な有効期限を選択します。
    • scan scope(スキャンスコープ)チェックボックスを選択します。これは、インテグレーションに必要な唯一のものです。
  6. トークンを作成を選択します。
  7. トークンを生成したら、クリップボードにコピーします。このトークンは機密情報であるため、安全に保管してください。

これで、インテグレーションに使用できるGitGuardian APIトークンが正常に作成されました。

プロジェクトのGitGuardianインテグレーションを設定

前提要件:

  • プロジェクトのメンテナー以上のロールを持っている必要があります。

APIトークンを作成してコピーしたら、GitLabがコミットを拒否するように設定します:

プロジェクトのインテグレーションを有効にするには:

  1. 左側のサイドバーで、検索または移動先を選択して、プロジェクトまたはグループを見つけます。
  2. 設定 > インテグレーションを選択します。
  3. GitGuardianを選択します。
  4. インテグレーションを有効にするで、有効チェックボックスを選択します。
  5. APIトークンで、GitGuardianからトークン値をペーストしてください
  6. オプション。テスト設定を選択します。
  7. 変更を保存を選択します。

GitLabは、GitGuardianポリシーに基づいてコミットを拒否する準備ができました。

シークレット検出をスキップ

必要に応じて、GitGuardianシークレット検出をスキップできます。プッシュ内のすべてのコミットに対してシークレット検出をスキップするオプションは、ネイティブシークレット検出のオプションと同じです。次のいずれかの操作を行います:

  • コミットメッセージの1つに[skip secret push protection]を追加します。
  • secret_push_protection.skip_all プッシュオプションを使用します。

既知の問題

  • プッシュが遅延したり、タイムアウトしたりする可能性があります。GitGuardianインテグレーションを使用する場合:
    • プッシュはサードパーティに送信されます。
    • GitLabは、GitGuardianまたはGitGuardianプロセスの接続を制御できません。
  • GitGuardian APIの制限により、インテグレーションは1 MBを超えるサイズのファイルを無視します。それらはスキャンされません。
  • プッシュされたファイルのファイル名が256文字を超える場合、プッシュは失敗します。
  • 詳細については、GitGuardian APIドキュメントを参照してください。

以下のトラブルシューティング手順は、これらの問題の一部を軽減する方法を示しています。

トラブルシューティング

GitGuardianインテグレーションを使用すると、次の問題が発生する可能性があります。

500 HTTPエラー

HTTP 500エラーが発生する可能性があります。

この問題は、変更されたファイルが多いコミットのリクエストがタイムアウトした場合に発生します。

この問題が、1つのコミットで50個を超えるファイルを変更した場合に発生した場合:

  1. 変更をより小さなコミットに分割します。
  2. より小さなコミットを1つずつプッシュします。

エラー: Filename: ensure this value has at most 256 characters

HTTP 400エラーが発生し、Filename: ensure this value has at most 256 charactersと表示されることがあります。

この問題は、そのコミットでプッシュしている変更されたファイルの一部に、(パスではなく) 256文字より長いファイル名がある場合に発生します。

回避策は、可能であればファイル名を短くすることです。たとえば、フレームワークによって自動的に生成されたためにファイル名を短縮できない場合は、インテグレーションを無効にして、再度プッシュしてみてください。必要に応じて、後でインテグレーションを再度有効にすることを忘れないでください。