Назад к обновлениям
New releaseAug 6, 2026

cosign v3.1.3

Подписание кода и прозрачность для контейнеров и бинарных файлов

Поделиться

Логотип Cosign

cosign

Подписание OCI-контейнеров (и других артефактов) с помощью Sigstore!

Go Report Card e2e-tests CII Best Practices OpenSSF Scorecard

Cosign стремится сделать подписи невидимой инфраструктурой.

Cosign поддерживает:

  • "Бесключевое подписание" с центром сертификации Fulcio и журналом прозрачности Rekor публичного блага Sigstore (по умолчанию)
  • Аппаратное и KMS-подписание
  • Подписание с помощью сгенерированной cosign зашифрованной пары закрытого/открытого ключей
  • Подписание, проверка и хранение контейнеров в OCI-реестре.
  • Использование собственного PKI

Информация

Cosign разрабатывается в рамках проекта sigstore. Мы также используем Slack-канал! Нажмите здесь, чтобы получить пригласительную ссылку.

Установка

Инструкции по установке для Homebrew, Arch, Nix, GitHub Action и Kubernetes см. в документации по установке.

Для Linux и macOS бинарные файлы см. в артефактах релизов GitHub.

🚨 Если вы загружаете релизы cosign из нашего GCS-бакета, пожалуйста, ознакомьтесь с дополнительной информацией в уведомлении об устаревании от 31 июля 2023 года 🚨

Установка для разработчиков

Если у вас установлен Go 1.22+, вы можете настроить среду разработки:```shell $ git clone https://github.com/sigstore/cosign $ cd cosign $ go install ./cmd/cosign $ $(go env GOPATH)/bin/cosign

## Внесение вклада

Если вы заинтересованы во внесении вклада в `cosign`, пожалуйста, прочитайте [документацию по внесению вклада](https://github.com/sigstore/cosign/blob/main/CONTRIBUTING.md).

Будущее развитие Cosign будет сосредоточено на следующем крупном выпуске, который будет основан на
[sigstore-go](https://github.com/sigstore/sigstore-go). Сопровождающие будут сосредоточены на разработке функций в рамках
sigstore-go. Вклад в sigstore-go, особенно в области использования собственных ключей (bring-your-own keys) и подписи, приветствуется.
Пожалуйста, обратитесь к [трекеру проблем](https://github.com/sigstore/sigstore-go/issues), чтобы найти хорошие задачи для начала.

Cosign 2.x — это стабильный релиз, который продолжит получать периодические обновления функций и исправления ошибок. PR,
небольшие по охвату и размеру, скорее всего, будут быстро рассмотрены.

PR, которые значительно изменяют или ломают API, не будут приняты. PR, которые значительны по размеру, но не вносят
разрушающих изменений, могут быть приняты, но будут рассматриваться как менее приоритетные, чем PR в sigstore-go.

## Dockerfile

Вот как установить и использовать cosign внутри Dockerfile с помощью образа ghcr.io/sigstore/cosign/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" ]

Быстрый старт

Здесь показано, как:

Подписание контейнера и сохранение подписи в реестре

Обратите внимание, что всегда следует подписывать образы по их дайджесту (@sha256:...) а не по тегу (:latest), поскольку в противном случае вы можете подписать не то, что намеревались подписать!```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

You can also pass in a regex for the certificate identity and issuer flags, --certificate-identity-regexp and --certificate-oidc-issuer-regexp.

Verify a container against a public key

This command returns 0 if at least one cosign formatted signature for the image is found matching the public key. See the detailed usage below for information and caveats on other signature formats.

Any valid payloads are printed to stdout, in json format. Note that these signed payloads include the digest of the container image, which is how we can be sure these "detached" signatures cover the correct image.```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}
### Проверка контейнера в изолированной среде

**Примечание:** Этот раздел устарел.

Категории