Secrets rotation policy documented with evidence
Why it matters
Credentials that are never rotated accumulate exposure surface: every developer who ever handled a secret, every system it transited, and every breach that went undetected leaves a window open indefinitely. NIST IA-5 (Authenticator Management) requires organizations to manage credential lifetimes. PCI-DSS v4.0 Req-8.6.3 requires passwords/passphrases for application and system accounts to be changed periodically per a targeted risk analysis — the correct control for service-credential rotation. CWE-522 (Insufficiently Protected Credentials) encompasses stale credentials as a protection failure. Without documented intervals, there is no way to verify compliance, respond to a suspected breach with targeted rotation, or demonstrate due diligence during an audit.
Severity rationale
Medium because undocumented or unenforced rotation leaves credentials exposed indefinitely after any breach or insider departure goes undetected.
Remediation
Document rotation intervals for every credential type and create calendar reminders or automated rotation where the secrets manager supports it. Evidence of rotation — version history, rotation logs, or a dated entry in a runbook — is required to pass.
# ROTATION_POLICY.md
| Credential type | Interval | Last rotated | Next due |
|------------------------|------------|--------------|------------|
| Database credentials | Quarterly | 2026-01-15 | 2026-04-15 |
| Stripe API key | Every 6mo | 2026-01-01 | 2026-07-01 |
| OpenAI API key | Annually | 2026-01-01 | 2027-01-01 |
| AWS IAM access keys | Annually | 2026-01-01 | 2027-01-01 |
For AWS Secrets Manager, enable automatic rotation:
aws secretsmanager rotate-secret --secret-id prod/db-credentials \
--rotation-rules AutomaticallyAfterDays=90
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Environment Security Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- cwe · CWE-522 — Insufficiently Protected Credentials
- nist:rev5 · IA-5 — Authenticator Management
- pci-dss:4.0 · Req 8.6.3 — Application/system account passwords changed periodically per targeted risk analysis
- iso-27001:2022 · A.8.24 — Use of cryptography
- soc2:2017 · CC6.1 — Logical access security software, infrastructure, and architectures
Taxons
History
- 2026-04-18·v1.0.0·Initial import from environment-security·automated
- 2026-07-06·v1.0.1·Add SOC 2 TSC mapping (CC6.1) from the verified compliance crosswalk register (docs/compliance/).·by soc2-mapping-enrichment-ship-2