Mengonfigurasi aturan batas tarif Web Application Firewall

Aturan batas tarif Azure Web Application Firewall untuk Azure Front Door mengontrol jumlah permintaan yang diizinkan dari alamat IP sumber tertentu ke aplikasi selama durasi batas tarif. Untuk informasi selengkapnya tentang pembatasan tarif, lihat Apa itu pembatasan tarif untuk Azure Front Door?.

Artikel ini menunjukkan cara mengonfigurasi aturan batas tarif firewall aplikasi web (WAF) pada tingkat Azure Front Door Standard dan Premium.

Skenario

Misalkan Anda bertanggung jawab atas situs web publik. Anda baru saja menambahkan halaman dengan informasi tentang promosi yang dijalankan organisasi Anda. Anda khawatir bahwa jika klien terlalu sering mengunjungi halaman tersebut, beberapa layanan back-end Anda mungkin tidak menskalakan dengan cepat dan aplikasi mungkin memiliki masalah performa.

Anda memutuskan untuk membuat aturan batas tarif yang membatasi setiap alamat IP sumber hingga maksimum 1.000 permintaan per menit. Anda hanya menerapkan aturan ini ke permintaan yang terkandung */promo* dalam URL permintaan.

Tip

Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

Membuat profil Azure Front Door dan kebijakan WAF

  1. Pada menu portal Microsoft Azure, pilih Buat sumber daya.

    Cuplikan layar yang memperlihatkan tombol Buat sumber daya di halaman beranda.

  2. Telusuri Front Door, lalu pilih Profil Front Door dan CDN.

    Cuplikan layar yang memperlihatkan marketplace, dengan Front Door disorot.

  3. Pilih Buat.

    Cuplikan layar yang memperlihatkan profil Front Door dan CDN, dengan tombol Buat disorot.

  4. Pilih Lanjutkan untuk membuat Front Door untuk menggunakan proses pembuatan portal buat cepat.

    Cuplikan layar yang memperlihatkan penawaran Azure Front Door, dengan opsi Buat cepat dipilih dan tombol Lanjutkan untuk membuat Front Door disorot.

  5. Masukkan informasi yang diperlukan pada halaman Dasar:

    • Grup sumber daya: Pilih grup sumber daya yang sudah ada, atau buat grup sumber daya baru untuk sumber daya Azure Front Door dan WAF.
    • Nama: Masukkan nama profil Azure Front Door Anda.
    • Tingkat: Pilih Standar atau Premium. Untuk skenario ini, kedua tingkatan mendukung pembatasan tingkat.
    • Nama titik akhir: Berikan nama unik untuk titik akhir Anda karena titik akhir Azure Front Door harus memiliki nama yang unik secara global.
    • Jenis asal dan Nama host asal: Pilih aplikasi asal yang ingin Anda lindungi dengan aturan batas tarif Anda.
  6. Di samping kebijakan WAF, pilih Buat baru.

    Cuplikan layar yang memperlihatkan alur kerja pembuatan Azure Front Door, dengan kebijakan WAF Buat tombol baru disorot.

  7. Masukkan nama kebijakan WAF dan pilih Buat.

    Cuplikan layar yang memperlihatkan perintah pembuatan kebijakan WAF, dengan tombol Buat disorot.

  8. Pilih Tinjau + buat>Buat.

    Cuplikan layar yang memperlihatkan konfigurasi profil Azure Front Door yang telah selesai.

  9. Setelah penyebaran selesai, pilih Buka sumber daya.

Membuat aturan batas tarif

  1. Pilih Aturan kustom>Tambahkan aturan kustom.

    Cuplikan layar yang memperlihatkan halaman aturan kustom kebijakan WAF.

  2. Masukkan informasi yang diperlukan untuk membuat aturan batas tarif:

    • Nama aturan kustom: Masukkan nama aturan kustom, seperti rateLimitRule.
    • Jenis aturan: Pilih Batas tarif.
    • Prioritas: Masukkan prioritas aturan, seperti 1.
    • Durasi batas tarif: Pilih 1 menit.
    • Ambang batas tarif (permintaan): Masukkan 1000.
  3. Dalam Kondisi, masukkan informasi yang diperlukan untuk menentukan kondisi kecocokan untuk mengidentifikasi permintaan di mana URL berisi string */promo*:

    • Jenis pencocokan: Pilih String.
    • Variabel pencocokan: Masukkan RequestUri.
    • Operasi: Pilih adalah.
    • Operator: Pilih Berisi.
    • Nilai kecocokan: Masukkan /promo.
  4. Untuk Tindakan, pilih Log atau Blokir.

    Aturan batas tarif hanya mendukung Log dan Block tindakan. Allow tidak didukung.

    Cuplikan layar yang memperlihatkan konfigurasi aturan kustom.

  5. Pilih Tambahkan.

  6. Pilih Simpan.

    Cuplikan layar yang memperlihatkan daftar aturan kustom, termasuk aturan batas tarif baru.

