Secrets Rotation Checklist for Small Teams

"Rotate your secrets" is advice that sounds responsible and is usually done wrong: either everything is rotated on a calendar nobody keeps, or nothing is rotated because the blast radius scares everyone. The honest version is smaller and sharper: inventory where credentials live, rotate on real triggers, prefer short-lived tokens over long-lived ones, and pre-stage the rotation nobody wants to do — the one that locks people out.

1. Inventory first (you cannot rotate what you cannot name)

Where secrets hideHow to find themOwner
CI/CD variablesExport the secrets list from each pipeline config; screenshot-or-text it into one fileWhoever owns deploys
Cloud consolesOne screen per provider: keys, tokens, service accountsSame
Shared password managerExport the item list (names only, not the values)Owner + one other
Config files & .env copiesgrep -r for known prefixes (sk_, AKIA, ghp_) across reposLead engineer
People's laptopsAsk, in writing: "what tokens do you hold that nobody else can revoke?"Everyone, 15 minutes

The grep pass is the one that finds the surprise. It almost always finds one: a production key in a repo nobody remembered, a backup of the .env in a support agent's downloads folder. That finding justifies the whole exercise.

2. Rotate on triggers, not a calendar

Calendar rotation (every 90 days, whether or not anything happened) mostly produces fatigue and copy-pasted "new" passwords. Real triggers:

3. Prefer dying credentials over rotated ones

The best rotation is the one you never run. Where a provider offers it:

Instead ofUseWhy it wins
Long-lived API keysOIDC / workload identity federation from CINothing to leak — the trust is role-based, not a string
Static DB passwordsShort-lived certificates or IAM authA stolen token expires before it's useful
Personal access tokens in scriptsMachine-scoped tokens, least privilege, expiry setBlast radius is one job, not one human
Root/everything accounts in daily useScoped accounts + break-glass root, MFA'd, envelope-sealedRotation of the root account becomes rare and deliberate

Every long-lived credential you replace with a short-lived one permanently removes a rotation from the calendar.

4. The rotation nobody wants (pre-stage it)

Rotating the credential that everything uses — the deploy key, the main DB password — is feared for a good reason: done carelessly it is a self-inflicted outage. Make it boring in advance:

  1. Verify the provider supports two live credentials (add-new before remove-old). Most do.
  2. Write the cutover as exact steps: add new → update the one place it's read from → verify the smoke path → revoke old → verify again.
  3. Decide the timing: inside business hours with everyone awake, never before a weekend.
  4. Write the rollback: re-enable the old credential, fix whatever the new one broke. If rollback is impossible, the rotation plan isn't ready.

5. The checklist

ControlEffortDone looks like
Secrets inventory, one file2 hrsEvery credential has a name, location, owner
Repo grep for leaked prefixes30 minZero hits, or hits rotated + purged from history
Trigger list written down30 minDeparture / leak / vendor-incident rotate-now rule in the runbook
Short-lived tokens for CIhalf a dayCI has no static cloud keys left
Dual-credential cutover plan1 hrThe scary rotation has a written, reversible script
Leak-response mini-runbook1 hr"Key exposed" page: revoke, rotate, audit, postmortem — in that order

The three rules that make the checklist work

---

The Ops Starter Kit ($14) covers the incident side of a leaked credential — what to do in the first 30 minutes while the key is still live — and Vol. 2 ($27) adds the DR plan and evidence log for the audit after. Launch week: 30% off any paid kit with code HIVE-LAUNCH30 at checkout (ends Sep 11, 23:30 ACST).