STARA INSIGHTS · SEO

Cara Mengamankan Admin API Apache APISIX di Production

Amankan Admin API Apache APISIX dengan jaringan privat, allowlist IP, rotasi kunci, dan mTLS. Uji akses operator serta pipeline sebelum go-live.

Admin API Apache APISIX sebaiknya hanya dapat dijangkau dari jaringan pengelolaan yang disetujui. Pisahkan jalurnya dari endpoint pelanggan, batasi alamat sumber dengan allowlist, dan pertahankan autentikasi kunci. Untuk klien administratif yang melintasi jaringan, gunakan koneksi terenkripsi dan pertimbangkan mutual TLS (mTLS). Sebelum menutup akses lama, buktikan bahwa pipeline rilis dan operator masih bisa bekerja lewat jalur yang baru.

Mengapa Admin API perlu jalur sendiri?

Data plane menerima trafik aplikasi dan meneruskannya ke backend. Admin API mengelola konfigurasi gateway, antara lain route, upstream, service, consumer, dan plugin. Jika pihak yang tidak berwenang memperoleh akses tulis, ia dapat mengubah tujuan route atau kebijakan autentikasi. Dampaknya bisa terasa pada beberapa aplikasi yang memakai gateway yang sama. Dokumentasi APISIX menempatkan operator dan klien publik pada batas kepercayaan yang berbeda.

Mulai dari peta akses aktual. Catat listener, load balancer, firewall, jaringan container atau klaster, serta klien yang memang menulis konfigurasi. Periksa juga konektivitas dari jaringan internal umum. Endpoint yang tersembunyi dari internet masih bisa dijangkau dari subnet aplikasi jika aturan jaringan terlalu luas. Tetapkan pemilik untuk setiap jalur yang diizinkan.

Pilih cara isolasi sesuai mode deployment

Traditional dengan jalur admin privat

Pada deployment traditional berbasis etcd, control plane dan data plane berada pada instance yang sama. Gunakan listener admin dan aturan jaringan yang terpisah dari listener trafik aplikasi. Load balancer publik cukup meneruskan trafik ke listener aplikasi. Batasi akses ke listener admin dengan aturan jaringan dan deployment.admin.allow_admin. Bila seluruh pengelolaan berlangsung pada host yang sama, pertimbangkan binding ke loopback. Untuk runner jarak jauh, gunakan jalur privat yang bisa dijangkau runner.

Pendekatan ini mengurangi jumlah komponen yang dikelola. Biayanya terlihat saat meninjau eksposur: tim harus memastikan setiap instance gateway yang memproses trafik publik juga terlindungi di sisi administrasi.

Decoupled untuk memisahkan instance pengelolaan

Dalam mode decoupled berbasis etcd, instance data plane menangani permintaan aplikasi, sementara instance control plane menyediakan Admin API. Tempatkan control plane di jaringan privat dan batasi akses ke etcd dari komponen yang membutuhkannya. Pemisahan instance memudahkan penegakan batas jaringan, tetapi menambah komponen yang perlu dipantau, diperbarui, dan diuji pemulihannya. Untuk deployment standalone, periksa cara konfigurasi dimuat pada versi dan varian yang dipakai sebelum menerapkan rancangan ini.

Lindungi kunci dan pastikan otomasi tetap berjalan

Dokumentasi APISIX menjelaskan penggunaan header X-API-KEY dan pengaturan deployment.admin.admin_key. Ganti nilai contoh jika berasal dari konfigurasi pengembangan, simpan kunci di secret manager atau mekanisme secret yang dibatasi, dan pisahkan kredensial staging dari production. Hindari menaruh kunci di repositori, parameter URL, output pipeline, atau log proxy. Berikan akses tulis hanya pada operator dan otomasi yang memang membutuhkan perubahan konfigurasi.

