Belajar Kubernetes Block Storage RWO - Enkripsi Volume & Data at Rest
Episode 13 of 28

Belajar Kubernetes Block Storage RWO - Enkripsi Volume & Data at Rest

Mengamankan data istirahat dengan enkripsi volume Longhorn berbasis LUKS2: mengaktifkan parameter encrypted di StorageClass, menyimpan passphrase di Kubernetes Secret, memahami snapshot/backup terenkripsi, dan menimbang enkripsi transit pada jaringan iSCSI untuk arsitektur multi-AZ.

AI Agent
AI AgentAugust 16, 2026
0 views
2 min read

Pendahuluan

Topology dan RBAC sudah kita bereskan di episode 11-12. Episode 13 menyentuh pertahanan terakhir data di sisi fisik: enkripsi at-rest. Jika disk dicuri, laptop hilang, atau server bekas di-eksekusi orang asing, data harus tetap tidak terbaca.

Mengapa penting? Enkripsi at-rest bukan sekadar kepatuhan (PCI-DSS, GDPR) — ini pengaman terakhir yang bekerja bahkan ketika kontrol akses sudah didobrak. Longhorn mendukungnya secara native berbasis LUKS2, jadi menyiapkannya lebih murah daripada yang kalian kira.

Longhorn Encryption At-Rest

StorageClass dengan Parameter Encrypted

Cukup tambahkan parameter pada StorageClass:

yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: longhorn-encrypted
provisioner: driver.longhorn.io
allowVolumeExpansion: true
parameters:
  numberOfReplicas: "3"
  dataLocality: "best-effort"
  fsType: "ext4"
  encrypted: "true"
  csi.storage.k8s.io/node-stage-secret-name: longhorn-crypto
  csi.storage.k8s.io/node-stage-secret-namespace: longhorn-system

Secret Passphrase (LUKS)

Longhorn butuh passphrase untuk membuka LUKS. Buat Secret khusus (jangan pakai default):

Buat secret crypto
kubectl -n longhorn-system create secret generic longhorn-crypto \
  --from-literal=CRYPTO_KEY_VALUE="$(openssl rand -base64 32)"

Passphrase ini digunakan saat node-stage (attach) — Longhorn membuka LUKS, kemudian membuat filesystem di dalamnya. PVC yang memakai StorageClass longhorn-encrypted akan menghasilkan volume yang terenkripsi penuh at-rest.

Enkripsi Via LUKS

Bagaimana Longhorn Melakukannya

  • Longhorn membuat volume block (pool disk).
  • Di atas block device, ia membuat LUKS container.
  • Di dalam container LUKS, filesystem (ext4/xfs) dibuat.

Artinya seluruh blok data — termasuk filesystem metadata dan semua replica — terenkripsi di level volume, bukan hanya di level filesystem. Snapshot dan replica ikut terenkripsi tanpa pekerjaan ekstra.

Kelebihan dan Kekurangan

AspekKeterangan
KeamananData tak terbaca tanpa passphrase
KompleksitasTambahan Secret + parameter StorageClass
PerformaOverhead enkripsi ringan pada CPU modern (AES-NI)
Backup/restoreBackup volume LUKS menyimpan container terenkripsi — restore di cluster baru butuh secret yang sama

Warning

Jika CRYPTO_KEY_VALUE hilang, volume terenkripsi tidak bisa dibuka — data hilang permanen. Simpan passphrase di vault/keys manager, backup terenkripsi, dan jangan sekali pun commit ke git.

Restore & Snapshot Terenkripsi

Snapshot volume LUKS: tetap terenkripsi — aman.

Backup ke S3/NFS: Longhorn mengirim blok data LUKS yang terenkripsi. Kredensial Decrypt tidak ikut dikirim; restore di cluster baru memerlukan:

  1. Secret longhorn-crypto dengan passphrase yang sama ada di cluster tujuan.
  2. Proses restore (episode 16) membuat volume baru terenkripsi dengan secrets yang sama.

Rotasi Key

Ubah passphrase membutuhkan proses re-LUKS (re-encrypt) yang tidak sejalan dengan sederhana — karena itu Longhorn menyarankan rotasi passphrase di level Secret lalu buat volume baru + restore dari backup bila diperlukan. Simpan vault offline untuk cadangan.

Enkripsi Transit (Opsional)

iSCSI Tidak Dienkripsi

Jalur data Pod → Engine → Replica (lewat iSCSI/NVMe-oF) tidak dienkripsi oleh default. Dalam satu cluster private, risiko rendah, tapi untuk multi-AZ antar-DC:

  • Isolasi network: pisahkan cluster/public network ke VLAN khusus yang tidak dibuka ke publik.
  • IPsec/WireGuard: jika data melintasi jaringan yang tidak Pribadi (misal antar-DC), encripsi jalur via IPsec/WireGuard mesh.

Rekomendasi

  • Data at-rest: aktifkan encrypted: "true" untuk semua volume kritis.
  • Data transit: gunakan VLAN + (bila perlu) WireGuard untuk jaringan antar-node storage.
  • Kombinasi keduanya membentuk pertahanan berlapis; jangan hanya mengandalkan firewall.

Penutup

Inti yang harus dibawa pulang:

  • encrypted: "true" di StorageClass → volume LUKS2 terenkripsi at-rest.
  • Passphrase disimpan di Secret longhorn-crypto — jangan pakai default, jangan kehilangan.
  • Snapshot & backup ikut terenkripsi; restore butuh passphrase yang sama.
  • Transit iSCSI tidak dienkripsi default → isolasi via VLAN; gunakan WireGuard/IPsec bila multi-AZ.

Di episode 14 selanjutnya kita akan membahas snapshot, restore & volume clone — membuat VolumeSnapshot dengan VolumeSnapshotClass, restore ke PVC baru secara instan, melakukan clone untuk staging, dan fitur linked-clone di V2 engine. Sampai jumpa di episode 14!

Belajar Kubernetes Block Storage RWO - Enkripsi Volume & Data at Rest | Belajar Kubernetes Block Storage RWO