全部产品
Search
文档中心

API Gateway:Plug-in kontrol akses berbasis alamat IP

更新时间:Nov 10, 2025

Plugin kontrol akses berbasis alamat IP merupakan salah satu komponen perlindungan keamanan API yang disediakan oleh API Gateway. Plugin ini mengontrol alamat IP sumber (mendukung blok CIDR) dari panggilan API. Anda dapat menambahkan alamat IP ke daftar putih atau daftar hitam suatu API untuk mengizinkan atau menolak permintaan API dari alamat IP tersebut.

1. Ikhtisar

Plugin ini mendukung metode daftar putih maupun daftar hitam.

  • Daftar putih: Anda dapat mengonfigurasi daftar putih yang berisi alamat IP atau kombinasi ID aplikasi dan alamat IP. Permintaan yang tidak tercantum dalam daftar putih akan ditolak.

    • Anda dapat mengonfigurasi daftar putih yang hanya berisi alamat IP yang diizinkan. Dalam hal ini, hanya permintaan API dari alamat IP dalam daftar putih yang diizinkan.

    • Anda dapat mengonfigurasi daftar putih yang menentukan kombinasi aplikasi dan alamat IP mereka. Dalam hal ini, aplikasi yang ditentukan hanya dapat mengirim permintaan dari alamat IP yang ditentukan. Aplikasi lain dapat mengirim permintaan tanpa memandang alamat IP mereka.

  • Daftar hitam: Anda dapat mengonfigurasi daftar hitam berisi alamat IP tertentu. API Gateway akan menolak semua permintaan API yang berasal dari alamat IP dalam daftar hitam tersebut.

Penting

Plugin kontrol akses berbasis alamat IP mendukung alamat IPv4 maupun IPv6.

2. Konfigurasi

Anda dapat mengonfigurasi plugin kontrol akses berbasis alamat IP dalam format JSON atau YAML. Kedua format memiliki skema yang sama dan dapat saling dikonversi menggunakan alat konversi yaml to json. Kode berikut menunjukkan templat konfigurasi plugin dalam format YAML.

---
type: ALLOW           # Mode kontrol. Anda dapat menetapkan parameter ini ke ALLOW untuk menerapkan daftar putih atau REFUSE untuk menerapkan daftar hitam.
resource: "XFF:-1"   # Opsional. Jika parameter ini ditentukan, alamat IP dalam header X-Forwarded-For digunakan sebagai alamat IP sumber. Dalam contoh ini, alamat IP terakhir dalam header X-Forwarded-For digunakan sebagai alamat IP sumber. 
items: 
- blocks:         # Blok CIDR dari mana permintaan API dikirim.
  - 61.3.XX.XX/24   # Tentukan blok CIDR.
  appId: 219810   # Opsional. Jika Anda menentukan parameter ini, kebijakan kontrol akses berbasis IP hanya berlaku untuk aplikasi yang ditentukan oleh parameter ini.
- blocks:         # Alamat IP dari mana permintaan API dikirim.
  - 79.11.XX.XX    # Tentukan alamat IP.
- blocks:         # Blok CIDR dari virtual private cloud (VPC) dari mana permintaan API dikirim.
  - 192.168.XX.XX/32    # Tentukan blok CIDR VPC. Pengaturan ini hanya berlaku untuk instance khusus. Saat permintaan API dikirim dari VPC ke instance khusus, alamat IP sumber permintaan API menampilkan blok CIDR yang ditentukan.

Perhatikan baik-baik catatan terakhir. Jika instance khusus digunakan, API Gateway mengizinkan permintaan API dari VPC dan dapat langsung membaca alamat IP dalam VPC sumber, seperti 192.168.XX.XX. Anda dapat langsung menambahkan alamat IP dalam VPC ke daftar hitam atau daftar putih.

3. Saat WAF digunakan

Jika layanan middleware seperti Web Application Firewall (WAF) diintegrasikan dengan API Gateway, bidang resource wajib diisi saat Anda ingin mengonfigurasi daftar hitam atau daftar putih alamat IP tingkat API. Jika bidang resource tidak ditentukan, API Gateway akan menggunakan alamat IP hop sebelumnya yang terhubung langsung ke API Gateway sebagai alamat IP sumber. Namun, jika bidang tersebut ditentukan, nilai dalam header X-Forwarded-For akan digunakan sebagai alamat IP sumber.

Catatan

WAF menambahkan alamat IP sumber dari permintaan yang diterima ke akhir header X-Forwarded-For dan meneruskannya ke API Gateway. API Gateway kemudian menganggap nilai dalam header X-Forwarded-For sebagai alamat IP sumber. Dalam kasus ini, kami merekomendasikan penggunaan "XFF:-1" agar API Gateway menggunakan alamat IP yang ditambahkan oleh WAF sebagai alamat IP sumber.

Nilai bidang resource menggunakan format "XFF:index". Nilai index adalah nomor urut alamat IP dalam header X-Forwarded-For, dimulai dari 0 dan mendukung angka negatif. Misalnya, jika header X-Forwarded-For berisi tiga alamat IP—IP1, IP2, dan IP3—secara berurutan, maka XFF:0 merujuk pada IP1, sedangkan XFF:-1 merujuk pada IP3 (alamat IP terakhir).

