アップデート一覧に戻る
New releaseAug 6, 2026

cosign v3.1.3

コンテナとバイナリ向けのコード署名と透明性

共有

Cosign ロゴ

cosign

Sigstore を使用して OCI コンテナ(およびその他のアーティファクト)に署名します!

Go Report Card e2e-tests CII Best Practices OpenSSF Scorecard

Cosign は、署名を見えないインフラストラクチャにすることを目指しています。

Cosign は以下をサポートしています:

  • Sigstore のパブリックグッド Fulcio 認証局と Rekor 透過性ログを使用した「キーレス署名」(デフォルト)
  • ハードウェアおよび KMS 署名
  • cosign が生成した暗号化された秘密鍵/公開鍵ペアによる署名
  • OCI レジストリでのコンテナの署名、検証、保存。
  • Bring-your-own PKI(独自 PKI の持ち込み)

情報

Cosign は sigstore プロジェクトの一部として開発されています。 また、slack チャンネル も利用しています! 招待リンクは こちら をクリックしてください。

インストール

Homebrew、Arch、Nix、GitHub Action、Kubernetes のインストールについては、インストールドキュメント を参照してください。

Linux および macOS のバイナリについては、GitHub リリースアセット を参照してください。

🚨 GCS バケットから cosign のリリースをダウンロードしている場合は、2023 年 7 月 31 日の非推奨のお知らせ の詳細を参照してください 🚨

開発者向けインストール

Go 1.22+ をお持ちの場合は、開発環境をセットアップできます:```shell $ git clone https://github.com/sigstore/cosign $ cd cosign $ go install ./cmd/cosign $ $(go env GOPATH)/bin/cosign

## Contributing

`cosign` への貢献に興味がある場合は、[貢献ドキュメント](https://github.com/sigstore/cosign/blob/main/CONTRIBUTING.md) をお読みください。

今後の Cosign 開発は、[sigstore-go](https://github.com/sigstore/sigstore-go) をベースにした次のメジャーリリースに焦点が当てられます。メンテナは sigstore-go 内の機能開発に注力します。特に bring-your-own keys と署名に関する sigstore-go への貢献は歓迎します。最初のイシューに適したものについては、[イシュートラッカー](https://github.com/sigstore/sigstore-go/issues) をご覧ください。

Cosign 2.x は安定版リリースであり、今後も定期的な機能更新とバグ修正が行われます。スコープと規模が小さい PR は、迅速にレビューされる可能性が最も高くなります。

API を大幅に変更または破壊する PR は受け付けられません。規模は大きいが破壊的な変更を導入しない PR は受け入れられる可能性がありますが、sigstore-go の PR よりも優先度は低いと見なされます。

## Dockerfile

ghcr.io/sigstore/cosign/cosign イメージを使用して、Dockerfile 内で cosign をインストールおよび使用する方法は次のとおりです:```shell
FROM ghcr.io/sigstore/cosign/cosign:v2.4.1 as cosign-bin

# Source: https://github.com/chainguard-images/static
FROM cgr.dev/chainguard/static:latest
COPY --from=cosign-bin /ko-app/cosign /usr/local/bin/cosign
ENTRYPOINT [ "cosign" ]

クイックスタート

これは以下の方法を示します:

  • デフォルトのIDベースの「キーレス署名」方式でコンテナイメージに署名する(詳細はドキュメントを参照)
  • コンテナイメージを検証する
  • Sigstore Cosign クイックスタートで、より広範なキーレスblob署名/検証フローを試す

コンテナに署名し、署名をレジストリに保存する

イメージはタグ(:latest)ではなく、常にダイジェスト(@sha256:...)に基づいて署名する必要があることに注意してください。そうしないと、意図しないものに署名してしまう可能性があります。```shell cosign sign $IMAGE

Generating ephemeral keys... Retrieving signed certificate...

Note that there may be personally identifiable information associated with this signed artifact.
This may include the email address associated with the account with which you authenticate.
This information will be used for signing this artifact and will be stored in public transparency logs and cannot be removed later.

By typing 'y', you attest that you grant (or have permission to grant) and agree to have this information stored permanently in transparency logs. Are you sure you would like to continue? [y/N] y Your browser will now be opened to: https://oauth2.sigstore.dev/auth/auth?access_type=online&client_id=sigstore&code_challenge=OrXitVKUZm2lEWHVt1oQWR4HZvn0rSlKhLcltglYxCY&code_challenge_method=S256&nonce=2KvOWeTFxYfxyzHtssvlIXmY6Jk&redirect_uri=http%3A%2F%2Flocalhost%3A57102%2Fauth%2Fcallback&response_type=code&scope=openid+email&state=2KvOWfbQJ1caqScgjwibzK2qJmb Successfully verified SCT... tlog entry created with index: 12086900 Pushing signature to: $IMAGE

Cosign は OIDC を介した認証を求め、メールアドレスでサインインします。
内部的には、cosign は Fulcio 証明書当局からコード署名証明書を要求します。
証明書のサブジェクトは、ログインに使用したメールアドレスと一致します。
その後、cosign は署名と証明書を Rekor 透過性ログに保存し、署名を署名対象のイメージとともに OCI レジストリにアップロードします。

### コンテナを検証する

イメージを検証するには、`--certificate-identity` フラグと `--certificate-oidc-issuer` フラグを使用して、期待される証明書サブジェクトと証明書発行者を渡す必要があります。```
cosign verify $IMAGE --certificate-identity=$IDENTITY --certificate-oidc-issuer=$OIDC_ISSUER

