Episode ini mengamankan cluster produksi: mengaktifkan TLS/HTTPS pada seluruh API endpoint dengan HAProxy SSL termination, memisahkan internal dan public API, mengkustomisasi policy.yaml untuk RBAC granular, serta hardening instance dengan melindungi metadata service dan mencegah spoofing lewat port security.

Setelah storage, networking, dan deployment beres, ada satu hal yang tidak boleh ditunda: keamanan. Cloud yang dioperasikan tanpa TLS, tanpa batasan akses yang jelas, dan tanpa proteksi network adalah tanggung jawab yang siap menimpa. Episode 17 membahas hardening OpenStack di tiga lapisan: endpoint API, kebijakan akses, dan instance.
Episode 17 membahas mengamankan API endpoints dengan TLS dan pemisahan internal/public, mengkustomisasi policy.yaml untuk RBAC yang granular, serta melindungi instance dari eksploitasi metadata service dan spoofing lewat port security.
Semua komunikasi dengan OpenStack harus lewat HTTPS. Di Kolla-Ansible, HAProxy menjadi titik terminasi TLS — koneksi dari luar dienkripsi, dan HAProxy meneruskan ke service internal.
kolla_enable_tls_external: "yes"
kolla_certificates_volume: "/etc/kolla/certificates"
kolla_external_fqdn: "cloud.example.com"kolla_enable_tls_external: "yes" mengaktifkan TLS di HAProxy. Letakkan sertifikat di kolla_certificates_volume — setelah itu semua endpoint API hanya bisa diakses lewat HTTPS.
openstack endpoint list --interface public -f value -c URL
curl -sI https://cloud.example.com:35357/v3 | head -n 1Output openstack endpoint list --interface public harus menampilkan URL https:// di seluruh service. Verifikasi dengan curl bahwa TLS benar-benar aktif.
Endpoint dibagi menjadi dua interface:
Public API → https://cloud.example.com (TLS, dari luar)
Internal API → http://10.0.0.x:8774 (management network)Pemisahan ini memastikan traffic internal tidak keluar ke jaringan publik dan sertifikat hanya diekspos pada interface publik — pola yang juga memudahkan monitoring dan kontrol akses.
Setiap service OpenStack memutuskan izin dengan file policy.yaml — aturan RBAC yang bisa dikustomisasi. Default cukup permisif; produksi biasanya memperketat.
"os_compute_api:servers:create": "role:admin or role:member"
"os_compute_api:servers:delete": "role:admin"
"os_compute_api:servers:start": "role:admin or role:member"
"os_compute_api:servers:stop": "role:admin or role:member"File di atas contoh pengetatan: hanya admin yang boleh menghapus server, sementara member boleh membuat dan mengelola. Sintaks role:admin adalah rule bawaan yang dipahami semua service.
kolla-ansible -i multinode reconfigure --tags nova
openstack server delete test-vmkolla-ansible -i multinode reconfigure --tags nova menyebarkan policy.yaml yang baru ke semua node Nova. Saat policy diketatkan, user tanpa role akan menerima error 403 Forbidden — inilah sinyal bahwa RBAC bekerja. Uji setiap pengetatan dengan role berbeda sebelum diproduksi.
Aturan emas RBAC: beri hak seminimal mungkin. Mulai dari default, batasi aksi berbahaya seperti delete dan resize ke role admin, dan jangan pernah menempatkan user biasa di group dengan role admin hanya karena praktis. Kebijakan ini berlapis dengan role Keystone yang sudah dipelajari di episode 3.
Metadata service di 169.254.169.254 adalah target favorit: jika instance bisa membuat request ke alamat itu, ia bisa membaca metadata project lain atau memalsukan token. Proteksi utamanya:
Port security menghentikan spoofing — instance yang mengirim paket dengan MAC atau IP yang bukan miliknya:
openstack port create --network net-aplikasi --enable-port-security port-aman
openstack port set --no-allowed-address port-amanPerintah openstack port create --enable-port-security mengaktifkan aturan anti-spoofing: Neutron hanya menerima traffic dengan MAC dan IP yang terdaftar pada port. Ini mencegah serangan seperti DHCP spoofing dan ARP poisoning antar tenant.
Selain port security, jaga: security groups selalu diterapkan (default deny inbound), floating IP hanya untuk yang benar-benar butuh, dan remote console (VNC/SPICE) diakses hanya lewat internal network dengan autentikasi. Setiap akses publik harus lewat satu pintu yang diaudit.
Episode 17 mengamankan cluster di tiga lapisan: API endpoints dengan TLS dan pemisahan internal/public, RBAC granular melalui kustomisasi policy.yaml, serta hardening instance dengan melindungi metadata service dan mengaktifkan port security untuk melawan spoofing.
Inti yang harus dibawa pulang:
policy.yaml mengatur RBAC granular per service.kolla-ansible reconfigure menyebarkan perubahan policy.Di episode 18 selanjutnya kita akan membahas Monitoring, Logging & Alerting — memasang Prometheus exporters untuk setiap service OpenStack, membangun Grafana dashboard untuk API response, instance count, dan hypervisor utilization, memusatkan log ke ELK Stack atau Grafana Loki, serta konfigurasi Alertmanager untuk notifikasi saat node down, queue overflow, dan OSD degraded.