Mengamankan pipeline ML dari kredensial hingga data: manajemen secrets dengan Vault dan cloud secret manager, masking dan pseudonimisasi data pelatihan, data governance untuk ML, serta teknik privacy-preserving seperti differential privacy dan federated learning

Setelah episode 18 membahas serangan terhadap model, kini kita turun ke lapisan yang paling sering menjadi sumber kebocoran nyata: kredensial dan data. Satu API key MLflow yang ter-commit bisa membuka akses ke seluruh eksperimen; satu dataset pribadi yang bocor bisa berujung denda GDPR dan hilangnya kepercayaan publik.
Mengapa episode ini penting? Karena pipeline ML secara unik rawan: notebook sering memuat credentials mentah, artifact berisi data pelatihan sensitif, dan retraining otomatis (episode 13) menarik data produksi yang belum tentu boleh dipakai. Episode ini membahas secrets management, masking data, data governance, dan teknik privacy-preserving yang semakin jadi syarat wajib.
.env atau credentials di notebook ikut ter-version.Risiko ini nyata dan sering kali datang dari proses yang "normal" — itulah yang membuatnya berbahaya.
Aturan emasnya: secrets tidak pernah masuk ke kode, file, image, atau log — ia hidup di vault dan disuntikkan saat runtime.
export MLFLOW_TRACKING_PASSWORD="$(vault kv get -field=password secret/mlflow)"
python -m churn.trainDi Kubernetes, secrets tetap jangan di-commit dalam bentuk teks — gunakan operator seperti External Secrets Operator atau Sealed Secrets yang mengambil nilai dari Vault/cloud pada waktu deploy:
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: ml-credentials
spec:
refreshInterval: 1h
secretStoreRef:
name: vault
kind: SecretStore
target:
name: ml-credentials
data:
- secretKey: MLFLOW_PASSWORD
remoteRef:
key: secret/mlflow
property: passwordPola ini berlaku lintas stack: Vault, AWS Secrets Manager, GCP Secret Manager, atau Azure Key Vault — semuanya punya fungsi sama: pusat kredensial dengan audit akses.
Tidak semua field boleh masuk training. Ada tiga tingkat perlindungan yang sering tertukar:
| Teknik | Karakteristik | Contoh |
|---|---|---|
| Masking | Data diubah permanen | 0812-XXXX-XXXX |
| Pseudonymization | Identitas diganti kode, bisa di-reverse dengan kunci | customer_id → u-8f3d2a1c92ab |
| Anonymization | Tidak bisa dikembalikan sama sekali | Agregat, redaksi total |
Untuk ML, pseudonymization adalah kompromi yang paling umum: identitas asli hilang dari dataset, tapi fitur tetap berguna.
import hashlib
def pseudonymize(value: str) -> str:
return "u-" + hashlib.sha256(value.encode()).hexdigest()[:12]
df["customer_id"] = df["customer_id"].apply(pseudonymize)Warning
Model artifact juga data. Model yang dilatih data pribadi bisa menyimpan informasi tersebut dan dieksploitasi lewat inference attack (episode 18). Enkripsi artifact, batasi akses registry, dan hapus artifact basi sesuai kebijakan retention.
Data governance adalah kebijakan yang mengatur data dari lahir sampai mati. Untuk ML, yang paling relevan:
Governance data menjadi dasar dari episode 15 (compliance) — tanpa klasifikasi dan tracking data, model card dan audit tidak bisa diisi dengan jujur.
Ketika data terlalu sensitif untuk dikumpulkan terpusat, ada teknik khusus:
Federated learning adalah contoh nyata untuk kasus seperti keyboard prediction atau model medis: data tidak pernah meninggalkan perangkat/rumah sakit, yang dikirim hanyalah gradient atau parameter.
Checklist yang bisa diterapkan langsung:
Pada episode 19 ini, kalian telah mengamankan secrets dan data pipeline ML.
Inti yang harus dibawa pulang:
Di episode 20 selanjutnya kita akan membahas supply chain & model trust — model signing, SLSA, dan SBOM untuk ML — agar kalian yakin bahwa apa yang berjalan di produksi benar-benar apa yang kalian build. Sampai jumpa di episode 20!