Episode ini mengamankan data backup dengan enkripsi client-side: membuat key base64 di sisi client, menunjukkannya ke task backup PVE/PBS, dan memverifikasi bahwa server hanya menyimpan ciphertext yang tak bisa dibaca. Kalian juga belajar manajemen key yang benar — karena tanpa key, restore tidak mungkin dilakukan.

Setelah dedup dan GC menghemat storage di episode 6, sekarang kita bicara kerahasiaan. Data backup adalah salinan penuh dari seluruh sistem kalian — jika server backup jatuh ke tangan yang salah, semua yang kalian lindungi ikut terbuka. Episode 7 menutup celah ini dengan enkripsi client-side: data dienkripsi sebelum meninggalkan client, sehingga server PBS sendiri tidak pernah melihat plaintext.
Bayangkan seperti menyimpan catatan dengan tinta rahasia: yang menyimpan catatan (server PBS) hanya melihat coretan tak terbaca. Satu-satunya kunci pembaca ada di tangan kalian (client). Kalau kunci hilang, catatan itu selamanya tak terbaca — tidak ada teknisi gudang yang bisa membantu.
Prinsip kunci PBS: key hanya ada di sisi client. Saat backup, client mengenkripsi setiap chunk dengan key sebelum dikirim. Server menerima, menyimpan, dan mengelola ciphertext murni. Server bahkan tidak bisa memverifikasi isi snapshot (karena itu verify job di episode 9 hanya bisa memvalidasi integritas chunk, bukan membacanya tanpa key).
Keuntungannya besar: admin PBS, penyerang yang membobol server, atau penyedia storage yang mencuri disk tidak akan mendapatkan apa pun yang bisa dibaca. Data tetap aman meski server dikompromikan sepenuhnya.
Key dibuat di sisi client, bukan di server:
proxmox-backup-client key generate \
--keyfile /etc/proxmox-backup/enc.keyproxmox-backup-client key generate menghasilkan key berformat base64. Opsional, kalian bisa membuat key terenkripsi dengan password (--kdf-iterations untuk iterasi derivasi) — aman jika keyfile jatuh ke tangan salah, tapi menuntut kalian mengingat passwordnya.
Di PVE, keyfile dihubungkan ke storage PBS. Dari CLI, tambahkan opsi encryption-key-file pada storage:
pvesm set pbs1 --encryption-key-file /etc/proxmox-backup/enc.keyDi web UI PVE: Datacenter → Storage → pbs1 → Edit, isi Encryption Key File dengan path keyfile di node PVE. Semua backup yang memakai storage ini otomatis terenkripsi. Untuk proxmox-backup-client langsung, key ditunjuk lewat --keyfile:
proxmox-backup-client backup etc.pxar:/etc \
--repository backup@pbs@10.0.1.10:store1 \
--keyfile /etc/proxmox-backup/enc.keyImportant
Keyfile harus ada di setiap client yang melakukan backup dan setiap host yang akan restore. Jika keyfile hilang, snapshot terenkripsi menjadi selamanya tidak berguna — tidak ada backdoor, tidak ada bypass. Perlakukan keyfile seperti password root terpenting di environment kalian.
Bagaimana membuktikan enkripsi benar-benar aktif? Cek dari sisi server bahwa data yang tersimpan adalah ciphertext:
ls -la /var/lib/proxmox-backup/datastore/store1/chunk
xxd /var/lib/proxmox-backup/datastore/store1/chunk/.../....chunk | headIsi chunk akan tampak acak (ciphertext), bukan data yang terbaca. Bukti yang lebih tegas: coba restore tanpa key dari client — proxmox-backup-client restore akan gagal dengan error terkait key karena PBS tidak bisa mendekripsi. Coba restore dengan key: data kembali utuh.
Aturan pertama: key tidak boleh hanya ada di satu tempat. Buat beberapa salinan:
Setiap kali key diganti (rotasi), perbarui semua salinan — snapshot lama memakai key lama, jadi pertahankan key lama selama snapshot lama masih ada.
Ini konsekuensi paling penting enkripsi client-side: tanpa key, tidak ada restore, tidak ada dukungan yang bisa membantu. Pastikan prosedur penyimpanan key terdokumentasi di runbook tim. Sebelum mengganti personel yang memegang key, rotasi key dan distribusikan yang baru.
Warning
Jangan simpan keyfile di datastore PBS yang sama (apalagi di dalam VM yang di-backup ke PBS itu). Keyfile harus hidup di luar failure domain data yang dilindunginya — jika tidak, "backup aman" kalian bisa hilang dalam satu insiden yang sama.
Inti yang harus dibawa pulang:
proxmox-backup-client key generate --keyfile.encryption-key-file pada storage PVE atau --keyfile pada client.Di episode 8 selanjutnya kita akan mengatur siklus hidup snapshot: retention & prune policy — memahami keep-last, keep-daily, keep-weekly, dan keep-monthly per backup group, bagaimana sync job mempertahankan retention di sisi remote, serta menyesuaikan kebijakan dengan target RPO/RTO kalian. Storage akan tumbuh seimbang, bukan liar!