Skip to main content

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

リポジトリ内の secret_scanning.yml ファイルを構成することで、特定のディレクトリまたはファイルで見つかったシークレットのアラートを自動的に閉じるように secret scanning をカスタマイズできます。

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

リポジトリの所有者、組織の所有者、セキュリティ マネージャー、および 管理者 ロールを持つユーザー

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

secret scanning の特定のディレクトリで見つかったアラートを自動的に閉じ、それらのディレクトリをプッシュ保護から除外するように secret_scanning.yml ファイルを構成できます。 これらのアラートは、"構成によって無視された" ものとして閉じられます。

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

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

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

  2. ファイルの一覧の上にある [Add file ] ドロップダウン メニューを選んでから、[ Create new file] をクリックします。

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

    上で説明した [Add file] と "プラス記号" アイコンの両方がオレンジ色の枠線で強調されている、リポジトリのメイン ページのスクリーンショット。

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

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

    このように、docs ディレクトリ内のすべてに関するアラートを自動的に閉じるように secret scanning に指示します。 このサンプル ファイルをテンプレートとして使用して、独自のリポジトリから除外するファイルとフォルダーを追加できます。

           `*` などの特殊文字を使用して、パスをフィルター処理することもできます。 フィルター パターンの詳細については、「[GitHub Actions のワークフロー構文](/actions/reference/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet)」を参照してください。
    
    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 で、リポジトリのメイン ページに移動します。
  5. リポジトリ名の下にある [Security] をクリックします。 [Security] タブが表示されない場合は、 ドロップダウン メニューを選んでから、[Security] をクリックします。
    タブを示すリポジトリ ヘッダーのスクリーンショット。 [セキュリティ] タブが濃いオレンジ色の枠線で強調表示されています。
    ファイルに導入したばかりのシークレットに対する新しいオープン アラートは存在しないはずです。

ベスト プラクティス

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

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