

**Memperkenalkan pengalaman konsol baru untuk AWS WAF**

Anda sekarang dapat menggunakan pengalaman yang diperbarui untuk mengakses AWS WAF fungsionalitas di mana saja di konsol. Untuk detail selengkapnya, lihat [Bekerja dengan konsol](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html). 

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

# AWS WAF aturan
<a name="waf-rules"></a>

Bagian ini menjelaskan apa itu AWS WAF aturan dan cara kerjanya.

 AWS WAF Aturan menentukan cara memeriksa permintaan web HTTP (S) dan tindakan yang harus diambil pada permintaan saat cocok dengan kriteria inspeksi. Anda mendefinisikan aturan hanya dalam konteks grup aturan atau paket perlindungan (web ACL). 

Aturan tidak ada dengan AWS WAF sendirinya. Mereka bukan AWS sumber daya, dan mereka tidak memiliki Amazon Resource Names (ARNs). Anda dapat mengakses aturan berdasarkan nama di grup aturan atau paket perlindungan (web ACL) di mana aturan tersebut ditentukan. Anda dapat mengelola aturan dan menyalinnya ke paket perlindungan lain (web ACLs) dengan menggunakan tampilan JSON dari grup aturan atau paket perlindungan (web ACL) yang berisi aturan. Anda juga dapat mengelolanya melalui pembuat aturan AWS WAF konsol, yang tersedia untuk paket perlindungan (web ACLs) dan grup aturan.

**Nama aturan**  
Setiap aturan membutuhkan nama. Hindari nama yang dimulai dengan `AWS` dan nama yang digunakan untuk grup aturan atau aturan yang dikelola untuk Anda oleh layanan lain. Lihat [Mengenali kelompok aturan yang disediakan oleh layanan lain](waf-service-owned-rule-groups.md). 

**catatan**  
Jika Anda mengubah nama aturan dan Anda ingin nama metrik aturan mencerminkan perubahan, Anda harus memperbarui nama metrik juga. AWS WAF tidak secara otomatis memperbarui nama metrik untuk aturan saat Anda mengubah nama aturan. Anda dapat mengubah nama metrik saat mengedit aturan di konsol, dengan menggunakan editor JSON aturan. Anda juga dapat mengubah kedua nama melalui APIs dan dalam daftar JSON apa pun yang Anda gunakan untuk menentukan paket perlindungan (web ACL) atau grup aturan.

**Pernyataan aturan**  
Setiap aturan juga memerlukan pernyataan aturan yang mendefinisikan bagaimana aturan memeriksa permintaan web. Pernyataan aturan mungkin berisi pernyataan bersarang lainnya pada kedalaman apa pun, tergantung pada aturan dan jenis pernyataan. Beberapa pernyataan aturan mengambil serangkaian kriteria. Misalnya, Anda dapat menentukan hingga 10.000 alamat IP atau rentang alamat IP untuk aturan pencocokan set IP.

Anda dapat menentukan aturan yang memeriksa kriteria seperti berikut: 
+ Skrip yang cenderung berbahaya. Penyerang menyematkan skrip yang dapat mengeksploitasi kerentanan dalam aplikasi web. Ini dikenal sebagai cross-site scripting (XSS).
+ Alamat IP atau rentang alamat tempat permintaan berasal.
+ Negara atau lokasi geografis tempat permintaan berasal.
+ Panjang bagian tertentu dari permintaan, seperti string query.
+ Kode SQL yang kemungkinan berbahaya. Penyerang mencoba mengekstrak data dari database Anda dengan menyematkan kode SQL berbahaya dalam permintaan web. Ini dikenal sebagai injeksi SQL.
+ String yang muncul dalam permintaan, misalnya, nilai yang muncul di `User-Agent` header atau string teks yang muncul dalam string kueri. Anda juga dapat menggunakan ekspresi reguler (regex) untuk menentukan string ini.
+ Label yang aturan sebelumnya dalam paket perlindungan (web ACL) telah ditambahkan ke permintaan.

Selain pernyataan dengan kriteria inspeksi permintaan web, seperti yang ada di daftar sebelumnya, AWS WAF mendukung pernyataan logis untuk`AND`,`OR`, dan `NOT` yang Anda gunakan untuk menggabungkan pernyataan dalam aturan. 

Misalnya, berdasarkan permintaan terbaru yang Anda lihat dari penyerang, Anda dapat membuat aturan dengan `AND` pernyataan logis yang menggabungkan pernyataan bersarang berikut: 
+ Permintaan datang dari 192.0.2.44.
+ Berisi nilai `BadBot` di header `User-Agent`.
+ Mereka tampaknya menyertakan kode seperti SQL dalam string kueri.

Dalam hal ini, permintaan web harus mencocokkan semua pernyataan untuk menghasilkan kecocokan untuk tingkat atas`AND`. 

**Topics**
+ [Menggunakan tindakan aturan di AWS WAF](waf-rule-action.md)
+ [Menggunakan pernyataan aturan di AWS WAF](waf-rule-statements.md)
+ [Menggunakan pernyataan aturan kecocokan di AWS WAF](waf-rule-statements-match.md)
+ [Menggunakan pernyataan aturan logis di AWS WAF](waf-rule-statements-logical.md)
+ [Menggunakan pernyataan aturan berbasis tarif di AWS WAF](waf-rule-statement-type-rate-based.md)
+ [Menggunakan pernyataan aturan grup aturan di AWS WAF](waf-rule-statements-rule-group.md)

# Menggunakan tindakan aturan di AWS WAF
<a name="waf-rule-action"></a>

Bagian ini menjelaskan cara kerja tindakan aturan.

Tindakan aturan memberi tahu AWS WAF apa yang harus dilakukan dengan permintaan web ketika cocok dengan kriteria yang ditentukan dalam aturan. Anda dapat menambahkan perilaku kustom secara opsional ke setiap tindakan aturan. 

**catatan**  
Tindakan aturan dapat mengakhiri atau tidak mengakhiri. Tindakan penghentian menghentikan evaluasi paket perlindungan (web ACL) atas permintaan dan memungkinkannya melanjutkan ke aplikasi Anda yang dilindungi atau memblokirnya. 

Berikut adalah opsi tindakan aturan: 
+ **Allow**— AWS WAF memungkinkan permintaan diteruskan ke AWS sumber daya yang dilindungi untuk diproses dan direspon. Ini adalah tindakan penghentian. Dalam aturan yang Anda tentukan, Anda dapat menyisipkan header khusus ke dalam permintaan sebelum meneruskannya ke sumber daya yang dilindungi.
+ **Block**— AWS WAF memblokir permintaan. Ini adalah tindakan penghentian. Secara default, AWS sumber daya Anda yang dilindungi merespons dengan kode `403 (Forbidden)` status HTTP. Dalam aturan yang Anda tentukan, Anda dapat menyesuaikan respons. Saat AWS WAF memblokir permintaan, pengaturan Block tindakan menentukan respons yang dikirim kembali oleh sumber daya yang dilindungi ke klien. 
+ **Count**— AWS WAF menghitung permintaan tetapi tidak menentukan apakah akan mengizinkan atau memblokirnya. Ini adalah tindakan yang tidak mengakhiri. AWS WAF terus memproses aturan yang tersisa dalam paket perlindungan (web ACL). Dalam aturan yang Anda tentukan, Anda dapat menyisipkan header khusus ke dalam permintaan dan Anda dapat menambahkan label yang dapat dicocokkan dengan aturan lain.
+ **CAPTCHAdan Challenge** — AWS WAF menggunakan teka-teki CAPTCHA dan tantangan diam untuk memverifikasi bahwa permintaan tersebut tidak berasal dari bot, dan AWS WAF menggunakan token untuk melacak respons klien yang berhasil baru-baru ini. 

  Teka-teki CAPTCHA dan tantangan diam hanya dapat berjalan ketika browser mengakses titik akhir HTTPS. Klien browser harus berjalan dalam konteks aman untuk mendapatkan token. 
