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

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

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

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

## ユーザーのシークレット スキャン アラート からディレクトリを除外する

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

2. ファイルの一覧の上にある **\[Add file <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-triangle-down" aria-label="The downwards-facing triangle icon" role="img"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg>]** ドロップダウン メニューを選んでから、**\[<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-plus" aria-label="plus" role="img"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z"></path></svg> Create new file]** をクリックします。

   または、左側のファイル ツリー ビューの <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-plus" aria-label="The plus sign icon" role="img"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z"></path></svg> をクリックしてもかまいません。

   ![上で説明した \[Add file\] と "プラス記号" アイコンの両方がオレンジ色の枠線で強調されている、リポジトリのメイン ページのスクリーンショット。](/assets/images/help/repository/add-file-buttons.png)

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

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

   ```yaml copy
   paths-ignore:
     - "docs/**"
   ```

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

`*` などの特殊文字を使用して、パスをフィルター処理することもできます。 フィルター パターンの詳細については、「[GitHub Actions のワークフロー構文](/ja/actions/reference/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet)」を参照してください。

````
``` yaml copy
paths-ignore:
  - "foo/bar/*.js"
```

> [!NOTE]
> * 
````

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

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

1. シークレット スキャンから除外したディレクトリ内のファイルを開く

2. 事前に無効化されたシークレットまたはテスト シークレットを貼り付けます。

3. 変更をコミットします。

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

5. リポジトリ名の下にある \[ **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security and quality** ] タブをクリックします。\[<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security and quality] タブが表示されない場合は、 **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-kebab-horizontal" aria-label="kebab-horizontal" role="img"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg>** ドロップダウン メニューを選択し、\[ **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security and quality**] をクリックします。 ファイルに導入したシークレットに対する新しいオープン アラートは存在しません。

## ベスト プラクティス

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

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