変更要約: GH-500 第2章を新規作成(有効化と漏洩防止=リポ/組織での有効化・公開vsプライベートの可用性とライセンス・Push Protection で源流防止・validity check と優先アラート・トークン無効化の必須性、アラート管理=ライフサイクル[作成→オープン→解決/却下]・役割ベース/委譲バイパス・受信者/除外・カスタムシークレットパターン[正規表現])
2.1Secret Protection の有効化と漏洩防止
Secret Protection をリポジトリ/組織レベルで有効化し設定する方法、公開とプライベート/Enterprise での挙動の違い、Push Protection による源流での漏洩防止、そして検証(validity check)と高信頼シークレットの優先アラートを理解します。
Secret Protection(secret scanning/Push Protection を束ねた製品)は、リポジトリに コミットされた秘密(APIキー・トークン・接続文字列など)を検出し、さらに コミットされる前に防ぐ 機能です。秘密が一度履歴に入ると完全な除去は難しく、漏洩は重大インシデントになり得ます。だからこそ「検出(後追い)」だけでなく「源流で防ぐ」ことが重視されます。
2.1.1有効化と可用性
Secret Protection は リポジトリ単位 でも 組織単位 でも有効化でき、組織レベルで一括適用や既定構成を設定できます。公開リポジトリ では secret scanning が 無料 で動作し、検出されたパートナー(GitHub と連携する発行元)の秘密は 自動で発行元へ通知されることがあります。プライベート/Enterprise で全機能(Push Protection・カスタムパターン等)を使うには Secret Protection のライセンス(2025年に GHAS から分離した製品)が必要です。設定では、対象範囲・通知先・除外などを構成します。
2.1.2Push Protection — 源流で防ぐ
Push Protection は、開発者が秘密を含むコミットを push しようとした瞬間にブロック する予防機能です(第1章の予防優先戦略の中核)。検出されると push が止まり、開発者は秘密を取り除くか、正当な理由がある場合は バイパス(理由の記録や承認が必要) します。これにより、そもそも秘密が履歴に入るのを防ぎ、検出後の面倒な 履歴の書き換えや無効化 を避けられます。組織は 委譲バイパス で「誰がバイパスを承認できるか」を制御します。
2.1.3検証(validity check)と優先アラート
検出された秘密がすべて同じ緊急度とは限りません。検証(validity check) は、検出されたトークンが 今も有効か(生きているか) を発行元 API などで確認し、高信頼(active)な秘密 を優先してアラートします。これにより、対応すべき「本当に危険な漏洩」に集中できます。失効済みやテスト用のダミーに振り回されず、優先順位付け を効かせるのが狙いです。
頻出:
①Secret Protection はリポ/組織で有効化、公開は無料・プライベート/Enterprise はライセンス。
②Push Protection は秘密の push を源流でブロック(予防優先)=履歴混入を防ぐ。バイパスは理由記録/承認+委譲バイパスで承認者を制御。
③validity check で有効な高信頼シークレットを優先アラート=優先順位付け。
④検出後の対処は履歴書き換えより予防が安価。
混同・注意:
①検出(コミット後に見つける)と Push Protection(push 前に防ぐ)は別——理想は防ぐこと。
②秘密が一度コミットされたら、ファイルを消すだけでは履歴に残る——該当トークンの無効化(ローテーション)が必須。
③Push Protection のバイパスは無条件ではなく承認/記録が要る。
④validity check は「有効性」の確認で、検出自体を置き換えない。
2.1.4この節のまとめ
- Secret Protection はリポ/組織で有効化、公開は無料・プライベート/Enterprise はライセンス
- Push Protection は秘密の push を源流でブロック(予防優先)、バイパスは承認/記録+委譲バイパスで統制
- validity check で有効な高信頼シークレットを優先アラート=優先順位付け
- コミット済みの秘密はファイル削除では消えない=トークンの無効化(ローテーション)が必須
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. 開発者が秘密を含むコミットを push しようとした瞬間にブロックし、履歴への混入を源流で防ぐ機能はどれですか?
Q2. 検出された多数の秘密アラートのうち、今も有効(active)で本当に危険なものを優先したいです。役立つ仕組みは?
Q3. 秘密が誤ってコミットされ履歴に入ってしまいました。最も重要な対応はどれですか?
Q4. プライベートリポジトリで Push Protection やカスタムパターンを使うために一般に必要なものは?
Q5. 組織で Push Protection のブロックを、正当な場合にのみ承認制で回避できるようにしたいです。何を構成しますか?
Q6. 検出(後追い)と Push Protection(事前防止)の関係として正しいものはどれですか?

