Menggunakan alamat IP yang diteruskan di AWS WAF - AWS WAF, AWS Firewall Manager, dan AWS Shield Advanced

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan alamat IP yang diteruskan di AWS WAF

Bagian ini berlaku untuk pernyataan aturan yang menggunakan alamat IP permintaan web. Secara default, AWS WAF menggunakan alamat IP dari asal permintaan web. Namun, jika permintaan web melewati satu atau lebih proxy atau penyeimbang beban, asal permintaan web akan berisi alamat proxy terakhir, dan bukan alamat asal klien. Dalam hal ini, alamat klien yang berasal biasanya diteruskan di header lain. HTTP Header ini biasanya X-Forwarded-For (XFF), tetapi bisa berbeda.

Pernyataan aturan yang menggunakan alamat IP

Pernyataan aturan yang menggunakan alamat IP adalah sebagai berikut:

  • Pertandingan set IP- Memeriksa alamat IP untuk kecocokan dengan alamat yang ditentukan dalam set IP.

  • Pertandingan geografis- Menggunakan alamat IP untuk menentukan negara dan wilayah asal dan mencocokkan negara asal dengan daftar negara.

  • Menggunakan pernyataan aturan berbasis tarif- Dapat mengumpulkan permintaan dengan alamat IP mereka untuk memastikan bahwa tidak ada alamat IP individu yang mengirim permintaan pada tingkat yang terlalu tinggi. Anda dapat menggunakan agregasi alamat IP dengan sendirinya atau dalam kombinasi dengan kunci agregasi lainnya.

Anda dapat menginstruksikan AWS WAF untuk menggunakan alamat IP yang diteruskan untuk salah satu pernyataan aturan ini, baik dari X-Forwarded-For header atau dari HTTP header lain, alih-alih menggunakan asal permintaan web. Untuk detail tentang cara memberikan spesifikasi, lihat panduan untuk setiap jenis pernyataan aturan.

catatan

Jika header yang Anda tentukan tidak ada dalam permintaan, AWS WAF tidak menerapkan aturan untuk permintaan web sama sekali.

Perilaku mundur

Saat Anda menggunakan alamat IP yang diteruskan, Anda menunjukkan status kecocokan untuk AWS WAF untuk menetapkan permintaan web jika permintaan tidak memiliki alamat IP yang valid di posisi yang ditentukan:

  • MATCH- Perlakukan permintaan web sebagai pencocokan pernyataan aturan. AWS WAF menerapkan tindakan aturan untuk permintaan.

  • TIDAK MATCH - Perlakukan permintaan web sebagai tidak cocok dengan pernyataan aturan.

Alamat IP yang digunakan di AWS WAF Kontrol Bot

Grup aturan terkelola Bot Control memverifikasi bot menggunakan alamat IP dari AWS WAF. Jika Anda menggunakan Kontrol Bot dan Anda telah memverifikasi bot yang merutekan melalui proxy atau penyeimbang beban, Anda harus secara eksplisit mengizinkannya menggunakan aturan khusus. Misalnya, Anda dapat mengonfigurasi aturan pencocokan set IP kustom yang menggunakan alamat IP yang diteruskan untuk mendeteksi dan mengizinkan bot terverifikasi Anda. Anda dapat menggunakan aturan untuk menyesuaikan manajemen bot Anda dalam beberapa cara. Untuk informasi dan contoh, lihat Melindungi aplikasi Anda dari bot dengan AWS WAF Kontrol Bot.

Pertimbangan umum untuk menggunakan alamat IP yang diteruskan

Sebelum Anda menggunakan alamat IP yang diteruskan, perhatikan peringatan umum berikut:

  • Header dapat dimodifikasi oleh proxy di sepanjang jalan, dan proxy mungkin menangani header dengan cara yang berbeda.

  • Penyerang mungkin mengubah isi header dalam upaya untuk mem-bypass AWS WAF inspeksi.

  • Alamat IP di dalam header bisa cacat atau tidak valid.

  • Header yang Anda tentukan mungkin tidak ada sama sekali dalam permintaan.

Pertimbangan untuk menggunakan alamat IP yang diteruskan dengan AWS WAF

