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

有効性チェック

  • ステータス: ベータ
  • プラン: Ultimate
  • 提供形態: GitLab.com

この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。この機能はテストには利用できますが、本番環境での使用には適していません。

GitLabの整合性チェックは、アクセストークンなどのシークレットがアクティブかどうかを判断します。シークレットがアクティブな場合:

  • 期限切れになっていません。
  • 認証に使用できます。

アクティブなシークレットは、正当なユーザーになりすますために使用される可能性があるため、非アクティブなシークレットよりもセキュリティ上のリスクが高くなります。複数のシークレットが一度にリークした場合、どのシークレットがアクティブであるかを知ることは、トリアージと修正の重要な部分です。

これは実験的機能です。

整合性チェックを有効にする

前提要件:

  • パイプラインのセキュリティスキャンが有効になっているプロジェクトが必要です。

プロジェクトの整合性チェックを有効にするには:

  1. 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. 左側のサイドバーでセキュリティ > セキュリティ設定を選択します。
  3. パイプラインのシークレット検出で、整合性チェックの切替をオンにします。

GitLabは、secret_detectionCI/CDジョブが完了すると、検出されたシークレットのステータスを確認します。シークレットのステータスを表示するには、脆弱性レポートの詳細ページを表示します。シークレットのステータスを更新するには(たとえば、失効した後)、secret_detectionCI/CDジョブを再実行します。

カバレッジ

整合性チェックは、次のシークレットタイプをサポートしています:

  • GitLabのパーソナルアクセストークン
  • ルーティング可能なGitLabパーソナルアクセストークン
  • GitLabデプロイトークン
  • GitLab Runnerの認証トークン
  • ルーティング可能なGitLab Runner認証トークン
  • GitLab Kubernetesエージェントトークン
  • GitLab SCIM OAuthトークン
  • GitLab CI/CDジョブトークン
  • GitLab受信メールトークン
  • GitLabフィードトークン (v2)
  • パイプライントリガートークン

整合性チェックのワークフロー

シークレット検出アナライザーが潜在的なシークレットを検出すると、GitLabはそのベンダーにシークレットのステータスを検証し、検出に次のいずれかのステータスを割り当てます:

  • アクティブの可能性: GitLabはシークレットのステータスを検証できませんでした。または、シークレットタイプが整合性チェックでサポートされていません。
  • アクティブ: シークレットは期限切れではなく、認証に使用できます。
  • 非アクティブ: シークレットは期限切れまたは失効されており、認証に使用できません。

アクティブなシークレットとアクティブの可能性のあるシークレットは、できるだけ早く解決する必要があります。

%%{init: { "fontFamily": "GitLab Sans" }}%%

flowchart TD
    accTitle: Validity checks workflow
    accDescr: Process flow for secret detection showing three possible outcomes.
    A[Secret detection analyzer runs] --> B[Secret detected]
    B --> C{Worker verifies<br>secret status}

    C -->|Cannot verify or unsupported type| D[Possibly active]
    C -->|Valid and not expired| E[Active]
    C -->|Expired or revoked| F[Inactive]

シークレットステータスの更新

この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。この機能はテストには利用できますが、本番環境での使用には適していません。

整合性チェックの実行後、トークンが失効または期限切れになった場合でも、トークンのステータスは自動的に更新されません。トークンを更新するには、手動でステータスを更新できます:

  1. 脆弱性レポートで、更新する脆弱性を選択します。
  2. トークンのステータスの横にある再試行 retry )を選択します。

整合性チェックが再度実行され、トークンのステータスが更新されます。

トラブルシューティング

整合性チェックを使用しているときに、次の問題が発生する可能性があります。

予期しないトークンのステータス

GitLabがその検証を明確に検証できない場合、トークンはアクティブの可能性のあるステータスになります。これには次の原因が考えられます:

  • シークレットの検証が実行されていません。
  • シークレットタイプは、整合性チェックでサポートされていません。
  • トークンプロバイダーへの接続に問題が発生しました。

この問題を解決するには、secret_detectionジョブを再実行します。数回試行してもステータスが解決しない場合は、シークレットを手動で検証する必要があるかもしれません。

トークンがアクティブでないことが確実でない限り、アクティブの可能性のあるシークレットをできるだけ早く失効して交換する必要があります。