Skip to main content

リポジトリのシークレット スキャンの構成

GitHub がリポジトリで漏洩したシークレットをスキャンし、アラートを生成する方法を構成できます。

この機能を使用できるユーザーについて

People with admin permissions to a repository can enable secret scanning for the repository.

Secret scanning alerts for partners runs automatically on public repositories and public npm packages to notify service providers about leaked secrets on GitHub.

Secret scanning alerts for users are available for user-owned public repositories for free. Organizations using GitHub Enterprise Cloud with a license for GitHub Advanced Security can also enable secret scanning alerts for users on their private and internal repositories. Additionally, secret scanning alerts for users are available and in beta on user-owned repositories for GitHub Enterprise Cloud with Enterprise Managed Users. For more information, see "About secret scanning" and "About GitHub Advanced Security."

For information about how you can try GitHub Advanced Security for free, see "Setting up a trial of GitHub Advanced Security."

ユーザーに対するシークレット スキャンニング アラート を有効にする

組織が所有するリポジトリや、Enterprise Managed Users。 有効にすると、secret scanningはGitHubリポジトリ中に存在するすべてのブランチのGit履歴全体に対して、あらゆるシークレットをスキャンします。 さらに、secret scanning は します

  • 問題 の説明とコメント
  • オープンおよびクローズの 履歴 に関する問題 のタイトル、説明、およびコメント。 履歴パートナー パターンが検出されると、関連するパートナーに通知が送信されます。
  • pull request のタイトル、説明とコメント
  • GitHub Discussions のタイトル、説明、コメント
  • Wiki

この追加のスキャンは、パブリック リポジトリでは無料です。

pull request のコンテンツのスキャン、GitHub Command Palette、および Wiki は現在ベータ版であり、変更される可能性があります。

組織内の複数のリポジトリで同時に secret scanning を有効にすることもできます。 詳しくは、「組織を保護するためのクイック スタート」を参照してください。

注: 組織がエンタープライズ アカウントの所有になっている場合、エンタープライズ所有者はエンタープライズ レベルで secret scanning を有効にすることもできます。 詳しくは、「Enterprise 用の GitHub Advanced Security 機能の管理」を参照してください。

リポジトリ管理者は、リポジトリのsecret scanningをいつでも無効にすることができます。 詳しくは、「リポジトリのセキュリティと分析設定を管理する」を参照してください。

  1. GitHub.com で、リポジトリのメイン ページへ移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。

  4. Advanced Security がまだリポジトリで有効化されていなければ、[GitHub Advanced Security] の右側で [有効化] をクリックしてください。

  5. Advanced Securityの有効化の影響をレビューしてから、 [このリポジトリで GitHub Advanced Security を有効化] をクリックしてください。

  6. Advanced Securityを有効化すると、Organizationの設定によってはリポジトリでsecret scanningが自動的に有効化されることがあります。 "Secret scanning" が [有効] ボタンと共に表示されている場合でも、 [有効] をクリックしてsecret scanningを有効にする必要があります。 [無効] ボタンが表示された場合、secret scanningは既に有効になっています。

    [コードのセキュリティと分析] ページの [Secret scanning] セクションのスクリーンショット。濃いオレンジ色の枠で [有効] ボタンが強調表示されています。

ユーザーに対するシークレット スキャンニング アラートの機能を有効にする

リポジトリの「コード セキュリティと分析」設定で、次の追加secret scanning機能sを有効にすることができます。

パートナー パターンの有効性チェックを有効にする

注: パートナー パターンの有効性チェックは現在ベータ版であり、変更される可能性があります。

パートナー パターンの有効性チェックは、GitHub.com のすべての種類のリポジトリで使用できます。 この機能を使用するには、GitHub Advanced Security のライセンスが必要です。

関連するパートナーに送信することで、secret scanning にリポジトリ内で見つかったシークレットの有効性を自動的に確認することができます。 有効性チェックの詳細については、「シークレット スキャンからのアラートの管理」の「シークレットの有効性のチェック」を参照してください。

注: リポジトリの自動有効性チェックを有効にすると、そのリポジトリで検出されたパターンに対してオンデマンドの有効性チェックを実行もできます。

  1. GitHub.com で、リポジトリのメイン ページへ移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。

  4. Secret scanning で、「関連するパートナーに送信することでシークレットが有効かどうかを自動的に検証する」の横のチェックボックスをオンにします。

