Resolusi IP klien

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Lihat dokumentasi Apigee Edge.

Mengidentifikasi alamat IP klien secara akurat pada permintaan API penting untuk beberapa fungsi dalam Apigee, termasuk fitur Analytics dan Advanced API Security seperti deteksi penyalahgunaan dan tindakan keamanan.

Proses identifikasi IP klien menjadi sulit dalam arsitektur jaringan modern yang menggunakan proxy dan load balancer, karena perantara ini dapat menyamarkan alamat IP asal yang sebenarnya.

Untuk mengatasi tantangan ini, Apigee mendukung setelan tingkat lingkungan yang menentukan cara menyelesaikan alamat IP klien dari header X-Forwarded-For (XFF), mengidentifikasi indeks dalam header yang cocok dengan alamat IP untuk topologi jaringan dan persyaratan keamanan Anda. Menggunakan setelan ini memberikan visibilitas, konsistensi, dan kontrol atas cara alamat IP klien ditentukan untuk semua permintaan di lingkungan dan menghasilkan identifikasi alamat IP klien yang konsisten di seluruh Keamanan API Lanjutan, variabel alur, dan variabel analisis di lingkungan.

Jika resolusi IP klien tingkat lingkungan tidak dikonfigurasi seperti yang dijelaskan di halaman ini, variabel alamat IP klien akan diisi menggunakan perilaku resolusi alamat IP klien default.

Resolusi alamat IP klien default

Jika resolusi IP klien tidak dikonfigurasi di tingkat lingkungan, nilai default dimensi ax_resolved_client_ip dihitung seperti yang dijelaskan dalam Dimensi Analytics.

Jika resolusi IP klien dikonfigurasi untuk lingkungan, variabel aliran dan Analytics ditetapkan dari konfigurasi resolusi IP klien. Lihat Menetapkan resolusi IP klien untuk lingkungan.

Kapan harus menetapkan resolusi IP klien untuk lingkungan

Meskipun tidak wajib menetapkan resolusi IP klien, Anda mungkin ingin melakukannya jika resolusi alamat IP klien default tidak memenuhi kebutuhan Anda dan Anda ingin menggantinya untuk memberikan resolusi alamat IP klien tertentu untuk Analytics, Keamanan API Lanjutan, atau melakukan fungsi lain yang memerlukan informasi yang konsisten dan andal tentang alamat IP klien.

Memahami sintaksis konfigurasi resolusi IP klien

Setelan resolusi IP klien memiliki format berikut:

"clientIpResolutionConfig": {
  "headerIndexAlgorithm": {
     "ipHeaderName" : "X-Forwarded-For",
     "ipHeaderIndex": 2
  }
}
dengan
  • ipHeaderName adalah header yang digunakan untuk IP klien. Saat ini, X-Forwarded-For adalah nilai header yang didukung.
  • ipHeaderIndex adalah nilai indeks dalam ipHeaderName.

    Angka positif memilih alamat yang dimulai dari kiri (alamat pertama yang ditambahkan ke header), dengan posisi pertama di kiri adalah 0 dan bertambah satu untuk setiap alamat berikutnya (misalnya 0, 1, 2). Misalnya, jika daftarnya adalah 192.0.2.1, 192.0.2.2, 192.0.2.3, indeks 1 akan diselesaikan menjadi 192.0.2.2.

    Angka negatif memilih alamat yang dimulai dari kanan (alamat terakhir yang ditambahkan ke header) dengan posisi pertama di kanan adalah -1 dan berkurang satu untuk setiap alamat berikutnya (misalnya -3, -2, -1). Misalnya, jika daftarnya adalah 192.0.2.1, 192.0.2.2, 192.0.2.3, 192.0.2.4, indeks -1 akan diselesaikan menjadi 192.0.2.4 dan indeks -2 akan diselesaikan menjadi 192.0.2.3.

Lihat API organizations.environment untuk mengetahui informasi tambahan tentang setelan ini.

Melihat konfigurasi resolusi IP klien

Anda dapat melihat konfigurasi penyelesaian IP klien saat ini untuk lingkungan menggunakan Apigee UI atau Management API.

Melihat konfigurasi penyelesaian IP klien menggunakan UI

Untuk melihat konfigurasi penyelesaian IP klien:

  1. Di konsol Google Cloud , buka halaman Management > Environments.

    Buka Lingkungan

  2. Pilih lingkungan, dan lihat Konfigurasi IP klien di tab Tentang.

    Resolusi IP klien di UI Apigee

