Why
The publish workflow already emits SBOM and provenance attestations and prints the digest to pin. The remaining gap is that nothing lets a consumer verify that an image came from this repository's workflow.
The advice we give is "pin the digest, not the tag" — because the image is the sandbox's entire userland and a tag can be repointed by whoever controls the registry. Signing is what makes that advice checkable rather than a matter of trust in the registry.
What to add
- sign published images with cosign, keyless via the workflow's OIDC identity, so there is no key to manage or leak
- document the
cosign verify invocation, including the expected identity and issuer, so the check is copy-pasteable
- state the verification steps in
image/README.md next to the existing digest-pinning advice, since that is where someone acting on it is already reading
Note
Keyless signing binds the signature to the workflow identity, which is the property worth having: it proves the image was built by this repository's publish workflow, not merely that someone with a key produced it.
Why
The publish workflow already emits SBOM and provenance attestations and prints the digest to pin. The remaining gap is that nothing lets a consumer verify that an image came from this repository's workflow.
The advice we give is "pin the digest, not the tag" — because the image is the sandbox's entire userland and a tag can be repointed by whoever controls the registry. Signing is what makes that advice checkable rather than a matter of trust in the registry.
What to add
cosign verifyinvocation, including the expected identity and issuer, so the check is copy-pasteableimage/README.mdnext to the existing digest-pinning advice, since that is where someone acting on it is already readingNote
Keyless signing binds the signature to the workflow identity, which is the property worth having: it proves the image was built by this repository's publish workflow, not merely that someone with a key produced it.