Skip to main content

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

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

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

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

ご自分のエンタープライズで GitHub Advanced Security のライセンスがある場合、GitHub Enterprise Server の Organization 所有のリポジトリで Secret scanning が利用できます。 詳細については、「シークレット スキャンについて」と「GitHub Advanced Security について」を参照してください。

注: この機能を使うには、サイト管理者が お使いの GitHub Enterprise Server インスタンス の secret scanning を有効にする必要があります。 詳しくは、「アプライアンスのシークレットスキャンを設定する」を参照してください。

Enterprise の所有者が Enterprise レベルで GitHub Advanced Security (GHAS) ポリシーを設定している場合、secret scanning を有効または無効にできない場合があります。 詳しくは、「エンタープライズのコード セキュリティと分析のためのポリシーの適用」を参照してください。

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

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

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

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

  1. お使いの GitHub Enterprise Server インスタンス で、リポジトリのメイン ページへ移動します。

  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" セクションのスクリーンショット。 インデントされ、[プッシュ保護] とマークされた項目の横にある [有効] ボタンが濃いオレンジ色の枠線で強調表示されています。

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

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

  1. お使いの GitHub Enterprise Server インスタンス で、リポジトリのメイン ページへ移動します。

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

参考資料