Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 252

Cosign

監修Cybersecurity entrepreneur & security researcher

Cosign とは何ですか?

CosignSigstore プロジェクト由来のオープンソース CLI で、OCI 成果物などのソフトウェアに対し、鍵あり・鍵なし両方のワークフローで署名・検証・アテステーションを行うツール。


Cosign は Sigstore スタックのユーザー向けツールであり、SolarWinds から乗っ取られた npm パッケージに至るまで、稼働中のシステムではなくビルドと配布のパイプラインを狙うサプライチェーン攻撃に対応するために作られました。コンテナイメージ、OCI 成果物、blob、SBOM、in-toto アテステーションに署名し、署名を成果物と一緒に OCI レジストリへ格納できます。

その決定的なイノベーションが キーレス署名 です。開発者に長期間有効な秘密鍵の保護を求める代わりに、Cosign は Fulcio に証明書を要求します。Fulcio は OIDC ID(GitHub Actions ワークフロー、Google や GitHub のユーザーなど)を検証し、およそ 10 分間 有効な証明書を発行する認証局です。Cosign はその時間枠内で署名し、その後、一時的な秘密鍵を破棄します。証明書がきわめて短命であるため、失効リストや OCSP は不要です。署名イベントは、追記専用で改ざん耐性を持つ透明性ログ Rekor に記録されるため、後から誰でも、何が、どの ID によって、いつ署名されたかを証明できます。

そのため検証ポリシーでは、どの鍵 が署名したかではなく 誰が 署名したかを要求できます。たとえば「当社の release.yml 再利用可能ワークフローによってビルドされたイメージのみを許可する」といった具合です。KyvernoConnaisseurOPA Gatekeeper などの Kubernetes Admission コントローラーがデプロイ時にこれらのチェックを強制し、Cosign が生成するアテステーションは SLSA の来歴(provenance)を裏付け、それ自体では自己申告にすぎないビルドの主張を暗号学的に検証可能なものへと変えます。

flowchart TD
  A[CI ジョブがイメージをビルド] --> B[cosign sign --identity-token OIDC]
  B --> C[Fulcio が OIDC ID を検証<br/>約 10 分の証明書を発行]
  C --> D[Cosign が署名し、鍵を破棄]
  D --> E[署名 + 証明書を Rekor<br/>透明性ログに記録]
  E --> F[イメージ + 署名をレジストリへプッシュ]
  F --> G[Admission コントローラー<br/>Kyverno / Connaisseur]
  G --> H{信頼された ID/ワークフロー<br/>による署名か?}
  H -->|Yes| I[デプロイ許可]
  H -->|No| J[ブロック]

  1. 01

    cosign sign --identity-token $OIDC_TOKEN ghcr.io/org/app:v1.2

  2. 02

    本番イメージが特定の GitHub Actions ワークフローで署名されているかを Kyverno ポリシーで検証する例。

よくある質問

Cosign とは何ですか?

Sigstore プロジェクト由来のオープンソース CLI で、OCI 成果物などのソフトウェアに対し、鍵あり・鍵なし両方のワークフローで署名・検証・アテステーションを行うツール。 サイバーセキュリティの アプリケーションセキュリティ カテゴリに属します。

Cosign とはどういう意味ですか?

Sigstore プロジェクト由来のオープンソース CLI で、OCI 成果物などのソフトウェアに対し、鍵あり・鍵なし両方のワークフローで署名・検証・アテステーションを行うツール。

Cosign からどのように防御しますか?

Cosign に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。

Cosign の別名は何ですか?

一般的な別名: cosign。

関連用語