Skip to main content

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

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

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

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

パートナーに対するシークレット スキャンニング アラート はパブリック リポジトリとパブリック npm パッケージで自動的に実行され、GitHub.com で漏洩したシークレットについてサービス プロバイダーに通知します。

ユーザーに対するシークレット スキャンニング アラート は、すべてのパブリック リポジトリで無料で利用できます。 GitHub Enterprise Cloud を使い、GitHub Advanced Security のライセンスを持っている組織は、プライベート リポジトリと内部リポジトリに対して ユーザーに対するシークレット スキャンニング アラート を有効にすることもできます。 詳細については、「シークレット スキャンについて」と「GitHub Advanced Security について」を参照してください。

GitHub Advanced Security の無料試用については、「GitHub Advanced Security の無料試用版を設定する」を参照してください。

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

組織によって所有されているリポジトリに対して ユーザーに対するシークレット スキャンニング アラート を有効にすることができます。 有効にすると、secret scanningはGitHubリポジトリ中に存在するすべてのブランチのGit履歴全体に対して、あらゆるシークレットをスキャンします。 Secret scanning では、シークレットの問題の説明とコメントも検索されます。

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

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

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

  7. 必要に応じて、プッシュ保護を有効にする場合は、[プッシュ保護] の右側にある [有効] をクリックします。 組織またはリポジトリのプッシュ保護を有効にすると、secret scanning は、プッシュで信頼性の高いシークレット (誤検知率が低いと特定されたシークレット) もチェックします。 Secret scanning には、作成者がシークレットを確認して削除できるように、検出したシークレットが一覧表示されます。また、必要に応じて、それらのシークレットをプッシュできるようにします。詳細については、「リポジトリと組織のプッシュ保護」を参照してください。 "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 からの個々のアラートを無視することもできます。 詳しくは、「シークレット スキャンからのアラートの管理」を参照してください。

参考資料