Volver a actualizaciones
Nuevo releaseAug 6, 2026

cosign v3.1.3

Firma de código y transparencia para contenedores y binarios

Compartir

Cosign logo

cosign

Firma de contenedores OCI (y otros artefactos) con Sigstore!

Go Report Card e2e-tests CII Best Practices OpenSSF Scorecard

Cosign tiene como objetivo hacer de las firmas infraestructura invisible.

Cosign admite:

  • "Firma sin claves" con la autoridad certificadora Fulcio del bien público de Sigstore y el registro de transparencia Rekor (por defecto)
  • Firma con hardware y KMS
  • Firma con un par de claves pública/privada cifrado generado por cosign
  • Firma, verificación y almacenamiento de contenedores en un registro OCI.
  • Trae tu propia PKI

Información

Cosign se desarrolla como parte del proyecto sigstore. También usamos un canal de Slack! Haz clic aquí para el enlace de invitación.

Instalación

Para instalaciones con Homebrew, Arch, Nix, GitHub Action y Kubernetes, consulta la documentación de instalación.

Para los binarios de Linux y macOS, consulta los recursos de lanzamiento de GitHub.

🚨 Si estás descargando lanzamientos de cosign desde nuestro bucket de GCS - consulta más información en el aviso de deprecación del 31 de julio de 2023 🚨

Instalación para desarrolladores

Si tienes Go 1.22+, puedes configurar un entorno de desarrollo:```shell $ git clone https://github.com/sigstore/cosign $ cd cosign $ go install ./cmd/cosign $ $(go env GOPATH)/bin/cosign

## Contributing

Si estás interesado en contribuir a `cosign`, lee la [documentación de contribución](https://github.com/sigstore/cosign/blob/main/CONTRIBUTING.md).

El desarrollo futuro de Cosign se centrará en la próxima versión principal, que estará basada en
[sigstore-go](https://github.com/sigstore/sigstore-go). Los mantenedores se centrarán en el desarrollo de funciones dentro de
sigstore-go. Se agradecen las contribuciones a sigstore-go, especialmente en torno a traer tus propias claves y la firma.
Consulta el [rastreador de incidencias](https://github.com/sigstore/sigstore-go/issues) para ver las good first issues.

Cosign 2.x es una versión estable y seguirá recibiendo actualizaciones periódicas de funciones y correcciones de errores. Los PRs
que sean pequeños en alcance y tamaño son los que con mayor probabilidad se revisarán rápidamente.

No se aceptarán PRs que modifiquen significativamente o rompan la API. Los PRs que sean grandes en tamaño pero que no
introduzcan cambios que rompan la compatibilidad podrían ser aceptados, pero se considerarán de menor prioridad que los PRs en sigstore-go.

## Dockerfile

Así es como se instala y se usa cosign dentro de un Dockerfile mediante la imagen 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" ]

Inicio rápido

Esto muestra cómo:

Firmar un contenedor y almacenar la firma en el registro

Ten en cuenta que siempre debes firmar imágenes basándote en su digest (@sha256:...) en lugar de una etiqueta (:latest) porque de lo contrario podrías firmar algo que ¡no tenías intención de firmar!```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 te pedirá que te autentiques mediante OIDC, donde iniciarás sesión con tu dirección de correo electrónico.
Internamente, cosign solicitará un certificado de firma de código a la autoridad certificadora Fulcio.
El subject del certificado coincidirá con la dirección de correo electrónico con la que iniciaste sesión.
Cosign almacenará entonces la firma y el certificado en el registro de transparencia Rekor, y subirá la firma al registro OCI junto con la imagen que estás firmando.


### Verificar un contenedor

Para verificar la imagen, deberás pasar el subject del certificado esperado y el emisor del certificado mediante las opciones `--certificate-identity` y `--certificate-oidc-issuer`:```
cosign verify $IMAGE --certificate-identity=$IDENTITY --certificate-oidc-issuer=$OIDC_ISSUER

También puedes pasar una expresión regular para las banderas de identidad del certificado y emisor, --certificate-identity-regexp y --certificate-oidc-issuer-regexp.

Verificar un contenedor contra una clave pública

Este comando devuelve 0 si se encuentra al menos una firma con formato cosign de la imagen que coincida con la clave pública. Consulta el uso detallado a continuación para obtener información y advertencias sobre otros formatos de firma.

Cualquier payload válido se imprime en stdout, en formato json. Ten en cuenta que estos payloads firmados incluyen el digest de la imagen del contenedor, que es como podemos estar seguros de que estas firmas "separadas" cubren la imagen correcta.```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}
### Verificar un contenedor en un entorno aislado de red

**Nota:** Esta sección está desactualizada.

Categorías