**catatan**  
Anda akan dikenakan biaya tambahan ketika Anda menggunakan tindakan CAPTCHA atau Challenge aturan di salah satu aturan Anda atau sebagai penggantian tindakan aturan dalam grup aturan. Untuk informasi selengkapnya, silakan lihat [Harga AWS WAF](https://aws.amazon.com/waf/pricing/).

  Tindakan aturan ini dapat mengakhiri atau tidak mengakhiri, tergantung pada status token dalam permintaan: 
  + **Non-terminating untuk token yang valid dan belum kedaluwarsa** — Jika token valid dan belum kedaluwarsa sesuai dengan CAPTCHA yang dikonfigurasi atau waktu kekebalan tantangan, AWS WAF menangani permintaan yang serupa dengan tindakan. Count AWS WAF terus memeriksa permintaan web berdasarkan aturan yang tersisa dalam paket perlindungan (web ACL). Mirip dengan Count konfigurasi, dalam aturan yang Anda tentukan, Anda dapat mengonfigurasi tindakan ini secara opsional dengan header khusus untuk dimasukkan ke dalam permintaan, dan Anda dapat menambahkan label yang dapat dicocokkan dengan aturan lain. 
  + **Mengakhiri dengan permintaan yang diblokir untuk token yang tidak valid atau kedaluwarsa** - Jika token tidak valid atau stempel waktu yang ditunjukkan kedaluwarsa, AWS WAF menghentikan pemeriksaan permintaan web dan memblokir permintaan, mirip dengan tindakan. Block AWS WAF kemudian merespons klien dengan kode respons khusus. SebabCAPTCHA, jika isi permintaan menunjukkan bahwa browser klien dapat menanganinya, AWS WAF mengirimkan teka-teki CAPTCHA dalam JavaScript interstisial, yang dirancang untuk membedakan klien manusia dari bot. Untuk Challenge aksinya, AWS WAF kirimkan JavaScript pengantara dengan tantangan diam yang dirancang untuk membedakan browser normal dari sesi yang dijalankan oleh bot. 

  Untuk informasi tambahan, lihat [CAPTCHAdan Challenge di AWS WAF](waf-captcha-and-challenge.md).

Untuk informasi tentang menyesuaikan permintaan dan tanggapan, lihat[Permintaan dan tanggapan web yang disesuaikan di AWS WAF](waf-custom-request-response.md).

Untuk informasi tentang menambahkan label ke permintaan yang cocok, lihat[Pelabelan permintaan web di AWS WAF](waf-labels.md).

Untuk informasi tentang cara paket perlindungan (web ACL) dan pengaturan aturan berinteraksi, lihat[Menggunakan paket perlindungan (web ACLs) dengan aturan dan grup aturan di AWS WAF](web-acl-processing.md). 

# Menggunakan pernyataan aturan di AWS WAF
<a name="waf-rule-statements"></a>

Bagian ini menjelaskan cara kerja pernyataan aturan.

Pernyataan aturan adalah bagian dari aturan yang memberi tahu AWS WAF cara memeriksa permintaan web. Ketika AWS WAF menemukan kriteria inspeksi dalam permintaan web, kami mengatakan bahwa permintaan web cocok dengan pernyataan tersebut. Setiap pernyataan aturan menentukan apa yang harus dicari dan bagaimana, sesuai dengan jenis pernyataan. 

Setiap aturan AWS WAF memiliki satu pernyataan aturan tingkat atas, yang dapat berisi pernyataan lain. Pernyataan aturan bisa sangat sederhana. Misalnya, Anda dapat memiliki pernyataan yang menyediakan sekumpulan negara asal untuk memeriksa permintaan web Anda atau Anda dapat memiliki pernyataan aturan dalam paket perlindungan (web ACL) yang hanya mereferensikan grup aturan. Pernyataan aturan juga bisa sangat kompleks. Misalnya, Anda dapat memiliki pernyataan yang menggabungkan banyak pernyataan lain dengan logisAND,OR, dan NOT pernyataan. 

Untuk sebagian besar aturan, Anda dapat menambahkan AWS WAF pelabelan khusus ke permintaan yang cocok. Aturan dalam grup aturan Aturan AWS Terkelola menambahkan label ke permintaan yang cocok. Label yang ditambahkan aturan memberikan informasi tentang permintaan ke aturan yang dievaluasi nanti dalam paket perlindungan (web ACL) dan juga di AWS WAF log dan metrik. Untuk informasi tentang pelabelan, lihat [Pelabelan permintaan web di AWS WAF](waf-labels.md) dan[Pernyataan aturan pencocokan label](waf-rule-statement-type-label-match.md).

**Pernyataan aturan bersarang**  
AWS WAF mendukung bersarang untuk banyak pernyataan aturan, tetapi tidak untuk semua. Misalnya, Anda tidak dapat membuat pernyataan grup aturan di dalam pernyataan lain. Anda perlu menggunakan nesting untuk beberapa skenario, seperti pernyataan scope-down dan pernyataan logis. Daftar pernyataan aturan dan detail aturan berikut menjelaskan kemampuan dan persyaratan bersarang untuk setiap kategori dan aturan.

Editor visual untuk aturan di konsol hanya mendukung satu tingkat penyarangan untuk pernyataan aturan. Misalnya, Anda dapat menyarangkan banyak jenis pernyataan di dalam logika AND atau OR aturan, tetapi Anda tidak dapat membuat sarang AND atau OR aturan lain, karena itu memerlukan tingkat penyarangan kedua. Untuk mengimplementasikan beberapa level nesting, berikan definisi aturan di JSON, baik melalui editor aturan JSON di konsol atau melalui. APIs 

**Topics**
+ [Menyesuaikan pengaturan pernyataan aturan di AWS WAF](waf-rule-statement-fields.md)
+ [Menggunakan pernyataan scope-down di AWS WAF](waf-rule-scope-down-statements.md)
+ [Mereferensikan entitas yang dapat digunakan kembali di AWS WAF](waf-rule-statement-reusable-entities.md)

# Menyesuaikan pengaturan pernyataan aturan di AWS WAF
<a name="waf-rule-statement-fields"></a>

Bagian ini menjelaskan pengaturan yang dapat Anda tentukan dalam pernyataan aturan yang memeriksa komponen permintaan web. Untuk informasi tentang penggunaan, lihat pernyataan aturan individual di[Menggunakan pernyataan aturan kecocokan di AWS WAF](waf-rule-statements-match.md). 

Subset dari komponen permintaan web ini juga dapat digunakan dalam aturan berbasis tarif, sebagai kunci agregasi permintaan kustom. Untuk informasi, lihat [Menggabungkan aturan berbasis tarif di AWS WAF](waf-rule-statement-type-rate-based-aggregation-options.md).

Untuk pengaturan komponen permintaan, Anda menentukan jenis komponen itu sendiri, dan opsi tambahan apa pun, tergantung pada jenis komponen. Misalnya, saat memeriksa jenis komponen yang berisi teks, Anda dapat menerapkan transformasi teks sebelum memeriksanya. 

**catatan**  
Kecuali dinyatakan lain, jika permintaan web tidak memiliki komponen permintaan yang ditentukan dalam pernyataan aturan, AWS WAF mengevaluasi permintaan sebagai tidak cocok dengan kriteria aturan.

**Contents**
+ [Minta komponen di AWS WAF](waf-rule-statement-fields-list.md)
  + [Metode HTTP](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-http-method)
  + [Header tunggal](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-header)
  + [Semua header](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-headers)
  + [Urutan header](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-header-order)
  + [Cookie](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-cookies)
  + [Fragmen URI](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-fragment)
  + [Jalur URI](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-path)
  + [JA3 sidik jari](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja3-fingerprint)
  + [JA4 sidik jari](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-ja4-fingerprint)
  + [String kueri](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-query-string)
  + [Parameter kueri tunggal](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-query-param)
  + [Semua parameter kueri](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-all-query-params)
  + [Tubuh](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-body)
  + [Tubuh JSON](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-json-body)
+ [Menggunakan alamat IP yang diteruskan di AWS WAF](waf-rule-statement-forwarded-ip-address.md)
+ [Memeriksa header semu HTTP/2 di AWS WAF](waf-rule-statement-request-components-for-http2-pseudo-headers.md)
+ [Menggunakan transformasi teks di AWS WAF](waf-rule-statement-transformation.md)

# Minta komponen di AWS WAF
<a name="waf-rule-statement-fields-list"></a>

Bagian ini menjelaskan komponen permintaan web yang dapat Anda tentukan untuk diperiksa. Anda menentukan komponen permintaan untuk pernyataan aturan kecocokan yang mencari pola di dalam permintaan web. Jenis pernyataan ini termasuk pencocokan string, pencocokan regex, batasan ukuran, dan pernyataan serangan injeksi SQL. Untuk informasi tentang cara menggunakan setelan komponen permintaan ini, lihat pernyataan aturan individual di [Menggunakan pernyataan aturan kecocokan di AWS WAF](waf-rule-statements-match.md)

Kecuali dinyatakan lain, jika permintaan web tidak memiliki komponen permintaan yang ditentukan dalam pernyataan aturan, AWS WAF mengevaluasi permintaan sebagai tidak cocok dengan kriteria aturan.

**catatan**  
Anda menentukan komponen permintaan tunggal untuk setiap pernyataan aturan yang memerlukannya. Untuk memeriksa lebih dari satu komponen permintaan, buat pernyataan aturan untuk setiap komponen. 

Dokumentasi AWS WAF konsol dan API memberikan panduan untuk pengaturan komponen permintaan di lokasi berikut: 
+ **Pembuat aturan** **di konsol — Dalam pengaturan **Pernyataan** untuk jenis aturan reguler, pilih komponen yang ingin Anda periksa dalam dialog Inspect di bawah **Minta** komponen.**
+ **Isi pernyataan API** - `FieldToMatch`

Sisa bagian ini menjelaskan opsi untuk bagian permintaan web untuk diperiksa. 

**Topics**
+ [Metode HTTP](#waf-rule-statement-request-component-http-method)
+ [Header tunggal](#waf-rule-statement-request-component-single-header)
+ [Semua header](#waf-rule-statement-request-component-headers)
+ [Urutan header](#waf-rule-statement-request-component-header-order)
+ [Cookie](#waf-rule-statement-request-component-cookies)
+ [Fragmen URI](#waf-rule-statement-request-component-uri-fragment)
+ [Jalur URI](#waf-rule-statement-request-component-uri-path)
+ [JA3 sidik jari](#waf-rule-statement-request-component-ja3-fingerprint)
+ [JA4 sidik jari](#waf-rule-statement-request-component-ja4-fingerprint)
+ [String kueri](#waf-rule-statement-request-component-query-string)
+ [Parameter kueri tunggal](#waf-rule-statement-request-component-single-query-param)
+ [Semua parameter kueri](#waf-rule-statement-request-component-all-query-params)
+ [Tubuh](#waf-rule-statement-request-component-body)
+ [Tubuh JSON](#waf-rule-statement-request-component-json-body)

## Metode HTTP
<a name="waf-rule-statement-request-component-http-method"></a>

Memeriksa metode HTTP untuk permintaan. Metode HTTP menunjukkan jenis operasi yang permintaan web meminta sumber daya yang dilindungi untuk melakukan, seperti `POST` atau`GET`. 

## Header tunggal
<a name="waf-rule-statement-request-component-single-header"></a>

Memeriksa satu header bernama dalam permintaan. 

Untuk opsi ini, Anda menentukan nama header, misalnya, `User-Agent` atau`Referer`. Pencocokan string untuk nama tidak peka huruf besar/kecil dan dilakukan setelah memotong spasi depan dan belakang dari header permintaan dan aturan.

## Semua header
<a name="waf-rule-statement-request-component-headers"></a>

Memeriksa semua header permintaan, termasuk cookie. Anda dapat menerapkan filter untuk memeriksa subset dari semua header. 

Untuk opsi ini, Anda memberikan spesifikasi berikut: 
+ **Pola kecocokan** — Filter yang digunakan untuk mendapatkan subset header untuk diperiksa. AWS WAF mencari pola-pola ini di tombol header. 

  Pengaturan pola kecocokan dapat berupa salah satu dari berikut ini: 
  + **Semua** — Cocokkan semua kunci. Evaluasi kriteria pemeriksaan aturan untuk semua header. 
  + **Header yang dikecualikan** - Periksa hanya header yang kuncinya tidak cocok dengan string yang Anda tentukan di sini. Pencocokan string untuk kunci tidak peka huruf besar/kecil. Pencocokan dilakukan setelah memangkas spasi depan dan belakang dari header permintaan dan aturan kecocokan.
  + **Header yang disertakan** - Periksa hanya header yang memiliki kunci yang cocok dengan salah satu string yang Anda tentukan di sini. Pencocokan string untuk kunci tidak peka huruf besar/kecil. Pencocokan dilakukan setelah memangkas spasi depan dan belakang dari header permintaan dan aturan kecocokan.
+ **Lingkup kecocokan** — Bagian-bagian header yang AWS WAF harus diperiksa dengan kriteria pemeriksaan aturan. Anda dapat menentukan **Kunci**, **Nilai**, atau **Semua** untuk memeriksa kunci dan nilai untuk kecocokan. 

  **Semua** tidak memerlukan kecocokan untuk ditemukan di kunci dan kecocokan untuk ditemukan dalam nilai. Ini membutuhkan kecocokan untuk ditemukan di kunci atau nilai atau keduanya. Untuk meminta kecocokan dalam kunci dan nilai, gunakan `AND` pernyataan logis untuk menggabungkan dua aturan kecocokan, satu yang memeriksa kunci dan yang lain yang memeriksa nilai. 
+ **Oversize handling** — Bagaimana AWS WAF seharusnya menangani permintaan yang memiliki data header yang lebih besar dari yang AWS WAF dapat diperiksa. AWS WAF dapat memeriksa paling banyak 8 KB pertama (8.192 byte) dari header permintaan dan paling banyak 200 header pertama. Konten tersedia untuk diperiksa AWS WAF hingga batas pertama yang tercapai. Anda dapat memilih untuk melanjutkan inspeksi, atau melewati inspeksi dan menandai permintaan sebagai cocok atau tidak cocok dengan aturan. Untuk informasi selengkapnya tentang penanganan konten yang terlalu besar, lihat[Komponen permintaan web yang terlalu besar di AWS WAF](waf-oversize-request-components.md).

## Urutan header
<a name="waf-rule-statement-request-component-header-order"></a>

Periksa string yang berisi daftar nama header permintaan, diurutkan seperti yang muncul di permintaan web yang AWS WAF menerima untuk inspeksi. AWS WAF menghasilkan string dan kemudian menggunakannya sebagai bidang untuk mencocokkan komponen dalam inspeksinya. AWS WAF memisahkan nama header dalam string dengan titik dua dan tanpa spasi tambahan, misalnya. `host:user-agent:accept:authorization:referer`

Untuk opsi ini, Anda memberikan spesifikasi berikut: 
+ **Oversize handling** — Bagaimana AWS WAF seharusnya menangani permintaan yang memiliki data header yang lebih banyak atau lebih besar daripada yang AWS WAF dapat diperiksa. AWS WAF dapat memeriksa paling banyak 8 KB pertama (8.192 byte) dari header permintaan dan paling banyak 200 header pertama. Konten tersedia untuk diperiksa AWS WAF hingga batas pertama yang tercapai. Anda dapat memilih untuk terus memeriksa header yang tersedia, atau melewati inspeksi dan menandai permintaan sebagai cocok atau tidak cocok dengan aturan. Untuk informasi selengkapnya tentang penanganan konten yang terlalu besar, lihat[Komponen permintaan web yang terlalu besar di AWS WAF](waf-oversize-request-components.md).

## Cookie
<a name="waf-rule-statement-request-component-cookies"></a>

Memeriksa semua cookie permintaan. Anda dapat menerapkan filter untuk memeriksa subset dari semua cookie. 

Untuk opsi ini, Anda memberikan spesifikasi berikut: 
+ **Pola kecocokan** — Filter yang digunakan untuk mendapatkan subset cookie untuk diperiksa. AWS WAF mencari pola-pola ini di kunci cookie. 

  Pengaturan pola kecocokan dapat berupa salah satu dari berikut ini: 
  + **Semua** — Cocokkan semua kunci. Evaluasi kriteria pemeriksaan aturan untuk semua cookie. 
  + **Cookie yang dikecualikan** — Periksa hanya cookie yang kuncinya tidak cocok dengan string apa pun yang Anda tentukan di sini. Pencocokan string untuk kunci peka huruf besar/kecil dan harus tepat. 
  + **Cookie yang disertakan** — Periksa hanya cookie yang memiliki kunci yang cocok dengan salah satu string yang Anda tentukan di sini. Pencocokan string untuk kunci peka huruf besar/kecil dan harus tepat. 
+ **Lingkup kecocokan** — Bagian-bagian cookie yang AWS WAF harus diperiksa dengan kriteria pemeriksaan aturan. Anda dapat menentukan **Kunci**, **Nilai**, atau **Semua** untuk kedua kunci dan nilai. 

  **Semua** tidak memerlukan kecocokan untuk ditemukan di kunci dan kecocokan untuk ditemukan dalam nilai. Ini membutuhkan kecocokan untuk ditemukan di kunci atau nilai atau keduanya. Untuk meminta kecocokan dalam kunci dan nilai, gunakan `AND` pernyataan logis untuk menggabungkan dua aturan kecocokan, satu yang memeriksa kunci dan yang lain yang memeriksa nilai. 
+ **Oversize handling** — Bagaimana AWS WAF seharusnya menangani permintaan yang memiliki data cookie yang lebih besar dari yang AWS WAF dapat diperiksa. AWS WAF dapat memeriksa paling banyak 8 KB pertama (8.192 byte) dari cookie permintaan dan paling banyak 200 cookie pertama. Konten tersedia untuk diperiksa AWS WAF hingga batas pertama yang tercapai. Anda dapat memilih untuk melanjutkan inspeksi, atau melewati inspeksi dan menandai permintaan sebagai cocok atau tidak cocok dengan aturan. Untuk informasi selengkapnya tentang penanganan konten yang terlalu besar, lihat[Komponen permintaan web yang terlalu besar di AWS WAF](waf-oversize-request-components.md).

## Fragmen URI
<a name="waf-rule-statement-request-component-uri-fragment"></a>

**catatan**  
Pemeriksaan Fragmen Uri hanya tersedia untuk CloudFront distribusi dan Application Load Balancer.

Memeriksa bagian URL yang mengikuti simbol “\$1”, memberikan informasi tambahan tentang sumber daya, misalnya, \$1section2. Untuk selengkapnya, lihat [Uniform Resource Identifier (URI): Generic](https://tools.ietf.org/html/rfc3986#section-3) Syntax. 

Jika Anda tidak menggunakan transformasi teks dengan opsi ini, AWS WAF tidak menormalkan fragmen URI dan memeriksanya persis seperti yang diterimanya dari klien dalam permintaan. Untuk informasi tentang transformasi teks, lihat[Menggunakan transformasi teks di AWS WAF](waf-rule-statement-transformation.md).

**Persyaratan pernyataan aturan**  
Anda harus memberikan perilaku fallback untuk pernyataan aturan ini. Perilaku fallback adalah status pencocokan yang ingin Anda tetapkan AWS WAF ke permintaan web jika URI kehilangan fragmen atau layanan terkait bukan Application Load Balancer atau. CloudFront Jika Anda memilih untuk mencocokkan, AWS WAF memperlakukan permintaan sebagai pencocokan pernyataan aturan dan menerapkan tindakan aturan ke permintaan. Jika Anda memilih untuk tidak cocok, AWS WAF memperlakukan permintaan sebagai tidak cocok dengan pernyataan aturan.

## Jalur URI
<a name="waf-rule-statement-request-component-uri-path"></a>

Memeriksa bagian URL yang mengidentifikasi sumber daya, misalnya,. `/images/daily-ad.jpg` Untuk selengkapnya, lihat [Uniform Resource Identifier (URI): Generic](https://tools.ietf.org/html/rfc3986#section-3) Syntax. 

Jika Anda tidak menggunakan transformasi teks dengan opsi ini, AWS WAF tidak menormalkan URI dan memeriksanya persis seperti yang diterimanya dari klien dalam permintaan. Untuk informasi tentang transformasi teks, lihat[Menggunakan transformasi teks di AWS WAF](waf-rule-statement-transformation.md).

## JA3 sidik jari
<a name="waf-rule-statement-request-component-ja3-fingerprint"></a>

Memeriksa JA3 sidik jari permintaan. 

**catatan**  
JA3 pemeriksaan sidik jari hanya tersedia untuk CloudFront distribusi Amazon dan Application Load Balancer.

 JA3 Sidik jari adalah hash 32 karakter yang berasal dari TLS Client Hello dari permintaan yang masuk. Sidik jari ini berfungsi sebagai pengenal unik untuk konfigurasi TLS klien. AWS WAF menghitung dan mencatat sidik jari ini untuk setiap permintaan yang memiliki cukup informasi TLS Client Hello untuk perhitungan. Hampir semua permintaan web menyertakan informasi ini.

**Cara mendapatkan JA3 sidik jari untuk klien**  
Anda dapat memperoleh JA3 sidik jari untuk permintaan klien dari log paket perlindungan (web ACL). Jika AWS WAF mampu menghitung sidik jari, itu termasuk dalam log. Untuk informasi tentang bidang logging, lihat[Bidang log untuk lalu lintas paket perlindungan (web ACL)](logging-fields.md).

**Persyaratan pernyataan aturan**  
Anda dapat memeriksa JA3 sidik jari hanya di dalam pernyataan pencocokan string yang diatur agar sama persis dengan string yang Anda berikan. Berikan string JA3 sidik jari dari log dalam spesifikasi pernyataan pencocokan string Anda, agar sesuai dengan permintaan future yang memiliki konfigurasi TLS yang sama. Untuk informasi tentang pernyataan kecocokan string, lihat[Pernyataan aturan kecocokan string](waf-rule-statement-type-string-match.md).

Anda harus memberikan perilaku fallback untuk pernyataan aturan ini. Perilaku fallback adalah status pencocokan yang ingin AWS WAF Anda tetapkan ke permintaan web jika tidak dapat menghitung AWS WAF sidik jari. JA3 Jika Anda memilih untuk mencocokkan, AWS WAF memperlakukan permintaan sebagai pencocokan pernyataan aturan dan menerapkan tindakan aturan ke permintaan. Jika Anda memilih untuk tidak cocok, AWS WAF memperlakukan permintaan sebagai tidak cocok dengan pernyataan aturan.

Untuk menggunakan opsi pencocokan ini, Anda harus mencatat lalu lintas paket perlindungan (web ACL) Anda. Untuk informasi, lihat [Lalu lintas paket AWS WAF perlindungan pencatatan (web ACL)](logging.md).

## JA4 sidik jari
<a name="waf-rule-statement-request-component-ja4-fingerprint"></a>

Memeriksa JA4 sidik jari permintaan. 

**catatan**  
JA4 pemeriksaan sidik jari hanya tersedia untuk CloudFront distribusi Amazon dan Application Load Balancer.

 JA4 Sidik jari adalah hash 36 karakter yang berasal dari TLS Client Hello dari permintaan yang masuk. Sidik jari ini berfungsi sebagai pengenal unik untuk konfigurasi TLS klien. JA4 sidik jari adalah perpanjangan dari JA3 sidik jari yang dapat menghasilkan lebih sedikit sidik jari unik untuk beberapa browser. AWS WAF menghitung dan mencatat sidik jari ini untuk setiap permintaan yang memiliki cukup informasi TLS Client Hello untuk perhitungan. Hampir semua permintaan web menyertakan informasi ini.

**Cara mendapatkan JA4 sidik jari untuk klien**  
Anda dapat memperoleh JA4 sidik jari untuk permintaan klien dari log paket perlindungan (web ACL). Jika AWS WAF mampu menghitung sidik jari, itu termasuk dalam log. Untuk informasi tentang bidang logging, lihat[Bidang log untuk lalu lintas paket perlindungan (web ACL)](logging-fields.md).

**Persyaratan pernyataan aturan**  
Anda dapat memeriksa JA4 sidik jari hanya di dalam pernyataan pencocokan string yang diatur agar sama persis dengan string yang Anda berikan. Berikan string JA4 sidik jari dari log dalam spesifikasi pernyataan pencocokan string Anda, agar sesuai dengan permintaan future yang memiliki konfigurasi TLS yang sama. Untuk informasi tentang pernyataan kecocokan string, lihat[Pernyataan aturan kecocokan string](waf-rule-statement-type-string-match.md).

Anda harus memberikan perilaku fallback untuk pernyataan aturan ini. Perilaku fallback adalah status pencocokan yang ingin AWS WAF Anda tetapkan ke permintaan web jika tidak dapat menghitung AWS WAF sidik jari. JA4 Jika Anda memilih untuk mencocokkan, AWS WAF memperlakukan permintaan sebagai pencocokan pernyataan aturan dan menerapkan tindakan aturan ke permintaan. Jika Anda memilih untuk tidak cocok, AWS WAF memperlakukan permintaan sebagai tidak cocok dengan pernyataan aturan.

Untuk menggunakan opsi pencocokan ini, Anda harus mencatat lalu lintas paket perlindungan (web ACL) Anda. Untuk informasi, lihat [Lalu lintas paket AWS WAF perlindungan pencatatan (web ACL)](logging.md).

## String kueri
<a name="waf-rule-statement-request-component-query-string"></a>

Memeriksa bagian URL yang muncul setelah `?` karakter, jika ada.

**catatan**  
Untuk pernyataan pencocokan skrip lintas situs, kami sarankan Anda memilih **Semua parameter kueri**, bukan string **Kueri**. Memilih **Semua parameter kueri** menambahkan 10 WCUs ke biaya dasar.

## Parameter kueri tunggal
<a name="waf-rule-statement-request-component-single-query-param"></a>

Memeriksa parameter query tunggal yang telah Anda definisikan sebagai bagian dari string query. AWS WAF memeriksa nilai parameter yang Anda tentukan. 

Untuk opsi ini, Anda juga menentukan **argumen Query**. Misalnya, jika URL-nya`www.xyz.com?UserName=abc&SalesRegion=seattle`, Anda dapat menentukan `UserName` atau `SalesRegion` untuk argumen kueri. Panjang maksimum untuk nama argumen adalah 30 karakter. Nama ini tidak peka huruf besar/kecil, jadi jika Anda menentukan`UserName`, AWS WAF cocok dengan semua variasi`UserName`, termasuk `username` dan`UsERName`.

Jika string kueri berisi lebih dari satu contoh argumen kueri yang telah Anda tentukan, AWS WAF periksa semua nilai untuk kecocokan, menggunakan OR logika. Misalnya, di URL`www.xyz.com?SalesRegion=boston&SalesRegion=seattle`, AWS WAF mengevaluasi nama yang telah Anda tentukan terhadap `boston` dan`seattle`. Jika keduanya cocok, inspeksi adalah kecocokan.

## Semua parameter kueri
<a name="waf-rule-statement-request-component-all-query-params"></a>

Memeriksa semua parameter kueri dalam permintaan. Ini mirip dengan pilihan komponen parameter kueri tunggal, tetapi AWS WAF memeriksa nilai semua argumen dalam string kueri. Misalnya, jika URL-nya`www.xyz.com?UserName=abc&SalesRegion=seattle`, AWS WAF memicu kecocokan jika nilai `UserName` atau `SalesRegion` cocok dengan kriteria inspeksi. 

Memilih opsi ini WCUs menambah 10 biaya dasar.

## Tubuh
<a name="waf-rule-statement-request-component-body"></a>

Memeriksa badan permintaan, dievaluasi sebagai teks biasa. Anda juga dapat mengevaluasi tubuh sebagai JSON menggunakan jenis JSON konten. 

Badan permintaan adalah bagian dari permintaan yang segera mengikuti header permintaan. Ini berisi data tambahan yang diperlukan untuk permintaan web, misalnya, data dari formulir. 
+ Di konsol, Anda memilih ini di bawah **opsi Permintaan** pilihan **Badan**, dengan memilih pilihan **Jenis konten** **Teks biasa**. 
+ Di API, dalam `FieldToMatch` spesifikasi aturan, Anda menentukan `Body` untuk memeriksa isi permintaan sebagai teks biasa.

Untuk Application Load Balancer dan AWS AppSync, AWS WAF dapat memeriksa 8 KB pertama dari badan permintaan. Untuk CloudFront, API Gateway, Amazon Cognito, App Runner, dan Akses Terverifikasi, secara default, AWS WAF dapat memeriksa 16 KB pertama, dan Anda dapat meningkatkan batas hingga 64 KB dalam konfigurasi paket perlindungan (web ACL). Untuk informasi selengkapnya, lihat [Pertimbangan untuk mengelola inspeksi tubuh di AWS WAF](web-acl-setting-body-inspection-limit.md).

Anda harus menentukan penanganan oversize untuk jenis komponen ini. Oversize handling mendefinisikan bagaimana AWS WAF menangani permintaan yang memiliki data body yang lebih besar dari yang AWS WAF dapat diperiksa. Anda dapat memilih untuk melanjutkan inspeksi, atau melewati inspeksi dan menandai permintaan sebagai cocok atau tidak cocok dengan aturan. Untuk informasi selengkapnya tentang penanganan konten yang terlalu besar, lihat[Komponen permintaan web yang terlalu besar di AWS WAF](waf-oversize-request-components.md). 

Anda juga dapat mengevaluasi tubuh sebagai JSON yang diurai. Untuk informasi tentang ini, lihat bagian berikut. 

## Tubuh JSON
<a name="waf-rule-statement-request-component-json-body"></a>

Memeriksa badan permintaan, dievaluasi sebagai JSON. Anda juga dapat mengevaluasi tubuh sebagai teks biasa. 

Badan permintaan adalah bagian dari permintaan yang segera mengikuti header permintaan. Ini berisi data tambahan yang diperlukan untuk permintaan web, misalnya, data dari formulir. 
+ Di konsol, Anda memilih ini di bawah **pilihan opsi Request** **Body**, dengan memilih pilihan **Jenis konten** **JSON**. 
+ Di API, dalam `FieldToMatch` spesifikasi aturan, Anda menentukan`JsonBody`.

Untuk Application Load Balancer dan AWS AppSync, AWS WAF dapat memeriksa 8 KB pertama dari badan permintaan. Untuk CloudFront, API Gateway, Amazon Cognito, App Runner, dan Akses Terverifikasi, secara default, AWS WAF dapat memeriksa 16 KB pertama, dan Anda dapat meningkatkan batas hingga 64 KB dalam konfigurasi paket perlindungan (web ACL). Untuk informasi selengkapnya, lihat [Pertimbangan untuk mengelola inspeksi tubuh di AWS WAF](web-acl-setting-body-inspection-limit.md).

Anda harus menentukan penanganan oversize untuk jenis komponen ini. Oversize handling mendefinisikan bagaimana AWS WAF menangani permintaan yang memiliki data body yang lebih besar dari yang AWS WAF dapat diperiksa. Anda dapat memilih untuk melanjutkan inspeksi, atau melewati inspeksi dan menandai permintaan sebagai cocok atau tidak cocok dengan aturan. Untuk informasi selengkapnya tentang penanganan konten yang terlalu besar, lihat[Komponen permintaan web yang terlalu besar di AWS WAF](waf-oversize-request-components.md). 

Memilih opsi ini menggandakan biaya WCUs dasar pernyataan pertandingan. Misalnya, jika biaya dasar pernyataan kecocokan adalah 5 WCUs tanpa penguraian JSON, menggunakan parsing JSON menggandakan biaya menjadi 10. WCUs 

Untuk opsi ini, Anda memberikan spesifikasi tambahan, seperti yang dijelaskan di bagian berikut.

**Bagaimana AWS WAF menangani inspeksi tubuh JSON**  
Saat AWS WAF memeriksa badan permintaan web sebagai JSON, ia melakukan langkah-langkah untuk mengurai tubuh dan mengekstrak elemen JSON untuk diperiksa. AWS WAF melakukan langkah-langkah ini sesuai dengan pilihan konfigurasi Anda. 

Berikut ini mencantumkan langkah-langkah yang AWS WAF dilakukan. 

1. **Parse isi isi tubuh** - AWS WAF mem-parsing isi badan permintaan web untuk mengekstrak elemen JSON untuk diperiksa. AWS WAF melakukan yang terbaik untuk mengurai seluruh isi tubuh, tetapi penguraian dapat gagal untuk berbagai status kesalahan dalam konten. Contohnya termasuk karakter yang tidak valid, kunci duplikat, pemotongan, dan konten yang simpul akarnya bukan objek atau array. 

   Opsi **Body parsing fallback behavior** menentukan AWS WAF apa yang dilakukan jika gagal mengurai body JSON sepenuhnya: 
   + **Tidak ada (perilaku default)** - AWS WAF mengevaluasi konten hanya sampai pada titik di mana ia mengalami kesalahan penguraian. 
   + **Evaluasi sebagai string** - Periksa tubuh sebagai teks biasa. AWS WAF menerapkan transformasi teks dan kriteria inspeksi yang Anda tentukan untuk inspeksi JSON ke string teks isi.
   + **Cocokkan** - Perlakukan permintaan web sebagai pencocokan pernyataan aturan. AWS WAF menerapkan tindakan aturan untuk permintaan.
   + **Tidak cocok - Perlakukan** permintaan web sebagai tidak cocok dengan pernyataan aturan.
**catatan**  
Perilaku fallback ini hanya terpicu saat AWS WAF menemukan kesalahan saat mengurai string JSON. 

**Parsing tidak sepenuhnya memvalidasi JSON**  
AWS WAF penguraian tidak sepenuhnya memvalidasi string JSON input, sehingga penguraian dapat berhasil bahkan untuk JSON yang tidak valid.

   Misalnya, AWS WAF mem-parsing JSON yang tidak valid berikut tanpa kesalahan: 
   + Kehilangan koma: `{"key1":"value1""key2":"value2"}`
   + Kehilangan titik dua: `{"key1":"value1","key2""value2"}`
   + Titik dua ekstra: `{"key1"::"value1","key2""value2"}`

   Untuk kasus-kasus seperti ini di mana penguraian berhasil tetapi hasilnya tidak sepenuhnya valid JSON, hasil dari langkah-langkah selanjutnya dalam evaluasi dapat bervariasi. Ekstraksi mungkin kehilangan beberapa elemen, atau evaluasi aturan mungkin memiliki hasil yang tidak terduga. Kami menyarankan Anda memvalidasi JSON yang Anda terima dalam aplikasi Anda dan menangani JSON yang tidak valid sesuai kebutuhan. 

1. **Ekstrak elemen JSON** - AWS WAF mengidentifikasi subset elemen JSON untuk memeriksa sesuai dengan pengaturan Anda: 
   + Pilihan **lingkup pencocokan JSON** menentukan jenis elemen dalam JSON yang AWS WAF harus memeriksa. 

     Anda dapat menentukan **Kunci**, **Nilai**, atau **Semua** untuk kedua kunci dan nilai. 

     **Semua** tidak memerlukan kecocokan untuk ditemukan di kunci dan kecocokan untuk ditemukan dalam nilai. Ini membutuhkan kecocokan untuk ditemukan di kunci atau nilai atau keduanya. Untuk meminta kecocokan dalam kunci dan nilai, gunakan `AND` pernyataan logis untuk menggabungkan dua aturan kecocokan, satu yang memeriksa kunci dan yang lain yang memeriksa nilai. 
   + Pilihan **Konten untuk memeriksa** menentukan bagaimana untuk menyaring elemen diatur ke subset yang Anda ingin AWS WAF memeriksa. 

     Anda harus menentukan salah satu dari berikut ini:
     + **Konten JSON penuh** - Evaluasi semua elemen. 
     + **Hanya elemen yang disertakan - Evaluasi** hanya elemen yang jalurnya cocok dengan kriteria JSON Pointer yang Anda berikan. Jangan gunakan opsi ini untuk menunjukkan *semua* jalur di JSON. Sebagai gantinya, gunakan **konten JSON Penuh**. 

       Untuk informasi tentang sintaks JSON Pointer, lihat dokumentasi Internet Engineering Task Force (IETF) [JavaScript Object Notation](https://tools.ietf.org/html/rfc6901) (JSON) Pointer. 

       Misalnya, di konsol, Anda dapat memberikan yang berikut: 

       ```
       /dogs/0/name
       /dogs/1/name
       ```

       Di API atau CLI, Anda dapat memberikan yang berikut: 

       ```
       "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]
       ```

   Misalnya, katakan bahwa pengaturan **Konten untuk memeriksa** **hanya elemen yang disertakan**, dan pengaturan elemen yang disertakan adalah`/a/b`. 

   Untuk contoh berikut badan JSON: 

   ```
   { 
     "a":{
       "c":"d",
       "b":{
         "e":{
           "f":"g"
         }
       }
     }
   }
   ```

   Set elemen yang AWS WAF akan memeriksa untuk setiap pengaturan **lingkup kecocokan JSON** tercantum di bawah ini. Perhatikan bahwa kunci`b`, yang merupakan bagian dari jalur elemen yang disertakan, tidak dievaluasi.
   + **Semua**:`e`, `f,` dan`g`.
   + **Kunci**: `e` dan`f`.
   + **Nilai**:`g`.

1. **Periksa set elemen JSON** - AWS WAF menerapkan transformasi teks apa pun yang telah Anda tentukan ke elemen JSON yang diekstraksi dan kemudian mencocokkan elemen yang dihasilkan yang ditetapkan dengan kriteria pencocokan pernyataan aturan. Ini adalah perilaku transformasi dan evaluasi yang sama seperti untuk komponen permintaan web lainnya. Jika salah satu elemen JSON yang diekstraksi cocok, permintaan web cocok untuk aturan tersebut. 

# Menggunakan alamat IP yang diteruskan di AWS WAF
<a name="waf-rule-statement-forwarded-ip-address"></a>

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 HTTP lain. 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](waf-rule-statement-type-ipset-match.md)- Memeriksa alamat IP untuk kecocokan dengan alamat yang ditentukan dalam set IP.
+ [Pertandingan geografis](waf-rule-statement-type-geo-match.md)- Menggunakan alamat IP untuk menentukan negara dan wilayah asal dan mencocokkan negara asal dengan daftar negara.
+ [Pertandingan ASN](waf-rule-statement-type-asn-match.md)- Menggunakan alamat IP untuk menentukan Autonomous System Number (ASN) dan mencocokkan ASN terhadap daftar. ASNs
+ [Menggunakan pernyataan aturan berbasis tarif](waf-rule-statement-type-rate-based.md)- 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 pernyataan aturan ini, baik dari `X-Forwarded-For` header atau dari header HTTP lain, alih-alih menggunakan asal permintaan web. Untuk detail tentang cara memberikan spesifikasi, lihat panduan untuk setiap jenis pernyataan aturan.

**catatan**  
Jika header tidak ada, AWS WAF evaluasi pernyataan apa pun yang menggunakan header itu sebagai “Tidak cocok.” Jika Anda menggunakan pernyataan NOT dengan hasil “Tidak cocok”, AWS WAF ubah evaluasi menjadi “Cocokkan.” Header yang hilang tidak memicu perilaku fallback - hanya nilai header yang tidak valid yang melakukannya.

**Perilaku mundur**  
Saat Anda menggunakan alamat IP yang diteruskan, Anda menunjukkan status kecocokan AWS WAF untuk ditetapkan ke 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.
+ **NO MATCH** - Perlakukan permintaan web sebagai tidak cocok dengan pernyataan aturan. 

**Alamat IP yang digunakan dalam Kontrol AWS WAF 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 [AWS WAF Kontrol Bot](waf-bot-control.md). 

**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 melewati 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, ASN match, dan rate-based, AWS WAF gunakan alamat pertama di header. Misalnya, jika header berisi `10.1.1.1, 127.0.0.0, 10.10.10.10` AWS WAF kegunaan `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 periksa semua alamat di header untuk kecocokan, hingga 10 alamat. Jika header berisi lebih dari 10 alamat, AWS WAF periksa 10 terakhir. 
+ Header yang berisi beberapa alamat harus menggunakan pemisah koma di antara alamat. Jika permintaan menggunakan pemisah selain koma, AWS WAF anggap alamat IP di header salah bentuk.
+ Jika alamat IP di dalam header cacat atau tidak valid, AWS WAF menetapkan permintaan web sebagai cocok dengan 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 pada permintaan sama sekali. Ini AWS WAF berarti itu 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 adalah`US`: 

```
{
  "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"
      }
    }
  }
}
```

# Memeriksa header semu HTTP/2 di AWS WAF
<a name="waf-rule-statement-request-components-for-http2-pseudo-headers"></a>

Bagian ini menjelaskan bagaimana Anda dapat menggunakan AWS WAF untuk memeriksa HTTP/2 pseudo header.

 AWS Sumber daya yang dilindungi yang mendukung lalu lintas HTTP/2 tidak meneruskan header semu HTTP/2 AWS WAF untuk diperiksa, tetapi mereka menyediakan konten header semu dalam komponen permintaan web yang memeriksa. AWS WAF 

Anda dapat menggunakan AWS WAF untuk memeriksa hanya header semu yang tercantum dalam tabel berikut. 


**Konten header semu HTTP/2 dipetakan ke komponen permintaan web**  

| HTTP/2 header semu | Komponen permintaan web untuk diperiksa | Dokumentasi | 
| --- | --- | --- | 
|  `:method`  |  Metode HTTP   |  [Metode HTTP](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-http-method)  | 
|  `:authority`  |  Header `Host`   |  [Header tunggal](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-header)  [Semua header](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-headers)  | 
|  `:path`Jalur URI  | Jalur URI  | [Jalur URI](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-uri-path) | 
|  `:path`kueri  |  String kueri  |  [String kueri](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-query-string) [Parameter kueri tunggal](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-single-query-param) [Semua parameter kueri](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-all-query-params)  | 

# Menggunakan transformasi teks di AWS WAF
<a name="waf-rule-statement-transformation"></a>

Bagian ini menjelaskan cara menyediakan transformasi AWS WAF untuk diterapkan sebelum memeriksa permintaan.

Dalam pernyataan yang mencari pola atau menetapkan batasan, Anda dapat memberikan transformasi AWS WAF untuk diterapkan sebelum memeriksa permintaan. Transformasi memformat ulang permintaan web untuk menghilangkan beberapa format yang tidak biasa yang digunakan penyerang dalam upaya untuk mem-bypass. AWS WAF

Saat Anda menggunakan ini dengan pemilihan komponen permintaan badan JSON, AWS WAF terapkan transformasi Anda setelah mengurai dan mengekstrak elemen untuk diperiksa dari JSON. Untuk informasi selengkapnya, lihat [Tubuh JSON](waf-rule-statement-fields-list.md#waf-rule-statement-request-component-json-body).

Jika Anda memberikan lebih dari satu transformasi, Anda juga mengatur urutan AWS WAF untuk menerapkannya. 

**WCUs**- Setiap transformasi teks adalah 10WCUs.

Dokumentasi AWS WAF konsol dan API juga memberikan panduan untuk pengaturan ini di lokasi berikut: 
+ **Pembuat aturan** di konsol — **Transformasi teks**. Opsi ini tersedia saat Anda menggunakan komponen permintaan. 
+ **Isi pernyataan API** - `TextTransformations`Opsi untuk transformasi teks

Setiap daftar transformasi menunjukkan spesifikasi konsol dan API diikuti oleh deskripsi.

Base64 decode – `BASE64_DECODE`  
AWS WAF menerjemahkan string yang dikodekan Base64.

Base64 decode extension – `BASE64_DECODE_EXT`  
AWS WAF mendekode string yang dikodekan Base64, tetapi menggunakan implementasi pemaaf yang mengabaikan karakter yang tidak valid. 

Command line – `CMD_LINE`  
Opsi ini mengurangi situasi di mana penyerang mungkin menyuntikkan perintah baris perintah sistem operasi dan menggunakan format yang tidak biasa untuk menyamarkan beberapa atau semua perintah.   
Gunakan opsi ini untuk melakukan transformasi berikut:  
+ Hapus karakter berikut: `\ " ' ^`
+ Hapus spasi sebelum karakter berikut: `/ (`
+ Ganti karakter berikut dengan spasi: `, ;`
+ Ganti spasi ganda dengan satu spasi
+ Ubah huruf besar,, ke huruf kecil`A-Z`, `a-z`

Compress whitespace – `COMPRESS_WHITE_SPACE`  
AWS WAF kompres spasi putih dengan mengganti beberapa spasi dengan satu spasi dan mengganti karakter berikut dengan karakter spasi (ASCII 32):  
+ Formfeed (ASCII 12)
+ Tab (ASCII 9)
+ Baris baru (ASCII 10)
+ Pengembalian kereta (ASCII 13)
+ Tab vertikal (ASCII 11)
+ Ruang tidak pecah (ASCII 160)

CSS decode – `CSS_DECODE`  
AWS WAF menerjemahkan karakter yang dikodekan menggunakan aturan escape CSS 2.x. `syndata.html#characters` Fungsi ini menggunakan hingga dua byte dalam proses pendekodean, sehingga dapat membantu mengungkap karakter ASCII yang dikodekan menggunakan pengodean CSS yang biasanya tidak dikodekan. Ini juga berguna dalam melawan penghindaran, yang merupakan kombinasi dari garis miring terbalik dan karakter non-heksadesimal. Misalnya, `ja\vascript` untuk `javascript`.

Escape sequences decode – `ESCAPE_SEQ_DECODE`  
AWS WAF menerjemahkan urutan escape ANSI C berikut:`\a`,,,,`\b`,`\f`,`\n`,`\r`, `\t` `\v` `\\``\?`, `\xHH` (heksadesimal) `\'``\"`, (oktal). `\0OOO` Pengodean yang tidak valid tetap dalam output.

Hex decode – `HEX_DECODE`  
AWS WAF menerjemahkan string karakter heksadesimal menjadi biner.

HTML entity decode – `HTML_ENTITY_DECODE`  
AWS WAF menggantikan karakter yang diwakili dalam format heksadesimal `&#xhhhh;` atau format desimal dengan karakter yang sesuai. `&#nnnn;`  
AWS WAF menggantikan karakter berkode HTML berikut dengan karakter yang tidak dikodekan. Daftar ini menggunakan pengkodean HTML huruf kecil, tetapi penanganannya tidak peka huruf besar/kecil, misalnya `&QuOt;` dan `&quot;` diperlakukan sama.       
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/waf/latest/developerguide/waf-rule-statement-transformation.html)

JS decode – `JS_DECODE`  
AWS WAF menerjemahkan urutan JavaScript pelarian. Jika `\uHHHH` kode berada dalam rentang kode ASCII lebar penuh`FF01-FF5E`, maka byte yang lebih tinggi digunakan untuk mendeteksi dan menyesuaikan byte yang lebih rendah. Jika tidak, hanya byte yang lebih rendah yang digunakan dan byte yang lebih tinggi dinolkan, yang menyebabkan kemungkinan hilangnya informasi.

Lowercase – `LOWERCASE`  
AWS WAF mengkonversi huruf besar (A-Z) ke huruf kecil (a-z).

MD5 – `MD5`  
AWS WAF menghitung MD5 hash dari data dalam input. Hash dihitung dalam bentuk biner mentah.

None – `NONE`  
AWS WAF memeriksa permintaan web seperti yang diterima, tanpa transformasi teks apa pun. 

Normalize path – `NORMALIZE_PATH`  
AWS WAF menormalkan string input dengan menghapus beberapa garis miring, referensi mandiri direktori, dan referensi balik direktori yang tidak ada di awal input.

Normalize path Windows – `NORMALIZE_PATH_WIN`  
AWS WAF mengubah karakter garis miring terbalik menjadi garis miring maju dan kemudian memproses string yang dihasilkan menggunakan transformasi. `NORMALIZE_PATH`

Remove nulls – `REMOVE_NULLS`  
AWS WAF menghapus semua `NULL` byte dari input. 

Replace comments – `REPLACE_COMMENTS`  
AWS WAF menggantikan setiap kemunculan komentar gaya-C (/\$1... \$1/) dengan satu spasi. Itu tidak memampatkan beberapa kejadian berturut-turut. Ini menggantikan komentar yang tidak dihentikan dengan spasi (ASCII 0x20). Itu tidak mengubah penghentian komentar secara mandiri (\$1/).

Replace nulls – `REPLACE_NULLS`  
AWS WAF menggantikan setiap `NULL` byte dalam input dengan karakter spasi (ASCII 0x20).

SQL hex decode – `SQL_HEX_DECODE`  
AWS WAF menerjemahkan data hex SQL. Misalnya, AWS WAF menerjemahkan (`0x414243`) ke (`ABC`).

URL decode – `URL_DECODE`  
AWS WAF menerjemahkan nilai yang dikodekan URL.

URL decode Unicode – `URL_DECODE_UNI`  
Seperti`URL_DECODE`, tetapi dengan dukungan untuk pengkodean khusus Microsoft`%u`. Jika kode berada dalam rentang kode `FF01-FF5E` ASCII lebar penuh, byte yang lebih tinggi digunakan untuk mendeteksi dan menyesuaikan byte yang lebih rendah. Jika tidak, hanya byte yang lebih rendah digunakan dan byte yang lebih tinggi dinolkan.

UTF8 to Unicode – `UTF8_TO_UNICODE`  
AWS WAF mengkonversi semua urutan karakter UTF-8 ke Unicode. Ini membantu menormalkan input dan meminimalkan positif palsu dan negatif palsu untuk bahasa non-Inggris.

# Menggunakan pernyataan scope-down di AWS WAF
<a name="waf-rule-scope-down-statements"></a>

Bagian ini menjelaskan apa pernyataan cakupan ke bawah dan cara kerjanya.

Pernyataan scope-down adalah pernyataan aturan bersarang yang Anda tambahkan di dalam pernyataan grup aturan terkelola atau pernyataan berbasis laju untuk mempersempit kumpulan permintaan yang dievaluasi aturan yang mengandung. Aturan berisi hanya mengevaluasi permintaan yang pertama cocok dengan pernyataan scope-down. 
+ **Pernyataan grup aturan terkelola** - Jika Anda menambahkan pernyataan cakupan bawah ke pernyataan grup aturan terkelola, AWS WAF evaluasi permintaan apa pun yang tidak cocok dengan pernyataan cakupan bawah sebagai tidak cocok dengan grup aturan. Hanya permintaan yang cocok dengan pernyataan scope-down yang dievaluasi terhadap kelompok aturan. Untuk grup aturan terkelola dengan harga yang didasarkan pada jumlah permintaan yang dievaluasi, pernyataan cakupan bawah dapat membantu menahan biaya. 

  Untuk informasi selengkapnya tentang pernyataan grup aturan terkelola, lihat[Menggunakan pernyataan grup aturan terkelola di AWS WAF](waf-rule-statement-type-managed-rule-group.md).
+ **Pernyataan aturan berbasis tarif — Pernyataan** aturan berbasis tarif tanpa tingkat pernyataan cakupan bawah membatasi semua permintaan yang dievaluasi aturan. Jika Anda hanya ingin mengontrol tingkat untuk kategori permintaan tertentu, tambahkan pernyataan cakupan bawah ke aturan berbasis tarif. Misalnya, untuk hanya melacak dan mengontrol tingkat permintaan dari wilayah geografis tertentu, Anda dapat menentukan wilayah geografis tersebut dalam pernyataan kecocokan geografis dan menambahkannya ke aturan berbasis tarif Anda sebagai pernyataan cakupan turun. 

  Untuk informasi selengkapnya tentang pernyataan aturan berbasis tarif, lihat. [Menggunakan pernyataan aturan berbasis tarif di AWS WAF](waf-rule-statement-type-rate-based.md)

Anda dapat menggunakan aturan nestable apa pun dalam pernyataan scope-down. Untuk pernyataan yang tersedia, lihat [Menggunakan pernyataan aturan kecocokan di AWS WAF](waf-rule-statements-match.md) dan[Menggunakan pernyataan aturan logis di AWS WAF](waf-rule-statements-logical.md). Pernyataan WCUs untuk cakupan bawah adalah yang WCUs diperlukan untuk pernyataan aturan yang Anda definisikan di dalamnya. Tidak ada biaya tambahan untuk penggunaan pernyataan cakupan bawah.

Anda dapat mengonfigurasi pernyataan scope-down dengan cara yang sama seperti yang Anda lakukan ketika Anda menggunakan pernyataan dalam aturan reguler. Misalnya, Anda dapat menerapkan transformasi teks ke komponen permintaan web yang sedang Anda periksa dan Anda dapat menentukan alamat IP yang diteruskan untuk digunakan sebagai alamat IP. Konfigurasi ini hanya berlaku untuk pernyataan scope-down dan tidak diwarisi oleh grup aturan terkelola yang berisi atau pernyataan aturan berbasis tarif. 

Misalnya, jika Anda menerapkan transformasi teks ke string kueri dalam pernyataan cakupan bawah Anda, pernyataan cakupan bawah akan memeriksa string kueri setelah menerapkan transformasi. Jika permintaan cocok dengan kriteria pernyataan cakupan bawah, AWS WAF maka meneruskan permintaan web ke aturan yang mengandung dalam keadaan aslinya, tanpa transformasi pernyataan cakupan ke bawah. Aturan yang berisi pernyataan scope-down mungkin menerapkan transformasi teksnya sendiri, tetapi tidak mewarisi pernyataan cakupan ke bawah. 

Anda tidak dapat menggunakan pernyataan scope-down untuk menentukan konfigurasi inspeksi permintaan apa pun untuk pernyataan aturan yang berisi. Anda tidak dapat menggunakan pernyataan scope-down sebagai preprocessor permintaan web untuk pernyataan aturan yang berisi. Satu-satunya peran dari pernyataan scope-down adalah untuk menentukan permintaan mana yang diteruskan ke pernyataan aturan yang berisi untuk inspeksi. 

# Mereferensikan entitas yang dapat digunakan kembali di AWS WAF
<a name="waf-rule-statement-reusable-entities"></a>

Bagian ini menjelaskan cara kerja entitas yang dapat digunakan kembali. AWS WAF

Beberapa aturan menggunakan entitas yang dapat digunakan kembali dan dikelola di luar web AndaACLs, baik oleh Anda AWS, atau AWS Marketplace penjual. Saat entitas yang dapat digunakan kembali diperbarui, AWS WAF menyebarkan pembaruan ke aturan Anda. Misalnya, jika Anda menggunakan grup aturan Aturan AWS Terkelola dalam paket perlindungan (web ACL), saat AWS memperbarui grup aturan, AWS menyebarkan perubahan ke ACL web Anda, untuk memperbarui perilakunya. Jika Anda menggunakan pernyataan set IP dalam aturan, ketika Anda memperbarui set, AWS WAF menyebarkan perubahan ke semua aturan yang mereferensikannya, sehingga setiap paket perlindungan (web ACLs) yang menggunakan aturan tersebut disimpan up-to-date dengan perubahan Anda. 

Berikut ini adalah entitas yang dapat digunakan kembali yang dapat Anda gunakan dalam pernyataan aturan. 
+ **Set IP** — Anda membuat dan mengelola set IP Anda sendiri. Di konsol, Anda dapat mengaksesnya dari panel navigasi. Untuk informasi tentang mengelola set IP, lihat[Set IP dan set pola regex di AWS WAF](waf-referenced-set-managing.md). 
+ **Set pertandingan Regex — Anda membuat dan mengelola set pertandingan** regex Anda sendiri. Di konsol, Anda dapat mengaksesnya dari panel navigasi. Untuk informasi tentang mengelola set pola regex, lihat. [Set IP dan set pola regex di AWS WAF](waf-referenced-set-managing.md) 
+ **AWS Kelompok aturan Aturan AWS Terkelola** — mengelola grup aturan ini. Di konsol, ini tersedia untuk Anda gunakan saat Anda menambahkan grup aturan terkelola ke paket perlindungan (web ACL). Untuk informasi lebih lanjut tentang ini, lihat[AWS Daftar grup aturan Aturan Terkelola](aws-managed-rule-groups-list.md).
+ **AWS Marketplace grup aturan terkelola** — AWS Marketplace penjual mengelola grup aturan ini dan Anda dapat berlangganan untuk menggunakannya. Untuk mengelola langganan Anda, pada panel navigasi konsol, pilih. **AWS Marketplace** Grup aturan AWS Marketplace terkelola dicantumkan saat Anda menambahkan grup aturan terkelola ke paket perlindungan (web ACL). Untuk grup aturan yang belum Anda berlangganan, Anda juga dapat menemukan tautan AWS Marketplace di halaman itu. Untuk informasi selengkapnya tentang grup aturan terkelola AWS Marketplace penjual, lihat[AWS Marketplace kelompok aturan](marketplace-rule-groups.md).
+ **Grup aturan Anda sendiri** — Anda mengelola grup aturan Anda sendiri, biasanya ketika Anda memerlukan beberapa perilaku yang tidak tersedia melalui grup aturan terkelola. Di konsol, Anda dapat mengaksesnya dari panel navigasi. Untuk informasi selengkapnya, lihat [Mengelola grup aturan Anda sendiri](waf-user-created-rule-groups.md).

**Menghapus kumpulan atau grup aturan yang direferensikan**  
Saat Anda menghapus entitas yang direferensikan, AWS WAF periksa apakah saat ini sedang digunakan dalam paket perlindungan (web ACL). Jika AWS WAF menemukan bahwa itu sedang digunakan, itu memperingatkan Anda. AWS WAF Hampir selalu dapat menentukan apakah suatu entitas direferensikan oleh paket perlindungan (web ACL). Namun, dalam kasus yang jarang terjadi, mungkin tidak dapat melakukannya. Jika Anda perlu memastikan bahwa entitas yang ingin Anda hapus tidak digunakan, periksa di web Anda ACLs sebelum menghapusnya.

# Menggunakan pernyataan aturan kecocokan di AWS WAF
<a name="waf-rule-statements-match"></a>

Bagian ini menjelaskan apa itu pernyataan kecocokan dan cara kerjanya.

Pernyataan kecocokan membandingkan permintaan web atau asalnya dengan kriteria yang Anda berikan. Untuk banyak pernyataan jenis ini, AWS WAF membandingkan komponen spesifik dari permintaan untuk konten yang cocok. 

Pernyataan kecocokan adalah nestable. Anda dapat menyarangkan salah satu pernyataan ini di dalam pernyataan aturan logis dan Anda dapat menggunakannya dalam pernyataan cakupan bawah. Untuk informasi tentang pernyataan aturan logis, lihat[Menggunakan pernyataan aturan logis di AWS WAF](waf-rule-statements-logical.md). Untuk informasi tentang pernyataan cakupan bawah, lihat. [Menggunakan pernyataan scope-down di AWS WAF](waf-rule-scope-down-statements.md)

Tabel ini menjelaskan pernyataan pencocokan reguler yang dapat Anda tambahkan ke aturan dan memberikan beberapa pedoman untuk menghitung penggunaan unit kapasitas (WCU) paket perlindungan (web ACL) untuk masing-masing. Untuk informasi tentang WCUs, lihat[Unit kapasitas ACL Web (WCUs) di AWS WAF](aws-waf-capacity-units.md). 


| Pernyataan Pertandingan | Deskripsi | WCUs | 
| --- | --- | --- | 
| [Pertandingan geografis](waf-rule-statement-type-geo-match.md) | Memeriksa negara asal permintaan dan menerapkan label untuk negara dan wilayah asal.  | 1 | 
|  [Pertandingan ASN](waf-rule-statement-type-asn-match.md)  |  Memeriksa permintaan terhadap ASN yang terkait dengan alamat IP dan rentang alamat.  |  1  | 
|  [Pertandingan set IP](waf-rule-statement-type-ipset-match.md)  |  Memeriksa permintaan terhadap satu set alamat IP dan rentang alamat.   |  1 untuk sebagian besar kasus. Jika Anda mengkonfigurasi pernyataan untuk menggunakan header dengan alamat IP diteruskan dan menentukan posisi di headerAny, kemudian meningkatkan WCUs dengan 4.  | 
|  [Pernyataan aturan pencocokan label](waf-rule-statement-type-label-match.md)  |  Memeriksa permintaan label yang telah ditambahkan oleh aturan lain dalam paket perlindungan yang sama (web ACL).  |  1   | 
| [Pernyataan aturan pertandingan Regex](waf-rule-statement-type-regex-match.md) | Membandingkan pola regex terhadap komponen permintaan tertentu.  | 3, sebagai biaya dasar. Jika Anda menggunakan komponen permintaan **Semua parameter kueri**, tambahkan 10 WCUs. Jika Anda menggunakan **badan JSON** komponen permintaan, gandakan biaya WCUs dasar. Untuk setiap **transformasi Teks** yang Anda terapkan, tambahkan 10 WCUs.  | 
|  [Set pola Regex](waf-rule-statement-type-regex-pattern-set-match.md)  |  Membandingkan pola regex terhadap komponen permintaan tertentu.   |  25 per set pola, sebagai biaya dasar.  Jika Anda menggunakan komponen permintaan **Semua parameter kueri**, tambahkan 10 WCUs. Jika Anda menggunakan **badan JSON** komponen permintaan, gandakan biaya WCUs dasar. Untuk setiap **transformasi Teks** yang Anda terapkan, tambahkan 10 WCUs.  | 
| [Kendala ukuran](waf-rule-statement-type-size-constraint-match.md) | Memeriksa batasan ukuran terhadap komponen permintaan tertentu.  | 1, sebagai biaya dasar.  Jika Anda menggunakan komponen permintaan **Semua parameter kueri**, tambahkan 10 WCUs. Jika Anda menggunakan **badan JSON** komponen permintaan, gandakan biaya WCUs dasar. Untuk setiap **transformasi Teks** yang Anda terapkan, tambahkan 10 WCUs.  | 
| [SQLimenyerang](waf-rule-statement-type-sqli-match.md) | Memeriksa kode SQL berbahaya dalam komponen permintaan tertentu.  | 20, sebagai biaya dasar. Jika Anda menggunakan komponen permintaan **Semua parameter kueri**, tambahkan 10 WCUs. Jika Anda menggunakan **badan JSON** komponen permintaan, gandakan biaya WCUs dasar. Untuk setiap **transformasi Teks** yang Anda terapkan, tambahkan 10 WCUs. | 
| [Pertandingan string](waf-rule-statement-type-string-match.md) | Membandingkan string ke komponen permintaan tertentu.  |  Biaya dasar tergantung pada jenis kecocokan string dan antara 1 dan 10. Jika Anda menggunakan komponen permintaan **Semua parameter kueri**, tambahkan 10 WCUs. Jika Anda menggunakan **badan JSON** komponen permintaan, gandakan biaya WCUs dasar. Untuk setiap **transformasi Teks** yang Anda terapkan, tambahkan 10 WCUs.  | 
| [Serangan skrip XSS](waf-rule-statement-type-xss-match.md) | Memeriksa serangan scripting lintas situs dalam komponen permintaan tertentu.  | 40, sebagai biaya dasar. Jika Anda menggunakan komponen permintaan **Semua parameter kueri**, tambahkan 10 WCUs. Jika Anda menggunakan **badan JSON** komponen permintaan, gandakan biaya WCUs dasar. Untuk setiap **transformasi Teks** yang Anda terapkan, tambahkan 10 WCUs. | 

# Pernyataan aturan kecocokan geografis
<a name="waf-rule-statement-type-geo-match"></a>

Bagian ini menjelaskan apa itu pernyataan kecocokan geografis dan cara kerjanya.

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
<a name="waf-rule-statement-geo-how-to-use"></a>

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. 
**catatan**  
Untuk memfilter lalu lintas dari Hong Kong, gunakan kode negara ISO 3166-1 alpha-2 `HK` dalam pernyataan geo match Anda.
+ **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](waf-rule-statement-type-label-match.md) dan[Pelabelan permintaan web di AWS WAF](waf-labels.md).

## Cara kerja pernyataan geo match
<a name="waf-rule-statement-geo-how-it-works"></a>

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, seperti`X-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](https://support.maxmind.com/hc/en-us/sections/4407519834267-IP-Geolocation). Jika menurut Anda salah satu data GeoIP salah, Anda dapat mengirimkan permintaan koreksi ke Maxmind di [MaxMind Correct](https://support.maxmind.com/hc/en-us/articles/4408252036123-GeoIP-Correction) Geo Data. IP2 

   AWS WAF menggunakan kode negara dan wilayah alfa-2 dari standar Organisasi Internasional untuk Standardisasi (ISO) 3166. Anda dapat menemukan kode di lokasi berikut:
   + Di situs web ISO, Anda dapat mencari kode negara di [ISO Online Browsing Platform (OBP)](https://www.iso.org/obp/ui#home). 
   + Di Wikipedia, kode negara terdaftar di [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2).

     Kode wilayah untuk suatu negara tercantum di URL`https://en.wikipedia.org/wiki/ISO_3166-2:<ISO country code>`. [Misalnya, wilayah untuk Amerika Serikat berada [pada ISO 3166-2:AS dan untuk Ukraina mereka berada di ISO](https://en.wikipedia.org/wiki/ISO_3166-2:US) 3166-2:UA.](https://en.wikipedia.org/wiki/ISO_3166-2:UA)

1. **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 adalah`awswaf:clientip:geo:country:<ISO country code>`. Contoh untuk Amerika Serikat`awswaf:clientip:geo:country:US`:.

     Label wilayah adalah`awswaf: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 adalah`awswaf:forwardedip:geo:country:<ISO country code>`. Contoh untuk Amerika Serikat`awswaf:forwardedip:geo:country:US`:.

     Label wilayah adalah`awswaf: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` 

1. **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 pencocokan 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
<a name="cloudfront-distributions-geo-restriction"></a>

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 aturan
<a name="geo-match-statement-characteristics"></a>

**Nestable** - Anda dapat membuat jenis pernyataan ini. 

**WCUs **— 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 yang cocok untuk permintaan, agar cocok atau tidak cocok. Untuk informasi selengkapnya, lihat [Menggunakan alamat IP yang diteruskan](waf-rule-statement-forwarded-ip-address.md). 

## Di mana menemukan pernyataan aturan ini
<a name="geo-match-statement-where-to-find"></a>
+ **Pembuat aturan** di konsol — Untuk **opsi Permintaan**, pilih **Berasal dari negara di**.
+ **API** — [GeoMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html)

## Contoh
<a name="waf-rule-statement-geo-examples"></a>

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. 

1. `AND`pernyataan 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"
  }
}
```

# Pernyataan aturan kecocokan set IP
<a name="waf-rule-statement-type-ipset-match"></a>

Bagian ini menjelaskan apa pernyataan pencocokan set IP dan cara kerjanya.

Pernyataan pencocokan set IP memeriksa alamat IP permintaan web terhadap serangkaian alamat IP dan rentang alamat. Gunakan ini untuk mengizinkan atau memblokir permintaan web berdasarkan alamat IP tempat permintaan berasal. Secara default, AWS WAF menggunakan alamat IP dari asal permintaan web, tetapi Anda dapat mengonfigurasi aturan untuk menggunakan header HTTP seperti `X-Forwarded-For` sebagai gantinya. 



AWS WAF mendukung semua IPv4 dan rentang IPv6 CIDR kecuali untuk`/0`. Untuk informasi lebih lanjut tentang notasi CIDR, lihat entri Wikipedia [Classless Inter-Domain Routing](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). Satu set IP dapat menampung hingga 10.000 alamat IP atau rentang alamat IP untuk diperiksa.

**catatan**  
Setiap aturan pencocokan set IP mereferensikan kumpulan IP, yang Anda buat dan pertahankan secara independen dari aturan Anda. Anda dapat menggunakan satu set IP dalam beberapa aturan, dan ketika Anda memperbarui set yang direferensikan, AWS WAF secara otomatis memperbarui semua aturan yang mereferensikannya.   
Untuk informasi tentang membuat dan mengelola kumpulan IP, lihat[Membuat dan mengelola IP yang ditetapkan AWS WAF](waf-ip-set-managing.md).

Saat Anda menambahkan atau memperbarui aturan dalam grup aturan atau paket perlindungan (web ACL), pilih opsi **IP set** dan pilih nama kumpulan IP yang ingin Anda gunakan. 

## Karakteristik pernyataan aturan
<a name="ipset-match-characteristics"></a>

**Nestable** - Anda dapat membuat sarang jenis pernyataan ini. 

**WCUs**- 1 WCU untuk sebagian besar. Jika Anda mengonfigurasi pernyataan untuk menggunakan alamat IP yang diteruskan dan menentukan posisiANY, tingkatkan penggunaan WCU sebesar 4.

Pernyataan ini menggunakan pengaturan berikut: 
+ **Spesifikasi set IP** - Pilih set IP yang ingin Anda gunakan dari daftar atau buat yang baru. 
+ **(Opsional) Konfigurasi IP yang diteruskan** - Nama header IP diteruskan alternatif untuk digunakan sebagai pengganti asal permintaan. Anda menentukan apakah akan cocok dengan alamat pertama, terakhir, atau alamat apa pun di header. Anda juga menentukan perilaku fallback untuk diterapkan ke permintaan web dengan alamat IP cacat di header yang ditentukan. Perilaku fallback menetapkan hasil pencocokan untuk permintaan, agar cocok atau tidak cocok. Untuk informasi selengkapnya, lihat [Menggunakan alamat IP yang diteruskan](waf-rule-statement-forwarded-ip-address.md). 

## Di mana menemukan pernyataan aturan ini
<a name="ipset-match-where-to-find"></a>

**Di mana menemukan pernyataan aturan ini**
+ **Pembuat aturan** di konsol — Untuk **opsi Permintaan**, pilih **Berasal dari alamat IP di**.
+ **Tambahkan halaman aturan dan grup aturan saya sendiri** di konsol — Pilih opsi **set IP**.
+ **API** — [IPSetReferenceStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_IPSetReferenceStatement.html)

# Pernyataan aturan pencocokan Autonomous System Number (ASN)
<a name="waf-rule-statement-type-asn-match"></a>

Pernyataan aturan pencocokan ASN AWS WAF memungkinkan Anda untuk memeriksa lalu lintas web berdasarkan Nomor Sistem Otonom (ASN) yang terkait dengan alamat IP permintaan. ASNs adalah pengidentifikasi unik yang ditugaskan ke jaringan internet besar yang dikelola oleh organisasi seperti penyedia layanan internet, perusahaan, universitas, atau lembaga pemerintah. Dengan menggunakan pernyataan pencocokan ASN, Anda dapat mengizinkan atau memblokir lalu lintas dari organisasi jaringan tertentu tanpa harus mengelola alamat IP individual. Pendekatan ini menawarkan cara yang lebih stabil dan efisien untuk mengontrol akses dibandingkan dengan aturan berbasis IP, karena ASNs perubahan lebih jarang daripada rentang IP. 

Pencocokan ASN sangat berguna untuk skenario seperti memblokir lalu lintas dari jaringan bermasalah yang diketahui atau mengizinkan akses hanya dari jaringan mitra tepercaya. Pernyataan pencocokan ASN memberikan fleksibilitas dalam menentukan alamat IP klien melalui konfigurasi IP yang diteruskan opsional, membuatnya kompatibel dengan berbagai pengaturan jaringan termasuk yang menggunakan jaringan pengiriman konten () CDNs atau proxy terbalik.

**catatan**  
Suplemen pencocokan ASN, tetapi tidak menggantikan, otentikasi standar dan kontrol otorisasi. Kami menyarankan Anda menerapkan mekanisme otentikasi dan otorisasi, seperti IAM, untuk memverifikasi identitas semua permintaan dalam aplikasi Anda.

## Cara kerja pernyataan pencocokan ASN
<a name="waf-rule-statement-type-asn-match-how-it-works"></a>

AWS WAF menentukan ASN permintaan berdasarkan alamat IP-nya. Secara default, AWS WAF menggunakan alamat IP asal permintaan web. Anda dapat mengonfigurasi AWS WAF untuk menggunakan alamat IP dari header permintaan alternatif, seperti`X-Forwarded-For`, dengan mengaktifkan konfigurasi IP yang diteruskan dalam pengaturan pernyataan aturan.

Pernyataan pencocokan ASN membandingkan ASN permintaan dengan daftar yang ASNs ditentukan dalam aturan. Jika ASN cocok dengan satu dalam daftar, pernyataan mengevaluasi ke true, dan tindakan aturan terkait diterapkan.

### Penanganan tidak dipetakan ASNs
<a name="waf-rule-statement-type-asn-match-unmapped"></a>

Jika AWS WAF tidak dapat menentukan ASN untuk alamat IP yang valid, ia menetapkan ASN 0. Anda dapat menyertakan ASN 0 dalam aturan Anda untuk menangani kasus ini secara eksplisit.

### Perilaku Fallback untuk Alamat IP Tidak Valid
<a name="waf-rule-statement-type-asn-match-fallback"></a>

Saat mengonfigurasi pernyataan pencocokan ASN untuk menggunakan alamat IP yang diteruskan, Anda dapat menentukan perilaku fallback dari *Match or *No match** for request dengan alamat IP yang tidak valid atau hilang di header yang ditentukan.

## Karakteristik pernyataan aturan
<a name="waf-rule-statement-type-asn-match-characteristics"></a>

**Nestable** - Anda dapat membuat jenis pernyataan ini. 

**WCUs**— 1 WCU

Pernyataan ini menggunakan pengaturan berikut:
+ **Daftar ASN** — Array nomor ASN untuk membandingkan kecocokan ASN. Nilai yang valid berkisar dari 0 hingga 4294967295. Anda dapat menentukan hingga 100 ASNs untuk setiap aturan.
+ **(Opsional) Konfigurasi IP yang diteruskan** — Secara default, AWS WAF menggunakan alamat IP di asal permintaan web untuk menentukan ASN. Atau, Anda dapat mengonfigurasi aturan untuk menggunakan IP yang diteruskan di header HTTP seperti `X-Forwarded-For` sebagai gantinya. Anda menentukan apakah akan menggunakan alamat pertama, terakhir, atau alamat apa pun 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 [Menggunakan alamat IP yang diteruskan](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-forwarded-ip-address.html).

## Di mana menemukan pernyataan aturan ini
<a name="waf-rule-statement-type-asn-match-where-to-find"></a>
+ **Pembuat aturan** di konsol — Untuk **opsi Permintaan**, pilih **Berasal dari ASN** di.
+ **API** — [AsnMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_AsnMatchStatement.html)

## Contoh
<a name="waf-rule-statement-type-asn-match-examples"></a>

Contoh ini memblokir permintaan yang berasal dari dua spesifik ASNs yang berasal dari `X-Forwarded-For` header. Jika alamat IP di header salah bentuk, perilaku fallback yang dikonfigurasi adalah. `NO_MATCH`

```
{
  "Action": {
    "Block": {}
  },
  "Name": "AsnMatchStatementRule",
  "Priority": 1,
  "Statement": {
    "AsnMatchStatement": {
      "AsnList": [64496, 64500]
    },
    "ForwardedIPConfig": {
      "FallbackBehavior": "NO_MATCH",
      "HeaderName": "X-Forwarded-For"
    }
  },
  "VisibilityConfig": {
    "CloudWatchMetricsEnabled": true,
    "MetricName": "AsnMatchRuleMetrics",
    "SampledRequestsEnabled": true
  }
},
"VisibilityConfig": {
  "CloudWatchMetricsEnabled": true,
  "MetricName": "WebAclMetrics",
  "SampledRequestsEnabled": true
}
}
```

# Pernyataan aturan pencocokan label
<a name="waf-rule-statement-type-label-match"></a>

Bagian ini menjelaskan apa itu pernyataan pencocokan label dan cara kerjanya.

Pernyataan pencocokan label memeriksa label yang ada di permintaan web terhadap spesifikasi string. Label yang tersedia untuk aturan untuk inspeksi adalah label yang telah ditambahkan ke permintaan web oleh aturan lain dalam evaluasi paket perlindungan (web ACL) yang sama. 

Label tidak bertahan di luar evaluasi paket perlindungan (web ACL), tetapi Anda dapat mengakses metrik label CloudWatch dan Anda dapat melihat ringkasan informasi label untuk paket perlindungan apa pun (ACL web) di konsol. AWS WAF Untuk informasi selengkapnya, lihat [Label metrik dan dimensi](waf-metrics.md#waf-metrics-label) dan [Memantau dan menyetel perlindungan Anda AWS WAF](web-acl-testing-activities.md). Anda juga dapat melihat label di log. Untuk informasi, lihat [Bidang log untuk lalu lintas paket perlindungan (web ACL)](logging-fields.md).

**catatan**  
Pernyataan pencocokan label hanya dapat melihat label dari aturan yang dievaluasi sebelumnya dalam paket perlindungan (web ACL). Untuk informasi tentang cara AWS WAF mengevaluasi aturan dan grup aturan dalam paket perlindungan (web ACL), lihat. [Menetapkan prioritas aturan](web-acl-processing-order.md)

Untuk informasi selengkapnya tentang menambahkan dan mencocokkan label, lihat[Pelabelan permintaan web di AWS WAF](waf-labels.md).

## Karakteristik pernyataan aturan
<a name="label-match-characteristics"></a>

**Nestable** - Anda dapat membuat jenis pernyataan ini. 

**WCUs**— 1 WCU

Pernyataan ini menggunakan pengaturan berikut: 
+ **Lingkup pencocokan** - Setel ini ke **Label** agar sesuai dengan nama label dan, secara opsional, ruang nama dan awalan sebelumnya. Setel ini ke **Namespace** agar sesuai dengan beberapa atau semua spesifikasi namespace dan, secara opsional, awalan sebelumnya. 
+ **Key** — String yang ingin Anda cocokkan. Jika Anda menentukan cakupan pencocokan namespace, ini seharusnya hanya menentukan ruang nama dan opsional awalan, dengan titik dua akhir. Jika Anda menentukan lingkup pencocokan label, ini harus menyertakan nama label dan secara opsional dapat menyertakan ruang nama dan awalan sebelumnya. 

Untuk informasi selengkapnya tentang pengaturan ini, lihat [AWS WAF aturan yang cocok dengan label](waf-rule-label-match.md) dan[AWS WAF contoh kecocokan label](waf-rule-label-match-examples.md).

## Di mana menemukan pernyataan aturan ini
<a name="label-match-where-to-find"></a>
+ **Pembuat aturan** di konsol — Untuk **opsi Permintaan**, pilih **Memiliki label**.
+ **API** — [LabelMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_LabelMatchStatement.html)

# Pernyataan aturan pertandingan Regex
<a name="waf-rule-statement-type-regex-match"></a>

Bagian ini menjelaskan apa itu pernyataan kecocokan regex dan cara kerjanya.

Pernyataan pencocokan regex menginstruksikan AWS WAF untuk mencocokkan komponen permintaan terhadap ekspresi reguler tunggal (regex). Permintaan web cocok dengan pernyataan jika komponen permintaan cocok dengan regex yang Anda tentukan. 

Jenis pernyataan ini adalah alternatif yang baik [Pernyataan aturan kecocokan set pola Regex](waf-rule-statement-type-regex-pattern-set-match.md) untuk situasi di mana Anda ingin menggabungkan kriteria pencocokan Anda menggunakan logika matematika. Misalnya, jika Anda ingin komponen permintaan cocok dengan beberapa pola regex dan tidak cocok dengan yang lain, Anda dapat menggabungkan pernyataan pencocokan regex menggunakan dan. [ANDpernyataan aturan](waf-rule-statement-type-and.md) [NOTpernyataan aturan](waf-rule-statement-type-not.md) 

AWS WAF mendukung sintaks pola yang digunakan oleh pustaka PCRE `libpcre` dengan beberapa pengecualian. Pustaka didokumentasikan di [PCRE - Perl Compatible](http://www.pcre.org/) Regular Expressions. Untuk informasi tentang AWS WAF dukungan, lihat[Sintaks ekspresi reguler yang didukung di AWS WAF](waf-regex-pattern-support.md).

## Karakteristik pernyataan aturan
<a name="regex-match-characteristics"></a>

**Nestable** - Anda dapat membuat sarang jenis pernyataan ini. 

**WCUs**— 3 WCUs, sebagai biaya dasar. Jika Anda menggunakan komponen permintaan **Semua parameter kueri**, tambahkan 10 WCUs. Jika Anda menggunakan **badan JSON** komponen permintaan, gandakan biaya WCUs dasar. Untuk setiap **transformasi Teks** yang Anda terapkan, tambahkan 10 WCUs.

Jenis pernyataan ini beroperasi pada komponen permintaan web, dan memerlukan pengaturan komponen permintaan berikut: 
+ **Komponen permintaan** — Bagian dari permintaan web untuk memeriksa, misalnya, string kueri atau badan.
**Awas**  
Jika Anda memeriksa komponen permintaan **Body**, **JSON body**, **Header**, atau **Cookie**, baca tentang batasan jumlah konten yang AWS WAF dapat diperiksa. [Komponen permintaan web yang terlalu besar di AWS WAF](waf-oversize-request-components.md) 

  Untuk informasi tentang komponen permintaan web, lihat[Menyesuaikan pengaturan pernyataan aturan di AWS WAF](waf-rule-statement-fields.md).
+ **Transformasi teks opsional** — Transformasi yang AWS WAF ingin Anda lakukan pada komponen permintaan sebelum memeriksanya. Misalnya, Anda dapat mengubah ke huruf kecil atau menormalkan ruang putih. Jika Anda menentukan lebih dari satu transformasi, AWS WAF proses mereka dalam urutan yang tercantum. Untuk informasi, lihat [Menggunakan transformasi teks di AWS WAF](waf-rule-statement-transformation.md).

## Di mana menemukan pernyataan aturan ini
<a name="regex-match-where-to-find"></a>
+ **Pembuat aturan** di konsol — Untuk **jenis Match**, pilih **Match regular expression**.
+ **API** — [RegexMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_RegexMatchStatement.html)

# Pernyataan aturan kecocokan set pola Regex
<a name="waf-rule-statement-type-regex-pattern-set-match"></a>

Bagian ini menjelaskan apa itu pernyataan pencocokan set pola regex dan cara kerjanya.

Pencocokan set pola regex memeriksa bagian permintaan web yang Anda tentukan untuk pola ekspresi reguler yang telah Anda tentukan di dalam kumpulan pola regex.

AWS WAF mendukung sintaks pola yang digunakan oleh pustaka PCRE `libpcre` dengan beberapa pengecualian. Pustaka didokumentasikan di [PCRE - Perl Compatible](http://www.pcre.org/) Regular Expressions. Untuk informasi tentang AWS WAF dukungan, lihat[Sintaks ekspresi reguler yang didukung di AWS WAF](waf-regex-pattern-support.md).

**catatan**  
Setiap aturan pencocokan set pola regex mereferensikan kumpulan pola regex, yang Anda buat dan pertahankan terlepas dari aturan Anda. Anda dapat menggunakan pola regex tunggal yang diatur dalam beberapa aturan, dan ketika Anda memperbarui set yang direferensikan, AWS WAF secara otomatis memperbarui semua aturan yang mereferensikannya.   
Untuk informasi tentang membuat dan mengelola kumpulan pola regex, lihat. [Membuat dan mengelola pola regex yang diatur AWS WAF](waf-regex-pattern-set-managing.md)

Pernyataan pencocokan set pola regex menginstruksikan AWS WAF untuk mencari salah satu pola dalam set di dalam komponen permintaan yang Anda pilih. Permintaan web akan cocok dengan pernyataan aturan set pola jika komponen permintaan cocok dengan salah satu pola dalam set. 

Jika Anda ingin menggabungkan kecocokan pola regex Anda menggunakan logika, misalnya untuk mencocokkan dengan beberapa ekspresi reguler dan tidak cocok dengan yang lain, pertimbangkan untuk menggunakan. [Pernyataan aturan pertandingan Regex](waf-rule-statement-type-regex-match.md) 

## Karakteristik pernyataan aturan
<a name="regex-pattern-set-match-characteristics"></a>

**Nestable** - Anda dapat membuat jenis pernyataan ini. 

**WCUs**— 25 WCUs, sebagai biaya dasar. Jika Anda menggunakan komponen permintaan **Semua parameter kueri**, tambahkan 10 WCUs. Jika Anda menggunakan **badan JSON** komponen permintaan, gandakan biaya WCUs dasar. Untuk setiap **transformasi Teks** yang Anda terapkan, tambahkan 10 WCUs.

Jenis pernyataan ini beroperasi pada komponen permintaan web, dan memerlukan pengaturan komponen permintaan berikut: 
+ **Komponen permintaan** — Bagian dari permintaan web untuk memeriksa, misalnya, string kueri atau badan.
**Awas**  
Jika Anda memeriksa komponen permintaan **Badan, badan** **JSON**, **Header**, atau **Cookie**, baca tentang batasan jumlah konten yang AWS WAF dapat diperiksa. [Komponen permintaan web yang terlalu besar di AWS WAF](waf-oversize-request-components.md) 

  Untuk informasi tentang komponen permintaan web, lihat[Menyesuaikan pengaturan pernyataan aturan di AWS WAF](waf-rule-statement-fields.md).
+ **Transformasi teks opsional** — Transformasi yang AWS WAF ingin Anda lakukan pada komponen permintaan sebelum memeriksanya. Misalnya, Anda dapat mengubah ke huruf kecil atau menormalkan ruang putih. Jika Anda menentukan lebih dari satu transformasi, AWS WAF proses mereka dalam urutan yang tercantum. Untuk informasi, lihat [Menggunakan transformasi teks di AWS WAF](waf-rule-statement-transformation.md).

Pernyataan ini membutuhkan pengaturan berikut: 
+ Spesifikasi set pola Regex - Pilih set pola regex yang ingin Anda gunakan dari daftar atau buat yang baru. 

## Di mana menemukan pernyataan aturan ini
<a name="regex-pattern-set-match-where-to-find"></a>
+ **Pembuat aturan** di konsol — Untuk **jenis Pencocokan**, pilih **Kondisi pencocokan string** > **Pola kecocokan dari kumpulan ekspresi reguler**.
+ **API** — [RegexPatternSetReferenceStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_RegexPatternSetReferenceStatement.html)

# Pernyataan aturan batasan ukuran
<a name="waf-rule-statement-type-size-constraint-match"></a>

Bagian ini menjelaskan apa itu pernyataan batasan ukuran dan cara kerjanya.

Pernyataan batasan ukuran membandingkan jumlah byte yang AWS WAF diterima untuk komponen permintaan web dengan nomor yang Anda berikan, dan cocok sesuai dengan kriteria perbandingan Anda. 

Kriteria perbandingan adalah operator seperti lebih besar dari (>) atau kurang dari (<). Misalnya, Anda dapat mencocokkan permintaan yang memiliki string kueri dengan ukuran yang lebih besar dari 100 byte. 

Jika Anda memeriksa jalur URI, apa pun `/` di jalur dihitung sebagai satu karakter. Misalnya, jalur `/logo.jpg` URI memiliki panjang sembilan karakter.

**catatan**  
Pernyataan ini hanya memeriksa ukuran komponen permintaan web. Itu tidak memeriksa isi komponen. 

## Karakteristik pernyataan aturan
<a name="size-constraint-match-characteristics"></a>

**Nestable** - Anda dapat membuat sarang jenis pernyataan ini. 

**WCUs**— 1 WCU, sebagai biaya dasar. Jika Anda menggunakan komponen permintaan **Semua parameter kueri**, tambahkan 10 WCUs. Jika Anda menggunakan **badan JSON** komponen permintaan, gandakan biaya WCUs dasar. Untuk setiap **transformasi Teks** yang Anda terapkan, tambahkan 10 WCUs.

Jenis pernyataan ini beroperasi pada komponen permintaan web, dan memerlukan pengaturan komponen permintaan berikut: 
+ **Komponen permintaan** — Bagian dari permintaan web untuk memeriksa, misalnya, string kueri atau badan. Untuk informasi tentang komponen permintaan web, lihat[Menyesuaikan pengaturan pernyataan aturan di AWS WAF](waf-rule-statement-fields.md).

  Pernyataan batasan ukuran hanya memeriksa ukuran komponen setelah transformasi apa pun diterapkan. Itu tidak memeriksa isi komponen. 
+ **Transformasi teks opsional** — Transformasi yang AWS WAF ingin Anda lakukan pada komponen permintaan sebelum memeriksa ukurannya. Misalnya, Anda dapat mengompres spasi putih atau memecahkan kode entitas HTML. Jika Anda menentukan lebih dari satu transformasi, AWS WAF proses mereka dalam urutan yang tercantum. Untuk informasi, lihat [Menggunakan transformasi teks di AWS WAF](waf-rule-statement-transformation.md).

Selain itu, pernyataan ini memerlukan pengaturan berikut: 
+ **Kondisi pencocokan ukuran** - Ini menunjukkan operator perbandingan numerik yang akan digunakan untuk membandingkan ukuran yang Anda berikan dengan komponen permintaan yang Anda pilih. Pilih operator dari daftar.
+ **Ukuran** - Pengaturan ukuran, dalam byte, untuk digunakan dalam perbandingan. 

## Di mana menemukan pernyataan aturan ini
<a name="size-constraint-match-where-to-find"></a>
+ **Pembuat aturan** di konsol — Untuk **jenis Pencocokan**, di bawah **Kondisi kecocokan ukuran**, pilih kondisi yang ingin Anda gunakan.
+ **API** — [SizeConstraintStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_SizeConstraintStatement.html)

# Pernyataan aturan serangan injeksi SQL
<a name="waf-rule-statement-type-sqli-match"></a>

Bagian ini menjelaskan apa pernyataan aturan injeksi SQL dan cara kerjanya.

Pernyataan aturan injeksi SQL memeriksa kode SQL berbahaya. Penyerang memasukkan kode SQL berbahaya ke dalam permintaan web untuk melakukan hal-hal seperti memodifikasi database Anda atau mengekstrak data darinya.

## Karakteristik pernyataan aturan
<a name="sqli-match-characteristics"></a>

**Nestable** - Anda dapat membuat jenis pernyataan ini. 

**WCUs**— Biaya dasar tergantung pada pengaturan tingkat sensitivitas untuk pernyataan aturan: Low biaya 20 dan High biaya 30. 

Jika Anda menggunakan komponen permintaan **Semua parameter kueri**, tambahkan 10 WCUs. Jika Anda menggunakan **badan JSON** komponen permintaan, gandakan biaya WCUs dasar. Untuk setiap **transformasi Teks** yang Anda terapkan, tambahkan 10 WCUs.

Jenis pernyataan ini beroperasi pada komponen permintaan web, dan memerlukan pengaturan komponen permintaan berikut: 
+ **Komponen permintaan** — Bagian dari permintaan web untuk memeriksa, misalnya, string kueri atau badan.
**Awas**  
Jika Anda memeriksa komponen permintaan **Body**, **JSON body**, **Header**, atau **Cookie**, baca tentang batasan jumlah konten yang AWS WAF dapat diperiksa. [Komponen permintaan web yang terlalu besar di AWS WAF](waf-oversize-request-components.md) 

  Untuk informasi tentang komponen permintaan web, lihat[Menyesuaikan pengaturan pernyataan aturan di AWS WAF](waf-rule-statement-fields.md).
+ **Transformasi teks opsional** — Transformasi yang AWS WAF ingin Anda lakukan pada komponen permintaan sebelum memeriksanya. Misalnya, Anda dapat mengubah ke huruf kecil atau menormalkan ruang putih. Jika Anda menentukan lebih dari satu transformasi, AWS WAF proses mereka dalam urutan yang tercantum. Untuk informasi, lihat [Menggunakan transformasi teks di AWS WAF](waf-rule-statement-transformation.md).

Selain itu, pernyataan ini memerlukan pengaturan berikut: 
+ **Tingkat sensitivitas** - Pengaturan ini menyetel sensitivitas kriteria kecocokan injeksi SQL. Opsi nya adalah LOW dan HIGH. Pengaturan default-nya adalah LOW. 

  HIGHPengaturan mendeteksi lebih banyak serangan injeksi SQL, dan merupakan pengaturan yang disarankan. Karena sensitivitas yang lebih tinggi, pengaturan ini menghasilkan lebih banyak kesalahan positif, terutama jika permintaan web Anda biasanya berisi string yang tidak biasa. Selama pengujian dan penyetelan paket perlindungan (web ACL), Anda mungkin perlu melakukan lebih banyak pekerjaan untuk mengurangi positif palsu. Untuk informasi, lihat [Menguji dan menyetel perlindungan Anda AWS WAF](web-acl-testing.md). 

  Pengaturan yang lebih rendah memberikan deteksi injeksi SQL yang kurang ketat, yang juga menghasilkan lebih sedikit positif palsu. LOWdapat menjadi pilihan yang lebih baik untuk sumber daya yang memiliki perlindungan lain terhadap serangan injeksi SQL atau yang memiliki toleransi rendah untuk positif palsu. 

## Di mana menemukan pernyataan aturan ini
<a name="sqli-match-where-to-find"></a>
+ **Pembuat aturan** di konsol - Untuk **jenis Match**, pilih **Kondisi kecocokan serang** > **Berisi serangan injeksi SQL**.
+ **API** — [SqliMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_SqliMatchStatement.html)

# Pernyataan aturan kecocokan string
<a name="waf-rule-statement-type-string-match"></a>

Bagian ini menjelaskan apa pernyataan pencocokan string dan cara kerjanya.

Pernyataan pencocokan string menunjukkan string yang AWS WAF ingin Anda cari dalam permintaan, di mana permintaan untuk mencari, dan bagaimana. Misalnya, Anda dapat mencari string tertentu di awal string kueri apa pun dalam permintaan atau sebagai pencocokan persis untuk `User-agent` header permintaan. Biasanya, string terdiri dari karakter ASCII yang dapat dicetak, tetapi Anda dapat menggunakan karakter apa pun dari heksadesimal 0x00 hingga 0xFF (desimal 0 hingga 255). 

## Karakteristik pernyataan aturan
<a name="string-match-characteristics"></a>

**Nestable** - Anda dapat membuat jenis pernyataan ini. 

**WCUs**— Biaya dasar tergantung pada jenis kecocokan yang Anda gunakan.
+ **Tepat cocok dengan string** — 2 
+ **Dimulai dengan string** - 2 
+ **Berakhir dengan string** — 2 
+ **Berisi string** - 10 
+ **Berisi kata** - 10 

Jika Anda menggunakan komponen permintaan **Semua parameter kueri**, tambahkan 10 WCUs. Jika Anda menggunakan **badan JSON** komponen permintaan, gandakan biaya WCUs dasar. Untuk setiap **transformasi Teks** yang Anda terapkan, tambahkan 10 WCUs.

Jenis pernyataan ini beroperasi pada komponen permintaan web, dan memerlukan pengaturan komponen permintaan berikut: 
+ **Komponen permintaan** — Bagian dari permintaan web untuk memeriksa, misalnya, string kueri atau badan.
**Awas**  
Jika Anda memeriksa komponen permintaan **Badan, badan** **JSON**, **Header**, atau **Cookie**, baca tentang batasan jumlah konten yang AWS WAF dapat diperiksa. [Komponen permintaan web yang terlalu besar di AWS WAF](waf-oversize-request-components.md) 

  Untuk informasi tentang komponen permintaan web, lihat[Menyesuaikan pengaturan pernyataan aturan di AWS WAF](waf-rule-statement-fields.md).
+ **Transformasi teks opsional** — Transformasi yang AWS WAF ingin Anda lakukan pada komponen permintaan sebelum memeriksanya. Misalnya, Anda dapat mengubah ke huruf kecil atau menormalkan ruang putih. Jika Anda menentukan lebih dari satu transformasi, AWS WAF proses mereka dalam urutan yang tercantum. Untuk informasi, lihat [Menggunakan transformasi teks di AWS WAF](waf-rule-statement-transformation.md).

Selain itu, pernyataan ini memerlukan pengaturan berikut: 
+ **String to match** - Ini adalah string yang AWS WAF ingin Anda bandingkan dengan komponen permintaan yang ditentukan. Biasanya, string terdiri dari karakter ASCII yang dapat dicetak, tetapi Anda dapat menggunakan karakter apa pun dari heksadesimal 0x00 hingga 0xFF (desimal 0 hingga 255).
+ **Kondisi pencocokan string** - Ini menunjukkan jenis pencarian yang AWS WAF ingin Anda lakukan. 
  + **Tepat cocok dengan string** - String dan nilai komponen permintaan identik.
  + **Dimulai dengan** string - String muncul di awal komponen permintaan. 
  + **Berakhir dengan string** - String muncul di akhir komponen permintaan. 
  + **Berisi string** - String muncul di mana saja dalam komponen permintaan. 
  + **Berisi kata** - String yang Anda tentukan harus muncul di komponen permintaan. 

    Untuk opsi ini, string yang Anda tentukan harus hanya berisi karakter alfanumerik atau garis bawah (A-Z, a-z, 0-9, atau \$1). 

    Salah satu hal berikut harus benar agar permintaan cocok: 
    + String sama persis dengan nilai komponen permintaan, seperti nilai header.
    + String berada di awal komponen permintaan dan diikuti oleh karakter selain karakter alfanumerik atau garis bawah (\$1), misalnya,. `BadBot;`
    + String berada di akhir komponen permintaan dan didahului oleh karakter selain karakter alfanumerik atau garis bawah (\$1), misalnya,. `;BadBot`
    + String berada di tengah komponen permintaan dan didahului dan diikuti oleh karakter selain karakter alfanumerik atau garis bawah (\$1), misalnya,. `-BadBot;`

## Di mana menemukan pernyataan aturan ini
<a name="string-match-where-to-find"></a>
+ **Pembuat aturan** di konsol — Untuk **jenis Match**, pilih **Kondisi pencocokan String**, lalu isi string yang ingin Anda cocokkan.
+ **API** — [ByteMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_ByteMatchStatement.html)

# Pernyataan aturan serangan skrip lintas situs
<a name="waf-rule-statement-type-xss-match"></a>

Bagian ini menjelaskan apa itu pernyataan serangan XSS (cross-site scripting) dan cara kerjanya.

Pernyataan serangan XSS memeriksa skrip berbahaya dalam komponen permintaan web. Dalam serangan XSS, penyerang menggunakan kerentanan di situs web jinak sebagai kendaraan untuk menyuntikkan skrip situs klien berbahaya ke browser web lain yang sah. 

## Karakteristik pernyataan aturan
<a name="xss-match-characteristics"></a>

**Nestable** - Anda dapat membuat jenis pernyataan ini. 

**WCUs**— 40 WCUs, sebagai biaya dasar. Jika Anda menggunakan komponen permintaan **Semua parameter kueri**, tambahkan 10 WCUs. Jika Anda menggunakan **badan JSON** komponen permintaan, gandakan biaya WCUs dasar. Untuk setiap **transformasi Teks** yang Anda terapkan, tambahkan 10 WCUs.

Jenis pernyataan ini beroperasi pada komponen permintaan web, dan memerlukan pengaturan komponen permintaan berikut: 
+ **Komponen permintaan** — Bagian dari permintaan web untuk memeriksa, misalnya, string kueri atau badan.
**Awas**  
Jika Anda memeriksa komponen permintaan **Body**, **JSON body**, **Header**, atau **Cookie**, baca tentang batasan jumlah konten yang AWS WAF dapat diperiksa. [Komponen permintaan web yang terlalu besar di AWS WAF](waf-oversize-request-components.md) 

  Untuk informasi tentang komponen permintaan web, lihat[Menyesuaikan pengaturan pernyataan aturan di AWS WAF](waf-rule-statement-fields.md).
+ **Transformasi teks opsional** — Transformasi yang AWS WAF ingin Anda lakukan pada komponen permintaan sebelum memeriksanya. Misalnya, Anda dapat mengubah ke huruf kecil atau menormalkan ruang putih. Jika Anda menentukan lebih dari satu transformasi, AWS WAF proses mereka dalam urutan yang tercantum. Untuk informasi, lihat [Menggunakan transformasi teks di AWS WAF](waf-rule-statement-transformation.md).

## Di mana menemukan pernyataan aturan ini
<a name="xss-match-where-to-find"></a>
+ **Pembuat aturan** di konsol — Untuk **tipe Match**, pilih **Kondisi kecocokan serang** > **Mengandung serangan injeksi XSS**.
+ **API** — [XssMatchStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_XssMatchStatement.html)

# Menggunakan pernyataan aturan logis di AWS WAF
<a name="waf-rule-statements-logical"></a>

Bagian ini menjelaskan apa itu pernyataan aturan logis dan cara kerjanya.

Gunakan pernyataan aturan logis untuk menggabungkan pernyataan lain atau meniadakan hasilnya. Setiap pernyataan aturan logis membutuhkan setidaknya satu pernyataan bersarang.

Untuk secara logis menggabungkan atau meniadakan hasil pernyataan aturan, Anda menyarangkan pernyataan di bawah pernyataan aturan logis. 

Pernyataan aturan logis adalah nestable. Anda dapat menyarangkannya di dalam pernyataan aturan logis lainnya dan menggunakannya dalam pernyataan cakupan ke bawah. Untuk informasi tentang pernyataan cakupan bawah, lihat. [Menggunakan pernyataan scope-down di AWS WAF](waf-rule-scope-down-statements.md)

**catatan**  
Editor visual di konsol mendukung satu tingkat pernyataan aturan bersarang, yang berfungsi untuk banyak kebutuhan. Untuk membuat lebih banyak level, edit representasi JSON dari aturan di konsol atau gunakan. APIs 

Tabel ini menjelaskan pernyataan aturan logis dan memberikan pedoman untuk menghitung paket perlindungan (web ACL) penggunaan unit kapasitas (WCU) untuk masing-masing. Untuk informasi tentang WCUs, lihat[Unit kapasitas ACL Web (WCUs) di AWS WAF](aws-waf-capacity-units.md). 


| Pernyataan Logis  | Deskripsi | WCUs | 
| --- | --- | --- | 
| [ANDlogika](waf-rule-statement-type-and.md) | Menggabungkan pernyataan bersarang dengan AND logika. | Berdasarkan pernyataan bersarang | 
|  [NOTlogika](waf-rule-statement-type-not.md)  |  Menegasikan hasil pernyataan bersarang.  |  Berdasarkan pernyataan bersarang  | 
| [ORlogika](waf-rule-statement-type-or.md) | Menggabungkan pernyataan bersarang dengan OR logika. | Berdasarkan pernyataan bersarang | 

# ANDpernyataan aturan
<a name="waf-rule-statement-type-and"></a>

Pernyataan AND aturan menggabungkan pernyataan bersarang dengan AND operasi logis, sehingga semua pernyataan bersarang harus cocok agar AND pernyataan tersebut cocok. Ini membutuhkan setidaknya dua pernyataan bersarang. 

## Karakteristik pernyataan aturan
<a name="and-rule-statement-characteristics"></a>

**Nestable** - Anda dapat membuat sarang jenis pernyataan ini. 

**WCUs**— Tergantung pada pernyataan bersarang.

## Di mana menemukan pernyataan aturan ini
<a name="and-rule-statement-where-to-find"></a>
+ **Pembuat aturan** di konsol — Untuk **Jika permintaan**, pilih **cocok dengan semua pernyataan (AND)**, lalu isi pernyataan bersarang. 
+ **API** — [AndStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_AndStatement.html)

## Contoh
<a name="and-rule-statement-examples"></a>

Daftar berikut menunjukkan penggunaan AND dan pernyataan aturan NOT logis untuk menghilangkan positif palsu dari kecocokan untuk pernyataan serangan injeksi SQL. Untuk contoh ini, misalkan kita dapat menulis pernyataan pencocokan byte tunggal untuk mencocokkan permintaan yang menghasilkan positif palsu. 

Pernyataan AND cocok untuk permintaan yang tidak cocok dengan pernyataan pencocokan byte dan yang cocok dengan pernyataan serangan injeksi SQL. 

```
{
      "Name": "SQLiExcludeFalsePositives",
      "Priority": 0,
      "Statement": {
        "AndStatement": {
          "Statements": [
            {
              "NotStatement": {
                "Statement": {
                  "ByteMatchStatement": {
                    "SearchString": "string identifying a false positive",
                    "FieldToMatch": {
                      "Body": {
                        "OversizeHandling": "MATCH"
                      }
                    },
                    "TextTransformations": [
                      {
                        "Priority": 0,
                        "Type": "NONE"
                      }
                    ],
                    "PositionalConstraint": "CONTAINS"
                  }
                }
              }
            },
            {
              "SqliMatchStatement": {
                "FieldToMatch": {
                  "Body": {
                    "OversizeHandling": "MATCH"
                  }
                },
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                  }
                ]
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "SQLiExcludeFalsePositives"
      }
    }
```

Menggunakan editor visual aturan konsol, Anda dapat membuat pernyataan non-logis atau NOT pernyataan di bawah AND pernyataan OR atau. Penyarangan NOT pernyataan ditunjukkan pada contoh sebelumnya. 

Menggunakan editor visual aturan konsol, Anda dapat membuat sarang sebagian besar pernyataan nestable di bawah pernyataan aturan logis, seperti yang ditunjukkan pada contoh sebelumnya. Anda tidak dapat menggunakan editor visual untuk membuat sarang OR atau AND pernyataan. Untuk mengonfigurasi jenis nesting ini, Anda perlu memberikan pernyataan aturan Anda di JSON. Misalnya, daftar aturan JSON berikut menyertakan OR pernyataan bersarang di dalam pernyataan. AND 

```
{
  "Name": "match_rule",
  "Priority": 0,
  "Statement": {
    "AndStatement": {
      "Statements": [
        {
          "LabelMatchStatement": {
            "Scope": "LABEL",
            "Key": "awswaf:managed:aws:bot-control:bot:category:monitoring"
          }
        },
        {
          "NotStatement": {
            "Statement": {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:managed:aws:bot-control:bot:name:pingdom"
              }
            }
          }
        },
        {
          "OrStatement": {
            "Statements": [
              {
                "GeoMatchStatement": {
                  "CountryCodes": [
                    "JM",
                    "JP"
                  ]
                }
              },
              {
                "ByteMatchStatement": {
                  "SearchString": "JCountryString",
                  "FieldToMatch": {
                    "Body": {}
                  },
                  "TextTransformations": [
                    {
                      "Priority": 0,
                      "Type": "NONE"
                    }
                  ],
                  "PositionalConstraint": "CONTAINS"
                }
              }
            ]
          }
        }
      ]
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "match_rule"
  }
}
```

# NOTpernyataan aturan
<a name="waf-rule-statement-type-not"></a>

Pernyataan NOT aturan secara logis meniadakan hasil pernyataan bersarang tunggal, sehingga pernyataan bersarang tidak boleh cocok untuk NOT pernyataan yang cocok, dan sebaliknya. Ini membutuhkan satu pernyataan bersarang. 

Misalnya, jika Anda ingin memblokir permintaan yang tidak berasal dari negara tertentu, buat NOT pernyataan dengan tindakan yang disetel ke blokir, dan sarang pernyataan kecocokan geografis yang menentukan negara. 

## Karakteristik pernyataan aturan
<a name="not-rule-statement-characteristics"></a>

**Nestable** - Anda dapat membuat jenis pernyataan ini. 

**WCUs**— Tergantung pada pernyataan bersarang.

## Di mana menemukan pernyataan aturan ini
<a name="not-rule-statement-where-to-find"></a>
+ **Pembuat aturan** di konsol — Untuk **Jika permintaan**, pilih **tidak cocok dengan pernyataan (TIDAK)**, lalu isi pernyataan bersarang.
+ **API** — [NotStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_NotStatement.html)

# ORpernyataan aturan
<a name="waf-rule-statement-type-or"></a>

Pernyataan OR aturan menggabungkan pernyataan bersarang dengan OR logika, jadi salah satu pernyataan bersarang harus cocok agar OR pernyataan tersebut cocok. Ini membutuhkan setidaknya dua pernyataan bersarang. 

Misalnya, jika Anda ingin memblokir permintaan yang berasal dari negara tertentu atau yang berisi string kueri tertentu, Anda dapat membuat OR pernyataan dan membuat pernyataan kecocokan geografis untuk negara dan pernyataan kecocokan string untuk string kueri. 

Jika sebaliknya Anda ingin memblokir permintaan yang *tidak* berasal dari negara tertentu atau yang berisi string kueri tertentu, Anda akan memodifikasi OR pernyataan sebelumnya untuk menyarangkan pernyataan kecocokan geografis satu tingkat lebih rendah, di dalam NOT pernyataan. Tingkat bersarang ini mengharuskan Anda untuk menggunakan pemformatan JSON, karena konsol hanya mendukung satu tingkat bersarang.

## Karakteristik pernyataan aturan
<a name="or-rule-statement-characteristics"></a>

**Nestable** - Anda dapat membuat jenis pernyataan ini. 

**WCUs**— Tergantung pada pernyataan bersarang.

## Di mana menemukan pernyataan aturan ini
<a name="or-rule-statement-where-to-find"></a>
+ **Pembuat aturan** di konsol — Untuk **Jika permintaan**, pilih **kecocokan setidaknya salah satu pernyataan (OR)**, lalu isi pernyataan bersarang. 
+ **API** — [OrStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_OrStatement.html)

**Contoh**  
Daftar berikut menunjukkan penggunaan OR untuk menggabungkan dua pernyataan lainnya. ORPernyataan tersebut cocok jika salah satu pernyataan bersarang cocok. 

```
{
  "Name": "neitherOfTwo",
  "Priority": 1,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "neitherOfTwo"
  },
  "Statement": {
    "OrStatement": {
      "Statements": [
        {
          "GeoMatchStatement": {
            "CountryCodes": [
              "CA"
            ]
          }
        },
        {
          "IPSetReferenceStatement": {
            "ARN": "arn:aws:wafv2:us-east-1:111111111111:regional/ipset/test-ip-set-22222222/33333333-4444-5555-6666-777777777777"
          }
        }
      ]
    }
  }
}
```

Menggunakan editor visual aturan konsol, Anda dapat membuat sarang sebagian besar pernyataan nestable di bawah pernyataan aturan logis, tetapi Anda tidak dapat menggunakan editor visual untuk membuat sarang OR atau AND pernyataan. Untuk mengonfigurasi jenis nesting ini, Anda perlu memberikan pernyataan aturan Anda di JSON. Misalnya, daftar aturan JSON berikut menyertakan OR pernyataan bersarang di dalam pernyataan. AND 

```
{
  "Name": "match_rule",
  "Priority": 0,
  "Statement": {
    "AndStatement": {
      "Statements": [
        {
          "LabelMatchStatement": {
            "Scope": "LABEL",
            "Key": "awswaf:managed:aws:bot-control:bot:category:monitoring"
          }
        },
        {
          "NotStatement": {
            "Statement": {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:managed:aws:bot-control:bot:name:pingdom"
              }
            }
          }
        },
        {
          "OrStatement": {
            "Statements": [
              {
                "GeoMatchStatement": {
                  "CountryCodes": [
                    "JM",
                    "JP"
                  ]
                }
              },
              {
                "ByteMatchStatement": {
                  "SearchString": "JCountryString",
                  "FieldToMatch": {
                    "Body": {}
                  },
                  "TextTransformations": [
                    {
                      "Priority": 0,
                      "Type": "NONE"
                    }
                  ],
                  "PositionalConstraint": "CONTAINS"
                }
              }
            ]
          }
        }
      ]
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "match_rule"
  }
}
```

# Menggunakan pernyataan aturan berbasis tarif di AWS WAF
<a name="waf-rule-statement-type-rate-based"></a>

Bagian ini menjelaskan apa itu pernyataan aturan berbasis tarif dan cara kerjanya.

Aturan berbasis tarif menghitung permintaan masuk dan permintaan batas tarif ketika permintaan tersebut datang dengan tarif yang terlalu cepat. Aturan menggabungkan permintaan sesuai dengan kriteria Anda, dan menghitung serta membatasi pengelompokan agregat, berdasarkan jendela evaluasi aturan, batas permintaan, dan setelan tindakan. 

**catatan**  
Anda juga dapat menilai batas permintaan web menggunakan tingkat perlindungan yang ditargetkan dari grup aturan Aturan AWS Terkelola Kontrol Bot. Menggunakan grup aturan terkelola ini menimbulkan biaya tambahan. Untuk informasi selengkapnya, lihat [Opsi untuk membatasi tarif dalam aturan berbasis tarif dan aturan Kontrol Bot yang ditargetkan](waf-rate-limiting-options.md). 

AWS WAF melacak dan mengelola permintaan web secara terpisah untuk setiap instance aturan berbasis tarif yang Anda gunakan. Misalnya, jika Anda memberikan pengaturan aturan berbasis laju yang sama di dua webACLs, masing-masing dari dua pernyataan aturan mewakili contoh terpisah dari aturan berbasis tarif dan masing-masing mendapatkan pelacakan dan pengelolaannya sendiri. AWS WAF Jika Anda menentukan aturan berbasis laju di dalam grup aturan, dan kemudian menggunakan grup aturan itu di beberapa tempat, setiap penggunaan akan membuat instance terpisah dari aturan berbasis tarif yang mendapatkan pelacakan dan pengelolaannya sendiri. AWS WAF

**Tidak bersarang** - Anda tidak dapat membuat jenis pernyataan ini di dalam pernyataan lain. Anda dapat memasukkannya langsung ke dalam paket perlindungan (web ACL) atau grup aturan. 

**Scope-down statement** — Jenis aturan ini dapat mengambil pernyataan scope-down, untuk mempersempit cakupan permintaan yang dilacak aturan dan batas nilai. Pernyataan cakupan bawah dapat bersifat opsional atau wajib, tergantung pada pengaturan konfigurasi aturan Anda yang lain. Detailnya tercakup dalam bagian ini. Untuk informasi umum tentang pernyataan cakupan bawah, lihat. [Menggunakan pernyataan scope-down di AWS WAF](waf-rule-scope-down-statements.md) 

**WCUs**— 2, sebagai biaya dasar. Untuk setiap kunci agregasi kustom yang Anda tentukan, tambahkan 30 WCUs. Jika Anda menggunakan pernyataan scope-down dalam aturan, hitung dan tambahkan untuk itu. WCUs 

**Di mana menemukan pernyataan aturan ini**
+ **Pembuat aturan** di paket perlindungan Anda (ACL web), di konsol — Di bawah **Aturan**, untuk **Jenis**, pilih Aturan **berbasis tarif**.
+ **API** — [RateBasedStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_RateBasedStatement.html)

**Topics**
+ [Pengaturan tingkat tinggi aturan berbasis tarif di AWS WAF](waf-rule-statement-type-rate-based-high-level-settings.md)
+ [Peringatan aturan berbasis tarif di AWS WAF](waf-rule-statement-type-rate-based-caveats.md)
+ [Menggabungkan aturan berbasis tarif di AWS WAF](waf-rule-statement-type-rate-based-aggregation-options.md)
+ [Contoh dan hitungan agregasi aturan berbasis tarif](waf-rule-statement-type-rate-based-aggregation-instances.md)
+ [Menerapkan pembatasan tarif untuk permintaan di AWS WAF](waf-rule-statement-type-rate-based-request-limiting.md)
+ [Contoh aturan berbasis tarif di AWS WAF](waf-rule-statement-type-rate-based-examples.md)
+ [Daftar alamat IP yang dibatasi oleh aturan berbasis tarif](listing-managed-ips.md)

# Pengaturan tingkat tinggi aturan berbasis tarif di AWS WAF
<a name="waf-rule-statement-type-rate-based-high-level-settings"></a>

Pernyataan aturan berbasis tarif menggunakan pengaturan tingkat tinggi berikut: 
+ **Jendela evaluasi** — Jumlah waktu, dalam hitungan detik, yang AWS WAF harus dimasukkan dalam jumlah permintaannya, melihat ke belakang dari waktu saat ini. Misalnya, untuk pengaturan 120, ketika AWS WAF memeriksa tarif, itu menghitung permintaan untuk 2 menit segera sebelum waktu saat ini. Pengaturan yang valid adalah 60 (1 menit), 120 (2 menit), 300 (5 menit), dan 600 (10 menit), dan 300 (5 menit) adalah default. 

  Pengaturan ini tidak menentukan seberapa sering AWS WAF memeriksa tarif, tetapi seberapa jauh tampilannya setiap kali memeriksa. AWS WAF memeriksa tarif sering, dengan waktu yang independen dari pengaturan jendela evaluasi. 
+ **Batas tarif** - Jumlah maksimum permintaan yang sesuai dengan kriteria Anda yang AWS WAF seharusnya hanya melacak untuk jendela evaluasi yang ditentukan. Pengaturan batas terendah yang diizinkan adalah 10. Saat batas ini dilanggar, AWS WAF terapkan pengaturan tindakan aturan ke permintaan tambahan yang sesuai dengan kriteria Anda. 

  AWS WAF menerapkan pembatasan tarif mendekati batas yang Anda tetapkan, tetapi tidak menjamin kecocokan batas yang tepat. Untuk informasi selengkapnya, lihat [Peringatan aturan berbasis tarif](waf-rule-statement-type-rate-based-caveats.md). 
+ **Agregasi permintaan** — Kriteria agregasi yang digunakan di web meminta agar aturan berbasis tarif dihitung dan batas tarif. Batas tarif yang Anda tetapkan berlaku untuk setiap instance agregasi. Untuk detailnya, lihat [Agregasi aturan berbasis tarif](waf-rule-statement-type-rate-based-aggregation-options.md) dan [Contoh dan hitungan agregasi](waf-rule-statement-type-rate-based-aggregation-instances.md). 
+ **Tindakan** — Tindakan yang harus diambil atas permintaan yang dibatasi oleh tarif aturan. Anda dapat menggunakan tindakan aturan apa pun kecualiAllow. Ini ditetapkan pada tingkat aturan seperti biasa, tetapi memiliki beberapa batasan dan perilaku yang khusus untuk aturan berbasis tarif. Untuk informasi umum tentang tindakan aturan, lihat[Menggunakan tindakan aturan di AWS WAF](waf-rule-action.md). Untuk informasi khusus tentang pembatasan tarif, lihat [Menerapkan pembatasan tarif untuk permintaan di AWS WAF](waf-rule-statement-type-rate-based-request-limiting.md) di bagian ini.
+ **Lingkup inspeksi dan pembatasan tarif** — Anda dapat mempersempit cakupan permintaan yang dilacak pernyataan berbasis tarif dan batas tarif dengan menambahkan pernyataan cakupan ke bawah. Jika Anda menentukan pernyataan cakupan bawah, aturan hanya mengumpulkan, menghitung, dan membatasi permintaan yang cocok dengan pernyataan cakupan bawah. Jika Anda memilih opsi agregasi permintaan **Hitung semua**, maka pernyataan cakupan bawah diperlukan. Untuk informasi selengkapnya tentang pernyataan cakupan bawah, lihat. [Menggunakan pernyataan scope-down](waf-rule-scope-down-statements.md) 
+ **(Opsional) Konfigurasi IP yang diteruskan** - Ini hanya digunakan jika Anda menentukan **alamat IP di header** dalam agregasi permintaan Anda, baik sendiri atau sebagai bagian dari pengaturan kunci khusus. AWS WAF mengambil alamat IP pertama di header yang ditentukan dan menggunakannya sebagai nilai agregasi. Header umum untuk tujuan ini adalah`X-Forwarded-For`, tetapi Anda dapat menentukan header apa pun. Lihat informasi yang lebih lengkap di [Menggunakan alamat IP yang diteruskan](waf-rule-statement-forwarded-ip-address.md). 

# Peringatan aturan berbasis tarif di AWS WAF
<a name="waf-rule-statement-type-rate-based-caveats"></a>

Bagian ini mencantumkan peringatan untuk menggunakan aturan berbasis tarif.

AWS WAF Pembatasan tarif dirancang untuk mengontrol tingkat permintaan yang tinggi dan melindungi ketersediaan aplikasi Anda dengan cara yang paling efisien dan efektif. Ini tidak dimaksudkan untuk pembatasan tingkat permintaan yang tepat. 
+ AWS WAF memperkirakan tingkat permintaan saat ini menggunakan algoritme yang lebih mementingkan permintaan yang lebih baru. Karena itu, AWS WAF akan berlaku pembatasan tarif mendekati batas yang Anda tetapkan, tetapi tidak menjamin kecocokan batas yang tepat. 
+ Setiap kali AWS WAF memperkirakan tingkat permintaan, AWS WAF melihat kembali jumlah permintaan yang masuk selama jendela evaluasi yang dikonfigurasi. Karena ini dan faktor lain seperti penundaan propagasi, permintaan mungkin masuk dengan kecepatan yang terlalu tinggi hingga beberapa menit sebelum AWS WAF mendeteksi dan membatasi nilainya. Serupa. tingkat permintaan dapat berada di bawah batas untuk jangka waktu tertentu sebelum AWS WAF mendeteksi penurunan dan menghentikan tindakan pembatasan laju. Biasanya, penundaan ini di bawah 30 detik.
+ Jika Anda mengubah setelan batas tarif apa pun dalam aturan yang sedang digunakan, perubahan akan mengatur ulang jumlah pembatasan tarif aturan. Ini dapat menjeda aktivitas pembatasan tarif aturan hingga satu menit. Pengaturan batas tarif adalah jendela evaluasi, batas tarif, pengaturan agregasi permintaan, konfigurasi IP yang diteruskan, dan ruang lingkup inspeksi. 

# Menggabungkan aturan berbasis tarif di AWS WAF
<a name="waf-rule-statement-type-rate-based-aggregation-options"></a>

Bagian ini menjelaskan opsi Anda untuk menggabungkan permintaan.

Secara default, aturan berbasis tarif mengumpulkan dan membatasi permintaan berdasarkan alamat IP permintaan. Anda dapat mengonfigurasi aturan untuk menggunakan berbagai tombol agregasi dan kombinasi tombol lainnya. Misalnya, Anda dapat menggabungkan berdasarkan alamat IP yang diteruskan, pada metode HTTP, atau pada argumen kueri. Anda juga dapat menentukan kombinasi tombol agregasi, seperti alamat IP dan metode HTTP, atau nilai dari dua cookie yang berbeda. 

**catatan**  
Semua komponen permintaan yang Anda tentukan dalam kunci agregasi harus ada dalam permintaan web untuk permintaan yang akan dievaluasi atau tarif dibatasi oleh aturan. 

Anda dapat mengonfigurasi aturan berbasis tarif dengan opsi agregasi berikut. 
+ **Alamat IP Sumber** — Agregat hanya menggunakan alamat IP dari asal permintaan web. 

  Alamat IP sumber mungkin tidak berisi alamat klien asal. Jika permintaan web melewati satu atau lebih proxy atau penyeimbang beban, ini akan berisi alamat proxy terakhir. 
+ **Alamat IP di header** - Agregat hanya menggunakan alamat klien di header HTTP. Ini juga disebut sebagai alamat IP yang diteruskan. 

  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 tidak ada kecocokan, aturan berbasis tarif tidak menghitung atau membatasi nilai permintaan. Untuk kecocokan, aturan berbasis laju mengelompokkan permintaan bersama dengan permintaan lain yang memiliki alamat IP cacat di header yang ditentukan. 

  Berhati-hatilah dengan opsi ini, karena header dapat ditangani secara tidak konsisten oleh proxy dan mereka juga dapat dimodifikasi untuk melewati inspeksi. Untuk informasi tambahan dan praktik terbaik, lihat[Menggunakan alamat IP yang diteruskan di AWS WAF](waf-rule-statement-forwarded-ip-address.md).
+ **ASN** — Agregat menggunakan Autonomous System Number (ASN) yang terkait dengan alamat IP sumber sebagai kunci agregat. Ini mungkin bukan alamat klien asal. Jika permintaan web melewati satu atau lebih proxy atau penyeimbang beban, ini berisi alamat proxy terakhir. 

  Jika tidak AWS WAF dapat memperoleh ASN dari alamat IP, ASN dihitung sebagai ASN 0. Jika Anda tidak ingin menerapkan pembatasan tarif ke unmapped ASNs, Anda dapat membuat aturan cakupan bawah yang mengecualikan permintaan dengan ASN 0.
+ **ASN di header** - Agregat menggunakan ASN yang terkait dengan alamat IP klien di header HTTP. Ini juga disebut sebagai alamat IP yang diteruskan. Dengan konfigurasi ini, Anda juga menentukan perilaku fallback untuk diterapkan ke permintaan web dengan alamat IP yang tidak valid atau cacat. Perilaku fallback menetapkan hasil pencocokan untuk permintaan, agar cocok atau tidak cocok. Jika Anda menyetel perilaku fallback agar sesuai dengan konfigurasi IP yang diteruskan, AWS WAF memperlakukan alamat IP yang tidak valid sebagai nilai yang cocok. Hal ini memungkinkan AWS WAF untuk terus mengevaluasi bagian yang tersisa dari kunci komposit aturan berbasis tarif Anda. Untuk tidak ada kecocokan, aturan berbasis tarif tidak menghitung atau membatasi nilai permintaan. 

  Berhati-hatilah dengan opsi ini, karena header dapat ditangani secara tidak konsisten oleh proxy dan mereka dapat dimodifikasi untuk melewati inspeksi. Untuk informasi tambahan dan praktik terbaik, lihat[Menggunakan alamat IP yang diteruskan di AWS WAF](waf-rule-statement-forwarded-ip-address.md).
+ **Hitung semua** — Hitung dan batasi nilai semua permintaan yang cocok dengan pernyataan cakupan bawah aturan. Opsi ini membutuhkan pernyataan cakupan ke bawah. Ini biasanya digunakan untuk membatasi serangkaian permintaan tertentu, seperti semua permintaan dengan label tertentu atau semua permintaan dari wilayah geografis tertentu. 
+ **Kunci kustom** - Agregat menggunakan satu atau lebih kunci agregasi kustom. Untuk menggabungkan salah satu opsi alamat IP dengan kunci agregasi lainnya, tentukan di sini di bawah kunci khusus. 

  Kunci agregasi kustom adalah bagian dari opsi komponen permintaan web yang dijelaskan di. [Minta komponen di AWS WAF](waf-rule-statement-fields-list.md)

  Opsi utamanya adalah sebagai berikut. Kecuali jika dicatat, Anda dapat menggunakan opsi beberapa kali, misalnya, dua header atau tiga ruang nama label.
  + **Namespace label** — Gunakan namespace label sebagai kunci agregasi. Setiap nama label yang memenuhi syarat lengkap yang memiliki namespace label yang ditentukan berkontribusi pada instance agregasi. Jika Anda hanya menggunakan satu namespace label sebagai kunci kustom Anda, maka setiap nama label sepenuhnya mendefinisikan instance agregasi.

    Aturan berbasis tarif hanya menggunakan label yang telah ditambahkan ke permintaan dengan aturan yang dievaluasi sebelumnya dalam paket perlindungan (web ACL).

    Untuk informasi tentang ruang nama label dan nama, lihat. [Sintaks label dan persyaratan penamaan di AWS WAF](waf-rule-label-requirements.md)
  + **Header** — Gunakan header bernama sebagai kunci agregasi. Setiap nilai yang berbeda di header berkontribusi pada contoh agregasi. 

    Header mengambil transformasi teks opsional. Lihat [Menggunakan transformasi teks di AWS WAF](waf-rule-statement-transformation.md). 
  + **Cookie** — Gunakan cookie bernama sebagai kunci agregasi. Setiap nilai yang berbeda dalam cookie berkontribusi pada contoh agregasi. 

    Cookie mengambil transformasi teks opsional. Lihat [Menggunakan transformasi teks di AWS WAF](waf-rule-statement-transformation.md). 
  + **Argumen kueri** — Gunakan argumen kueri tunggal dalam permintaan sebagai kunci agregat. Setiap nilai yang berbeda untuk argumen kueri bernama berkontribusi pada contoh agregasi. 

    Argumen kueri mengambil transformasi teks opsional. Lihat [Menggunakan transformasi teks di AWS WAF](waf-rule-statement-transformation.md). 
  + **Query string** - Gunakan seluruh string query dalam permintaan sebagai kunci agregat. Setiap string kueri yang berbeda berkontribusi pada contoh agregasi. Anda dapat menggunakan jenis kunci ini sekali. 

    String kueri mengambil transformasi teks opsional. Lihat [Menggunakan transformasi teks di AWS WAF](waf-rule-statement-transformation.md). 
  + **Jalur URI** — Gunakan jalur URI dalam permintaan sebagai kunci agregat. Setiap jalur URI yang berbeda berkontribusi pada instance agregasi. Anda dapat menggunakan jenis kunci ini sekali. 

    Jalur URI mengambil transformasi teks opsional. Lihat [Menggunakan transformasi teks di AWS WAF](waf-rule-statement-transformation.md). 
  + **JA3 sidik jari** — Gunakan JA3 sidik jari dalam permintaan sebagai kunci agregat. Setiap JA3 sidik jari yang berbeda berkontribusi pada contoh agregasi. Anda dapat menggunakan jenis kunci ini sekali. 
  + **JA4 sidik jari** — Gunakan JA4 sidik jari dalam permintaan sebagai kunci agregat. Setiap JA4 sidik jari yang berbeda berkontribusi pada contoh agregasi. Anda dapat menggunakan jenis kunci ini sekali. 
  + **Metode HTTP** — Gunakan metode HTTP permintaan sebagai kunci agregat. Setiap metode HTTP yang berbeda berkontribusi pada instance agregasi. Anda dapat menggunakan jenis kunci ini sekali. 
  + **Alamat IP** — Agregat menggunakan alamat IP dari asal permintaan web dalam kombinasi dengan tombol lain.

    Ini mungkin tidak berisi alamat klien asal. Jika permintaan web melewati satu atau lebih proxy atau penyeimbang beban, ini akan berisi alamat proxy terakhir. 
  + **Alamat IP di header** — Agregat menggunakan alamat klien dalam header HTTP dalam kombinasi dengan tombol lain. Ini juga disebut sebagai alamat IP yang diteruskan. 

    Berhati-hatilah dengan opsi ini, karena header dapat ditangani secara tidak konsisten oleh proxy dan mereka dapat dimodifikasi untuk melewati inspeksi. Untuk informasi tambahan dan praktik terbaik, lihat[Menggunakan alamat IP yang diteruskan di AWS WAF](waf-rule-statement-forwarded-ip-address.md).

# Contoh dan hitungan agregasi aturan berbasis tarif
<a name="waf-rule-statement-type-rate-based-aggregation-instances"></a>

Bagian ini menjelaskan bagaimana aturan berbasis tarif mengevaluasi permintaan web.

*Saat aturan berbasis laju mengevaluasi permintaan web menggunakan kriteria agregasi Anda, setiap kumpulan nilai unik yang ditemukan aturan untuk kunci agregasi yang ditentukan menentukan instance agregasi unik.* 
+ **Beberapa kunci** — Jika Anda telah menetapkan beberapa kunci kustom, nilai untuk setiap kunci berkontribusi pada definisi instance agregasi. Setiap kombinasi nilai yang unik mendefinisikan contoh agregasi. 
+ **Kunci tunggal** — Jika Anda telah memilih satu kunci, baik dalam kunci kustom atau dengan memilih salah satu pilihan alamat IP tunggal, maka setiap nilai unik untuk kunci mendefinisikan contoh agregasi. 
+ **Hitung semua - tanpa kunci** - Jika Anda telah memilih opsi agregasi **Hitung semua**, maka semua permintaan yang dievaluasi aturan termasuk dalam contoh agregasi tunggal untuk aturan tersebut. Pilihan ini membutuhkan pernyataan cakupan ke bawah.

 

Aturan berbasis tarif menghitung permintaan web secara terpisah untuk setiap instance agregasi yang diidentifikasi. 

Misalnya, asumsikan aturan berbasis tarif mengevaluasi permintaan web dengan alamat IP berikut dan nilai metode HTTP: 
+ Alamat IP 10.1.1.1, metode HTTP POST
+ Alamat IP 10.1.1.1, metode HTTP GET
+ Alamat IP 127.0.0.0, metode HTTP POST
+ Alamat IP 10.1.1.1, metode HTTP GET

Aturan membuat instance agregasi yang berbeda sesuai dengan kriteria agregasi Anda. 
+ Jika kriteria agregasi hanya alamat IP, maka setiap alamat IP individu adalah contoh agregasi, dan AWS WAF menghitung permintaan secara terpisah untuk masing-masing. Contoh agregasi dan jumlah permintaan untuk contoh kami adalah sebagai berikut: 
  + Alamat IP 10.1.1.1: hitungan 3
  + Alamat IP 127.0.0.0: hitung 1
+ Jika kriteria agregasi adalah metode HTTP, maka setiap metode HTTP individu adalah contoh agregasi. Contoh agregasi dan jumlah permintaan untuk contoh kami adalah sebagai berikut: 
  + Metode HTTP POST: hitung 2
  + Metode HTTP GET: hitung 2
+ Jika kriteria agregasi adalah alamat IP dan metode HTTP, maka setiap alamat IP dan setiap metode HTTP akan berkontribusi pada contoh agregasi gabungan. Contoh agregasi dan jumlah permintaan untuk contoh kami adalah sebagai berikut: 
  + Alamat IP 10.1.1.1, metode HTTP POST: hitungan 1
  + Alamat IP 10.1.1.1, metode HTTP GET: hitung 2
  + Alamat IP 127.0.0.0, metode HTTP POST: hitungan 1

# Menerapkan pembatasan tarif untuk permintaan di AWS WAF
<a name="waf-rule-statement-type-rate-based-request-limiting"></a>

Bagian ini menjelaskan cara kerja perilaku pembatasan laju untuk aturan berbasis tarif.

Kriteria yang AWS WAF digunakan untuk menilai permintaan batas untuk aturan berbasis tarif adalah kriteria yang sama yang AWS WAF digunakan untuk menggabungkan permintaan untuk aturan tersebut. Jika Anda menentukan pernyataan cakupan bawah untuk aturan, AWS WAF hanya agregat, hitungan, dan batas nilai permintaan yang cocok dengan pernyataan cakupan bawah. 

Kriteria pencocokan yang menyebabkan aturan berbasis laju menerapkan pengaturan tindakan aturannya ke permintaan web tertentu adalah sebagai berikut: 
+ Permintaan web cocok dengan pernyataan cakupan bawah aturan, jika ada yang didefinisikan.
+ Permintaan web milik instance agregasi yang jumlah permintaannya saat ini melebihi batas aturan. 

**Bagaimana AWS WAF menerapkan tindakan aturan**  
Jika aturan berbasis laju menerapkan pembatasan laju pada permintaan, aturan tersebut akan menerapkan tindakan aturan dan, jika Anda telah menetapkan penanganan atau pelabelan khusus apa pun dalam spesifikasi tindakan Anda, aturan tersebut akan menerapkannya. Penanganan permintaan ini sama dengan cara aturan pencocokan menerapkan pengaturan tindakannya untuk mencocokkan permintaan web. Aturan berbasis tarif hanya menerapkan label atau melakukan tindakan lain pada permintaan yang membatasi tarif secara aktif. 

Anda dapat menggunakan tindakan aturan apa pun kecualiAllow. Untuk informasi umum tentang tindakan aturan, lihat[Menggunakan tindakan aturan di AWS WAF](waf-rule-action.md). 

Daftar berikut menjelaskan cara kerja pembatasan laju untuk setiap tindakan.
+ **Block**— AWS WAF memblokir permintaan dan menerapkan perilaku pemblokiran khusus apa pun yang telah Anda tentukan. 
+ **Count**— AWS WAF menghitung permintaan, menerapkan header atau label khusus yang telah Anda tetapkan, dan melanjutkan evaluasi paket perlindungan (web ACL) permintaan tersebut. 

  Tindakan ini tidak membatasi tingkat permintaan. Itu hanya menghitung permintaan yang melebihi batas.
+ **CAPTCHAatau Challenge** — AWS WAF menangani permintaan baik seperti Block atau sepertiCount, tergantung pada status token permintaan. 

  Tindakan ini tidak membatasi tingkat permintaan yang memiliki token yang valid. Ini membatasi tingkat permintaan yang melebihi batas dan juga kehilangan token yang valid.
  + Jika permintaan tidak memiliki token yang valid dan belum kedaluwarsa, tindakan akan memblokir permintaan dan mengirimkan teka-teki CAPTCHA atau tantangan browser kembali ke klien. 

    Jika pengguna akhir atau browser klien merespons dengan sukses, klien menerima token yang valid dan secara otomatis mengirimkan ulang permintaan asli. Jika pembatasan tarif untuk instance agregasi masih berlaku, permintaan baru ini dengan token yang valid dan belum kedaluwarsa akan memiliki tindakan yang diterapkan padanya seperti yang dijelaskan dalam bullet point berikutnya.
  + Jika permintaan memiliki token yang valid dan belum kedaluwarsa, Challenge tindakan CAPTCHA atau memverifikasi token dan tidak mengambil tindakan atas permintaan tersebut, mirip dengan tindakan tersebut. Count Aturan berbasis tarif mengembalikan evaluasi permintaan kembali ke paket perlindungan (web ACL) tanpa mengambil tindakan penghentian apa pun, dan paket perlindungan (web ACL) melanjutkan evaluasi permintaannya.

  Untuk informasi tambahan, lihat [CAPTCHAdan Challenge di AWS WAF](waf-captcha-and-challenge.md).

**Jika Anda menilai batas hanya alamat IP atau alamat IP yang diteruskan**  
Saat Anda mengonfigurasi aturan untuk membatasi hanya alamat IP untuk alamat IP yang diteruskan, Anda dapat mengambil daftar alamat IP yang saat ini dibatasi oleh aturan. Jika Anda menggunakan pernyataan cakupan bawah, permintaan yang dibatasi tarif hanya yang ada dalam daftar IP yang cocok dengan pernyataan cakupan bawah. Untuk informasi tentang mengambil daftar alamat IP, lihat[Daftar alamat IP yang dibatasi oleh aturan berbasis tarif](listing-managed-ips.md).

# Contoh aturan berbasis tarif di AWS WAF
<a name="waf-rule-statement-type-rate-based-examples"></a>

Bagian ini menjelaskan contoh konfigurasi untuk berbagai kasus penggunaan aturan berbasis tarif umum. 

Setiap contoh memberikan deskripsi kasus penggunaan dan kemudian menunjukkan solusi dalam daftar JSON untuk aturan yang dikonfigurasi khusus. 

**catatan**  
Daftar JSON yang ditampilkan dalam contoh ini dibuat di konsol dengan mengonfigurasi aturan dan kemudian mengeditnya menggunakan editor **Rule JSON**. 

**Topics**
+ [Nilai membatasi permintaan ke halaman login](waf-rate-based-example-limit-login-page.md)
+ [Nilai membatasi permintaan ke halaman login dari alamat IP apa pun, pasangan agen pengguna](waf-rate-based-example-limit-login-page-keys.md)
+ [Batasi nilai permintaan yang tidak memiliki header tertentu](waf-rate-based-example-limit-missing-header.md)
+ [Nilai membatasi permintaan dengan label tertentu](waf-rate-based-example-limit-labels.md)
+ [Nilai batas permintaan untuk label yang memiliki namespace label tertentu](waf-rate-based-example-limit-label-aggregation.md)
+ [Nilai membatasi permintaan dengan spesifik ASNs](waf-rate-based-example-limit-asn.md)

# Nilai membatasi permintaan ke halaman login
<a name="waf-rate-based-example-limit-login-page"></a>

**Untuk membatasi jumlah permintaan ke halaman login di situs web Anda tanpa memengaruhi lalu lintas ke seluruh situs Anda, Anda dapat membuat aturan berbasis tarif dengan pernyataan cakupan bawah yang cocok dengan permintaan ke halaman login Anda dan dengan agregasi permintaan diatur ke Hitung semua.** 

Aturan berbasis laju akan menghitung semua permintaan untuk halaman login dalam satu contoh agregasi dan menerapkan tindakan aturan ke semua permintaan yang cocok dengan pernyataan cakupan bawah ketika permintaan melebihi batas.

Daftar JSON berikut menunjukkan contoh konfigurasi aturan ini. Opsi hitung semua agregasi tercantum di JSON sebagai pengaturan. `CONSTANT` Contoh ini cocok dengan halaman login yang dimulai dengan`/login`. 

```
{
  "Name": "test-rbr",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-rbr"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": 1000,
      "EvaluationWindowSec": 300,
      "AggregateKeyType": "CONSTANT",
      "ScopeDownStatement": {
        "ByteMatchStatement": {
          "FieldToMatch": {
            "UriPath": {}
          },
          "PositionalConstraint": "STARTS_WITH",
          "SearchString": "/login",
          "TextTransformations": [
            {
              "Type": "NONE",
              "Priority": 0
            }
          ]
        }
      }
    }
  }
}
```

# Nilai membatasi permintaan ke halaman login dari alamat IP apa pun, pasangan agen pengguna
<a name="waf-rate-based-example-limit-login-page-keys"></a>

Untuk membatasi jumlah permintaan ke halaman login di situs web Anda untuk alamat IP, pasangan agen pengguna yang melebihi batas Anda, atur agregasi permintaan ke **kunci Kustom** dan berikan kriteria agregasi. 

Daftar JSON berikut menunjukkan contoh konfigurasi aturan ini. Dalam contoh ini, kami telah menetapkan batas untuk 100 permintaan dalam periode lima menit per alamat IP, pasangan agen pengguna. 

```
{
  "Name": "test-rbr",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-rbr"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": 100,
      "EvaluationWindowSec": 300,
      "AggregateKeyType": "CUSTOM_KEYS",
      "CustomKeys": [
        {
          "Header": {
            "Name": "User-Agent",
            "TextTransformations": [
              {
                "Priority": 0,
                "Type": "NONE"
              }
            ]
          }
        },
        {
          "IP": {}
        }
      ],
      "ScopeDownStatement": {
        "ByteMatchStatement": {
          "FieldToMatch": {
            "UriPath": {}
          },
          "PositionalConstraint": "STARTS_WITH",
          "SearchString": "/login",
          "TextTransformations": [
            {
              "Type": "NONE",
              "Priority": 0
            }
          ]
        }
      }
    }
  }
}
```

# Batasi nilai permintaan yang tidak memiliki header tertentu
<a name="waf-rate-based-example-limit-missing-header"></a>

Untuk membatasi jumlah permintaan yang tidak memiliki header tertentu, Anda dapat menggunakan opsi **Hitung semua** agregasi dengan pernyataan cakupan bawah. Konfigurasikan pernyataan scope-down dengan `NOT` pernyataan logis yang berisi pernyataan yang mengembalikan true hanya jika header ada dan memiliki nilai. 

Daftar JSON berikut menunjukkan contoh konfigurasi aturan ini. 

```
{
  "Name": "test-rbr",
  "Priority": 0,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-rbr"
  },
  "Statement": {
    "RateBasedStatement": {
      "Limit": 1000,
      "AggregateKeyType": "CONSTANT",
      "EvaluationWindowSec": 300,
      "ScopeDownStatement": {
        "NotStatement": {
          "Statement": {
            "SizeConstraintStatement": {
              "FieldToMatch": {
                "SingleHeader": {
                  "Name": "user-agent"
                }
              },
              "ComparisonOperator": "GT",
              "Size": 0,
              "TextTransformations": [
                {
                  "Type": "NONE",
                  "Priority": 0
                }
              ]
            }
          }
        }
      }
    }
  }
}
```

# Nilai membatasi permintaan dengan label tertentu
<a name="waf-rate-based-example-limit-labels"></a>

Untuk membatasi jumlah permintaan dari berbagai kategori, Anda dapat menggabungkan pembatasan tarif dengan aturan atau grup aturan apa pun yang menambahkan label ke permintaan. Untuk melakukan ini, Anda mengonfigurasi paket perlindungan Anda (web ACL) sebagai berikut: 
+ Tambahkan aturan atau grup aturan yang menambahkan label, dan konfigurasikan agar tidak memblokir atau mengizinkan permintaan yang ingin Anda beri batas nilai. Jika Anda menggunakan grup aturan terkelola, Anda mungkin perlu mengganti beberapa tindakan aturan grup aturan Count untuk mencapai perilaku ini. 
+ Tambahkan aturan berbasis tarif ke paket perlindungan Anda (ACL web) dengan pengaturan nomor prioritas yang lebih tinggi dari aturan pelabelan dan grup aturan. AWS WAF mengevaluasi aturan dalam urutan numerik, mulai dari yang terendah, sehingga aturan berbasis tarif Anda akan berjalan setelah aturan pelabelan. Konfigurasikan batasan tarif Anda pada label menggunakan kombinasi pencocokan label dalam pernyataan cakupan bawah aturan dan agregasi label. 

Contoh berikut menggunakan grup aturan Aturan AWS Terkelola daftar reputasi IP Amazon. Aturan grup aturan `AWSManagedIPDDoSList` mendeteksi dan memberi label permintaan IPs yang diketahui aktif terlibat dalam aktivitas DDo S. Tindakan aturan dikonfigurasi Count dalam definisi grup aturan. Untuk informasi selengkapnya tentang grup aturan, lihat[Grup aturan terkelola daftar reputasi IP Amazon](aws-managed-rule-groups-ip-rep.md#aws-managed-rule-groups-ip-rep-amazon).

Daftar JSON paket perlindungan (web ACL) berikut menggunakan grup aturan reputasi IP diikuti oleh aturan berbasis tingkat pencocokan label. Aturan berbasis laju menggunakan pernyataan scope-down untuk memfilter permintaan yang telah ditandai oleh aturan grup aturan. Pernyataan aturan berbasis tingkat agregat dan nilai membatasi permintaan yang difilter oleh alamat IP mereka. 

```
{
  "Name": "test-web-acl",
  "Id": ... 
  "ARN": ...
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "",
  "Rules": [
    {
      "Name": "AWS-AWSManagedRulesAmazonIpReputationList",
      "Priority": 0,
      "Statement": {
        "ManagedRuleGroupStatement": {
          "VendorName": "AWS",
          "Name": "AWSManagedRulesAmazonIpReputationList"
        }
      },
      "OverrideAction": {
        "None": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSManagedRulesAmazonIpReputationList"
      }
    },
    {
      "Name": "test-rbr",
      "Priority": 1,
      "Statement": {
        "RateBasedStatement": {
          "Limit": 100,
          "EvaluationWindowSec": 300,
          "AggregateKeyType": "IP",
          "ScopeDownStatement": {
            "LabelMatchStatement": {
              "Scope": "LABEL",
              "Key": "awswaf:managed:aws:amazon-ip-list:AWSManagedIPDDoSList"
            }
          }
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "test-rbr"
      }
    }
  ],
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-web-acl"
  },
  "Capacity": 28,
  "ManagedByFirewallManager": false,
  "RetrofittedByFirewallManager": false,
  "LabelNamespace": "awswaf:0000000000:webacl:test-web-acl:"
}
```

# Nilai batas permintaan untuk label yang memiliki namespace label tertentu
<a name="waf-rate-based-example-limit-label-aggregation"></a>

**catatan**  
Aturan tingkat umum dalam grup aturan terkelola Bot Control menambahkan label untuk bot dari berbagai kategori, tetapi mereka hanya memblokir permintaan dari bot yang tidak diverifikasi. Untuk informasi tentang aturan ini, lihat[Daftar aturan Bot Control](aws-managed-rule-groups-bot.md#aws-managed-rule-groups-bot-rules).

Jika Anda menggunakan grup aturan terkelola Kontrol Bot, Anda dapat menambahkan batasan tarif untuk permintaan dari bot terverifikasi individual. Untuk melakukan ini, Anda menambahkan aturan berbasis kecepatan yang berjalan setelah grup aturan Kontrol Bot dan agregat permintaan berdasarkan label nama bot mereka. Anda menentukan kunci agregasi **namespace Label** dan mengatur kunci namespace ke. `awswaf:managed:aws:bot-control:bot:name:` Setiap label unik dengan namespace yang ditentukan akan menentukan contoh agregasi. Misalnya, label `awswaf:managed:aws:bot-control:bot:name:axios` dan `awswaf:managed:aws:bot-control:bot:name:curl` masing-masing mendefinisikan contoh agregasi.

Daftar JSON paket perlindungan (web ACL) berikut menunjukkan konfigurasi ini. Aturan dalam contoh ini membatasi permintaan untuk setiap instance agregasi bot tunggal menjadi 1.000 dalam periode dua menit. 

```
{
  "Name": "test-web-acl",
  "Id": ... 
  "ARN": ...
  "DefaultAction": {
    "Allow": {}
  },
  "Description": "",
  "Rules": [
    {
      "Name": "AWS-AWSManagedRulesBotControlRuleSet",
      "Priority": 0,
      "Statement": {
        "ManagedRuleGroupStatement": {
          "VendorName": "AWS",
          "Name": "AWSManagedRulesBotControlRuleSet",
          "ManagedRuleGroupConfigs": [
            {
              "AWSManagedRulesBotControlRuleSet": {
                "InspectionLevel": "COMMON"
              }
            }
          ]
        }
      },
      "OverrideAction": {
        "None": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "AWS-AWSManagedRulesBotControlRuleSet"
      }
    },
    {
      "Name": "test-rbr",
      "Priority": 1,
      "Statement": {
        "RateBasedStatement": {
          "Limit": 1000,
          "EvaluationWindowSec": 120,
          "AggregateKeyType": "CUSTOM_KEYS",
          "CustomKeys": [
            {
              "LabelNamespace": {
                "Namespace": "awswaf:managed:aws:bot-control:bot:name:"
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "test-rbr"
      }
    }
  ],
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "test-web-acl"
  },
  "Capacity": 82,
  "ManagedByFirewallManager": false,
  "RetrofittedByFirewallManager": false,
  "LabelNamespace": "awswaf:0000000000:webacl:test-web-acl:"
}
```

# Nilai membatasi permintaan dengan spesifik ASNs
<a name="waf-rate-based-example-limit-asn"></a>

Untuk membatasi jumlah permintaan dari Autonomous System Numbers (ASNs) tertentu berdasarkan alamat IP permintaan, atur agregasi permintaan ke *kunci Kustom* dan berikan kriteria agregasi.

JSON berikut menunjukkan contoh agregasi aturan yang ASNs berasal dari alamat IP diteruskan yang ditemukan di header. `X-Forwarded-For` Jika tidak AWS WAF dapat memperoleh ASN karena alamat IP salah bentuk, perilaku fallback diatur ke. `MATCH`

```
{
    "Name": "test-rbr",
    "Priority": 0,
    "Statement": {
        "RateBasedStatement": {
            "AggregateKeyType": "CUSTOM_KEYS",
            "CustomKeys": [
                {
                    "ASN": {}
                },
                {
                    "ForwardedIP": {}
                }
            ],
            "EvaluationWindowSec": 300,
            "ForwardedIPConfig": {
                "FallbackBehavior": "MATCH",
                "HeaderName": "X-Forwarded-For"
            },
            "Limit": 2000
        }
    },
    "VisibilityConfig": {
        "CloudWatchMetricsEnabled": true,
        "MetricName": "test-rbr",
        "SampledRequestsEnabled": true
    }
}
```

# Daftar alamat IP yang dibatasi oleh aturan berbasis tarif
<a name="listing-managed-ips"></a>

Bagian ini menjelaskan cara mengakses daftar alamat IP yang saat ini dibatasi oleh aturan berbasis tarif dengan menggunakan CLI, API, atau salah satu. SDKs 

Jika aturan berbasis tarif Anda hanya agregat pada alamat IP atau alamat IP yang diteruskan, Anda dapat mengambil daftar alamat IP yang aturan saat ini membatasi tarif. AWS WAF menyimpan alamat IP ini dalam daftar kunci terkelola aturan. 

**catatan**  
Opsi ini hanya tersedia jika Anda menggabungkan hanya alamat IP atau hanya alamat IP di header. Jika Anda menggunakan agregasi permintaan kunci kustom, Anda tidak dapat mengambil daftar alamat IP terbatas tarif, bahkan jika Anda menggunakan salah satu spesifikasi alamat IP di kunci kustom Anda.

Aturan berbasis laju menerapkan tindakan aturannya ke permintaan dari daftar kunci terkelola aturan yang cocok dengan pernyataan cakupan bawah aturan. Ketika aturan tidak memiliki pernyataan cakupan bawah, itu menerapkan tindakan untuk semua permintaan dari alamat IP yang ada dalam daftar. Tindakan aturan secara Block default, tetapi dapat berupa tindakan aturan yang valid kecuali untukAllow. Jumlah maksimum alamat IP yang AWS WAF dapat membatasi nilai menggunakan instance aturan berbasis tarif tunggal adalah 10.000. Jika lebih dari 10.000 alamat melebihi batas tarif, AWS WAF batasi alamat dengan tarif tertinggi. 

Anda dapat mengakses daftar kunci terkelola aturan berbasis laju menggunakan CLI, API, atau salah satu. SDKs Topik ini mencakup akses menggunakan CLI dan. APIs Konsol tidak menyediakan akses ke daftar saat ini. 

Untuk AWS WAF API, perintahnya adalah [GetRateBasedStatementManagedKeys](https://docs.aws.amazon.com/waf/latest/APIReference/API_GetRateBasedStatementManagedKeys.html).

[Untuk AWS WAF CLI, perintahnya adalah get-rate-based-statement -managed-keys.](https://docs.aws.amazon.com/cli/latest/reference/wafv2/get-rate-based-statement-managed-keys.html) 

Berikut ini menunjukkan sintaks untuk mengambil daftar alamat IP terbatas tingkat untuk aturan berbasis tarif yang digunakan dalam paket perlindungan (web ACL) pada distribusi Amazon. CloudFront 

```
aws wafv2 get-rate-based-statement-managed-keys --scope=CLOUDFRONT --region=us-east-1 --web-acl-name=WebACLName --web-acl-id=WebACLId --rule-name=RuleName
```

Berikut ini menunjukkan sintaks untuk aplikasi regional, Amazon API Gateway REST API, Application Load Balancer, API AWS AppSync GraphQL, kumpulan pengguna Amazon Cognito, layanan AWS App Runner , atau instance Akses Terverifikasi. AWS Amplify AWS 

```
aws wafv2 get-rate-based-statement-managed-keys --scope=REGIONAL --region=region --web-acl-name=WebACLName --web-acl-id=WebACLId --rule-name=RuleName
```

AWS WAF memantau permintaan web dan mengelola kunci secara independen untuk setiap kombinasi unik paket perlindungan (web ACL), grup aturan opsional, dan aturan berbasis tarif. Misalnya, jika Anda menentukan aturan berbasis laju di dalam grup aturan, dan kemudian menggunakan grup aturan dalam paket perlindungan (web ACL), AWS WAF memantau permintaan web dan mengelola kunci untuk paket perlindungan tersebut (web ACL), pernyataan referensi grup aturan, dan contoh aturan berbasis tarif. Jika Anda menggunakan grup aturan yang sama dalam paket perlindungan kedua (web ACL), AWS WAF memantau permintaan web dan mengelola kunci untuk penggunaan kedua ini sepenuhnya independen dari yang pertama.

Untuk aturan berbasis laju yang telah Anda tetapkan di dalam grup aturan, Anda harus memberikan nama pernyataan referensi grup aturan dalam permintaan Anda, selain nama paket perlindungan (web ACL) dan nama aturan berbasis tarif di dalam grup aturan. Berikut ini menunjukkan sintaks untuk aplikasi regional di mana aturan berbasis laju didefinisikan di dalam grup aturan, dan grup aturan digunakan dalam paket perlindungan (web ACL). 

```
aws wafv2 get-rate-based-statement-managed-keys --scope=REGIONAL --region=region --web-acl-name=WebACLName --web-acl-id=WebACLId --rule-group-rule-name=RuleGroupRuleName --rule-name=RuleName
```

# Menggunakan pernyataan aturan grup aturan di AWS WAF
<a name="waf-rule-statements-rule-group"></a>

**catatan**  
Pernyataan aturan kelompok aturan tidak bersarang. 

Bagian ini menjelaskan pernyataan aturan grup aturan yang dapat Anda gunakan dalam paket perlindungan (web ACL). Rule group protection pack (web ACL) unit kapasitas (WCUs) ditetapkan oleh pemilik grup aturan pada saat pembuatan. Untuk informasi tentang WCUs, lihat[Unit kapasitas ACL Web (WCUs) di AWS WAF](aws-waf-capacity-units.md). 


| Pernyataan kelompok aturan | Deskripsi | WCUs | 
| --- | --- | --- | 
|  [Menggunakan pernyataan grup aturan terkelola](waf-rule-statement-type-managed-rule-group.md)  |  Menjalankan aturan yang didefinisikan dalam grup aturan terkelola yang ditentukan.  Anda dapat mempersempit cakupan permintaan yang dievaluasi oleh grup aturan dengan menambahkan pernyataan cakupan ke bawah.  Anda tidak dapat membuat sarang pernyataan grup aturan terkelola di dalam jenis pernyataan lainnya.  |  Didefinisikan oleh grup aturan, ditambah tambahan apa pun WCUs untuk pernyataan cakupan bawah.  | 
| [Menggunakan pernyataan grup aturan](waf-rule-statement-type-rule-group.md) | Menjalankan aturan yang didefinisikan dalam grup aturan yang Anda kelola.  Anda tidak dapat menambahkan pernyataan scope-down ke pernyataan referensi grup aturan untuk grup aturan Anda sendiri.  Anda tidak dapat membuat sarang pernyataan grup aturan di dalam jenis pernyataan lain  | Anda menentukan batas WCU untuk grup aturan saat Anda membuatnya. | 

# Menggunakan pernyataan grup aturan terkelola di AWS WAF
<a name="waf-rule-statement-type-managed-rule-group"></a>

Bagian ini menjelaskan cara kerja pernyataan aturan kelompok aturan terkelola.

Pernyataan aturan grup aturan terkelola menambahkan referensi dalam daftar aturan paket perlindungan (web ACL) Anda ke grup aturan terkelola. Anda tidak melihat opsi ini di bawah pernyataan aturan Anda di konsol, tetapi ketika Anda bekerja dengan format JSON ACL web Anda, setiap grup aturan terkelola yang telah Anda tambahkan muncul di bawah aturan paket perlindungan (web ACL) sebagai tipe ini.

Grup aturan terkelola adalah grup aturan Aturan AWS Terkelola, yang sebagian besar gratis untuk AWS WAF pelanggan, atau grup aturan AWS Marketplace terkelola. Anda secara otomatis berlangganan grup aturan Aturan AWS Terkelola berbayar saat Anda menambahkannya ke paket perlindungan (web ACL). Anda dapat berlangganan grup aturan AWS Marketplace terkelola melalui AWS Marketplace. Untuk informasi selengkapnya, lihat [Menggunakan grup aturan terkelola di AWS WAF](waf-managed-rule-groups.md).

Saat menambahkan grup aturan ke paket perlindungan (web ACL), Anda dapat mengganti tindakan aturan dalam grup ke Count atau ke tindakan aturan lain. Untuk informasi selengkapnya, lihat [Mengesampingkan tindakan grup aturan di AWS WAF](web-acl-rule-group-override-options.md).

Anda dapat mempersempit cakupan permintaan yang AWS WAF mengevaluasi dengan grup aturan. Untuk melakukan ini, Anda menambahkan pernyataan cakupan ke bawah di dalam pernyataan grup aturan. Untuk informasi tentang pernyataan cakupan bawah, lihat. [Menggunakan pernyataan scope-down di AWS WAF](waf-rule-scope-down-statements.md) Ini dapat membantu Anda mengelola bagaimana grup aturan memengaruhi lalu lintas Anda dan dapat membantu Anda memuat biaya yang terkait dengan volume lalu lintas saat Anda menggunakan grup aturan. Untuk informasi dan contoh penggunaan pernyataan scope-down dengan grup aturan terkelola AWS WAF Bot Control, lihat. [AWS WAF Kontrol Bot](waf-bot-control.md)

## Karakteristik pernyataan aturan
<a name="managed-rule-group-rule-statement-characteristics"></a>

**Tidak bersarang** - Anda tidak dapat membuat jenis pernyataan ini di dalam pernyataan lain, dan Anda tidak dapat memasukkannya ke dalam grup aturan. Anda dapat memasukkannya langsung ke dalam paket perlindungan (web ACL). 

**(Opsional) Pernyataan cakupan bawah** — Jenis aturan ini menggunakan pernyataan cakupan bawah opsional, untuk mempersempit cakupan permintaan yang dievaluasi oleh grup aturan. Untuk informasi selengkapnya, lihat [Menggunakan pernyataan scope-down di AWS WAF](waf-rule-scope-down-statements.md).

**WCUs**— Tetapkan untuk grup aturan saat pembuatan.

## Di mana menemukan pernyataan aturan ini
<a name="managed-rule-group-rule-statement-where-to-find"></a>
+ **Konsol** — Selama proses membuat paket perlindungan (ACL web), pada halaman **Tambahkan aturan dan grup aturan**, pilih **Tambahkan grup aturan terkelola**, lalu temukan dan pilih grup aturan yang ingin Anda gunakan.
+ **API** — [ManagedRuleGroupStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_ManagedRuleGroupStatement.html)

# Menggunakan pernyataan grup aturan di AWS WAF
<a name="waf-rule-statement-type-rule-group"></a>

Bagian ini menjelaskan cara kerja pernyataan aturan kelompok aturan.

Pernyataan aturan grup aturan menambahkan referensi ke daftar aturan paket perlindungan (web ACL) Anda ke grup aturan yang Anda kelola. Anda tidak melihat opsi ini di bawah pernyataan aturan Anda di konsol, tetapi ketika Anda bekerja dengan format JSON paket perlindungan Anda (web ACL), grup aturan Anda sendiri yang telah Anda tambahkan muncul di bawah paket perlindungan (web ACL) aturan sebagai jenis ini. Untuk informasi tentang menggunakan grup aturan Anda sendiri, lihat[Mengelola grup aturan Anda sendiri](waf-user-created-rule-groups.md).

Saat menambahkan grup aturan ke paket perlindungan (web ACL), Anda dapat mengganti tindakan aturan dalam grup ke Count atau ke tindakan aturan lain. Untuk informasi selengkapnya, lihat [Mengesampingkan tindakan grup aturan di AWS WAF](web-acl-rule-group-override-options.md).

## Karakteristik pernyataan aturan
<a name="rule-group-rule-statement-characteristics"></a>

**Tidak bersarang** - Anda tidak dapat membuat jenis pernyataan ini di dalam pernyataan lain, dan Anda tidak dapat memasukkannya ke dalam grup aturan. Anda dapat memasukkannya langsung ke dalam paket perlindungan (web ACL). 

**WCUs**— Tetapkan untuk grup aturan saat pembuatan.

## Di mana menemukan pernyataan aturan ini
<a name="rule-group-rule-statement-where-to-find"></a>
+ **Konsol** — Selama proses membuat paket perlindungan (web ACL), pada halaman **Tambahkan aturan dan grup aturan**, pilih **Tambahkan aturan dan grup aturan saya sendiri**, **Grup aturan**, lalu tambahkan grup aturan yang ingin Anda gunakan.
+ **API** — [RuleGroupReferenceStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_RuleGroupReferenceStatement.html)