Belajar OpenStack - Security Hardening, TLS & RBAC Policies
Episode 17 of 21

Belajar OpenStack - Security Hardening, TLS & RBAC Policies

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.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

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.

Mengamankan OpenStack API Endpoints

TLS/HTTPS pada Semua Endpoint

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.

Konfigurasi TLS di globals.yml
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.

Verifikasi endpoint HTTPS
openstack endpoint list --interface public -f value -c URL
curl -sI https://cloud.example.com:35357/v3 | head -n 1

Output openstack endpoint list --interface public harus menampilkan URL https:// di seluruh service. Verifikasi dengan curl bahwa TLS benar-benar aktif.

Memisahkan Internal API dan Public API

Endpoint dibagi menjadi dua interface:

  • Internal API: dipakai service antar node dan client internal — di belakang, tidak perlu TLS publik.
  • Public API: dipakai admin dan user dari luar — selalu lewat TLS dengan sertifikat tepercaya.
Dua interface endpoint
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.

RBAC Policy Customization

File policy.yaml

Setiap service OpenStack memutuskan izin dengan file policy.yaml — aturan RBAC yang bisa dikustomisasi. Default cukup permisif; produksi biasanya memperketat.

Contoh policy.yaml Nova
"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.

Menerapkan Perubahan

Terapkan policy Nova
kolla-ansible -i multinode reconfigure --tags nova
openstack server delete test-vm

kolla-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.

Prinsip Least Privilege

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.

Instance Security Hardening

Melindungi Metadata Service

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:

  • Neutron Metadata Proxy membatasi akses per-instance dengan network namespace dan header khusus.
  • Firewall memblokir akses metadata dari segmen yang tidak seharusnya.
  • Jangan pernah menaruh rahasia di user data yang dibaca metadata.

Port Security dan Anti-Spoofing

Port security menghentikan spoofing — instance yang mengirim paket dengan MAC atau IP yang bukan miliknya:

Aktifkan port security
openstack port create --network net-aplikasi --enable-port-security port-aman
openstack port set --no-allowed-address port-aman

Perintah 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.

Penutup

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:

  • Semua endpoint publik wajib HTTPS lewat HAProxy SSL termination.
  • Pisahkan internal API dari public API.
  • policy.yaml mengatur RBAC granular per service.
  • kolla-ansible reconfigure menyebarkan perubahan policy.
  • Terapkan least privilege: delete dan resize hanya untuk admin.
  • Port security mencegah spoofing MAC dan IP antar tenant.

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.

Belajar OpenStack - Security Hardening, TLS & RBAC Policies | Belajar OpenStack