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 } }
ipHeaderName
adalah header yang digunakan untuk IP klien. Saat ini,X-Forwarded-For
adalah nilai header yang didukung.ipHeaderIndex
adalah nilai indeks dalamipHeaderName
.
Angka positif memilih alamat yang dimulai dari kiri (alamat pertama yang ditambahkan ke header), dengan posisi pertama di kiri adalah0
dan bertambah satu untuk setiap alamat berikutnya (misalnya0, 1, 2
). Misalnya, jika daftarnya adalah192.0.2.1, 192.0.2.2, 192.0.2.3
, indeks1
akan diselesaikan menjadi192.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 adalah192.0.2.1, 192.0.2.2, 192.0.2.3, 192.0.2.4
, indeks-1
akan diselesaikan menjadi192.0.2.4
dan indeks-2
akan diselesaikan menjadi192.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:
Di konsol Google Cloud , buka halaman Management > Environments.
-
Pilih lingkungan, dan lihat Konfigurasi IP klien di tab Tentang.
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:
- Tunggu setidaknya 5 menit setelah menyimpan setelan konfigurasi baru.
- Mulai sesi debug. Aktifkan setelan untuk Tampilkan semua FlowInfo.
- 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 adalahfalse
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 menampilkandefault
.
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.