cms.c2sgmbh/docs/anleitungen/SECRET_ROTATION_RUNBOOK.md

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).