Ringkasan Utama
Workload cloud-native tersebar di beberapa cloud dan jaringan bersama, sehingga tidak ada perimeter tepercaya yang bisa dijaga firewall. Zero Trust menjawabnya dengan memverifikasi setiap request terlepas dari asalnya, memakai mTLS, identitas workload, dan policy default-deny. Di Indonesia, aturan keamanan yang mengikat adalah Peraturan BSSN 8/2020, yang menetapkan standar berbasis SNI ISO/IEC 27001 sesuai kategori sistem.
Layanan pemerintah dan fintech Indonesia terdigitalisasi dengan pesat, dan permukaan serangan infrastruktur digital Indonesia ikut membesar. Keamanan perimeter tradisional (firewall masuk, tepercaya di dalam) sangat tidak memadai untuk arsitektur cloud-native di mana workload mencakup beberapa cloud, layanan berkomunikasi melalui jaringan bersama, dan 'perimeter' tidak lagi ada. Zero Trust — jangan pernah percaya, selalu verifikasi, asumsikan pelanggaran — adalah respons arsitektural.
Prinsip Zero Trust: Fondasi
Zero Trust adalah model keamanan, bukan produk, yang didefinisikan oleh tiga prinsip inti: jangan pernah mempercayai permintaan apa pun secara implisit berdasarkan lokasi jaringan (termasuk jaringan korporat 'dalam'), terapkan akses least privilege sehingga setiap identitas hanya mendapatkan izin yang dibutuhkan untuk tugas saat ini, dan asumsikan pelanggaran dengan merancang sistem untuk membatasi blast radius komponen yang dikompromikan.
Lima Pilar Zero Trust
Zero Trust Maturity Model versi 2.0 dari CISA, yang dibangun di atas NIST SP 800-207, membagi pekerjaannya ke dalam lima pilar: Identity (setiap user dan layanan memiliki identitas kriptografis yang terverifikasi), Devices (hanya perangkat yang dikelola dan compliant yang dapat mengakses sumber daya), Networks (lalu lintas dienkripsi dan diotorisasi di level workload, bukan perimeter), Applications and Workloads (setiap aplikasi menerapkan otorisasinya sendiri), dan Data (data diklasifikasikan dan akses dikontrol di lapisan data). Titik awal yang praktis adalah Identity dan Networks, yang menentukan siapa yang memanggil dan apa yang bisa dijangkaunya.
Mengapa Keamanan Perimeter Gagal dalam Arsitektur Cloud-Native
Dalam arsitektur microservices yang di-deploy di beberapa availability zone atau cloud, konsep jaringan internal yang tepercaya adalah fiksi. Container yang dikompromikan di namespace 'tepercaya' dapat membuat panggilan API lateral ke layanan pembayaran, database, dan secret store tanpa hambatan jika hanya firewall perimeter yang ada. Serangan SolarWinds 2021 menunjukkan bagaimana software internal yang tepercaya dapat dijadikan senjata; pelanggaran MOVEit 2023 menunjukkan bagaimana software transfer file yang tepercaya menjadi vektor serangan.
Petakan topologi komunikasi layanan-ke-layanan Anda sebelum mengimplementasikan kebijakan Zero Trust. Gunakan dashboard Kiali Istio atau Cilium Hubble untuk secara otomatis menemukan dan memvisualisasikan layanan mana yang berbicara ke layanan mana — Anda pasti akan menemukan koneksi tak terduga yang mewakili kode lama yang terlalu permisif atau masalah keamanan potensial. Peta ini menjadi baseline Anda untuk menulis aturan AuthorizationPolicy.
Mengimplementasikan mTLS Antar Layanan
Mutual TLS (mTLS) memastikan bahwa klien dan server dalam koneksi layanan-ke-layanan saling mengautentikasi satu sama lain dengan sertifikat X.509 sebelum bertukar data. Dalam service mesh Kubernetes seperti Istio, mTLS diimplementasikan secara transparan oleh sidecar proxy (Envoy) — kode aplikasi tidak berubah, proxy menangani rotasi sertifikat, validasi, dan enkripsi. Mode mTLS STRICT Istio menolak semua lalu lintas plaintext, memastikan tidak ada layanan yang dapat berkomunikasi secara tidak sengaja tanpa autentikasi.
Kubernetes NetworkPolicy dan Otorisasi Istio
Kubernetes NetworkPolicy menyediakan micro-segmentation L3/L4 (IP dan port), membatasi pod mana yang dapat menginisiasi koneksi TCP ke pod lain mana. Istio AuthorizationPolicy menyediakan otorisasi L7 (lapisan aplikasi), membatasi service account (identitas kriptografis) mana yang dapat memanggil HTTP path mana di layanan mana. Keduanya bekerja bersama: NetworkPolicy menghentikan koneksi TCP yang tidak diotorisasi sebelum mencapai sidecar Envoy, dan AuthorizationPolicy menangani kontrol akses tingkat HTTP yang terperinci.
# NetworkPolicy — micro-segmentation: only allow payment-service to reach db
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-payment-to-db
namespace: production
spec:
podSelector:
matchLabels:
app: postgres-payments
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: payment-service
ports:
- protocol: TCP
port: 5432
---
# Default deny-all for the namespace
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny-all
namespace: production
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
---
# Istio PeerAuthentication — enforce mTLS for all services in namespace
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
name: default-mtls
namespace: production
spec:
mtls:
mode: STRICT # reject all plaintext traffic
---
# Istio AuthorizationPolicy — only payment-service may call billing-service
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: billing-authz
namespace: production
spec:
selector:
matchLabels:
app: billing-service
rules:
- from:
- source:
principals:
- cluster.local/ns/production/sa/payment-serviceSPIFFE/SPIRE untuk Identitas Workload
SPIFFE (Secure Production Identity Framework For Everyone) mendefinisikan standar untuk identitas workload kriptografis yang disebut SVID (SPIFFE Verifiable Identity Documents), diformat sebagai URI spiffe://trust-domain/path. SPIRE (SPIFFE Runtime Environment) adalah implementasi referensi: server yang bertindak sebagai certificate authority, dan agen yang berjalan di setiap node yang membuktikan identitas workload dan mengeluarkan X.509 SVID berumur pendek. SVID dirotasi otomatis setiap jam, membatasi jendela eksposur jika sertifikat dikompromikan.
Kepatuhan BSSN dan Konteks Regulasi Indonesia
BSSN (Badan Siber dan Sandi Negara) tidak mewajibkan Zero Trust secara eksplisit. Aturan yang mengikat adalah Peraturan BSSN 8/2020: penyelenggara menilai sendiri setiap sistem elektroniknya sebagai strategis, tinggi, atau rendah, melaporkan hasilnya ke BSSN, lalu menerapkan standar keamanan untuk kategori itu — SNI ISO/IEC 27001 ditambah standar yang ditetapkan BSSN dan kementerian atau lembaga terkait untuk sistem strategis, serta SNI ISO/IEC 27001 atau standar yang ditetapkan BSSN untuk kategori di bawahnya. Kontrol Zero Trust seperti mTLS, micro-segmentation, dan log akses per request membantu menerapkan banyak kontrol yang diharapkan sistem manajemen ISO 27001, tetapi tidak menggantikannya. UU Pelindungan Data Pribadi (UU PDP, berlaku penuh sejak Oktober 2024) mewajibkan pengendali melindungi data pribadi dengan langkah keamanan yang sesuai dengan sifat dan risikonya (Pasal 35) dan mencegah akses tidak sah (Pasal 39). Micro-segmentation dan enkripsi-dalam-transit Zero Trust adalah cara memenuhi kewajiban tersebut sekaligus meninggalkan jejak audit, meskipun undang-undangnya sendiri tidak menyebut arsitektur tertentu. Perusahaan fintech di bawah pengawasan OJK memiliki persyaratan tambahan soal penempatan data dan pencatatan akses, yang didukung kontrol-kontrol ini.
Identity dan Access Management: OIDC dan Token Berumur Pendek
Ganti password service account berumur panjang dan API key dengan token OIDC berumur pendek dan identitas workload native Kubernetes. AWS IRSA (IAM Roles for Service Accounts) dan GCP Workload Identity Federation memungkinkan pod Kubernetes mengasumsikan peran IAM cloud tanpa kredensial yang tersimpan — API server Kubernetes mengeluarkan token OIDC bertanda tangan yang divalidasi oleh IAM cloud. Ini menghilangkan mode kegagalan manajemen secret paling umum: kredensial berumur panjang yang disimpan di Kubernetes Secrets atau environment variable.
Membeli produk 'Zero Trust' vendor (gateway ZTNA, cloud access broker) tanpa merancang ulang kebijakan identitas dan jaringan Anda memberikan rasa aman yang palsu — ini adalah security theater. Zero Trust sejati membutuhkan penghapusan kepercayaan implisit secara sistematis: menghapus password service account berumur panjang, mengganti akses berbasis VPN dengan identity-aware proxy, menerapkan mTLS antar semua layanan, dan mengimplementasikan AuthorizationPolicy yang terperinci. Setiap langkah membutuhkan berminggu-minggu hingga berbulan-bulan. Peta jalan Zero Trust yang realistis mencakup 12–24 bulan.
Kredensial Berumur Pendek dan Rotasi Sertifikat
Nilai keamanan sertifikat mTLS sepenuhnya bergantung pada seberapa cepat sertifikat yang dikompromikan dirotasi. Istio, menggunakan Citadel CA bawaannya, merotasi sertifikat layanan setiap 24 jam secara default — dapat dikonfigurasi hingga 1 jam untuk lingkungan keamanan tinggi. SPIRE merotasi SVID setiap 60 menit. Pasangkan ini dengan pencatatan transparansi sertifikat dan pencabutan otomatis melalui OCSP stapling.
Micro-Segmentation dengan NetworkPolicy dan Cilium
NetworkPolicy default-deny (diterapkan ke semua namespace) memastikan tidak ada pod yang dapat menginisiasi koneksi jaringan kecuali secara eksplisit diizinkan oleh aturan kebijakan. Ini mengharuskan penulisan aturan izin eksplisit untuk setiap jalur komunikasi yang sah — awalnya padat karya tetapi mendokumentasikan diri. Cilium, plugin CNI Kubernetes menggunakan eBPF, memperluas NetworkPolicy dengan filtering HTTP path L7, filtering egress berbasis DNS, dan observabilitas mendalam ke dalam aliran jaringan.
Observabilitas Service Mesh untuk Keamanan
Telemetri Istio menghasilkan log akses untuk setiap panggilan layanan-ke-layanan termasuk identitas sumber (URI SPIFFE), layanan tujuan, metode HTTP, path, kode respons, dan latensi. Mengirimkan log-log ini ke SIEM (Elastic SIEM, Splunk, atau Wazuh open-source) memungkinkan deteksi anomali real-time: pola panggilan tidak biasa antar layanan, layanan yang memanggil endpoint yang belum pernah diaksesnya sebelumnya, atau lonjakan respons 403 Forbidden yang menunjukkan klien yang salah konfigurasi atau jahat.
Implementasikan Zero Trust secara bertahap menggunakan mode mTLS PERMISSIVE Istio terlebih dahulu — mode ini mengizinkan lalu lintas plaintext dan mTLS sekaligus mencatat layanan mana yang masih berkomunikasi tanpa mTLS. Gunakan Kiali untuk mengidentifikasi semua jalur komunikasi plaintext, perbaiki satu per satu, dan hanya beralih ke mode STRICT setelah semua layanan menunjukkan lalu lintas hanya mTLS. Mencoba beralih ke mode STRICT di cluster besar sekaligus akan menyebabkan gangguan layanan segera.
Peta Jalan Zero Trust untuk Organisasi Indonesia
Implementasi Zero Trust yang realistis untuk startup atau perusahaan Indonesia mengikuti pendekatan bertahap: Fase 1 (bulan 1–3) membangun fondasi identitas — SSO dengan MFA, inventarisasi service account, dan menghilangkan kredensial bersama. Fase 2 (bulan 3–6) mengimplementasikan kontrol jaringan — NetworkPolicy default-deny dan mTLS antar layanan kritis. Fase 3 (bulan 6–12) menerapkan otorisasi lapisan aplikasi — Istio AuthorizationPolicy dan klasifikasi data. Setiap fase memberikan peningkatan keamanan yang terukur dan menambah bukti untuk kewajiban BSSN dan OJK yang berlaku bagi sistem Anda.
Mengimplementasikan Zero Trust untuk Developer: Mengurangi Hambatan
Kebijakan Zero Trust tidak boleh menjadi pajak produktivitas bagi developer. Berikan developer dokumentasi yang jelas tentang panggilan layanan-ke-layanan mana yang diizinkan dan antarmuka self-service (plugin Backstage atau alat CLI) untuk meminta aturan AuthorizationPolicy baru dengan tinjauan keamanan otomatis. Gunakan dry-run mode untuk kebijakan baru (aksi 'audit' Istio mencatat apa yang akan ditolak tanpa benar-benar menolaknya) untuk memvalidasi kebijakan terhadap lalu lintas produksi sebelum penegakan.
Istilah kunci dalam artikel ini meliputi mTLS (Mutual TLS), SPIFFE/SPIRE, BSSN, and micro-segmentation.

