internal/authctl, api, docs: a system account's recovered revocation keeps the identity key across a signing key rotation #52
No reviewers
Labels
No labels
accessibility
bug
dependencies
documentation
duplicate
enhancement
go
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
mikluko/nats-operator!52
Loading…
Reference in a new issue
No description provided.
Delete branch "mikluko/octant/2393-sysaccount-revocations"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A system account's revocations recovered from the servers on adoption now list its identity key as an issuer and survive a rotation of its signing keys (X2393).
The issuers existed only inside the NATS operator reconcile, which signs them into a JWT that has no issuers;
SystemAccountReconcilerrebuiltstatus.revocationsfrom that JWT's signing keys. The NATS operator reconcile now records what it signed, with issuers, inNatsOperator.status.systemAccount.revocations(additive, v1beta1). TheNatsSystemAccountbuilds its record from that first, and the next signing reads it ahead of theNatsSystemAccount's record. Order matters becauseaccountRevocationskeeps the first entry's issuers on a tie. Having the NATS operator reconcile write theNatsSystemAccountstatus instead was rejected because it puts two writers on one status.Revocations the controller records itself keep the rotation reset.
Not covered: a system account adopted before this change keeps its recovered revocations without the identity key.
Story 14 also gets Q2395's paragraph on restarting from
resolver_preload.Fails on the old code:
TestSystemAccountAdoption_SigningKeysRotated, and the issuer assertions inTestSystemAccountAdoptionand story 14's fixture test.