Skip to content

runbooks: rotating the installation's encryption key is a version added, re-sealed and retired - #8

Merged
aledbf merged 1 commit into
mainfrom
kek-version-rotation
Nov 12, 2026
Merged

aledbf merged 1 commit into
mainfrom
kek-version-rotation

Conversation

@aledbf

@aledbf aledbf commented Nov 12, 2026

Copy link
Copy Markdown
Member

Replaces the key-rotation TODO for the installation's encryption key with the procedure that spin-stack/spin#1174 and the spin-terraform-aws `encryption_key_versions` input make real:

  1. Append the next version (`[1]` to `[1, 2]`) and apply. Elsewhere, `SPIN_CP_ENCRYPTION_KEY="v1:…,v2:…"` and restart.
  2. `crypto rotate --dry-run` / `crypto rotate` on the machine that serves. It refuses while the serving control plane seals under another version, and it reports what is left under each older version.
  3. Retire the old version once a run reports `v1: none` with no failures and the archive keeps no base backup from before the rotation (seven days, or one fresh base backup if it must go sooner).

Merge after spin-stack/spin#1174 is in the release spin's pin moves to.

Refs spin-stack/spin#1049

🤖 Generated with Claude Code

…ed, re-sealed and retired

key-rotation had a TODO where the encryption key's rotation should be: no step
added a new version before `controlplane crypto rotate` (spin#1049). spin now
derives one key per version from the one KMS key and the Terraform module
lists them (encryption_key_versions), so the section is the procedure: add
the version and apply, re-seal on the machine that serves, retire once the
run reports nothing left and the archive keeps no base backup from before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@aledbf
aledbf merged commit 2bcbc6c into main Nov 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant