diff --git a/STATUS.md b/STATUS.md index 84d80ba..9dd37fc 100644 --- a/STATUS.md +++ b/STATUS.md @@ -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 | diff --git a/docs/issues/0015-cfgmon-15-token-hygiene-einmal-tokens-der.md b/docs/issues/0015-cfgmon-15-token-hygiene-einmal-tokens-der.md index 3d10ad5..e86185b 100644 --- a/docs/issues/0015-cfgmon-15-token-hygiene-einmal-tokens-der.md +++ b/docs/issues/0015-cfgmon-15-token-hygiene-einmal-tokens-der.md @@ -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. diff --git a/docs/issues/0027-audit-01-acht-widersprueche-aus-dem-labnet-02.md b/docs/issues/0027-audit-01-acht-widersprueche-aus-dem-labnet-02.md index 49f6359..4488807 100644 --- a/docs/issues/0027-audit-01-acht-widersprueche-aus-dem-labnet-02.md +++ b/docs/issues/0027-audit-01-acht-widersprueche-aus-dem-labnet-02.md @@ -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`.