Skip to main content

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

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

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

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

Secret scanningは組織が所有するリポジトリに利用できます。 詳細については、「シークレット スキャンについて」と「GitHub Advanced Security について」を参照してください。

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

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

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

組織が所有する組織が所有するリポジトリを持つGitHub Enterprise Cloudを使用する際のユーザー アカウントを所有するリポジトリ に対してシークレット スキャンを有効することができます。 有効にすると、secret scanningはGitHubリポジトリ中に存在するすべてのブランチのGit履歴全体に対して、あらゆるシークレットをスキャンします。 さらに、secret scanning は します

  • 問題 の説明とコメント
  • オープンおよびクローズの 履歴 に関する問題

組織内の複数のリポジトリで同時に secret scanning を有効にすることもできます。 詳しくは、「組織を保護するためのクイック スタート」を参照してください。

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

リポジトリ管理者は、リポジトリのsecret scanningをいつでも無効にすることができます。 詳しくは、「リポジトリのセキュリティと分析設定を管理する」を参照してください。

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

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

リポジトリの「コード セキュリティと分析」設定で、次の追加secret scanning機能sを有効にすることができます。

プロバイダー以外のパターンのスキャンを有効にする

注: プロバイダー以外のパターンの検出は現在ベータ版であり、変更される可能性があります。

プロバイダー以外のパターンのスキャンを有効にすることができます。 プロバイダー以外のパターンは秘密キーなどのシークレットに対応し、誤検知の比率が高くなります。

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

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの [セキュリティ] セクションで、 [コードのセキュリティと分析] をクリックします。

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

参考資料