Aturan kustom untuk Azure Web Application Firewall di Azure Front Door

Azure Web Application Firewall di Azure Front Door memungkinkan Anda mengontrol akses ke aplikasi web Anda berdasarkan kondisi yang Anda tentukan. Aturan firewall aplikasi web (WAF) kustom terdiri dari nomor prioritas, jenis aturan, kondisi kecocokan, dan tindakan.

Ada dua jenis aturan kustom: aturan pencocokan dan aturan batas laju. Aturan kecocokan mengontrol akses berdasarkan serangkaian kondisi yang cocok. Aturan batas tarif mengontrol akses berdasarkan kondisi yang cocok dan tingkat permintaan masuk. Anda dapat menonaktifkan aturan kustom untuk mencegahnya dievaluasi tetapi masih menyimpan konfigurasi.

Untuk informasi selengkapnya tentang pembatasan tarif, lihat Apa itu pembatasan tarif untuk Azure Front Door?.

Prioritas, jenis tindakan, dan kondisi kecocokan

Anda dapat mengontrol akses dengan aturan WAF kustom yang menentukan nomor prioritas, jenis aturan, array kondisi kecocokan, dan tindakan.

  • Prioritas

    Bilangan bulat unik yang menjelaskan urutan evaluasi aturan WAF. Aturan dengan nilai berprioritas lebih rendah dievaluasi sebelum aturan dengan nilai yang lebih tinggi. Evaluasi aturan berhenti pada tindakan aturan apa pun kecuali Log. Nomor prioritas harus bersifat unik di antara semua aturan kustom.

  • Perbuatan

    Menentukan cara merutekan permintaan jika aturan WAF cocok. Anda dapat memilih salah satu tindakan berikut untuk diterapkan saat permintaan cocok dengan aturan kustom.

    • Izinkan: WAF memungkinkan permintaan untuk diproses, mencatat entri dalam log WAF, dan keluar.
    • Blokir: Permintaan diblokir. WAF mengirimkan respons ke klien tanpa meneruskan permintaan lebih lanjut. WAF mencatat entri dalam log WAF dan keluar.
    • Log: WAF mencatat entri dalam log WAF dan terus mengevaluasi aturan berikutnya dalam urutan prioritas.
    • Pengalihan: WAF mengalihkan permintaan ke URI tertentu, mencatat entri dalam log WAF, dan keluar.
  • Kondisi kecocokan

    Menentukan variabel kecocokan, operator, dan nilai kecocokan. Setiap aturan dapat berisi beberapa kondisi kecocokan. Kondisi kecocokan mungkin didasarkan pada lokasi geografis, alamat IP klien (CIDR), ukuran, atau kecocokan string. Kecocokan string dapat bertentangan dengan daftar variabel pencocokan.

    • Mencocokkan variabel

      • RequestMethod
      • QueryString
      • PostArgs
      • RequestUri
      • RequestHeader
      • RequestBody
      • Cookie
    • Operator

      • Apa pun: Sering digunakan untuk menentukan tindakan default jika tidak ada aturan yang cocok. Any akan cocok dengan semua operator.
      • Equal
      • Contains
      • LessThan: Batasan ukuran
      • GreaterThan: Batasan ukuran
      • LessThanOrEqual: Batasan ukuran
      • GreaterThanOrEqual: Batasan ukuran
      • BeginsWith
      • EndsWith
      • Regex
    • Regex

      Tidak mendukung operasi berikut:

      • Referensi latar dan mengambil subekspresi
      • Pernyataan lebar nol arbitrer
      • Referensi subrutin dan pola rekursif
      • Pola kondisional
      • Kata kerja kontrol mundur
      • Direktif byte tunggal \C
      • Direktif kecocokan baris baru \R
      • Awal \K direktif reset kecocokan
      • Panggilan dan kode yang disematkan
      • Pengelompokan atomik dan bilangan posesif
    • Negate [opsional]

      Anda dapat mengatur kondisi ke negatetrue jika hasil kondisi harus dinegasikan.

    • Transformasi [opsional]

      Daftar string beserta nama transformasi yang dilakukan sebelum pertandingan diupayakan. Hal ini dapat berupa transformasi berikut:

      • Uppercase
      • Huruf kecil
      • Trim
      • RemoveNulls
      • UrlDecode
      • UrlEncode
    • Nilai pencocokan

      Nilai metode permintaan HTTP yang didukung meliputi:

      • GET
      • POST
      • TARUH
      • HEAD
      • DELETE
      • LOCK
      • UNLOCK
      • PROFIL
      • OPSI
      • PROPFIND
      • PROPPATCH
      • MKCOL
      • COPY
      • MOVE
      • PATCH
      • MENGHUBUNG

