Skip to content
BotServBotServ
Secret RotationAutomatisierungCronn8nSecret Management

Secret Rotation automatisieren

API-Keys und Passwörter automatisch rotieren. Skripte, Cronjobs, Secret-Manager und Workflows für lokale KI.

S

schutzgeist

3 min read
Secret Rotation automatisieren

Secret Rotation automatisieren

Was dieser Artikel über automatische Secret Rotation behandelt

  • Warum manuelle Rotation nicht skaliert.
  • Wie Rotation mit Skripten und Cronjobs automatisiert wird.
  • Wie Secret-Manager Rotation übernehmen.
  • Wie Workflows mit n8n oder CI/CD Rotation triggern.
  • Wichtige Stolpersteine und Best Practices.

Einleitung: Secret Rotation automatisieren

Regelmässiger Austausch von API-Keys, Tokens und Passwörtern ist wichtig, aber manuell aufwendig. Je mehr Dienste und Agenten man betreibt, desto schneller wird die Rotation zur Belastung. Automatisierung reduziert Fehler, spart Zeit und stellt sicher, dass kein Secret über seine Gültigkeit hinaus verwendet wird.

Dieser Artikel zeigt, wie man Rotation in lokalen KI-Projekten automatisieren kann, sowohl mit einfachen Skripten als auch mit Secret-Managern und Workflow-Tools.

Wichtige Begriffe

  • Rotation: Austausch eines alten Secrets gegen ein neues.
  • Automatisierung: Regelmässiger oder ereignisbasierter Austausch ohne manuellen Eingriff.
  • Cronjob: Zeitgesteuerter Auftrag unter Linux.
  • Webhook: HTTP-Callback, der Aktionen auslöst.
  • Secret-Manager: Zentrale Verwaltung von Secrets.
  • CI/CD: Automatisierte Build- und Deployment-Pipelines.
  • Grace Period: Übergangszeit, in der alte und neue Secrets gültig sind.

Warum Automatisierung wichtig ist

  • Skalierbarkeit: Viele Secrets erfordern viele Schritte.
  • Zuverlässigkeit: Termine werden nicht vergessen.
  • Reaktionsschnelligkeit: Bei Leaks sofort austauschen.
  • Konsistenz: Gleicher Ablauf für alle Dienste.
  • Dokumentation: Automatische Protokolle.

Automatisierung mit Skripten

Ein einfacher Bash-Ansatz für Ollama-API-Keys oder Tokens:

#!/bin/bash
set -e

# Konfiguration
SECRET_FILE="/etc/openclaw/secrets.env"
BACKUP_DIR="/backup/secrets"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)

# Backup
mkdir -p "$BACKUP_DIR"
cp "$SECRET_FILE" "$BACKUP_DIR/secrets.env.$TIMESTAMP"

# Neues Secret erzeugen
NEW_KEY=$(openssl rand -hex 32)

# Datei aktualisieren
sed -i "s/^API_KEY=.*/API_KEY=$NEW_KEY/" "$SECRET_FILE"

# Dienst neu starten
systemctl restart openclaw

# Altes Secret nach Grace Period deaktivieren
# Hinweis: Provider-spezifischer Schritt nötig
echo "Rotiert am $TIMESTAMP" >> /var/log/secret-rotation.log

Dieses Skript sichert die Datei, erzeugt einen neuen Key, aktualisiert die Konfiguration und startet den Dienst neu.

Cronjobs

Ein regelmässiger Cronjob:

0 3 * * 0 /usr/local/bin/rotate-secrets.sh

Dies rotiert wöchentlich sonntags um 3 Uhr nachts. Ausgaben sollten in ein Log umgeleitet werden:

0 3 * * 0 /usr/local/bin/rotate-secrets.sh >> /var/log/secret-rotation.log 2>&1

Automatisierung mit Python

import secrets
import os
import shutil
import subprocess
from datetime import datetime

SECRET_FILE = "/etc/myapp/secrets.env"
BACKUP_DIR = "/backup/secrets"
SERVICE = "myapp"

