mirror of
https://github.com/complexcaresolutions/cms.c2sgmbh.git
synced 2026-03-17 19:44:12 +00:00
57 lines
1.4 KiB
Markdown
57 lines
1.4 KiB
Markdown
# Secret Rotation Runbook
|
|
|
|
> Version: 2026-02-17
|
|
|
|
## Ziel
|
|
|
|
Standardisiertes Vorgehen für Rotation von Sicherheits- und Integrations-Secrets ohne Downtime.
|
|
|
|
## Scope
|
|
|
|
- `PAYLOAD_SECRET`
|
|
- `CRON_SECRET`
|
|
- `CSRF_SECRET`
|
|
- SMTP/OAuth/Redis Secrets (`SMTP_PASS`, `GOOGLE_CLIENT_SECRET`, `META_APP_SECRET`, `REDIS_PASSWORD`)
|
|
|
|
## Vorbedingungen
|
|
|
|
1. Wartungsfenster/Change-Freigabe vorhanden.
|
|
2. Backup und Rollback-Plan sind dokumentiert.
|
|
3. Neue Secret-Werte sind bereits im Secret-Manager hinterlegt.
|
|
|
|
## Rotation Ablauf
|
|
|
|
1. Neue Secrets generieren und im Secret-Manager speichern.
|
|
2. Alle betroffenen Deployments aktualisieren:
|
|
- CMS/App
|
|
- Queue Worker
|
|
- externe Cron-Jobs
|
|
3. Metadaten mitpflegen:
|
|
- `<SECRET>_ROTATED_AT=<ISO timestamp>`
|
|
- optional `<SECRET>_EXPIRES_AT=<ISO timestamp>`
|
|
4. Deployment durchführen.
|
|
5. Verifikation:
|
|
- Login/API funktionieren
|
|
- Cron-Endpunkte authentifizieren korrekt
|
|
- SMTP/OAuth/Redis Health ist grün
|
|
- Monitoring `external.secrets` zeigt keinen kritischen Zustand
|
|
6. Alte Secrets im Secret-Manager deaktivieren/entfernen.
|
|
|
|
## Post-Rotation Checks
|
|
|
|
```bash
|
|
pnpm -s typecheck
|
|
pnpm -s test:security
|
|
```
|
|
|
|
Optional:
|
|
|
|
```bash
|
|
./scripts/security/history-scan.sh
|
|
```
|
|
|
|
## Notfall / Rollback
|
|
|
|
1. Vorherigen Secret-Stand reaktivieren.
|
|
2. Services neu starten.
|
|
3. Fehlerursache analysieren (Format, propagierte Umgebungsvariablen, Cache/Stale Worker).
|