How it works
When a pipeline’spublish step pushes an image, Ankra signs a statement about it and stores the statement next to the image in your registry. The statement records:
- your organisation and the application
- the repository, commit and ref
- the pipeline run that built it
- that the gate passed for exactly this image digest
- the pipeline definition the run executed under
The three modes
The mode that applies is the first one set, in this order: the application’s own mode, then your organisation’s default, then Ankra’s default. Applications created before 14 October 2026 default to
off, so nothing changes until you choose. Applications created since default to warn.
Start with warn. Read the findings, publish through the pipeline, and move an application to enforce once the images you deploy, and the ones you might roll back to, were all published by a pipeline run that signed them.
Set the mode
Setting a mode needs thesecurity.manage permission. Reading needs pipelines.read, which every built-in role has.
- Web UI
- CLI
In the application’s settings, the Registry section has a Deploy provenance card. It shows the mode the application deploys under and where it comes from: the application’s own setting, the organisation default or Ankra’s default. Change the mode from the same card. Check now verifies the images of the version serving in the selected environment the way a deploy would, and shows what a deploy would do. It deploys nothing.The organisation default and the signing keys are under Organisation > Security, in the Deploy provenance section.
Check an image before you deploy it
The dry run verifies images against an application’s mode and reports what a deploy would do. It deploys nothing and changes nothing.verified, refused or unknown, with the reason, and then the decision for the application’s mode: deploy, deploy_with_finding, refuse or not_checked. unknown means Ankra could not ask the registry or the key store, which is different from the image failing the check. The command exits with status 1 when the decision is refuse, so a script can stop on it. Pass --image up to 32 times to check several images, and -o json for the full answer.
Keys
Each organisation has its own signing keys. The newest key that is not revoked signs new images. Every key that is not revoked verifies, so rotating a key does not invalidate images that are already published.ankra org provenance keys --public-keys prints the public key of every key that is not revoked, one PEM block per key.
Rotating and revoking need security.manage, and both are written to the audit log, as is every mode change.
An organisation can hold up to 16 key generations.
Verify an image by hand
Anyone with read access can check a published image with cosign and the organisation’s public keys.--insecure-ignore-tlog is needed because these statements are not recorded in a public transparency log.
Rollbacks under enforce
Plan for this before you switch an application toenforce. If you need to roll back past the first signed version:
- Set the application to
warn:ankra application provenance set my-app --mode warn. - Deploy or roll back to the older version.
- Set the application back to
enforce.
security.manage for steps 1 and 3. The mode change is audited.