Menggunakan mode pencegahan pada WAF

Secara default, portal Azure membuat kebijakan WAF dalam mode deteksi. Pengaturan ini berarti bahwa WAF tidak memblokir permintaan. Untuk informasi lebih lanjut, lihat mode WAF.

Sesuaikan WAF Anda sebelum Anda menggunakan mode pencegahan. Penyetelan membantu menghindari deteksi positif palsu. Ini juga membantu mencegah WAF Anda memblokir permintaan yang sah.

Di sini Anda mengonfigurasi ulang WAF untuk menggunakan mode pencegahan.

  1. Membuka kebijakan WAF.

    Perhatikan bahwa mode Kebijakan diatur pada Deteksi.

    Cuplikan layar yang memperlihatkan kebijakan WAF, dengan mode kebijakan dan tombol Beralih ke mode pencegahan disorot.

  2. Pilih Alihkan ke mode pencegahan.

Prasyarat

Sebelum Anda mulai menyiapkan kebijakan batas tarif, siapkan lingkungan PowerShell Anda dan buat profil Azure Front Door.

Menyiapkan lingkungan PowerShell Anda

Azure PowerShell menyediakan satu set cmdlet dengan menggunakan model Azure Resource Manager untuk mengelola sumber daya Azure Anda.

Anda dapat menginstal Azure PowerShell di komputer lokal Anda dan menggunakannya di sesi PowerShell apa pun. Di sini Anda masuk dengan kredensial Azure Anda dan menginstal modul Azure PowerShell untuk Azure Front Door Standard atau Premium.

Menyambungkan ke Azure dengan dialog interaktif untuk rincian masuk

Masuk ke Azure dengan menjalankan perintah berikut:

Connect-AzAccount

Menginstal PowerShellGet

Pastikan bahwa versi PowerShellGet saat ini diinstal. Jalankan perintah berikut:

Install-Module PowerShellGet -Force -AllowClobber

Kemudian, mulai ulang PowerShell untuk memastikan bahwa Anda menggunakan versi terbaru.

Menginstal modul Azure Front Door PowerShell

Az.FrontDoor Instal modul PowerShell dan Az.Cdn untuk bekerja dengan Azure Front Door Standard atau Premium dari PowerShell.

Install-Module -Name Az.FrontDoor
Install-Module -Name Az.Cdn

Anda menggunakan Az.Cdn modul untuk bekerja dengan sumber daya Azure Front Door Standard atau Premium. Az.FrontDoor Gunakan modul untuk bekerja dengan sumber daya WAF.

Membuat grup sumber daya

Gunakan cmdlet New-AzResourceGroup untuk membuat grup sumber daya baru untuk profil Azure Front Door dan kebijakan WAF Anda. Perbarui nama dan lokasi grup sumber daya untuk kebutuhan Anda sendiri:

$resourceGroupName = 'FrontDoorRateLimit'

New-AzResourceGroup -Name $resourceGroupName -Location 'westus'

Membuat profil Azure Front Door

Gunakan cmdlet New-AzFrontDoorCdnProfile untuk membuat profil Azure Front Door baru.

Dalam contoh ini, Anda membuat profil standar Azure Front Door bernama MyFrontDoorProfile:

$frontDoorProfile = New-AzFrontDoorCdnProfile `
  -Name 'MyFrontDoorProfile' `
  -ResourceGroupName $resourceGroupName `
  -Location global `
  -SkuName Standard_AzureFrontDoor

Membuat titik akhir Azure Front Door

Gunakan cmdlet New-AzFrontDoorCdnEndpoint untuk menambahkan titik akhir ke profil Azure Front Door Anda.

Titik akhir Azure Front Door harus memiliki nama yang unik secara global, jadi perbarui nilai variabel menjadi $frontDoorEndpointName sesuatu yang unik.

$frontDoorEndpointName = '<unique-front-door-endpoint-name>'

$frontDoorEndpoint = New-AzFrontDoorCdnEndpoint `
  -EndpointName $frontDoorEndpointName `
  -ProfileName $frontDoorProfile.Name `
  -ResourceGroupName $frontDoorProfile.ResourceGroupName `
  -Location $frontDoorProfile.Location

Menenntukan kondisi kecocokan URL

Gunakan cmdlet New-AzFrontDoorWafMatchConditionObject untuk membuat kondisi kecocokan untuk mengidentifikasi permintaan yang seharusnya menerapkan batas tarif.

