Nachträglich Backups verschlüsseln?

dekiesel

Member
Apr 30, 2023
92
13
13
Hi,
Ich habe gerade festgestellt, dass ich leider alle meine Backups unverschlüsselt an einen S3 Hoster sende.

Ich habe ein 3-Knoten Setup, was wäre hier der beste Weg um zukünftig alle Backups zu verschlüsseln und die unverschlüsselten Backups zu entfernen?

Sollten alle drei Knoten den gleichen Verschlüsselungskey nutzen damit PBS deduplizieren kann? Oder kann PBS das so oder so?

Sobald ich verschlüsselte Backups erstellt habe, reicht es die unverschlüsselten Backups zu löschen um den Platz auf dem Hoster wieder freizugeben? Oder muss erst einmal die GC durchlaufen?

Danke im voraus für jede Hilfe! :)
 
Hi,
Ich habe gerade festgestellt, dass ich leider alle meine Backups unverschlüsselt an einen S3 Hoster sende.

Ich habe ein 3-Knoten Setup, was wäre hier der beste Weg um zukünftig alle Backups zu verschlüsseln und die unverschlüsselten Backups zu entfernen?

Am besten neue backups am client verschlüsseln und bestehende backup snapshots prunen und mittels garbage collection unverschlüsselte chunks entfernen. Dazu am besten die gc-cutoff-time auf das minimum von 1 setzten, sodass diese gleich entfernt werden.

Sollten alle drei Knoten den gleichen Verschlüsselungskey nutzen damit PBS deduplizieren kann? Oder kann PBS das so oder so?

Nein, da client seitig verschlüsselt wird, kann der backup server nur jene chunks de-duplizieren welche mit dem selben key verschlüsselt wurden. Es hängt also davon ab was genau man erreichen will.

Sobald ich verschlüsselte Backups erstellt habe, reicht es die unverschlüsselten Backups zu löschen um den Platz auf dem Hoster wieder freizugeben? Oder muss erst einmal die GC durchlaufen?

Ja, prunen entfernt stets nur jene Metadaten, welche dem server eine logische Zuordnung der Daten-Chunks erlaubt. Die chunks selbst werden erst mit garabge collection freigegeben.

P.s. PBS server side encryption wird mit issue https://bugzilla.proxmox.com/show_bug.cgi?id=6633 getracked.
 
  • Like
Reactions: Johannes S
Vielen Dank! Vielleicht ist es doch einfacher einen neuen bucket zu erstellen und den alten datastore zu löschen.

Ich bin allerdings ein wenig verwirrt, was die Verschlüsselung auf den clients angeht: wenn ich auf allen drei Knoten den gleichen key angebe, kann pbs dann deduplizieren?

Oder brauche ich im Endeffekt einen datastore/bucket pro pve node?
 
Hallo @dekiesel,

die Verschlüsselung passiert Client-seitig auf den PVE-Knoten, nicht auf dem PBS. Nachträglich konvertieren geht nicht — du musst neue verschlüsselte Backups erstellen.

Vorgehen:

  1. Encryption Key erzeugen (einmalig):
    Code:
    proxmox-backup-client key create /etc/pve/priv/pbs-encryption-key.json
  2. Den Key auf alle drei Knoten verteilen (gleicher Pfad).
  3. Im PVE unter Datacenter → Storage → dein PBS-Storage → Edit → den Encryption Key hinterlegen. Alternativ in /etc/pve/storage.cfg beim entsprechenden Storage encryption-key /etc/pve/priv/pbs-encryption-key.json ergänzen.
  4. Neue Backups laufen lassen (werden jetzt verschlüsselt).
  5. Alte unverschlüsselte Snapshots auf dem PBS löschen.
  6. Danach GC auf dem PBS laufen lassen — erst dann wird der Speicherplatz tatsächlich freigegeben.

Zu deiner Frage: Ja, alle drei Knoten müssen denselben Key verwenden, damit PBS über Knoten hinweg deduplizieren kann. Gleiche Daten mit unterschiedlichen Keys erzeugen unterschiedliche Ciphertext-Chunks → keine Deduplizierung.

Wichtig: Den Encryption Key unbedingt sicher extern sichern (z.B. Passwort-Manager, Offline-Kopie). Ohne den Key sind die verschlüsselten Backups wertlos.
 
  • Like
Reactions: Johannes S