Skip to main content

現在、GitHub AE は限定的リリースです。

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

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

この機能を使用できるユーザー

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

GitHub AE の Organization 所有のリポジトリで Secret scanning が利用できます。 これは GitHub Advanced Security の機能です (ベータ リリース中は無料)。

シークレット スキャン を有効にする

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

組織内の複数のリポジトリで同時に secret scanning を有効にすることもできます。 詳しくは、「組織のセキュリティ保護」を参照してください。

  1. ご自分のエンタープライズ で、リポジトリのメイン ページへ移動します。

  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] セクションのスクリーンショット。濃いオレンジ色の枠で [有効] ボタンが強調表示されています。

  7. 必要に応じて、プッシュ保護を有効にする場合は、[プッシュ保護] の右側にある [有効] をクリックします。 組織またはリポジトリのプッシュ保護を有効にすると、secret scanning は、プッシュで信頼性の高いシークレット (誤検知率が低いと特定されたシークレット) もチェックします。 Secret scanning には、作成者がシークレットを確認して削除できるように、検出したシークレットが一覧表示されます。また、必要に応じて、それらのシークレットをプッシュできるようにします。詳細については、「リポジトリと組織のプッシュ保護」を参照してください。 "Secret scanning" セクションのスクリーンショット。 インデントされ、[プッシュ保護] とマークされた項目の横にある [有効] ボタンが濃いオレンジ色の枠線で強調表示されています。

  8. secret scanning を有効化する前に、まず GitHub Advanced Security を有効化する必要があります。 [GitHub Advanced Security] の右側にある [有効] をクリックします。 リポジトリで GitHub Advanced Security を有効化します。

  9. [このリポジトリで GitHub Advanced Security を有効化する] をクリックしてアクションを確認します。 リポジトリで GitHub Advanced Security の有効化を確認します。

  10. [Secret scanning] の横にある [有効] をクリックします。 リポジトリに対して secret scanning を有効化します。

シークレット スキャン からディレクトリを除外する

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

  1. ご自分のエンタープライズ で、リポジトリのメイン ページへ移動します。

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

参考資料