flowchart TB
hsm[("HSM / Key Service<br/><i>root of trust · FIPS 140-2 L3</i>")]
cmk["Customer Master Key<br/><i>per environment · rotate 1y</i>"]
dek["Data Encryption Keys<br/><i>per dataset · rotate 90d</i>"]
hsm --> cmk -->|"wraps"| dek
subgraph vault["Secret Store"]
direction TB
v1["Static secrets<br/><i>rotate 90d</i>"]
v2["Dynamic credentials<br/><i>DB · TTL 1h</i>"]
v3["PKI issuer<br/><i>mTLS certs · TTL 24h</i>"]
end
cmk -->|"encrypts vault at rest"| vault
subgraph wl["Workloads"]
direction TB
w1["Service A<br/><i>workload identity</i>"]
w2["Pipeline<br/><i>OIDC federation</i>"]
end
w1 -->|"attests identity — no stored secret"| vault
w2 -->|"short-lived token — no stored secret"| vault
vault -->|"lease · auto-renew · revocable"| w1
dek -->|"envelope decrypt"| w1
audit[("Audit log<br/><i>every issue and revoke</i>")]
vault --> audit
Security View
Key & Secret Management Diagram
Where keys and secrets live, what wraps what, how workloads get them without a stored credential, and how rotation actually happens.
Secrets Management
Design