API キーやパスワードなどの資格情報がリポジトリにコミットされると、承認されていないアクセスのターゲットになります。 Secret scanning では、これらの公開されたシークレットが自動的に検出されるため、悪用される前にセキュリティで保護できます。
ヒント
漏洩したシークレットについては、いつでも組織のコードの無料評価を実行できます。
レポートを生成するには、 organization の [ Security] タブで、[ Assessments] ページを表示し、[Scan your organization] をクリックしますを開きます。
シークレット スキャンによってコードが保護されるしくみ
Secret scanning は、リポジトリのすべてのブランチで、API キー、パスワード、トークン、その他の既知のシークレットの種類について Git 履歴全体をスキャンします。
GitHub また、新しいシークレットの種類が追加されると、リポジトリも定期的に再スキャンされます。
GitHub また、次の項目も自動的にスキャンされます。
- 問題の説明とコメント
- オープンとクローズの過去の問題のタイトル、説明、およびコメント
- pull request のタイトル、説明とコメント
- のタイトル、説明、およびコメント GitHub Discussions
- 秘密の要旨
Secret scanning アラートと修復
secret scanningが潜在的なシークレットを検出すると、GitHubは、公開された資格情報に関する詳細を含むアラートをリポジトリの**<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** タブに生成します。
アラートを受信したら、影響を受ける資格情報をすぐにローテーションして、承認されていないアクセスを防ぎます。 Git 履歴からシークレットを削除することもできますが、これは時間がかかり、資格情報を既に取り消している場合は多くの場合不要です。
カスタマイズ
パートナーシークレットとプロバイダー シークレットの既定の検出以外にも、ニーズに合わせて secret scanning を拡張およびカスタマイズできます。
-
**プロバイダー以外のパターン。** 秘密キー、接続文字列、汎用 API キーなど、特定のサービス プロバイダーに関連付けられていないシークレットに検出を拡張します。 -
**カスタム パターン。** 既定のパターンでカバーされていない組織固有のシークレットを検出する独自の正規表現を定義します。 -
**有効性チェック。** 検出されたシークレットがまだアクティブであるかどうかを確認して、修復に優先順位を付けます。
この機能にアクセスするにはどうすればよいですか?
Secret scanning は、次のリポジトリの種類で使用できます。
-
**パブリック リポジトリ**: Secret scanning は無料で自動的に実行されます。 -
**組織所有のプライベートリポジトリと内部リポジトリ**: [GitHub Team または GitHub Enterprise Cloud](/get-started/learning-about-github/about-github-advanced-security) で有効になっている GitHub Secret Protection で使用できます。 -
**ユーザー所有のリポジトリ**: GitHub Enterprise Cloud および Enterprise Managed Users で利用可能です。 GitHub Enterprise Server で使用できるのは、エンタープライズで [GitHub Secret Protection](/get-started/learning-about-github/about-github-advanced-security) が有効になっている場合です。
次のステップ
-
**アラートを受け取った場合は**、 [AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning) を参照して、公開されているシークレットを確認、解決、修復する方法を確認してください。 -
**組織をセキュリティで保護する場合は**、 [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-organization-security/configure-specific-tools/assess-your-secret-risk) を参照して、漏洩したシークレットに対する組織の露出を判断してください。
詳細については、次を参照してください。
- サポートされているシークレットとサービス プロバイダーの完全な一覧については、 サポートされているシークレット スキャン パターン を参照してください。