4. Akses lintas-VPC

Jika permintaan API dikirim dari VPC ke instance khusus di VPC lain, API Gateway dapat langsung membaca alamat IP dalam VPC sumber dari permintaan. Anda dapat yakin saat menyiapkan plug-in untuk alamat IP dalam VPC. API Gateway juga dapat membaca ID VPC sumber. Anda dapat mengonfigurasi plug-in kontrol akses berbasis parameter untuk hanya mengizinkan VPC tertentu mengakses API Anda.

5. Akses lintas-VPC saat WAF digunakan

Dalam skenario tertentu, API Anda mungkin perlu melayani jaringan publik dan internal secara bersamaan. Saat menyediakan layanan di jaringan publik, middleware WAF ditempatkan di depan API Gateway. Oleh karena itu, API Gateway perlu melakukan kontrol akses IP terhadap klien sebelum WAF, sekaligus mengontrol sumber jaringan internal. API Gateway telah diadaptasi untuk skenario ini. Anda dapat menggunakan bidang resource dan allowResourceMissing secara bersamaan untuk mengontrol alamat IP sumber dari jaringan internal dan publik ketika menggunakan middleware seperti WAF. Bidang resource digunakan untuk menentukan bahwa API Gateway memperoleh alamat IP klien dari header X-Forwarded-For yang melewati middleware WAF. Sementara itu, bidang allowResourceMissing digunakan untuk mengonfigurasi cara API Gateway menangani akses internal ketika klien tidak mengirimkan header X-Forwarded-For, dengan menggunakan alamat IP dari hop sebelumnya sebagai dasar penilaian. Contoh:

---
type: ALLOW           # Mode kontrol. Anda dapat menetapkan parameter ini ke ALLOW untuk menerapkan daftar putih atau REFUSE untuk menerapkan daftar hitam.
resource: "XFF:-1"   # Opsional. Jika bidang ini disetel, alamat IP dalam header X-Forwarded-For digunakan sebagai alamat IP sumber. Dalam contoh ini, alamat IP terakhir dalam header X-Forwarded-For digunakan sebagai alamat IP sumber.
allowResourceMissing: "true"  # Menggunakan alamat IP tepat sebelum API Gateway sebagai alamat IP sumber saat bidang resource dibiarkan kosong.
items: 
- blocks:         # Blok CIDR dari mana permintaan API diizinkan.
  - 61.3.XX.XX/24   # Tentukan blok CIDR.
  appId: 219810   # Opsional. Jika Anda menentukan parameter ini, kebijakan kontrol akses berbasis IP ini hanya berlaku untuk aplikasi yang ditentukan oleh parameter ini.
- blocks:         # Alamat IP dari mana permintaan API diizinkan.
  - 79.11.XX.XX    # Tentukan alamat IP.
- blocks:         # Blok CIDR dari VPC dari mana permintaan API diizinkan.
  - 192.168.XX.XX/32    # Tentukan blok CIDR VPC. Item ini hanya berlaku untuk instance khusus. Saat permintaan API dikirim dari VPC ke instance khusus, alamat IP sumber permintaan API berada dalam blok CIDR yang ditentukan.

6. Gunakan dataset plug-in dalam plug-in

Untuk informasi lebih lanjut tentang cara mengonfigurasi plug-in kontrol akses berbasis alamat IP, lihat Plug-in Kontrol Akses Berbasis Alamat IP.

6.1 Buat dataset plug-in

  1. Masuk ke Konsol API Gateway, pilih wilayah, lalu di panel navigasi sebelah kiri, pilih API Management > Plug-ins.

  2. Pada halaman Plug-in List, klik tab Plug-in Datasets. Di pojok kanan atas halaman, klik Create Dataset. Di kotak dialog Buat Set Data, masukkan Name untuk set data tersebut dan pilih IP_WHITELIST_CIDR untuk parameter Type.

    image

  3. Klik ID set data yang dituju. Di halaman set data, klik Create Dataset Entry. Di kotak dialog Buat Entri Set Data, tentukan Data Value (alamat IP atau blok CIDR) dan Validity Period (entri data dalam set data akan kedaluwarsa secara otomatis setelah periode validitasnya berakhir).

    image

Penting

Dataset plug-in hanya berlaku pada instance khusus. Jika API yang terikat pada plug-in tidak diterapkan pada instance khusus, dataset yang dikonfigurasi untuk plug-in tidak akan berlaku.

6.2 Konfigurasikan dataset untuk plug-in kontrol akses berbasis alamat IP

Untuk mengonfigurasi set data untuk plugin kontrol akses berbasis alamat IP, Anda harus menambahkan bidang blocksDatasetId ke elemen koleksi items berdasarkan konfigurasi yang sudah ada. Nilai bidang ini adalah ID set data bertipe IP_ACCESS_CIDR yang dibuat sebelumnya. Bidang blocksDatasetId dan blocks saling kompatibel. Setiap item dapat dikonfigurasi dengan kedua bidang tersebut, atau hanya salah satunya.

---
type: ALLOW 
items: 
- blocksDatasetId: 87b65008e92541938537b1a4a236eda5
  appId: 219810
- blocksDatasetId: 87b65008e92541938537b1a4a236eda3
  blocks:
  - 127.0.XX.XX
  - 192.168.XX.XX/24