【しーくれっとすきゃん】
シークレットスキャン とは?
最終更新:
💡 コードに混ざった秘密を探す
コードやGit履歴などを調べ、APIキー・パスワード・トークンといった機密情報の混入を検出する仕組み。検査対象や検出できる形式はツールと設定による。
📌 このページのポイント
GitHubのSecret Scanningって何をしてるの?
そんな間違い、普通しないでしょ?
テスト用の値を直書きしたまま残したり、.envファイルや設定ファイルを誤ってコミットしたりする場合があるよ。Git履歴を調べるツールなら、今のファイルから消えていても過去のコミットに残る認証情報を探せるんだ
検知されたらどうなるの?
コミット前に防ぐ方法はないの?
Gitleaksなどをpre-commitフックに組み込むと、コミット時に検査し、検出した場合に止められるよ。GitHubのpush protectionは対応するシークレットの送信を止める機能。CIでの検査も組み合わせられるけれど、対象・設定・回避の扱いを確認する必要があるんだ
シークレット管理ツールと何が違うの?
シークレット管理は保管・配布や更新を管理する役割で、この検査はコードなどへの混入を探す役割だよ。混入の検査も送信前の予防に使える。両方を組み合わせても安全が自動で保証されるわけではなく、必要最小限の権限や利用状況の確認も大切だね
開発ツールからトークンが盗まれるケースにも使えるの?
まとめ:ざっくりこれだけ覚えればOK!
「シークレットスキャン」って出てきたら「コードにAPIキーなどを書いてしまっていないかチェックするツールや仕組みのことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Secret Scanning」 = シークレット(機密情報)のスキャン
💬 ここでいう「シークレット」はAPIキー・パスワード・トークンなど「外に出てはいけない情報」のことだよ