REST API を使用して、リポジトリのパートナー パターンの有効性チェックを有効にすることもできます。 詳しくは、「リポジトリの REST API エンドポイント」を参照してください。 または、組織の所有者とエンタープライズ管理者は、組織またはエンタープライズ設定内のすべてのリポジトリに対してこの機能を有効にすることができます。 詳細については、「組織のセキュリティおよび分析設定を管理する」および「Enterprise 用の GitHub Advanced Security 機能の管理」を参照してください。

プロバイダー以外のパターンのスキャンを有効にする

注: プロバイダー以外のパターンの検出は現在ベータ版であり、変更される可能性があります。

プロバイダー以外のパターンのスキャンを有効にすることができます。 プロバイダー以外のパターンは秘密キーなどのシークレットに対応し、誤検知の比率が高くなります。

  1. GitHub.com で、リポジトリのメイン ページへ移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。

  4. Secret scanningで、「プロバイダー以外のパターンをスキャンする」の横にあるチェックボックスを選択します。

プロバイダー以外のパターンの詳細については、「secret scanning パターン」を参照してください。

すべての ユーザー所有 パブリック リポジトリに対して ユーザーに対するシークレット スキャンニング アラート を有効にする

個人用アカウント設定から、すべての既存の ユーザー所有 パブリック リポジトリに対して secret scanning を有効にすることができます。

: 2024 年 3 月 11 日の時点では、作成したすべての新しい ユーザー所有 パブリック リポジトリに対して、secret scanning とプッシュ保護が既定で有効になります。 リポジトリの [コードセキュリティと解析] 設定ページで、個々のリポジトリに対してこれらの機能を無効にすることもできます。 詳しくは、「リポジトリのセキュリティと分析設定を管理する」をご覧ください。

  1. 任意のページで、右上隅にあるプロファイルの画像をクリックし、次に[設定]をクリックします。

    Screenshot of a user's account menu on GitHub. The menu item "Settings" is outlined in dark orange.

  2. サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。

  3. [Code security and analysis] (コードのセキュリティと分析) で、[Secret scanning] の右側にある [すべて無効にする] または [すべて有効にする] をクリックします。

  4. 必要に応じて、プッシュ保護を有効にする場合は、[プッシュ保護] の右側にある [有効] をクリックします。 組織またはリポジトリのプッシュ保護を有効にすると、secret scanning はサポートされているシークレットのプッシュもチェックします。 {data variables.product.prodname_secret_scanning_caps %}は検出されたシークレットをリストアップするので、作成者はシークレットを見直して削除したり、 permittedの場合、そのようなシークレットのプッシュを許可することができます。詳細については、「リポジトリと Organization のプッシュ保護」を参照してください。

    "Secret scanning" セクションのスクリーンショット。 「プッシュ保護」セクションの「有効」ボタンが濃いオレンジ色の枠線で強調表示されています。

ユーザーに対するシークレット スキャンニング アラート からディレクトリを除外する

secret_scanning.yml ファイルを構成して、secret scanning からディレクトリを除外することができます (プッシュ保護を使う場合を含む)。 たとえば、テストまたはランダムに生成されたコンテンツを含むディレクトリを除外できます。

  1. GitHub.com で、リポジトリのメイン ページへ移動します。

  2. ファイル リストの上で、[ファイルの追加] ドロップダウン メニューを選んで、 [新しいファイルの作成] をクリックします。

    または、左側のファイル ツリー ビューの をクリックしてもかまいません。

    リポジトリのメイン ページのスクリーンショット。 ファイルの一覧の上には、[ファイルの追加] というラベルが付いたボタンが濃いオレンジ色の枠線で囲まれています。 リポジトリのファイル ツリー ビューでは、+ アイコンが付いたボタンも濃いオレンジ色で囲まれています。

  3. ファイル名フィールドに「 .github/secret_scanning.yml」と入力します。

  4. [新しいファイルの編集] で、paths-ignore: と入力してから、secret scanningから除外するパスを入力します。

    paths-ignore:
      - "foo/bar/*.js"
    

    * などの特殊文字を使用して、パスをフィルター処理することができます。 フィルター パターンの詳細については、「GitHub Actions のワークフロー構文」を参照してください。

    注:

    • paths-ignore に 1,000 を超えるエントリがある場合、secret scanningでは、最初の 1,000 個のディレクトリのみがスキャンから除外されます。
    • secret_scanning.yml が 1 MB を超える場合、secret scanning ではファイル全体が無視されます。

secret scanning からの個々のアラートを無視することもできます。 詳しくは、「シークレット スキャンからのアラートの管理」を参照してください。

参考資料