Resolusi IP klien

Halaman ini berlaku untuk Apigee dan Apigee hybrid.

Baca 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 merupakan tantangan dalam arsitektur jaringan modern yang menggunakan proxy dan load balancer, karena perantara ini dapat mengaburkan alamat IP asal yang sebenarnya.

Untuk mengatasi tantangan ini, Apigee mendukung setelan tingkat lingkungan yang menentukan cara me-resolve alamat IP klien dari header X-Forwarded-For (XFF), yang mengidentifikasi indeks di header yang cocok dengan alamat IP untuk topologi jaringan dan persyaratan keamanan Anda. Penggunaan 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 Advanced API Security, 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 telah dikonfigurasi untuk suatu lingkungan, variabel alur 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 diperlukan untuk 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 yang ditentukan untuk Analytics, Advanced API Security, atau menjalankan 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 ini:

"clientIpResolutionConfig": {
  "headerIndexAlgorithm": {
     "ipHeaderName" : "X-Forwarded-For",
     "ipHeaderIndex": 2
  }
}
dengan
  • ipHeaderName adalah header yang akan 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 sebelah 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 di-resolve menjadi 192.0.2.2.

    Angka negatif memilih alamat yang dimulai dari sebelah kanan (alamat terakhir yang ditambahkan ke header) dengan posisi pertama di sebelah 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 di-resolve ke 192.0.2.4 dan indeks -2 akan di-resolve ke 192.0.2.3.

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

Melihat konfigurasi resolusi IP klien

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

Melihat konfigurasi resolusi IP klien menggunakan UI

Untuk menggunakan UI Apigee di Cloud console guna melihat setelan resolusi IP klien, pilih Management > Environments, pilih lingkungan, dan lihat Client IP configuration di tab About.

Resolusi IP klien di UI Apigee

Melihat konfigurasi resolusi IP klien menggunakan API

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

Menetapkan resolusi IP klien untuk lingkungan

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

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

Perhatikan implikasi berikut saat memilih indeks untuk resolusi IP Klien:

  • Panggilan Apigee ke Apigee tidak ditangani sebagai kasus khusus. Perhatikan dengan cermat dan lewati jumlah IP yang sesuai.
  • Karena header X-Forwarded-For dapat di-spoof, 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 otomatis. Meskipun IP pertama di XFF paling dekat dengan IP klien yang sebenarnya, IP terakhir di XFF paling tepercaya, mengingat load balancer mengetahui klien TCP yang terhubung ke IP tersebut.

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

Menguji resolusi alamat IP klien

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

  1. Tunggu minimal 5 menit setelah menyimpan setelan konfigurasi baru.
  2. Mulai sesi debug. Aktifkan setelan ke Tampilkan semua FlowInfo.
  3. Periksa FlowInfo tepat sebelum Proxy Request Flow Started. Anda akan melihat alamat IP klien yang dikonfigurasi yang diambil 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 resolusi IP klien tingkat lingkungan:

  • Pembaruan pada konfigurasi resolusi IP klien dapat memerlukan waktu hingga 5 menit untuk diterapkan.
  • Hindari perubahan yang sering (misalnya, setiap 5 menit) pada konfigurasi resolusi IP klien, karena hal ini dapat menyebabkan menurunnya performa.
  • Menetapkan konfigurasi resolusi IP klien untuk lingkungan saat ini tidak tersedia dengan Apigee hybrid.
  • Konfigurasi dapat dilihat melalui Apigee Console atau API, 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 resolusi IP klien tidak menjamin identifikasi alamat IP permintaan yang benar.