Skip to main content

シークレットスキャンからのフォルダーとファイルの除外

リポジトリ内の secret_scanning.yml ファイルを構成することで、secret scanning をカスタマイズして、分析からディレクトリまたはファイルを除外できます。

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

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 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. For more information, see "About secret scanning alerts" and "About GitHub Advanced Security."

For information about how you can try GitHub Enterprise with GitHub Advanced Security for free, see "Setting up a trial of GitHub Enterprise Cloud" and "Setting up a trial of GitHub Advanced Security" in the GitHub Enterprise Cloud documentation.

secret scanningについて

Secret scanning は、リポジトリにチェックインされたトークンまたは認証情報を自動的に検出します。 GitHub リポジトリの [セキュリティ] タブで、コード内で見つけるシークレットの ユーザーに対するシークレット スキャンニング アラートを表示して、どのトークンや認証情報を危険なものとして扱うかわかるようにします。詳細な情報については、「シークレット スキャン アラートについて」を参照してください。

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

からのディレクトリの除外について

ドキュメントやサンプルアプリケーションで偽のシークレットを提供する場合など、リポジトリにシークレットをコミットする場合が考えられます。 これらのシナリオでは、アラートをすばやく無視して理由を文書化できます。 ただし、大規模な誤検知アラートの作成をしないようにするために、ディレクトリを完全に無視したい場合もあります。 たとえば、多数の誤ったアラートをトリアージに発せられる可能性があるダミー キーのファイルを含む複数の統合を持つモノリシック アプリケーションがあるとします。

プッシュ保護を使用する場合を含め、ディレクトリを secret scanning から除外するように secret_scanning.yml ファイルを設定できます。

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

からディレクトリを除外する

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

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

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

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

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

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

    YAML
    paths-ignore:
      - "docs/**"
    

    これにより、secret scanning に、docs ディレクトリ内のすべての要素を無視するよう指示されます。 このサンプル ファイルをテンプレートとして使用して、独自のリポジトリから除外するファイルとフォルダーを追加できます。

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

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

    注:

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

フォルダーが secret scanning から除外されていることを確認

  1. シークレット スキャンから除外したディレクトリ内のファイルを開く
  2. 事前に無効化されたシークレットまたはテスト シークレットを貼り付けます。
  3. 変更をコミットします。
  4. GitHub で、リポジトリのメイン ページに移動します。1. リポジトリ名の下にある [ セキュリティ] をクリックします。 [セキュリティ] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [セキュリティ] をクリックします。
    タブを示すリポジトリ ヘッダーのスクリーンショット。 [セキュリティ] タブが濃いオレンジ色の枠線で強調表示されています。
    ファイルに導入したばかりのシークレットに対する新しいオープン アラートは存在しないはずです。

ベスト プラクティス

ベスト プラクティスには次のようなものがあります。

  • 除外するディレクトリの数を最小限に抑え、除外を定義するときに可能な限り正確にします。 これにより、指示が可能な限り明確になり、除外が意図したとおりに機能するようになります。
  • secret_scanning.yml ファイル内のコメントで特定のファイルまたはフォルダーが除外される理由を説明します。 通常のコードと同様に、コメントを使用すると意図が明確になり、他のユーザーが目的の動作を理解しやすくなります。
  • secret_scanning.yml ファイルを定期的に確認します。 一部の除外は時間と共に適用されなくなる可能性があり、ファイルをクリーンで最新の状態に保つことをお勧めします。 上記で説明したように、コメントの使用はこれに役立ちます。
  • 除外したファイルとフォルダーとその理由をセキュリティ チームに通知します。 すべてのユーザーが同じページに存在し、特定のフォルダーまたはファイルが除外される理由を理解するには、適切なコミュニケーションが不可欠です。