This runbook defines operator actions for governance artifact signature verification, key rotation, and failure handling across runtime posture levels.
dev/staging- Ed25519 signatures are verified when available.
- SHA-256-only and missing-signature bundles are accepted with warnings.
- TrustLog signer backend:
filesigner is allowed for local workflows only.aws_kmssigner is recommended for pre-production parity testing.
secure/prod- Only Ed25519-signed governance bundles are accepted.
- Missing signatures, invalid signatures, and SHA-256-only artifacts are rejected.
- TrustLog signer backend must provide the
managed_signingcapability. The current implementation satisfying this isaws_kmswith an AWS KMS Ed25519 key. filesigner startup is refused. Inprod, the break-glass override is unconditionally ignored. Insecure, the break-glass override is accepted as an unsupported emergency escape hatch.
- The file signer stores private key material on the application host.
- Even with restrictive filesystem permissions, host-level compromise, backup exposure, or misconfiguration can leak key material.
- Leaked signing keys allow forged TrustLog entries, weakening non-repudiation and reducing external audit credibility.
The startup validator requires the managed_signing capability for the
TrustLog signer backend. The current production implementation satisfying
this requirement is AWS KMS Ed25519:
Set:
VERITAS_TRUSTLOG_SIGNER_BACKEND=aws_kmsVERITAS_TRUSTLOG_KMS_KEY_ID=<kms-key-id-or-arn>
Operational notes:
- Use an asymmetric AWS KMS key with Ed25519 signing support (
EDDSA). - Scope IAM permissions to the specific key and required KMS actions only.
- Validate startup logs show the KMS signer backend and key id metadata.
- Env:
VERITAS_TRUSTLOG_ALLOW_INSECURE_SIGNER_IN_PROD=1 - Effect: allows startup to continue with
filesigner insecureposture. Inprodposture this override is unconditionally ignored. - Security warning: this mode is unsupported for enterprise deployments and should be used only for short-lived emergency recovery.
- Exit criteria: remove override, restore
aws_kmssigner, and document incident timeline in governance/audit records.
- Set
VERITAS_POLICY_VERIFY_KEYto the current Ed25519 public key PEM path. - Compile policy bundles with signing metadata (
signing.algorithm=ed25519). - Confirm
/v1/decideoutput includesgovernance_identity.signature_verified=true. - Confirm
governance_identity.signer_idis populated whenmanifest.signing.key_idis present.
- Generate a new Ed25519 key pair.
- Re-sign bundles using the new private key.
- Deploy the new public key through
VERITAS_POLICY_VERIFY_KEY. - Verify staged rollout in
stagingposture. - Promote to
secure/prodonly after successful verification.
- Runtime behavior: bundle load fails.
- Operator response:
- Stop rollout.
- Rebuild bundle from trusted source.
- Re-sign and re-verify.
- Runtime behavior:
dev/staging: warning and accept.secure/prod: fail-closed rejection.
- Operator response:
- Treat as release blocker for
secure/prod. - Sign bundle and redeploy.
- Treat as release blocker for
- Runtime behavior:
- Ed25519 authenticity cannot be verified without
VERITAS_POLICY_VERIFY_KEY. - In strict posture this should be treated as a misconfiguration and fixed before promotion.
- Ed25519 authenticity cannot be verified without
- Operator response:
- Restore public key path and file permissions.
- Re-run bundle verification checks.
- Legacy SHA-256/missing-signature bundles may continue in
dev/stagingfor migration. - Before
secure/prodpromotion, all governance bundles must be Ed25519 signed.