証明書のアイデンティティと issuer フラグには正規表現を渡すこともできます: --certificate-identity-regexp および --certificate-oidc-issuer-regexp。

公開鍵に対するコンテナの検証

このコマンドは、イメージに対する cosign 形式の署名が公開鍵に一致するものが少なくとも1つ見つかった場合に 0 を返します。 他の署名形式に関する情報と注意点については、以下の詳細な使用方法を参照してください。

有効なペイロードはすべて JSON 形式で stdout に出力されます。 これらの署名済みペイロードにはコンテナイメージのダイジェストが含まれていることに注意してください。これにより、これらの「分離された」署名が正しいイメージを対象としていることを確信できます。```shell $ cosign verify --key cosign.pub $IMAGE_URI:1h The following checks were performed on these signatures:

  • The cosign claims were validated
  • The signatures were verified against the specified public key {"Critical":{"Identity":{"docker-reference":""},"Image":{"Docker-manifest-digest":"sha256:87ef60f558bad79beea6425a3b28989f01dd417164150ab3baab98dcbf04def8"},"Type":"cosign container image signature"},"Optional":null}
### エアギャップ環境でのコンテナの検証

**注:** このセクションは古くなっています。

**注:** ほとんどの検証ワークフローでは、TUFリポジトリからサービスキーを定期的に要求する必要があります。
public-goodインスタンスを使用した署名のエアギャップ検証では、本番の
TUFリポジトリから [trusted root](https://github.com/sigstore/root-signing/blob/main/targets/trusted_root.json) ファイルを取得する必要があります。
このファイルの内容は予告なく変更されます。TUFを使用しない場合、エアギャップ環境用のこのファイルのコピーを最新に保つための独自の仕組みを構築する必要があります。

Cosignは、[バンドル](https://github.com/sigstore/cosign/blob/main/specs/SIGNATURE_SPEC.md#properties) を検証することで、完全にオフラインで検証を行うことができます。これは通常、イメージマニフェストのアノテーションとして配布されます。
このアノテーションが存在する限り、オフライン検証が可能です。
このバンドルアノテーションはキーレス署名の場合にデフォルトで常に含まれるため、デフォルトの `cosign sign` 機能にはオフライン検証に必要なすべての材料が含まれます。

エアギャップ環境でイメージを検証するには、イメージと署名がファイルシステム上でローカルに利用可能である必要があります。

イメージは `cosign save` を使用してローカルに保存できます(注: この手順はネットワーク接続が必要です):```
cosign initialize # This will pull in the latest TUF root
cosign save $IMAGE_NAME --dir ./path/to/dir

さて、エアギャップ環境では、このローカルイメージを検証できます:```shell cosign verify
--certificate-identity $CERT_IDENTITY
--certificate-oidc-issuer $CERT_OIDC_ISSUER
--offline=true
--new-bundle-format=false \ # for artifacts signed without the new protobuf bundle format --trusted-root ~/.sigstore/root/tuf-repo-cdn.sigstore.dev/targets/trusted_root.json \ # default location of trusted root --local-image ./path/to/dir

`$CERT_IDENTITY` と `$CERT_OIDC_ISSUER` の期待値を渡して、このイメージを正しく検証する必要があります。キーペアで署名した場合、公開鍵のマテリアルがローカルに存在すれば、同じコマンドが機能します:```
cosign verify --key cosign.pub --offline --local-image ./path/to/dir

アイデンティティベースのブロブ署名と検証

キーレスブロブ署名(--key なしの cosign sign-blob)を使用して、期待される署名者のアイデンティティに対して検証します:```shell $ cosign sign-blob artifact --bundle artifact.sigstore.json --yes $ cosign verify-blob artifact
--bundle artifact.sigstore.json
--certificate-identity "https://github.com/ORG/REPO/.github/workflows/release.yml@refs/heads/main"
--certificate-oidc-issuer "https://token.actions.githubusercontent.com"

### トラブルシューティング

Cosignで問題が発生した場合は、まず最近のリリースを使用していることを確認してください。Cosignプロジェクトは、最新リリースとv2シリーズの最終リリースを積極的にサポートしています。

#### よくある問題とその対処法

カテゴリ