Melihat konfigurasi penyelesaian IP klien menggunakan API

Untuk menggunakan Apigee Management API guna melihat konfigurasi penyelesaian IP klien, kirim permintaan ke API organizations.environments.get.

Menetapkan resolusi IP klien untuk lingkungan

Setelah menetapkan konfigurasi resolusi IP klien untuk lingkungan, variabel alur client.resolved.ip akan diisi menggunakan algoritma yang ditentukan. Begitu juga dengan Resolved Client IP dimensi Analytics.

Setelah Anda menetapkan konfigurasi resolusi IP klien untuk lingkungan, perubahan dapat memengaruhi konfigurasi Keamanan API Lanjutan yang ada untuk aturan tindakan keamanan. Tinjau dan, jika perlu, buat ulang aturan yang ada untuk menggunakan variabel dan setelan baru.

Perhatikan implikasi ini saat memilih indeks untuk resolusi IP Klien:

  • Panggilan Apigee ke Apigee tidak ditangani sebagai kasus khusus. Berhati-hatilah untuk mencatat dan melewati jumlah IP yang sesuai.
  • Karena header X-Forwarded-For dapat dipalsukan, sebaiknya gunakan indeks yang tepat berdasarkan jumlah hop yang diharapkan antara klien dan load balancer Apigee. Pengguna berbahaya dapat mengirim header X-Forwarded-For yang telah diisi sebelumnya. Meskipun IP pertama di XFF paling dekat dengan IP klien sebenarnya, IP terakhir di XFF paling dapat dipercaya, mengingat load balancer mengetahui klien TCP yang terhubung dengannya.

Untuk menyetel resolusi IP klien di lingkungan, gunakan salah satu Apigee API Management API untuk menyetel resolusi IP klien untuk lingkungan di client_ip_resolution_config. Gunakan organizations.environments.create untuk lingkungan baru. Gunakan updateEnvironment atau modifyEnvironment untuk lingkungan yang sudah ada.

Menguji resolusi alamat IP klien

Setelah menyimpan konfigurasi IP klien baru, Anda dapat mengujinya dengan mengikuti petunjuk berikut:

  1. Tunggu setidaknya 5 menit setelah menyimpan setelan konfigurasi baru.
  2. Mulai sesi debug. Aktifkan setelan untuk Tampilkan semua FlowInfo.
  3. Periksa FlowInfo tepat sebelum Proxy Request Flow Started. Anda akan melihat alamat IP klien yang dikonfigurasi yang tercatat di bagian tersebut.

Cari variabel ini di FlowInfo:

  • client_ip_resolution.resolved.ip: Alamat IP klien yang di-resolve.
  • client_ip_resolution.used.fallback: Boolean. Nilai ini adalah false kecuali jika Apigee kembali ke resolusi IP klien default karena tidak dapat menggunakan resolusi IP klien yang dikonfigurasi. Misalnya, jika resolusi yang dikonfigurasi menentukan indeks yang tidak ada di header.
  • client_ip_resolution.algorithm: Algoritma yang digunakan untuk menentukan alamat IP klien. Jika dikonfigurasi, nilai ini adalah "HeaderIndexAlgorithm{IpHeaderName:header_name, IpHeaderIndex: $header_index}". Jika tidak, nilai ini akan menampilkan default.

Batasan

Batasan ini berlaku untuk penyelesaian IP klien tingkat lingkungan:

  • Pembaruan pada konfigurasi resolusi IP klien dapat memerlukan waktu hingga 5 menit agar diterapkan.
  • Hindari perubahan yang sering (misalnya, setiap 5 menit) pada konfigurasi penyelesaian IP klien, karena hal ini dapat menyebabkan penurunan performa.
  • Menetapkan konfigurasi resolusi IP klien untuk lingkungan di Apigee hybrid tersedia dengan hybrid versi 1.14.0 dan yang lebih baru.
  • Konfigurasi dapat dilihat melalui Konsol atau API Apigee tetapi hanya dapat ditetapkan melalui API.
  • Meskipun tidak ada pengguna berbahaya, daftar X-Forwarded-For mengandalkan setiap proxy untuk menambahkan informasi yang tepat ke daftar. Daftar lengkap tersebut berada di luar pengawasan dan kontrol Apigee, sehingga menetapkan konfigurasi penyelesaian IP klien tidak menjamin identifikasi alamat IP permintaan yang benar.