Untuk rotasi, petakan pemakai kunci, termasuk pipeline, dashboard jika dipakai, dan prosedur pemulihan. Uji perpindahan klien di staging. Di production, verifikasi bahwa pipeline dapat membaca dan menerapkan perubahan yang disetujui dengan kunci baru sebelum menyelesaikan rotasi. Pastikan kunci lama kemudian ditolak. Urutan aktivasi dan mekanisme pemuatan konfigurasi perlu mengikuti versi serta metode instalasi yang digunakan.

APISIX juga mendokumentasikan mTLS untuk Admin API. Server memverifikasi sertifikat klien dari CA yang dipercaya. Mekanisme ini menambah lapisan autentikasi, tetapi tim perlu mengelola penerbitan, perpanjangan, dan distribusi sertifikat. Jika TLS berakhir di proxy, tentukan titik verifikasi identitas klien dan uji jalur dari proxy ke APISIX. Pertahankan kunci Admin API dalam rancangan ini sebagai lapisan terpisah.

Ilustrasi hipotetis: pipeline gagal setelah allowlist dipersempit

Sebuah tim menutup listener admin dari jaringan umum dan membatasi akses ke subnet runner CI. Pipeline staging berhasil, tetapi pipeline production gagal karena runner mengakses APISIX lewat gateway NAT. Alamat yang diterima listener admin berbeda dari alamat runner yang dicatat sebelumnya.

Tim menguji akses dari runner production memakai operasi baca yang disetujui, mencocokkan alamat sumber yang terlihat pada jalur jaringan, lalu memakai egress privat dengan alamat stabil. Setelah itu, tim menguji pipeline dengan kredensial sah, mengulangi permintaan dari jaringan yang seharusnya ditolak, dan memastikan endpoint aplikasi tetap berfungsi. Dengan pengujian ini, masalah jaringan, autentikasi, dan routing aplikasi bisa dipisahkan saat investigasi.

Checklist sebelum menyetujui desain

  • Dari jaringan publik dan subnet aplikasi umum, listener admin tidak dapat dijangkau sesuai kebijakan jaringan.
  • Dari jaringan pengelolaan, permintaan dengan kunci hilang atau salah ditolak. Jika mTLS digunakan, sertifikat klien yang tidak dipercaya juga ditolak.
  • Runner production memakai jalur jaringan dan kredensial yang disetujui. Uji baca dan uji tulis terbatas dilakukan di lingkungan yang sesuai.
  • Catatan perubahan menghubungkan identitas operator atau pipeline dengan waktu dan objek yang diubah, tanpa merekam kunci atau sertifikat privat.
  • Rotasi kunci, kedaluwarsa sertifikat, dan pemulihan akses punya pemilik dan prosedur yang pernah diuji.
  • Jika memakai etcd, akses jaringan dan kredensial etcd diperiksa sebagai bagian dari batas pengelolaan.

FAQ

Apakah mengganti port Admin API cukup?

Mengganti port hanya memindahkan listener. Kendali akses tetap bergantung pada pemisahan jaringan, pembatasan sumber, dan autentikasi. Uji keterjangkauan dari jaringan yang memang tidak boleh masuk.

Apakah mode decoupled wajib untuk semua lingkungan?

Keputusannya bergantung pada eksposur, skala, dan kemampuan operasional. Mode traditional bisa dipertimbangkan untuk lingkungan internal dengan segmentasi yang terbukti. Mode decoupled layak dipertimbangkan bila tim perlu menempatkan listener pengelolaan pada instance dan segmen jaringan tersendiri.

Apakah plugin autentikasi pada route aplikasi melindungi Admin API?

Plugin pada route aplikasi bekerja di jalur trafik aplikasi. Untuk listener admin, terapkan kontrol jaringan dan autentikasi yang sesuai untuk Admin API, lalu uji masing-masing jalur secara terpisah.

Referensi

Jika tim Anda sedang memisahkan jalur pengelolaan gateway dari trafik aplikasi, bawa peta jaringan, daftar klien admin, dan alur rilis saat berdiskusi dengan tim integrasi API dan sistem StaraSolution. Tiga bahan ini membantu menentukan batas akses dan skenario yang perlu diuji sebelum perubahan diterapkan.

← Kembali ke Stara Insights