Key management

A key is a liability with an expiry date, not a configuration value.

The hardest part of enterprise cryptography is not encrypting data — it is knowing every key that exists, who is accountable for it, when it must change, and being able to prove you can revoke it under pressure. This page models that inventory and the lifecycle discipline around it.

Keys tracked

7

Within rotation SLA

3/7

Overdue → risk register

3

Lifecycle model

Seven stages, each with an owner and an exit condition

Stages map back to catalog controls so the model is not decorative — a failure at any stage produces a named finding.

01

Plan

Classify the data, pick from the approved catalog, record the intended key lifetime and blast radius.

CR-01CR-09
02

Generate

Keys are created inside the HSM-backed KMS. No key material exists outside a validated boundary.

CR-04
03

Distribute

Workloads receive short-lived grants via workload identity; no static secrets in code or images.

CR-03CR-05
04

Use

All crypto calls go through the shared SDK, which enforces AAD, nonce discipline, and audit logging.

CR-01CR-08
05

Rotate

Dual-version aliases allow zero-downtime re-wrapping. Overdue keys raise an automatic risk item.

CR-04
06

Revoke

Compromise playbook disables the key, re-wraps dependents, and files an incident record with timings.

CR-04CR-05
07

Destroy

Scheduled deletion after retention proof; crypto-shredding evidence attached to the data disposal record.

CR-01

Inventory

Synthetic key register with rotation posture

Age is measured against the SLA for the key's purpose: 90 days for signing keys, 180 for shared partner secrets, 365 for data-wrapping keys.

AliasPurposeAlgorithmCustodianAge / SLAStatus
alias/lab-tenant-data-euWrap tenant DEKs (EU region)ConfidentialAES-256 (HSM CMK)Platform Data Services141d / 365dIn SLA
alias/lab-tenant-data-usWrap tenant DEKs (US region)ConfidentialAES-256 (HSM CMK)Platform Data Services318d / 365dDue soon
alias/lab-artifact-signingSign container digestsIntegrityECDSA P-256Platform Engineering96d / 90dOverdue
alias/lab-session-jwtSign session assertionsIdentityEdDSA Ed25519Identity & Access Management41d / 90dIn SLA
alias/lab-partner-hmac-acmeWebhook integrity (synthetic partner)IntegrityHMAC-SHA-256 secretIntegration Engineering402d / 180dOverdue
alias/lab-backup-archiveEncrypt long-retention archivesConfidential (10y retention)AES-256-GCMResilience Engineering233d / 365dIn SLA
alias/lab-legacy-partner-rsaPartner payload decryptionConfidential (deprecating)RSA-2048 OAEPSecurity Architecture731d / 365dOverdue

Aliases, ages and custodians are invented for this demonstration. No key material, KMS account, or partner relationship shown here exists.

Assurance

Rotation without downtime, revocation under pressure

Zero-downtime rotation pattern

t0  encrypt → key v1        decrypt → v1
t1  create v2 (KMS, non-exportable)
t2  encrypt → key v2        decrypt → v1, v2
t3  background re-wrap of stored DEKs under v2
t4  encrypt → key v2        decrypt → v2
t5  disable v1, retain for audit window, then schedule deletion

The dual-decrypt window is what makes rotation boring. Skipping it is how teams end up afraid to rotate at all — which is the real failure mode.

Compromise drill (semi-annual, synthetic)

  1. T+0 minSuspected exposure reported; key marked untrusted, alias frozen.
  2. T+2 minGrants revoked; workloads fail closed on that key and alert.
  3. T+4 minNew CMK generated in HSM; alias repointed for encrypt operations.
  4. T+11 min4,200 synthetic DEKs re-wrapped; decrypt-only on old key disabled.
  5. T+1 dayIncident record filed with timings; runbook gaps become backlog items.

The drill exists to produce a measured number. “We can revoke a key” is a claim; “11 minutes, evidenced twice a year” is a control.