Rotation-Kalender

Allgemeine Regel

Secret-TypRotation-IntervallTrigger
API-Keys SaaS (Papierkram, TicketPAY, M365, Replicate, Runway, Cal.com, …)12 MonateReminder
Auth-Tokens für eigene MCPs (Bearer-API-Keys)6 MonateReminder + Two-Key-Rotation-Modus
Cloudflare Tunnel Connector Tokensnur on-demandCompromise-Verdacht / Connector-Wechsel
Cloudflare API Token (account-wide)12 MonateReminder
GitHub PAT3 Monate (Fine-Grained-Default)GitHub.com läuft eh ab
OAuth Refresh Tokens (Gmail, Cal.com)Provider-gesteuertwenn Refresh-Failure
Master-Credentials (1P, AWS Root, GitHub Org Owner, Apple, Hetzner-Account)18 Monate + bei PersonalwechselReminder
SSH-Key Passphrasesnichtrotiert mit Key-Rotation
Database-Passwords (RDS)12 Monate via Lambda-RotationAWS-managed wenn aktiviert

Sofort-Rotation (Phase 1)

SecretGrundDeadline
GitHub PAT gho_…War Plaintext in claude.json — Compromise-Verdacht (kein bestätigter Leak, aber Defense-in-Depth)2026-05-18

Geplante Rotations (Wer-Wann)

SecretLast-RotatedNext-RotationOwnerNotiz
cloudflare/api-token2026-05-13 (Anlage)2027-05-13MarvinAccount-wide Token mit DNS+Tunnel-Edit, breite Wirkung
mcp-vf-hosted/upstream-tokens2026-05-14 (Anlage)2027-05-14Marvin + VFMit VF-Kontakt abstimmen — Papierkram/TicketPAY/M365-Tokens müssen vorher von VF rotiert werden
mcp-whatsapp-hosted/whatsapp-config2026-05-152027-05-15Marvin (Salon-Pilot-Owner)Meta-Access-Token kann eh nur 24h, in Production wird permanent-Access-Token genutzt
mcp-calcom-hosted/calcom-config2026-05-152027-05-15Marvin (Salon-Pilot)
inference-service-prod/api-key2026-05-152026-11-15Marvin (Icking-Owner)Two-Key-Rotation: api_key_v2 ausstellen, Konsumenten umstellen, api_key_v1 invalidieren — kein Downtime
inference-service-prod/db-password2026-05-152027-05-15Marvin (Icking)Erwägen: Lambda-Auto-Rotation aktivieren
agent-platform/telegram-bot-token2026-05-122027-05-12MarvinBotFather-Token, einfach neu generieren bei Bedarf
agent-platform/gmail-oauth-refresh2026-05-12provider-gesteuertMarvinRefresh-Token läuft nicht ab solange Account aktiv. Bei Lockout / Password-Reset neu beschaffen.
agent-platform/github-pat2026-05-152026-08-15MarvinFine-Grained 90-Tage-Default. Bei Phase-1-Rotation hier neuer Eintrag mit neuem Datum.
receptionist-brain/cf-access-mcp2026-05-152027-05-15MarvinDescription hat es schon vermerkt
open-webui-vf/* (alle 7)2026-05-12/132027-05-15Marvin (VF-Owner)Großteils CDK-managed, db-credentials via auto-rotation
presenton-vf/config2026-05-152027-05-15Marvin (VF-Owner)LiteLLM-Master-Key + Auth — nach Productionizing
Hetzner-Token (in 1P fkm22…)unbekannt2026-08-17MarvinDatum schätzen bei nächster Hetzner-Konsole-Login. Quartal weiter setzen.
ElevenLabs API Keyunbekannt2026-08-17MarvinKommt bei .env.local-Migration neu rein
Replicate API Tokenunbekannt2026-08-17Marvinanalog
Runway API Secretunbekannt2026-08-17Marvinanalog
Papierkram-Token (lokal-Dev)unbekanntmit mcp-vf-hosted/upstream-tokens zusammenMarvinKonsolidieren — sollte gleicher Token sein
TicketPAY API Key (lokal-Dev)unbekanntmit mcp-vf-hosted/upstream-tokens zusammenMarvinanalog
M365 Client Secret (lokal-Dev)unbekanntmit mcp-vf-hosted/upstream-tokens zusammenMarvinanalog
Cal.com API Key (lokal-Dev)unbekannt2026-08-17MarvinCal.com User-API-Key vs. hosted-Key trennen
Lexware Officeunbekannt2026-08-17Marvinconfigured but nicht aktiv
SevDeskunbekannt2026-08-17Marvinanalog
LiveKit / Telnyx / OpenAI / Cartesia / Deepgram (livekit-agent)unbekannt2026-08-17MarvinPOC-Phase, beim Productionize neu

Kalender-Setup

Im hello@-Calendar pro Reminder ein Event:

  • Titel: Rotate: <secret-name>
  • Datum: das next_rotation-Feld
  • Recurrence: jährlich (außer Eintraege mit Sonder-Intervall)
  • Beschreibung: Pfad in AWS SM oder 1P + Rotations-Command

Bulk-Setup mit gsuite-MCP: Beim Phase-5-Lauf werden alle Reminder mit einem Skript ins Kalender geschrieben — TODO im Phase-5-Plan.

Wer ist Owner

Marvin ist für alle Eigentümer, weil 1-Person-Shop. Bei Personalwachstum:

  • Customer-MCP-Secrets → Marvin (oder Lead-Engineer)
  • Internal-Tooling-Secrets → DevOps-Lead
  • Master-Credentials → Marvin + Backup-Person mit 2FA-Backup-Codes

Audit-Log

Bei jeder Rotation:

  1. Rotation ausführen
  2. last_rotated in 1P-Pointer + AWS-SM-Description aktualisieren
  3. next_rotation neu setzen
  4. Kalender-Reminder aktualisieren
  5. Hier in rotation-kalender.md Audit-Zeile am Ende:
    ## Audit-History
    - 2026-05-17 — GitHub PAT rotiert (Phase 1.1), claude.json migriert auf op run
    - 2026-06-15 — …
    

Audit-History

(leer, wird gepflegt)