M0: make the KDC survivable before it becomes the only credential #302
Labels
No labels
bug
enhancement
in-progress
needs-info
needs-triage
p0
ready-for-agent
ready-for-human
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Cloonar/nixos#302
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
M0 of #299 — blocks everything else in that epic.
Today a KDC loss costs
nbits SSO and nothing more, because LDAPuserPasswordstill authenticates everyone everywhere. After #299 locks it to{CRYPT}!there is no fallback credential anywhere, and an outage costs all web SSO, all identity-tenant mail, and all fresh server logins. Laptops keep working from SSSD's cache — the wrong subset: the humans are fine and the services are down.A replica (
kprop/iprop) was considered and deliberately deferred. That is defensible, but it makes the two items below prerequisites rather than hygiene.1. The KDC backup is probably not restorable
Borg sweeps
/varand does not exclude/var/lib/krb5kdc(utils/modules/borgbackup.nix:60-85), soprincipaland the.k5.CLOONAR.COMstash are captured — but captured live, while the KDC holds them open. MIT's documented backup method iskdb5_util dump. A file-level copy of an open database may restore cleanly or may not, and "may" is not a recovery plan when it is the only copy.0600, root.kinitsucceeds against the result. A backup nobody has restored is not a backup, and under a single-KDC design it is the entire recovery story.mailis gone" to "people can log in".2. Break-glass
A locally declared admin account with a real password on
mailandweb-arm. With a replica this is belt-and-braces; without one it is the only brace. It is also what covers the case the backup cannot: a KDB restore that fails.Definition of done
kdb5_util dumpon a timer, output covered by borg and not world-readable.kinitagainst it recorded in the PR.