Skip to content

Manage Keys

Caracal separates keys so compromise or rotation at one boundary does not silently authorize another.

MaterialBoundaryFailure implication
Zone signing keysSTS mandate issuance to verifiersMissing private material blocks issuance; stale JWKS caches can reject a rotated signer.
SECRET_STORE_KEKServices to sealed provider, signing, connection, sink, application, and workload secretsWrong key fingerprint prevents decryption; restore ciphertext and keyring together.
AUDIT_HMAC_KEYProducers to Audit evidenceMismatch creates HMAC failures and blocks trusted ingestion.
STREAMS_HMAC_KEYStream producers to consumersMismatch blocks trusted propagation in published modes.
GATEWAY_STS_HMAC_KEYGateway to STS exchangeMismatch denies every Gateway-authenticated exchange.
Admin/Coordinator/Control credentialsOperator clients to management surfacesMissing or insufficient scope yields 401 or 403; do not distribute to workloads.
sequenceDiagram
  participant STS
  participant Client
  participant Verifier
  Verifier->>STS: GET /.well-known/jwks.json?zone_id=...
  STS-->>Verifier: public keys + cache headers
  STS->>Client: signed mandate
  Client->>Verifier: bearer mandate
  Verifier->>Verifier: verify signature, issuer, audience, use, scopes, expiry, revocation

Keep old public keys available until verifier caches and outstanding token TTLs no longer need them. Never copy private signing material to a verifier.

Secret Store uses a fresh data-encryption key per value and wraps it with the configured KEK. The envelope records a key fingerprint and purpose-specific associated data. During KEK rotation, SECRET_STORE_KEK_PREVIOUS allows reads under the retiring key while data is rewrapped. Removing it too early makes old envelopes unreadable.

Published rc and stable modes require validated HMAC material rather than silently disabling integrity checks. A missing or short required key fails startup or readiness.

Use Rotate Keys and Secrets for the operational procedure and Configure Secret Backends for custody options.

Enforce Boundaries.