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 memperlihatkan 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 mengunjungi halaman tersebut terlalu sering, 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
Di portal Microsoft Azure, pilih Buat sumber daya.
Telusuri Front Door, lalu pilih Profil Front Door dan CDN.
Pilih Buat.
Pilih Lanjutkan untuk membuat Front Door untuk menggunakan proses pembuatan portal buat cepat.
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.
Di samping kebijakan WAF, pilih Buat baru.
Masukkan nama kebijakan WAF dan pilih Buat.
Pilih Tinjau + buat>Buat.
Setelah penyebaran selesai, pilih Buka sumber daya.
Membuat aturan batas tarif
Pilih Aturan kustom>Tambahkan aturan kustom.
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 laju (permintaan): Masukkan 1000.
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.
- Cocokkan nilai: Masukkan /promo.
Untuk Tindakan, pilih Log atau Blokir.
Aturan batas tarif hanya mendukung
Log
danBlock
tindakan.Allow
tidak didukung.Pilih Tambahkan.
Pilih Simpan.
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.
Membuka kebijakan WAF.
Perhatikan bahwa mode Kebijakan diatur pada Deteksi.
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 Dan Az.Cdn
PowerShell 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.
Buat 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 $frontDoorEndpointName
variabel menjadi 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 mana RequestUri
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 laju, 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 mengirim 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 sekumpulan perintah yang menggunakan model Azure Resource Manager untuk mengelola sumber daya Azure Anda.
Anda dapat menginstal Azure CLI di komputer lokal Anda dan menggunakannya dalam 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.
Buat 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 frontDoorEndpointName
variabel menjadi 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 mengirim 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 mana RequestUri
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.