sorb's call: rotate everything once at acceptance rather than piecemeal now. That is the lower-risk order — the mirror credential is still unidentifiable and the mirrors feed the Flux source, so four separate revocations would mean four separate ways to break it silently. The inventory and the ordering stay valid, so the later rotation is execution rather than analysis. Recorded what the deferral accepts rather than leaving it implicit: the exposed WireGuard key and PATs stay valid, five never-used tokens remain (one with manage_runner and k8s), and 'acceptance' is not a dated milestone — which is exactly how security work rots. The existing due date stays as a review anchor, not a rotation deadline. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
463fb570d5
commit
5df37eaf9d
@@ -13,7 +13,7 @@ Verteilung: M1 6 · M2 18 · M4 2 · M5 4
|
||||
| [0008](docs/issues/0008-cfgmon-03-prometheus-remote-write-und-loki.md) | waiting | M1 | medium | CFGMON-03: Prometheus-Remote-Write und Loki öffentlich ohne Auth — Weg A, nachgelagerte Prüfung |
|
||||
| [0009](docs/issues/0009-cfgmon-04-grafana-admin-credentials-aus-env.md) | open | M2 | low | CFGMON-04: Grafana-Admin-Credentials aus .env gelten nicht für die HTTP-API |
|
||||
| [0014](docs/issues/0014-cfgmon-14-root-zugang-ueber-die-docker-gruppe.md) | open | M2 | low | CFGMON-14: Root-Zugang über die docker-Gruppe umgeht sudo und hinterlässt keine Spur |
|
||||
| [0015](docs/issues/0015-cfgmon-15-token-hygiene-einmal-tokens-der.md) | in-progress | M2 | medium | CFGMON-15: Token-Hygiene — Einmal-Tokens der LABNET-02-Nacht widerrufen |
|
||||
| [0015](docs/issues/0015-cfgmon-15-token-hygiene-einmal-tokens-der.md) | waiting | M2 | medium | CFGMON-15: Token-Hygiene — Einmal-Tokens der LABNET-02-Nacht widerrufen |
|
||||
| [0018](docs/issues/0018-doc-01-wiki-rollout-abschliessen-ci-freigaben.md) | open | M2 | low | DOC-01: Wiki-Rollout abschließen — CI-Freigaben, Zeitplan, Dokploy-Stack, wiki.lab |
|
||||
| [0019](docs/issues/0019-doc-02-veralteten-wiki-branch-im-gitops-repo.md) | open | M2 | low | DOC-02: Veralteten `wiki`-Branch im gitops-Repo entfernen? |
|
||||
| [0021](docs/issues/0021-overmind-03-windows-build-vm-verschwindet-ci.md) | waiting | M2 | medium | OVERMIND-03: Windows-Build-VM verschwindet — CI kann sie nur starten, nicht anlegen |
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
---
|
||||
type: issue
|
||||
id: "0015"
|
||||
status: in-progress
|
||||
status: waiting
|
||||
created: 2026-08-01
|
||||
milestone: M2
|
||||
priority: medium
|
||||
due: 2026-08-31
|
||||
wartegrund: "Entscheidung sorb 2026-08-15: Rotation erfolgt gebuendelt EINMAL bei der Abnahme der Plattform, nicht stueckweise vorher. Die Bestandsaufnahme (24 PATs, 6 Mirrors) liegt vor, die Reihenfolge steht — es fehlt nur der Ausloeser."
|
||||
host: cfgmon
|
||||
area: security
|
||||
gitlab_iid: "15"
|
||||
@@ -106,3 +107,35 @@ genauso aus.
|
||||
- **W4 Punkt 4** (Repo-Zuhause für `lab.conf`, systemd-Drop-in, Root-CA) ist **nachweislich
|
||||
offen**: `gitops:host-config/` existiert als Muster, enthält aber nur `maintenance-notify`.
|
||||
Die Schließung von #16 war für diesen Punkt also verfrüht.
|
||||
|
||||
## Entscheidung 2026-08-15 — gebündelte Rotation bei der Abnahme
|
||||
|
||||
sorb: **Alle Tokens werden einmal gemeinsam rotiert, wenn die Plattform abgenommen ist** —
|
||||
nicht jetzt stückweise.
|
||||
|
||||
Das ist die risikoärmere Reihenfolge: Ein Widerruf mitten im Betrieb kann still einen der
|
||||
sechs Push-Mirrors brechen (das Mirror-Credential ist nach wie vor nicht rekonstruierbar,
|
||||
s.o.), und die Mirrors beliefern unter anderem die **Flux-Quelle**. Einmal koordiniert
|
||||
rotieren, mit allen Beteiligten am Tisch, ist sauberer als vier Einzeleingriffe mit je
|
||||
eigener Bruchstelle.
|
||||
|
||||
**Die Vorarbeit bleibt gültig und macht die spätere Rotation kurz:** Bestand der 24 PATs
|
||||
(inkl. der fünf nie benutzten und der Dubletten), Zustand aller sechs Mirrors, und die
|
||||
festgelegte Reihenfolge — erst dediziertes Mirror-Credential setzen, dann widerrufen, dann
|
||||
Mirror-Status prüfen. Beim Abnahmetermin ist das abzuarbeiten, nicht neu zu erarbeiten.
|
||||
|
||||
⚠️ **Was mit der Vertagung bewusst in Kauf genommen wird** (gehört benannt, nicht
|
||||
stillschweigend):
|
||||
|
||||
- Die in der LABNET-02-Nacht exponierten Werte — **WireGuard-Private-Key** und die beiden
|
||||
git.lab-PATs — bleiben bis zur Abnahme gültig. Nach der Secrets-Regel („anzeigen =
|
||||
Exposure = Rotation") ist das eine **bewusste Ausnahme**, kein Versehen.
|
||||
- Fünf aktive, nie benutzte Tokens bleiben bestehen, darunter id=18 (`oskar light`) mit
|
||||
`manage_runner` + `k8s` — der breiteste Scope im Bestand.
|
||||
- **„Abnahme" ist kein datierter Meilenstein.** Genau so bleibt Sicherheitsarbeit liegen:
|
||||
vertagt auf ein Ereignis ohne Datum. Das `due` dieses Issues (2026-08-31) bleibt deshalb
|
||||
stehen — nicht als Rotationsfrist, sondern als **Wiedervorlage**: Ist die Abnahme dann
|
||||
nicht in Sicht, wird die Vertagung neu bewertet statt weiterzulaufen.
|
||||
|
||||
Wenn die Vertagung dauerhaft gelten soll, gehört sie nach dem Framework in einen ADR
|
||||
(bewusste Ausnahme von der Secrets-Regel) — bislang steht sie nur hier.
|
||||
|
||||
@@ -272,3 +272,14 @@ und knüpft ihn an Auflagen.
|
||||
|
||||
**Damit bleibt von den acht Widersprüchen nur W4 offen**, und zwar als konkrete Aufgabe statt
|
||||
als Klärungsfrage: Host-Config ins Repo (Punkt 4) + WG-Key rotieren (Punkt 5, neben #0015).
|
||||
|
||||
## Update 2026-08-15 (3) — W4 Punkt 5 vertagt
|
||||
|
||||
sorb hat entschieden: **Die Rotation läuft gebündelt einmal bei der Abnahme der Plattform**,
|
||||
nicht stückweise jetzt (Begründung und in Kauf genommene Folgen: #0015). Damit ist W4 Punkt 5
|
||||
**terminiert, aber nicht erledigt** — der exponierte WireGuard-Private-Key gehört ausdrücklich
|
||||
dazu.
|
||||
|
||||
**Restlicher Stand von W4:** Punkt 4 (Repo-Zuhause für `lab.conf`, systemd-Drop-in, Root-CA)
|
||||
bleibt die einzige unerledigte *Arbeit* aus den acht Widersprüchen — `gitops:host-config/`
|
||||
existiert als Muster, enthält aber nur `maintenance-notify`.
|
||||
|
||||
Reference in New Issue
Block a user