Pernyataan aturan kecocokan geografis - 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.

Pernyataan aturan kecocokan geografis

Gunakan pernyataan kecocokan geografis atau geografis untuk mengelola permintaan web berdasarkan negara dan wilayah asal. Pernyataan geo match menambahkan label ke permintaan web yang menunjukkan negara asal dan wilayah asal. Ini menambahkan label ini terlepas dari apakah kriteria pernyataan cocok untuk permintaan. Pernyataan geo match juga melakukan pencocokan terhadap negara asal permintaan.

Cara menggunakan pernyataan geo match

Anda dapat menggunakan pernyataan geo match untuk pencocokan negara atau wilayah, sebagai berikut:

  • Negara — Anda dapat menggunakan aturan geo match dengan sendirinya untuk mengelola permintaan hanya berdasarkan negara asal mereka. Pernyataan aturan cocok dengan kode negara. Anda juga dapat mengikuti aturan geo match dengan aturan pencocokan label yang cocok dengan label negara asal.

  • Wilayah — Gunakan aturan pencocokan geografis diikuti dengan aturan pencocokan label untuk mengelola permintaan berdasarkan wilayah asalnya. Anda tidak dapat menggunakan aturan geo match saja untuk mencocokkan dengan kode wilayah.

Untuk informasi tentang penggunaan aturan pencocokan label, lihat Pernyataan aturan pencocokan label danAWS WAF label pada permintaan web.

Cara kerja pernyataan geo match

Dengan pernyataan geo match, AWS WAF mengelola setiap permintaan web sebagai berikut:

  1. Menentukan kode negara dan wilayah permintaan — AWS WAF menentukan negara dan wilayah permintaan berdasarkan alamat IP-nya. Secara default, AWS WAF menggunakan alamat IP asal permintaan web. Anda dapat menginstruksikan AWS WAF untuk menggunakan alamat IP dari header permintaan alternatif, sepertiX-Forwarded-For, dengan mengaktifkan konfigurasi IP yang diteruskan dalam pengaturan pernyataan aturan.

    AWS WAF menentukan lokasi permintaan menggunakan database MaxMind GeoIP. MaxMind melaporkan akurasi data mereka yang sangat tinggi di tingkat negara, meskipun akurasi bervariasi sesuai dengan faktor-faktor seperti negara dan jenis IP. Untuk informasi selengkapnya MaxMind, lihat Geolokasi MaxMind IP. Jika menurut Anda salah satu data GeoIP salah, Anda dapat mengirimkan permintaan koreksi ke Maxmind di Data GeoIP2 MaxMind yang Benar.

    AWS WAF menggunakan kode negara dan wilayah alfa-2 dari standar Organisasi Internasional untuk Standardisasi (ISO) 3166. Anda dapat menemukan kode di lokasi berikut:

  2. Menentukan label negara dan label wilayah untuk ditambahkan ke permintaan — Label menunjukkan apakah pernyataan geo match menggunakan IP asal atau konfigurasi IP yang diteruskan.

    • IP Asal

      Label negara adalahawswaf:clientip:geo:country:<ISO country code>. Contoh untuk Amerika Serikat:awswaf:clientip:geo:country:US.

      Label wilayah adalahawswaf:clientip:geo:region:<ISO country code>-<ISO region code>. Contoh untuk Oregon di Amerika Serikat:awswaf:clientip:geo:region:US-OR.

    • IP yang diteruskan

      Label negara adalahawswaf:forwardedip:geo:country:<ISO country code>. Contoh untuk Amerika Serikat:awswaf:forwardedip:geo:country:US.

      Label wilayah adalahawswaf:forwardedip:geo:region:<ISO country code>-<ISO region code>. Contoh untuk Oregon di Amerika Serikat:awswaf:forwardedip:geo:region:US-OR.

    Jika kode negara atau wilayah tidak tersedia untuk alamat IP yang ditentukan permintaan, AWS WAF gunakan XX label, sebagai pengganti nilai. Misalnya, label berikut adalah untuk IP klien yang kode negaranya tidak tersedia: awswaf:clientip:geo:country:XX dan berikut ini untuk IP yang diteruskan yang negaranya adalah Amerika Serikat, tetapi kode wilayahnya tidak tersedia: awswaf:forwardedip:geo:region:US-XX

  3. Mengevaluasi kode negara permintaan terhadap kriteria aturan