Contoh berikut cocok dengan permintaan di RequestUri mana variabel berisi string /promo:

$promoMatchCondition = New-AzFrontDoorWafMatchConditionObject `
  -MatchVariable RequestUri `
  -OperatorProperty Contains `
  -MatchValue '/promo'

Membuat aturan batas tarif kustom

Gunakan cmdlet New-AzFrontDoorWafCustomRuleObject untuk membuat aturan batas tarif, yang mencakup kondisi kecocokan yang Anda tentukan di langkah sebelumnya dan ambang batas permintaan.

Contoh berikut menetapkan batas ke 1000:

$promoRateLimitRule = New-AzFrontDoorWafCustomRuleObject `
  -Name 'rateLimitRule' `
  -RuleType RateLimitRule `
  -MatchCondition $promoMatchCondition `
  -RateLimitThreshold 1000 `
  -Action Block `
  -Priority 1

Ketika alamat IP sumber mengirimkan lebih dari 1.000 permintaan dalam satu menit, WAF memblokir permintaan berikutnya hingga menit berikutnya dimulai.

Membuat kebijakan WAF

Gunakan cmdlet New-AzFrontDoorWafPolicy untuk membuat kebijakan WAF, yang mencakup aturan kustom yang Anda buat.

$wafPolicy = New-AzFrontDoorWafPolicy `
  -Name 'MyWafPolicy' `
  -ResourceGroupName $frontDoorProfile.ResourceGroupName `
  -Sku Standard_AzureFrontDoor `
  -CustomRule $promoRateLimitRule

Mengonfigurasi kebijakan keamanan untuk mengaitkan profil Azure Front Door Anda dengan kebijakan WAF Anda

Gunakan cmdlet New-AzFrontDoorCdnSecurityPolicy untuk membuat kebijakan keamanan untuk profil Azure Front Door Anda. Kebijakan keamanan mengaitkan kebijakan WAF Anda dengan domain yang ingin Anda lindungi oleh aturan WAF.

Dalam contoh ini, Anda mengaitkan nama host default titik akhir dengan kebijakan WAF Anda:

$securityPolicyAssociation = New-AzFrontDoorCdnSecurityPolicyWebApplicationFirewallAssociationObject `
  -PatternsToMatch @("/*") `
  -Domain @(@{"Id"=$($frontDoorEndpoint.Id)})

$securityPolicyParameters = New-AzFrontDoorCdnSecurityPolicyWebApplicationFirewallParametersObject `
  -Association $securityPolicyAssociation `
  -WafPolicyId $wafPolicy.Id

$frontDoorSecurityPolicy = New-AzFrontDoorCdnSecurityPolicy `
  -Name 'MySecurityPolicy' `
  -ProfileName $frontDoorProfile.Name `
  -ResourceGroupName $frontDoorProfile.ResourceGroupName `
  -Parameter $securityPolicyParameters

Prasyarat

Sebelum Anda mulai menyiapkan kebijakan batas tarif, siapkan lingkungan Azure CLI Anda dan buat profil Azure Front Door.

Menyiapkan lingkungan Azure CLI Anda

Azure CLI menyediakan serangkaian perintah yang menggunakan model Azure Resource Manager untuk mengelola sumber daya Azure Anda.

Anda dapat menginstal Azure CLI di komputer lokal Anda dan menggunakannya di sesi shell apa pun. Di sini Anda masuk dengan kredensial Azure Anda dan menginstal ekstensi Azure CLI untuk Azure Front Door Standard atau Premium.

Menyambungkan ke Azure dengan dialog interaktif untuk rincian masuk

Masuk ke Azure dengan menjalankan perintah berikut:

az login

Menginstal ekstensi Azure Front Door untuk Azure CLI

front-door Instal ekstensi untuk bekerja dengan Azure Front Door WAF dari Azure CLI:

az extension add --name front-door

Anda menggunakan az afd perintah untuk bekerja dengan sumber daya Azure Front Door Standard atau Premium. az network front-door waf-policy Gunakan perintah untuk bekerja dengan sumber daya WAF.

Membuat grup sumber daya

Gunakan perintah az group create untuk membuat grup sumber daya baru untuk profil Azure Front Door dan kebijakan WAF Anda. Perbarui nama dan lokasi grup sumber daya untuk kebutuhan Anda sendiri:

resourceGroupName='FrontDoorRateLimit'

az group create \
  --name $resourceGroupName \
  --location westus

Membuat profil Azure Front Door

Gunakan perintah az afd profile create untuk membuat profil Azure Front Door baru.

Dalam contoh ini, Anda membuat profil standar Azure Front Door bernama MyFrontDoorProfile:

frontDoorProfileName='MyFrontDoorProfile'

az afd profile create \
  --profile-name $frontDoorProfileName \
  --resource-group $resourceGroupName \
  --sku Standard_AzureFrontDoor

Membuat titik akhir Azure Front Door

Gunakan perintah az afd endpoint create untuk menambahkan titik akhir ke profil Azure Front Door Anda.

Titik akhir Azure Front Door harus memiliki nama yang unik secara global, jadi perbarui nilai variabel menjadi frontDoorEndpointName sesuatu yang unik.

frontDoorEndpointName='<unique-front-door-endpoint-name>'

az afd endpoint create \
  --endpoint-name $frontDoorEndpointName \
  --profile-name $frontDoorProfileName \
  --resource-group $resourceGroupName \

Membuat kebijakan WAF

Gunakan perintah az network front-door waf-policy create untuk membuat kebijakan WAF:

wafPolicyName='MyWafPolicy'

az network front-door waf-policy create \
  --name $wafPolicyName \
  --resource-group $resourceGroupName \
  --sku Standard_AzureFrontDoor

Bersiap untuk menambahkan aturan batas tarif kustom

Gunakan perintah az network front-door waf-policy rule create untuk membuat aturan batas tarif kustom. Contoh berikut menetapkan batas ke 1.000 permintaan per menit.

Aturan batas tarif harus berisi kondisi kecocokan, yang Anda buat di langkah berikutnya. Dalam perintah ini, Anda menyertakan --defer argumen , yang memberi tahu Azure CLI untuk belum mengirimkan aturan ke Azure.

az network front-door waf-policy rule create \
  --name rateLimitRule \
  --policy-name $wafPolicyName \
  --resource-group $resourceGroupName \
  --rule-type RateLimitRule \
  --rate-limit-duration 1 \
  --rate-limit-threshold 1000 \
  --action Block \
  --priority 1 \
  --defer

Ketika alamat IP sumber mengirimkan lebih dari 1.000 permintaan dalam satu menit, WAF memblokir permintaan berikutnya hingga menit berikutnya dimulai.

Menambahkan kondisi kecocokan

Gunakan perintah az network front-door waf-policy rule match-condition add untuk menambahkan kondisi kecocokan ke aturan kustom Anda. Kondisi kecocokan mengidentifikasi permintaan yang seharusnya menerapkan batas tarif.

Contoh berikut cocok dengan permintaan di RequestUri mana variabel berisi string /promo:

az network front-door waf-policy rule match-condition add \
  --match-variable RequestUri \
  --operator Contains \
  --values '/promo' \
  --name rateLimitRule \
  --policy-name $wafPolicyName \
  --resource-group $resourceGroupName

Saat Anda mengirimkan perintah ini, Azure CLI membuat aturan batas tarif dan kondisi kecocokan bersama-sama.

Mengonfigurasi kebijakan keamanan untuk mengaitkan profil Azure Front Door Anda dengan kebijakan WAF Anda

Gunakan perintah az afd security-policy create untuk membuat kebijakan keamanan untuk profil Azure Front Door Anda. Kebijakan keamanan mengaitkan kebijakan WAF Anda dengan domain yang ingin Anda lindungi oleh aturan WAF.

Dalam contoh ini, Anda mengaitkan nama host default titik akhir dengan kebijakan WAF Anda:

securityPolicyName='MySecurityPolicy'

wafPolicyResourceId=$(az network front-door waf-policy show --name $wafPolicyName --resource-group $resourceGroupName --query id --output tsv)
frontDoorEndpointResourceId=$(az afd endpoint show --endpoint-name $frontDoorEndpointName --profile-name $frontDoorProfileName --resource-group $resourceGroupName --query id --output tsv)

az afd security-policy create \
  --security-policy-name $securityPolicyName \
  --profile-name $frontDoorProfileName \
  --resource-group $resourceGroupName \
  --domains $frontDoorEndpointResourceId \
  --waf-policy $wafPolicyResourceId

Kode sebelumnya mencari pengidentifikasi sumber daya Azure untuk kebijakan WAF dan titik akhir Azure Front Door sehingga dapat mengaitkannya dengan kebijakan keamanan Anda.

Catatan

Setiap kali Anda membuat perubahan pada kebijakan WAF, Anda tidak perlu membuat ulang kebijakan keamanan Azure Front Door. Pembaruan kebijakan WAF secara otomatis diterapkan ke domain Azure Front Door.

Mulai Cepat

Untuk membuat profil Azure Front Door dengan aturan batas tarif dengan menggunakan Bicep, lihat mulai cepat Azure Front Door Standard atau Premium dengan batas tarif Bicep.

Langkah berikutnya

Pelajari selengkapnya tentang Azure Front Door.