Daftar berikut menjelaskan persyaratan dan peringatan untuk menggunakan alamat IP yang diteruskan di AWS WAF:

  • Untuk aturan tunggal apa pun, Anda dapat menentukan satu header untuk alamat IP yang diteruskan. Spesifikasi header tidak peka huruf besar/kecil.

  • Untuk pernyataan aturan berbasis kecepatan, setiap pernyataan pelingkupan bersarang tidak mewarisi konfigurasi IP yang diteruskan. Tentukan konfigurasi untuk setiap pernyataan yang menggunakan alamat IP yang diteruskan.

  • Untuk aturan geo match dan berbasis tarif, AWS WAF menggunakan alamat pertama di header. Misalnya, jika header berisi 10.1.1.1, 127.0.0.0, 10.10.10.10 AWS WAF menggunakan 10.1.1.1

  • Untuk kecocokan set IP, Anda menunjukkan apakah akan cocok dengan alamat pertama, terakhir, atau alamat apa pun di header. Jika Anda menentukan, AWS WAF memeriksa semua alamat di header untuk kecocokan, hingga 10 alamat. Jika header berisi lebih dari 10 alamat, AWS WAF memeriksa 10 terakhir.

  • Header yang berisi beberapa alamat harus menggunakan pemisah koma di antara alamat. Jika permintaan menggunakan pemisah selain koma, AWS WAF menganggap alamat IP di header salah bentuk.

  • Jika alamat IP di dalam header cacat atau tidak valid, AWS WAF menetapkan permintaan web sebagai pencocokan aturan atau tidak cocok, sesuai dengan perilaku fallback yang Anda tentukan dalam konfigurasi IP yang diteruskan.

  • Jika header yang Anda tentukan tidak ada dalam permintaan, AWS WAF tidak menerapkan aturan untuk permintaan sama sekali. Ini berarti bahwa AWS WAF tidak menerapkan tindakan aturan dan tidak menerapkan perilaku fallback.

  • Pernyataan aturan yang menggunakan header IP yang diteruskan untuk alamat IP tidak akan menggunakan alamat IP yang dilaporkan oleh asal permintaan web.

Praktik terbaik untuk menggunakan alamat IP yang diteruskan dengan AWS WAF

Saat Anda menggunakan alamat IP yang diteruskan, gunakan praktik terbaik berikut:

  • Pertimbangkan dengan cermat semua kemungkinan status header permintaan Anda sebelum mengaktifkan konfigurasi IP yang diteruskan. Anda mungkin perlu menggunakan lebih dari satu aturan untuk mendapatkan perilaku yang Anda inginkan.

  • Untuk memeriksa beberapa header IP yang diteruskan atau untuk memeriksa asal permintaan web dan header IP yang diteruskan, gunakan satu aturan untuk setiap sumber alamat IP.

  • Untuk memblokir permintaan web yang memiliki header tidak valid, setel tindakan aturan untuk memblokir dan mengatur perilaku fallback untuk konfigurasi IP yang diteruskan agar cocok.

Contoh JSON untuk alamat IP yang diteruskan

Pernyataan geo match berikut hanya cocok jika X-Forwarded-For header berisi IP yang negara asalnya adalahUS:

{ "Name": "XFFTestGeo", "Priority": 0, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "XFFTestGeo" }, "Statement": { "GeoMatchStatement": { "CountryCodes": [ "US" ], "ForwardedIPConfig": { "HeaderName": "x-forwarded-for", "FallbackBehavior": "MATCH" } } } }

Aturan berbasis laju berikut mengumpulkan permintaan berdasarkan IP pertama di header. X-Forwarded-For Aturan hanya menghitung permintaan yang cocok dengan pernyataan kecocokan geografis bersarang, dan hanya memblokir permintaan yang cocok dengan pernyataan kecocokan geografis. Pernyataan geo match bersarang juga menggunakan X-Forwarded-For header untuk menentukan apakah alamat IP menunjukkan negara asal. US Jika ya, atau jika header ada tetapi salah bentuk, pernyataan geo match mengembalikan kecocokan.

{ "Name": "XFFTestRateGeo", "Priority": 0, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "XFFTestRateGeo" }, "Statement": { "RateBasedStatement": { "Limit": "100", "AggregateKeyType": "FORWARDED_IP", "ScopeDownStatement": { "GeoMatchStatement": { "CountryCodes": [ "US" ], "ForwardedIPConfig": { "HeaderName": "x-forwarded-for", "FallbackBehavior": "MATCH" } } }, "ForwardedIPConfig": { "HeaderName": "x-forwarded-for", "FallbackBehavior": "MATCH" } } } }