Contoh

Pertimbangkan contoh berikut.

Mencocokkan berdasarkan parameter permintaan HTTP

Misalkan Anda perlu mengonfigurasi aturan kustom untuk mengizinkan permintaan yang cocok dengan dua kondisi berikut:

  • Nilai header Referer sama dengan nilai yang diketahui.
  • String kueri tidak berisi kata password.

Berikut ini contoh deskripsi JSON dari aturan kustom:

{
  "name": "AllowFromTrustedSites",
  "priority": 1,
  "ruleType": "MatchRule",
  "matchConditions": [
    {
      "matchVariable": "RequestHeader",
      "selector": "Referer",
      "operator": "Equal",
      "negateCondition": false,
      "matchValue": [
        "www.mytrustedsites.com/referpage.html"
      ]
    },
    {
      "matchVariable": "QueryString",
      "operator": "Contains",
      "matchValue": [
        "password"
      ],
      "negateCondition": true
    }
  ],
  "action": "Allow"
}

Memblokir permintaan HTTP PUT

Misalkan Anda perlu memblokir permintaan apa pun yang menggunakan metode HTTP PUT.

Berikut ini contoh deskripsi JSON dari aturan kustom:

{
  "name": "BlockPUT",
  "priority": 2,
  "ruleType": "MatchRule",
  "matchConditions": [
    {
      "matchVariable": "RequestMethod",
      "selector": null,
      "operator": "Equal",
      "negateCondition": false,
      "matchValue": [
        "PUT"
      ]
    }
  ],
  "action": "Block"
}

Batasan ukuran

Waf Azure Front Door memungkinkan Anda membuat aturan kustom yang menerapkan batasan panjang atau ukuran pada bagian dari permintaan masuk. Batasan ukuran ini diukur dalam byte.

Misalkan Anda perlu memblokir permintaan yang URLnya lebih panjang dari 100 karakter.

Berikut ini contoh deskripsi JSON dari aturan kustom:

{
  "name": "URLOver100",
  "priority": 5,
  "ruleType": "MatchRule",
  "matchConditions": [
    {
      "matchVariable": "RequestUri",
      "selector": null,
      "operator": "GreaterThanOrEqual",
      "negateCondition": false,
      "matchValue": [
        "100"
      ]
    }
  ],
  "action": "Block"
}

Menyalin dan menduplikasi aturan kustom

Aturan kustom dapat diduplikasi dalam kebijakan tertentu. Saat menduplikasi aturan, Anda perlu menentukan nama unik untuk aturan dan nilai prioritas unik. Selain itu, aturan kustom dapat disalin dari satu kebijakan WAF Azure Front Door ke kebijakan lain selama kebijakan keduanya berada dalam langganan yang sama. Saat menyalin aturan dari satu kebijakan ke kebijakan lain, Anda perlu memilih kebijakan WAF Azure Front Door yang ingin Anda salin aturannya. Setelah Anda memilih kebijakan WAF, Anda perlu memberi aturan nama unik, dan menetapkan peringkat prioritas.

Langkah berikutnya