secret scanningについて
プロジェクトを外部サービスと通信させる場合、認証にトークンまたは秘密鍵を使用できます。 トークンや秘密鍵は、サービスプロバイダが発行できるシークレットです。 リポジトリにシークレットをチェックインする場合、リポジトリへの読み取りアクセスを持つすべてのユーザがシークレットを使用して、自分の権限で外部サービスにアクセスできます。 シークレットは、プロジェクトのリポジトリの外の、安全な専用の場所に保存することをお勧めします。
Secret scanning では、シークレットの GitHub リポジトリ (リポジトリがアーカイブされている場合も含む) に存在するすべてのブランチ上の Git 履歴全体がスキャンされます。 Secret scanning は問題をスキャンしません。
GitHub ツールを使用して、secret scanning アラートに応答して実行されたアクションを監査できます。 詳しくは、「セキュリティ アラートの監査」を参照してください。
また、リポジトリまたは組織のプッシュ保護としてsecret scanningを有効にすることもできます。 この機能を有効にすると、secret scanningでは、共同作成者が検出済みのシークレットを含むコードをプッシュできなくなります。 続行するには、共同作成者がプッシュからシークレットを削除するか、必要に応じて保護をバイパスします。 詳しくは、「リポジトリと組織のプッシュ保護」をご覧ください。
注: secret scanning またはプッシュ保護が有効になっているリポジトリをフォークした場合、フォークではこれらの機能は既定で有効になりません。 スタンドアロン リポジトリで有効にするのと同じ方法で、secret scanning を有効にするか、フォークで保護をプッシュできます。
GitHub AE の シークレット スキャンについて
シークレット スキャンニング は GitHub Advanced Security の一部として、組織が所有するすべてのリポジトリで利用できます。 この機能は、ユーザーが所有するリポジトリでは使用できません。リポジトリに対して secret scanning を有効にする場合、GitHub によって、多くのサービス プロバイダーが使うシークレットに一致するパターンがコードでスキャンされます。
サポートされているシークレットが漏洩した場合、GitHub AE は、secret scanning アラートを生成します。 詳細については、「Secret scanning パターン」を参照してください。
リポジトリ管理者は、任意のリポジトリ (アーカイブされたリポジトリを含む) に対して シークレット スキャン を有効にすることができます。 組織の所有者は、すべてのリポジトリ、または組織内のすべての新しいリポジトリに対して シークレット スキャン を有効にすることもできます。 詳細については、「リポジトリのセキュリティと分析設定を管理する」および「組織のセキュリティおよび分析設定を管理する」を参照してください。
リポジトリ、組織、またはエンタープライズ用のカスタム secret scanning パターンを定義することもできます。 詳しくは、GitHub Enterprise Cloud ドキュメントの「シークレット スキャンのカスタム パターンの定義
シークレット スキャンニング アラート
へのアクセス
リポジトリの secret scanning を有効にする、または secret scanning が有効になっているリポジトリにコミットをプッシュすると、GitHub によってその内容がスキャンされ、サービス プロバイダーで定義されているパターン、およびエンタープライズ、組織、またはリポジトリで定義されているカスタム パターンと一致するシークレットが確認されます。
secret scanning がコミット内のシークレットを検出した場合、GitHub によってアラートが生成されます。
- GitHub は、リポジトリ管理者と Organizationのオーナーにメールアラートを送信します。 リポジトリセキュリティ アラートまたはリポジトリ。
- コミットでシークレットを導入したユーザーがリポジトリを無視していない場合、GitHub によって電子メール アラートも送信されます。 メールには、関連する secret scanning アラートへのリンクが含まれています。 シークレットを導入したユーザーは、リポジトリでこのアラートを表示して、アラートを解決できます。
- GitHub のリポジトリの [セキュリティ] タブにアラートが表示されます。
シークレット スキャンニング アラート の表示と解決について詳しくは、「シークレット スキャンからのアラートの管理」を参照してください。
リポジトリ管理者と組織所有者は、ユーザーおよびチームに シークレット スキャンニング アラート へのアクセスを許可できます。 詳しくは、「リポジトリのセキュリティと分析設定を管理する」を参照してください。
セキュリティの概要を使って、secret scanning が有効になっているリポジトリと検出されたアラートの組織レベルのビューを表示できます。 詳しくは、「セキュリティの概要について」を参照してください。
また、REST API を使って、リポジトリ全体でsecret scanningからの結果を監視できます。 API エンドポイントについて詳しくは、「シークレット スキャン」を参照してください。