Pernyataan geo match menambahkan label negara dan wilayah ke semua permintaan yang diperiksa, terlepas dari apakah ia menemukan kecocokan.

catatan

AWS WAF menambahkan label apa pun di akhir evaluasi permintaan web aturan. Karena itu, setiap pencocokan label yang Anda gunakan terhadap label dari pernyataan geo match harus didefinisikan dalam aturan terpisah dari aturan yang berisi pernyataan geo match.

Jika Anda hanya ingin memeriksa nilai wilayah, Anda dapat menulis aturan kecocokan geografis dengan Count tindakan dan dengan kecocokan kode negara tunggal, diikuti dengan aturan pencocokan label untuk label wilayah. Anda diminta untuk memberikan kode negara untuk aturan geo match untuk dievaluasi, bahkan untuk pendekatan ini. Anda dapat mengurangi metrik pencatatan dan penghitungan dengan menentukan negara yang sangat tidak mungkin menjadi sumber lalu lintas ke situs Anda.

CloudFront distribusi dan fitur pembatasan CloudFront geografis

Untuk CloudFront distribusi, jika Anda menggunakan fitur pembatasan CloudFront geografis, ketahuilah bahwa fitur tersebut tidak meneruskan permintaan yang diblokir. AWS WAF Itu meneruskan permintaan yang diizinkan ke AWS WAF. Jika Anda ingin memblokir permintaan berdasarkan geografi ditambah kriteria lain yang dapat Anda tentukan AWS WAF, gunakan pernyataan AWS WAF geo match dan jangan gunakan fitur pembatasan CloudFront geografis.

Karakteristik pernyataan kecocokan geo

Nestable - Anda dapat membuat jenis pernyataan ini.

WCU — 1 WCU.

Pengaturan - Pernyataan ini menggunakan pengaturan berikut:

  • Kode negara — Array kode negara untuk dibandingkan untuk kecocokan geografis. Ini harus berupa kode negara dua karakter dari kode ISO negara alfa-2 dari standar internasional ISO 3166, misalnya,. ["US","CN"]

  • (Opsional) Konfigurasi IP yang diteruskan — Secara default, AWS WAF menggunakan alamat IP di asal permintaan web untuk menentukan negara asal. Atau, Anda dapat mengonfigurasi aturan untuk menggunakan IP yang diteruskan di header HTTP seperti X-Forwarded-For sebagai gantinya. AWS WAF menggunakan alamat IP pertama di header. Dengan konfigurasi ini, Anda juga menentukan perilaku fallback untuk diterapkan ke permintaan web dengan alamat IP cacat di header. Perilaku fallback menetapkan hasil pencocokan untuk permintaan, agar cocok atau tidak cocok. Untuk informasi selengkapnya, lihat Alamat IP yang diteruskan.

Di mana menemukan pernyataan aturan ini
  • Pembuat aturan di konsol — Untuk opsi Permintaan, pilih Berasal dari negara di.

  • APIGeoMatchStatement

Contoh-contoh

Anda dapat menggunakan pernyataan geo match untuk mengelola permintaan dari negara atau wilayah tertentu. Misalnya, jika Anda ingin memblokir permintaan dari negara tertentu, tetapi masih mengizinkan permintaan dari kumpulan alamat IP tertentu di negara tersebut, Anda dapat membuat aturan dengan tindakan yang disetel ke Block dan pernyataan bersarang berikut, yang ditunjukkan dalam pseudocode:

  • Pernyataan AND

    • Pernyataan geo match mencantumkan negara yang ingin Anda blokir

    • Pernyataan NOT

      • IP set pernyataan yang menentukan alamat IP yang ingin Anda izinkan melalui

Atau, jika Anda ingin memblokir beberapa wilayah di negara tertentu, tetapi masih mengizinkan permintaan dari wilayah lain di negara tersebut, Anda dapat terlebih dahulu menentukan aturan geo match dengan tindakan yang disetel keCount. Kemudian, tentukan aturan pencocokan label yang cocok dengan label kecocokan geografis yang ditambahkan dan tangani permintaan sesuai kebutuhan.

