Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
BagaimanaAWS WAFKarya Klasik
catatan
Ini adalahAWS WAFKlasikdokumentasi. Anda sebaiknya hanya menggunakan versi ini jika Anda membuatAWS WAFsumber daya, seperti aturan dan ACL web, diAWS WAFsebelum November 2019, dan Anda belum memigrasikannya ke versi terbaru. Untuk memigrasi sumber daya Anda, lihatMigrasiAWS WAFSumber daya klasik untukAWS WAF.
Untuk versi terbaruAWS WAF, lihatAWS WAF.
Anda menggunakanAWS WAFKlasik untuk mengontrol bagaimana API Gateway, Amazon CloudFront atau Application Load Balancer merespons permintaan web. Anda mulai dengan membuat kondisi, aturan, dan daftar kontrol akses web (web ACL). Anda menentukan kondisi Anda, menggabungkan kondisi Anda ke dalam aturan, dan menggabungkan aturan ke dalam web ACL.
catatan
Anda juga dapat menggunakanAWS WAFUntuk melindungi aplikasi Anda yang di-host di kontainer Amazon Elastic Container Service (Amazon ECS). Amazon ECS adalah layanan manajemen kontainer yang sangat dapat diskalakan dan cepat sehingga memudahkan untuk menjalankan, menghentikan, dan mengelola kontainer Docker di klaster. Untuk menggunakan opsi ini, Anda mengkonfigurasi Amazon ECS untuk menggunakanAWS WAFClassic diaktifkan Application Load Balancer untuk merutekan dan melindungi lalu lintas HTTP/HTTPS (layer 7) di seluruh tugas dalam layanan Anda. Untuk informasi selengkapnya, lihat topikPenyeimbangan Beban LayanandiPanduan Pengembang Amazon Elastic Container Service.
- Kondisi
-
Kondisi menentukan karakteristik dasar yang Anda inginkanAWS WAFKlasik untuk ditonton dalam permintaan web:
-
Skrip yang cenderung berbahaya. Penyerang menanamkan skrip yang dapat mengeksploitasi kerentanan dalam aplikasi web. Hal ini dikenal sebagaiscripting lintas-site.
-
Alamat IP atau jangkauan alamat yang meminta.
-
Negara atau lokasi geografis yang meminta berasal dari.
-
Panjang bagian tertentu dari permintaan, seperti string query.
-
Kode SQL yang kemungkinan berbahaya. Penyerang mencoba mengekstrak data dari basis data Anda dengan menyematkan kode SQL berbahaya dalam permintaan web. Hal ini dikenal sebagaiInjeksi 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.
Beberapa kondisi mengambil beberapa nilai. Misalnya, Anda dapat menentukan hingga 10.000 alamat IP atau rentang alamat IP dalam kondisi IP.
-
- Aturan
-
Anda menggabungkan kondisi ke dalam aturan untuk secara tepat menargetkan permintaan yang ingin Anda izinkan, blok, atau hitung.AWS WAF Klasik menyediakan dua jenis aturan:
- Aturan reguler
-
Aturan reguler hanya menggunakan ketentuan untuk menargetkan permintaan tertentu. Misalnya, berdasarkan permintaan terbaru yang telah Anda lihat dari penyerang, Anda dapat membuat aturan yang menyertakan syarat berikut:
-
Permintaan datang dari 192.0.2.44.
-
Berisi nilai
BadBot
di headerUser-Agent
. -
Mereka muncul untuk menyertakan kode SQL-seperti dalam string query.
Ketika aturan mencakup beberapa kondisi, seperti dalam contoh ini,AWS WAFClassic mencari permintaan yang cocok dengan semua kondisi — yaitu, itu
AND
S kondisi bersama-sama.Tambahkan setidaknya satu syarat ke aturan reguler. Aturan reguler tanpa kondisi tidak dapat cocok dengan permintaan apa pun, sehingga tindakan aturan (mengizinkan, menghitung, atau memblokir) tidak pernah dipicu.
-
- Aturan berbasis tarif
-
Aturan berbasis tarif seperti aturan reguler dengan batas tarif tambahan. Aturan berbasis tarif menghitung permintaan yang datang dari alamat IP yang memenuhi ketentuan aturan. Jika permintaan dari alamat IP melebihi batas tarif dalam periode lima menit, aturan dapat memicu tindakan. Hal ini dapat memakan waktu satu atau dua menit untuk memicu aksi.
Kondisi bersifat opsional untuk aturan berbasis tarif. Jika Anda tidak menambahkan kondisi apa pun dalam aturan berbasis tarif, batas tarif berlaku untuk semua alamat IP. Jika Anda menggabungkan kondisi dengan batas tarif, batas tarif berlaku untuk alamat IP yang sesuai dengan kondisi.
Misalnya, berdasarkan permintaan terbaru yang telah Anda lihat dari penyerang, Anda dapat membuat aturan berbasis tarif yang menyertakan syarat berikut:
-
Permintaan datang dari 192.0.2.44.
-
Berisi nilai
BadBot
di headerUser-Agent
.
Dalam aturan berbasis laju ini, Anda juga menentukan batas laju. Dalam contoh ini, katakanlah Anda membuat batas tarif 1.000. Permintaan yang memenuhi kedua syarat sebelumnya dan melebihi 1.000 permintaan per lima menit memicu tindakan aturan (memblokir atau menghitung), yang ditentukan di ACL web.
Permintaan yang tidak memenuhi kedua syarat tersebut tidak dihitung terhadap batas tarif dan tidak terpengaruh oleh aturan ini.
Sebagai contoh kedua, anggaplah Anda ingin membatasi permintaan ke halaman tertentu di situs web Anda. Untuk melakukan ini, Anda dapat menambahkan kondisi pencocokan string berikut ke aturan berbasis tingkat:
-
ParameterBagian dari permintaan untuk menyaringadalah
URI
. -
ParameterJenis Pencocokanadalah
Starts with
. -
SEBUAHNilai untuk mencocokkanadalah
login
.
Selanjutnya, Anda menentukan
RateLimit
1.000.Dengan menambahkan aturan berbasis tarif ini ke web ACL, Anda dapat membatasi permintaan ke halaman login Anda tanpa memengaruhi sisa situs Anda.
-
- ACL web
-
Setelah Anda menggabungkan kondisi Anda ke dalam aturan, Anda menggabungkan aturan ke dalam web ACL. Di sinilah Anda mendefinisikan tindakan untuk setiap aturan—allow, block, atau count—dan action default:
- Tindakan untuk setiap aturan
-
Ketika permintaan web cocok dengan semua kondisi dalam aturan,AWS WAFClassic dapat memblokir permintaan atau mengizinkan permintaan untuk diteruskan ke API Gateway API, CloudFront distribusi atau Application Load Balancer. Anda menentukan tindakan yang Anda inginkanAWS WAFKlasik untuk tampil untuk setiap aturan.
AWS WAFKlasik membandingkan permintaan dengan aturan di web ACL dalam urutan di mana Anda terdaftar aturan.AWS WAF Klasik kemudian mengambil tindakan yang terkait dengan aturan pertama yang cocok permintaan. Misalnya, jika permintaan web cocok dengan satu aturan yang memungkinkan permintaan dan aturan lain yang memblokir permintaan,AWS WAFClassic akan mengizinkan atau memblokir permintaan tergantung pada aturan mana yang terdaftar terlebih dahulu.
Jika Anda ingin menguji aturan baru sebelum Anda mulai menggunakannya, Anda juga dapat mengkonfigurasiAWS WAFKlasik untuk menghitung permintaan yang memenuhi semua kondisi dalam aturan. Seperti aturan yang memungkinkan atau memblokir permintaan, aturan yang menghitung permintaan dipengaruhi oleh posisinya dalam daftar aturan di web ACL. Misalnya, jika permintaan web cocok dengan aturan yang memungkinkan permintaan dan aturan lain yang menghitung permintaan, dan jika aturan yang mengizinkan permintaan dicantumkan terlebih dahulu, permintaan tersebut tidak dihitung.
- Tindakan default
-
Tindakan default menentukan apakahAWS WAFClassic mengizinkan atau memblokir permintaan yang tidak cocok dengan semua kondisi di salah satu aturan di web ACL. Misalnya, misalkan Anda membuat web ACL dan menambahkan hanya aturan yang Anda tetapkan sebelumnya:
-
Permintaan datang dari 192.0.2.44.
-
Berisi nilai
BadBot
di headerUser-Agent
. -
Mereka tampaknya menyertakan kode SQL berbahaya dalam string kueri.
Jika permintaan tidak memenuhi ketiga kondisi dalam aturan dan jika tindakan default
ALLOW
,AWS WAFKlasik meneruskan permintaan ke API Gateway, CloudFront atau Application Load Balancer, dan layanan merespon dengan objek yang diminta.Jika Anda menambahkan dua atau lebih aturan ke ACL web,AWS WAFClassic melakukan tindakan default hanya jika permintaan tidak memenuhi semua kondisi di salah satu aturan. Misalnya, anggaplah Anda menambahkan aturan kedua yang berisi satu syarat:
-
Permintaan yang berisi nilai
BIGBadBot
diUser-Agent
header.
AWS WAFClassic melakukan tindakan default hanya jika permintaan tidak memenuhi ketiga kondisi dalam aturan pertama dan tidak memenuhi satu syarat dalam aturan kedua.
-
Pada beberapa kesempatan,AWS WAFmungkin mengalami kesalahan internal yang menunda respons terhadap Amazon API Gateway, Amazon CloudFront atau Application Load Balancer tentang apakah akan mengizinkan atau memblokir permintaan. Pada kesempatan tersebut CloudFront biasanya akan mengizinkan permintaan atau melayani konten. API Gateway dan Application Load Balancer biasanya akan menolak permintaan dan tidak melayani konten.