A build pipeline that produces an artifact, but never verifies that the exact same artifact is what gets deployed, has a gap an attacker can exploit at any point between build and deploy.
The problem artifact signing solves
Without signing, nothing prevents a compromised registry, a man-in-the-middle, or a compromised deployment step from swapping your legitimate build output for a tampered one. Signing creates a verifiable link between "this specific artifact" and "this specific, trusted build process."
How signing works, briefly
- After building an artifact (a container image, a binary, a package), the CI pipeline signs it using a private key or a short-lived signing certificate.
- The signature, along with metadata about the build (what commit, what pipeline, what timestamp), is stored — often alongside the artifact in the registry.
- At deploy time, before the artifact runs, a verification step checks the signature against a trusted public key or certificate authority.
Keyless signing with Sigstore
Traditional signing requires managing and rotating private keys — itself a secret-management problem. Sigstore's cosign supports keyless signing: your CI pipeline authenticates via OIDC (its existing identity with GitHub Actions, GitLab CI, etc.), and Sigstore issues a short-lived certificate tied to that identity for a single signing operation. No long-lived key to leak or rotate.
cosign sign --yes myregistry.io/app:v1.2.3
cosign verify --certificate-identity-regexp ".*" myregistry.io/app:v1.2.3
Where to enforce verification
Signature verification should happen at the point of deployment — in your admission controller (for Kubernetes), or as a required gate in your deployment pipeline. Signing without enforced verification is just metadata; the security value comes from refusing to deploy anything that fails verification.
Getting started incrementally
You don't need full enforcement on day one. Start by signing artifacts and logging verification results without blocking deploys, build confidence in the process, then move to hard enforcement once false positives are eliminated.
Signing doesn't replace other supply chain controls like dependency scanning — it closes a different gap: making sure what you scanned and approved is actually what runs in production.