Skip to main content
Back to Docs

Image Signing

Cryptographic signing with Sigstore for tamper-evident container images.

How Signing Works

Every ImageSentinel image is signed using Sigstore's keyless signing infrastructure. This provides cryptographic proof that the image was built by ImageSentinel and hasn't been tampered with since signing.

Keyless Signing

No long-lived keys to manage. Signatures are tied to OIDC identities and recorded in a tamper-proof transparency log.

Transparency Log

All signatures are recorded in Rekor, Sigstore's immutable transparency log, providing an auditable trail of all signed artifacts.

Verifying Signatures

Use Cosign to verify ImageSentinel image signatures:

terminal
# Install cosign
brew install cosign  # macOS
# or: go install github.com/sigstore/cosign/v2/cmd/cosign@latest

# Verify an ImageSentinel image
cosign verify registry.imagesentinel.io/python:3.12-hardened \
  --certificate-identity-regexp=".*@imagesentinel.io" \
  --certificate-oidc-issuer="https://accounts.google.com"

# Example output:
Verification for registry.imagesentinel.io/python:3.12-hardened --
The following checks were performed:
✓ Transparency log entry verified
✓ Signature verified against certificate
✓ Certificate chain verified

Signing Your Own Images

When you harden images with ImageSentinel, you can optionally sign them:

terminal
# Harden and sign an image
imagesentinel harden myapp:latest \
  --sign \
  --push registry.example.com/myapp:hardened

# The signature is automatically attached to the image
# and recorded in the transparency log

Policy Enforcement

Enforce signature verification in your Kubernetes cluster:

kyverno-policy.yaml
# Example Kyverno policy
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: verify-imagesentinel-signature
spec:
  validationFailureAction: Enforce
  rules:
    - name: check-signature
      match:
        resources:
          kinds:
            - Pod
      verifyImages:
        - imageReferences:
            - "registry.imagesentinel.io/*"
          attestors:
            - entries:
                - keyless:
                    subject: ".*@imagesentinel.io"
                    issuer: "https://accounts.google.com"