【コサイン】
Cosign とは?
💡 コンテナイメージに「本物の証明書」を貼り付ける信頼の印鑑
📌 このページのポイント
- OCI(コンテナ標準)に準拠した形式でイメージに署名を付与・検証できる
- 秘密鍵不要の「キーレス署名」に対応し、GitHub ActionsなどのCI環境と自然に連携
- 署名情報はRekorという公開ログに記録され、第三者が検証可能な透明性を持つ
- SigstoreエコシステムのFulcio(CA)・Rekor(ログ)と連携して動作する
Cosignって何?コサイン(cos)って数学の三角関数と関係あるの?
署名って、ファイルに判子みたいなものを押すイメージ?
そのとおり!デジタル署名を使って、イメージが改ざんされていないこと・誰が作ったかを証明できるんだ。ソフトウェアのサプライチェーン攻撃を防ぐのに役立つよ。
キーレス署名って何なの?秘密鍵がなくていいってこと?
そう!従来は秘密鍵ファイルを管理する必要があったけど、キーレス署名ではGitHub ActionsのOIDCトークンを使って一時的な証明書を発行するんだ。鍵の管理ミスによる漏洩リスクがゼロになるよ。
署名の記録はどこに残るの?
Rekorという公開の改ざん防止ログに自動で記録されるよ。誰でも検証できる透明性が特徴で、後から「このイメージはいつ・誰が署名したか」を追跡できるんだ。
実際の開発でどうやって使うの?
CI/CDのパイプラインに組み込むのが一般的だよ。GitHub ActionsでDockerイメージをビルドした直後に `cosign sign` を実行して、デプロイ前に `cosign verify` で検証するというフローが広まっているんだ。
まとめ:ざっくりこれだけ覚えればOK!
「Cosign」って出てきたら「コンテナイメージが本物かどうか署名で証明するツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Cosign」 = 共同署名・連署
💬 英語の「co-sign(共同で署名する)」が語源で、ソフトウェアのサプライチェーン全体で「一緒に署名して信頼を担保しよう」という意図が込められているんだよ。