Kode semu berikut menjelaskan contoh pendekatan ini:

  1. Pernyataan geo match mencantumkan negara dengan wilayah yang ingin Anda blokir, tetapi dengan tindakan yang disetel ke Hitung. Ini memberi label pada setiap permintaan web terlepas dari status kecocokan, dan ini juga memberi Anda metrik hitungan untuk negara yang diminati.

  2. ANDpernyataan dengan tindakan Blokir

    • Pernyataan pencocokan label yang menentukan label untuk negara yang ingin Anda blokir

    • Pernyataan NOT

      • Pernyataan pencocokan label yang menentukan label wilayah di negara-negara yang ingin Anda izinkan

Daftar JSON berikut menunjukkan implementasi dari dua aturan yang dijelaskan dalam pseudocode sebelumnya. Aturan ini memblokir semua lalu lintas dari Amerika Serikat kecuali lalu lintas dari Oregon dan Washington. Pernyataan geo match menambahkan label negara dan wilayah ke semua permintaan yang diperiksa. Aturan pencocokan label berjalan setelah aturan kecocokan geografis, sehingga dapat cocok dengan label negara dan wilayah yang baru saja ditambahkan oleh aturan kecocokan geografis. Pernyataan geo match menggunakan alamat IP yang diteruskan, sehingga pencocokan label juga menentukan label IP yang diteruskan.

{ "Name": "geoMatchForLabels", "Priority": 10, "Statement": { "GeoMatchStatement": { "CountryCodes": [ "US" ], "ForwardedIPConfig": { "HeaderName": "X-Forwarded-For", "FallbackBehavior": "MATCH" } } }, "Action": { "Count": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "geoMatchForLabels" } }, { "Name": "blockUSButNotOROrWA", "Priority": 11, "Statement": { "AndStatement": { "Statements": [ { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:forwardedip:geo:country:US" } }, { "NotStatement": { "Statement": { "OrStatement": { "Statements": [ { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:forwardedip:geo:region:US-OR" } }, { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:forwardedip:geo:region:US-WA" } } ] } } } } ] } }, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "blockUSButNotOROrWA" } }

Sebagai contoh lain, Anda dapat menggabungkan pencocokan geografis dengan aturan berbasis tarif untuk memprioritaskan sumber daya bagi pengguna di negara atau wilayah tertentu. Anda membuat pernyataan berbasis tarif yang berbeda untuk setiap pernyataan kecocokan geografis atau pencocokan label yang Anda gunakan untuk membedakan pengguna Anda. Tetapkan batas tarif yang lebih tinggi untuk pengguna di negara atau wilayah pilihan dan tetapkan batas tarif yang lebih rendah untuk pengguna lain.

Daftar JSON berikut menunjukkan aturan kecocokan geografis diikuti oleh aturan berbasis tarif yang membatasi tingkat lalu lintas dari Amerika Serikat. Aturan memungkinkan lalu lintas dari Oregon masuk pada tingkat yang lebih tinggi daripada lalu lintas dari tempat lain di negara ini.

{ "Name": "geoMatchForLabels", "Priority": 190, "Statement": { "GeoMatchStatement": { "CountryCodes": [ "US" ] } }, "Action": { "Count": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "geoMatchForLabels" } }, { "Name": "rateLimitOregon", "Priority": 195, "Statement": { "RateBasedStatement": { "Limit": 3000, "AggregateKeyType": "IP", "ScopeDownStatement": { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:clientip:geo:region:US-OR" } } } }, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "rateLimitOregon" } }, { "Name": "rateLimitUSNotOR", "Priority": 200, "Statement": { "RateBasedStatement": { "Limit": 100, "AggregateKeyType": "IP", "ScopeDownStatement": { "AndStatement": { "Statements": [ { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:clientip:geo:country:US" } }, { "NotStatement": { "Statement": { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:clientip:geo:region:US-OR" } } } } ] } } } }, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "rateLimitUSNotOR" } }