def rotate_secret():
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
    os.makedirs(BACKUP_DIR, exist_ok=True)
    shutil.copy(SECRET_FILE, f"{BACKUP_DIR}/secrets.env.{timestamp}")

    new_key = secrets.token_urlsafe(32)
    with open(SECRET_FILE, "w") as f:
        f.write(f"API_KEY={new_key}\n")

    subprocess.run(["systemctl", "restart", SERVICE], check=True)
    print(f"Rotiert um {timestamp}")

if __name__ == "__main__":
    rotate_secret()

Secret-Manager mit automatischer Rotation

  • HashiCorp Vault: Dynamische Datenbank-Credentials mit TTL.
  • Infisical: Integrationen für automatische Rotation bei ausgewählten Providern.
  • Cloud-Provider: AWS Secrets Manager, Azure Key Vault, GCP Secret Manager bieten integrierte Rotation.

Bei Secret-Managern holen sich Anwendungen das aktuelle Secret dynamisch ab, statt es in Dateien zu speichern.

Workflows mit n8n

n8n kann regelmässig oder aufgrund von Webhooks Rotation anstossen:

  1. Trigger: Zeitplan oder Webhook bei Leak-Verdacht.
  2. Neues Secret generieren: HTTP-Node beim Provider.
  3. Konfiguration aktualisieren: SSH-Node oder API-Aufruf.
  4. Dienst neu starten: SSH-Node.
  5. Altes Secret deaktivieren: Nach Grace Period.
  6. Benachrichtigung: E-Mail oder Messaging.

CI/CD-Integration

In GitHub Actions oder GitLab CI kann ein Rotation-Job definiert werden, der bei Bedarf oder zeitgesteuert läuft:

rotate-secrets:
  schedule:
    - cron: '0 3 * * 0'
  steps:
    - name: Rotate API key
      run: ./scripts/rotate-api-key.sh

Rollback-Strategie

Vor jeder Rotation ein Backup erstellen. Wenn ein Dienst nach der Rotation nicht funktioniert, kann schnell zurückgerollt werden:

cp "$BACKUP_DIR/secrets.env.20260907_030000" "$SECRET_FILE"
systemctl restart openclaw

Grace Period und Cleanup

Neue und alte Secrets sollten kurzzeitig parallel gültig sein. Ein Cleanup-Schritt deaktiviert das alte Secret nach einer definierten Zeit. Das vermeidet Ausfallzeiten, wenn ein Dienst noch das alte Secret cached.

Typische Stolpersteine

  • Kein Backup: Fehler bei der Rotation führt zu Ausfall.
  • Zu kurze Grace Period: Dienste laden das alte Secret noch.
  • Hardcodierte Secrets: Anwendungen, die Keys im Code speichern, können nicht rotiert werden.
  • Fehlende Tests: Nach der Rotation prüfen, ob alles funktioniert.
  • Logs enthalten Secrets: Nie Keys in Logs schreiben.
  • Manueller Eingriff: Automatisierung wird durch Bestätigungsschritte behindert.

FAQ: Secret Rotation automatisieren

Sollte ich Rotation wirklich automatisieren? Ja, sobald mehr als wenige Secrets im Einsatz sind.

Wie oft sollte automatisch rotiert werden? Zum Beispiel wöchentlich oder monatlich, je nach Risiko.

Kann ich Rotation ohne Secret-Manager automatisieren? Ja, mit Skripten, Cronjobs oder CI/CD, aber es erfordert mehr Eigenaufwand.

Was passiert bei einem Fehler? Ein Backup und ein Rollback-Schritt minimieren Ausfallzeiten.

Sind automatisch erzeugte Passwörter sicher? Ja, wenn sie kryptographisch stark sind, zum Beispiel mit openssl oder secrets.token_urlsafe.

Quellen und weiterführende Literatur

Zusammenfassung: Secret Rotation automatisieren

Manuelle Secret Rotation skaliert nicht. Mit Skripten, Cronjobs, Secret-Managern oder Workflows lässt sich der Austausch regelmässig und zuverlässig durchführen. Wichtig sind Backups, Grace Periods, Tests nach der Rotation und saubere Logs ohne Secrets. Wer Automatisierung richtig einsetzt, reduziert das Leak-Risiko erheblich und spart gleichzeitig Verwaltungsaufwand.

Zurück zum KI Blog
Share:

Ähnliche Beiträge