Appearance
S3-zu-S3-Backups (S3 to S3 Backups)
Zweck
Diese Seite dokumentiert die aktuelle Implementierung der Objekt-Backups in der Produktionsumgebung:
- Quelle: IONOS S3 (Produktion)
- Ziel: Hetzner Object Storage (Backup)
- Laufzeit: Kubernetes CronJobs im Namespace
s3backup
Hauptziele:
- Stündliche anbieterübergreifende Replikation
- Unveränderliche Backup-Aufbewahrung (Immutable Retention) auf dem Ziel
- Betriebsbereiter Wiederherstellungspfad bei versehentlichem Löschen oder Datenbeschädigung
Aktuelles Setup
Quelle (Primär)
- Anbieter: IONOS S3
- Rolle: Aktiver Produktions-Objektspeicher
- Schutzstufe: Nur Hardware-Redundanz des Anbieters
Wichtig: Hardware-Redundanz schützt nicht vor logischen Vorfällen wie:
- versehentliches Löschen
- versehentliches Überschreiben
- Missbrauch von Zugangsdaten
- Ransomware-ähnliche Datenänderungen
Ziel (Backup, Hetzner)
- Anbieter: Hetzner Object Storage (S3-kompatibel)
- Versionierung: Aktiviert
- Object Lock: Aktiviert
- Aufbewahrung (Retention): 14 Tage
- Sperrmodus (Lock Mode): Compliance
Der Compliance-Modus bedeutet, dass gesperrte Objektversionen vor Ablauf der Aufbewahrungsfrist nicht gekürzt oder gelöscht werden können, selbst von einem Administrator nicht.
Zeitpläne und Jobs
Beide Jobs laufen stündlich (0 * * * *) mit concurrencyPolicy: Forbid.
1) ConnectCloud
- CronJob:
s3backup-ionos-connectcloud-to-hetzner - Vertragsprefix (Contract Prefix):
connectcloud
2) ELO
- CronJob:
s3backup-ionos-elo-to-hetzner - Vertragsprefix:
elo
Laufzeit und Skript-Verhalten
Container-Laufzeit:
- Image:
alpine:3.20 - Entrypoint installiert
rclone,aws-cli,ca-certificatesund führt dann/config/backup.shaus
Gemeinsames Skript-Verhalten (s3backup-config ConfigMap):
- Validiert die Hetzner-Zugangsdaten und Vertragsparameter.
- Erstellt eine temporäre Hetzner-
rclone-Remote-Konfiguration. - Listet Quell-Buckets vom konfigurierten IONOS-Remote auf.
- Filtert ausgeschlossene Buckets (gemäß Vertrag).
- Kopiert jeden Bucket mit
rclone copy. - Führt Bucket-Kopien parallel aus (
BUCKET_PARALLELISM, derzeit6). - Beendet mit einem Exit-Code ungleich Null, wenn eine oder mehrere Bucket-Kopien fehlschlagen.
Behandlung von Ziel-Buckets
Für jeden Quell-Bucket:
- Der Zielname wird auf
${CONTRACT_PREFIX}-${source_bucket}normalisiert. - Der Bucket wird bei Bedarf erstellt, falls er fehlt.
- Beim Erstellen wendet das Skript Folgendes an:
Versioning: Enabled(Versionierung: Aktiviert)- Object-Lock Standardaufbewahrung:
COMPLIANCE,14 Tage
Dies erzwingt eine unveränderliche Aufbewahrung auf der Ebene des Ziel-Buckets für neu geschriebene Objekte.
Datenfluss
- Der CronJob startet stündlich.
- Der Job liest Bucket-/Objektdaten aus IONOS S3 über eine vertragsspezifische
rclone.conf. - Der Job kopiert diese in die Hetzner-Buckets mit entsprechendem Präfix.
- Hetzner speichert Versionen und wendet die Object-Lock-Aufbewahrung an (14 Tage, Compliance).
Grundlegendes Ziel:
RPO(Recovery Point Objective): bis zu 1 Stunde für Objektdaten.
Sicherheit und Isolation
- Es existiert eine providerübergreifende Grenze (IONOS -> Hetzner).
- Hetzner-Zugangsdaten werden aus dem Secret
s3backup-hetzner-s3injiziert. - Vertragsspezifische IONOS-Zugangsdaten werden über dedizierte Secrets bereitgestellt.
- Die Backup-Laufzeit ist im Namespace
s3backupisoliert.
Wiederherstellungsstrategie
Die Quelle der Wahrheit (Source of Truth) für Wiederherstellungen bei Vorfällen ist der Hetzner-Backup-Bucket.
Typischer Wiederherstellungsablauf:
- Identifizieren des betroffenen Objektsatzes und des Vorfalls-Zeitstempels.
- Auswählen der korrekten Objektversionen von Hetzner (zum Zeitpunkt des Vorfalls oder davor).
- Zunächst Wiederherstellung in einen Staging-Pfad oder eine isolierte Umgebung.
- Validieren der Integrität und des Anwendungshaltens.
- Übertragen der wiederhergestellten Objekte zurück in die Produktionspfade.
Überwachung und Verifizierung
Mindestkontrollen:
- Überwachung des Status von CronJob/Job für beide Verträge
- Alarmierung bei fehlgeschlagenen stündlichen Durchläufen
- Überprüfung der Protokolle auf übersprungene/ausgeschlossene Buckets und fehlgeschlagene Bucket-Kopien
- Periodische Wiederherstellungstests auf Objektebene
Empfohlener Testrhythmus:
- Monatlich: Stichprobenartiger Wiederherstellungstest
- Quartalsweise: Größere Wiederherstellungsübung für kritische Buckets
Zusammenfassung
Die aktuelle Implementierung bietet ein stündliches, anbieterübergreifendes S3-Backup von IONOS zu Hetzner mit einer unveränderlichen 14-tägigen Aufbewahrung im Compliance-Modus. ELO-Testbuckets sind explizit vom Backup-Umfang ausgeschlossen.