Share via


Configurare una regola di limite di frequenza Web application firewall

La regola di limite di velocità di Azure Web application firewall per Frontdoor di Azure controlla il numero di richieste consentite da un indirizzo IP di origine specifico all'applicazione durante una durata di limite di velocità. Per altre informazioni sulla limitazione della frequenza, vedere Che cos'è la limitazione della frequenza per Frontdoor di Azure?.

Questo articolo illustra come configurare una regola di limite di velocità di Web application firewall (WAF) nei livelli Standard e Premium di Frontdoor di Azure.

Scenario

Si supponga di essere responsabile di un sito Web pubblico. È stata appena aggiunta una pagina con informazioni su una promozione in esecuzione nell'organizzazione. Si è preoccupati che se i client visitano la pagina troppo spesso, alcuni dei servizi back-end potrebbero non essere ridimensionati rapidamente e l'applicazione potrebbe avere problemi di prestazioni.

Si decide di creare una regola di limite di velocità che limita ogni indirizzo IP di origine a un massimo di 1.000 richieste al minuto. Questa regola viene applicata solo alle richieste che contengono */promo* nell'URL della richiesta.

Suggerimento

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Creare un profilo Frontdoor di Azure e criteri WAF

  1. Nel portale di Azure selezionare Crea una risorsa.

    Screenshot che mostra il pulsante Crea una risorsa nella home page.

  2. Cercare Frontdoor e selezionare Frontdoor e profili della rete CDN.

    Screenshot che mostra il marketplace, con Frontdoor evidenziato.

  3. Selezionare Crea.

    Screenshot che mostra i profili frontdoor e della rete CDN, con il pulsante Crea evidenziato.

  4. Selezionare Continua per creare un frontdoor per usare il processo di creazione rapida del portale.

    Screenshot che mostra le offerte di Frontdoor di Azure, con l'opzione Creazione rapida selezionata e il pulsante Continua per creare un frontdoor evidenziato.

  5. Immettere le informazioni necessarie nella pagina Informazioni di base :

    • Gruppo di risorse: selezionare un gruppo di risorse esistente oppure creare un nuovo gruppo di risorse per le risorse frontdoor e WAF di Azure.
    • Nome: immettere il nome del profilo frontdoor di Azure.
    • Livello: selezionare Standard o Premium. Per questo scenario, entrambi i livelli supportano la limitazione della frequenza.
    • Nome endpoint: specificare un nome univoco per l'endpoint perché gli endpoint frontdoor di Azure devono avere nomi univoci a livello globale.
    • Tipo di origine e Nome host origine: selezionare l'applicazione di origine da proteggere con la regola di limite di frequenza.
  6. Accanto a Criteri WAF selezionare Crea nuovo.

    Screenshot che mostra il flusso di lavoro di creazione di Frontdoor di Azure, con il pulsante Crea nuovo criterio WAF evidenziato.

  7. Immettere il nome di un criterio WAF e selezionare Crea.

    Screenshot che mostra la richiesta di creazione dei criteri WAF, con il pulsante Crea evidenziato.

  8. Selezionare Rivedi e crea>Crea.

    Screenshot che mostra la configurazione del profilo frontdoor di Azure completata.

  9. Al termine della distribuzione, selezionare Vai alla risorsa.

Creare una regola di limite di velocità

  1. Selezionare Regole>personalizzate Aggiungi regola personalizzata.

    Screenshot che mostra la pagina delle regole personalizzate del criterio WAF.

  2. Immettere le informazioni necessarie per creare una regola di limite di velocità:

    • Nome regola personalizzata: immettere il nome della regola personalizzata, ad esempio rateLimitRule.
    • Tipo di regola: selezionare Limite di frequenza.
    • Priorità: immettere la priorità della regola, ad esempio 1.
    • Durata limite di frequenza: selezionare 1 minuto.
    • Soglia limite di frequenza (richieste): immettere 1000.
  3. In Condizioni immettere le informazioni necessarie per specificare una condizione di corrispondenza per identificare le richieste in cui l'URL contiene la stringa */promo*:

    • Tipo di corrispondenza: selezionare String.
    • Variabile match: immettere RequestUri.
    • Operazione: selezionare è .
    • Operatore: selezionare Contiene.
    • Valori di corrispondenza: immettere /promo.
  4. Per Azione selezionare Log o Blocca.

    Le regole di limite di frequenza supportano Log solo le azioni e Block . Allow non è supportata.

    Screenshot che mostra la configurazione della regola personalizzata.

  5. Selezionare Aggiungi.

  6. Selezionare Salva.

    Screenshot che mostra l'elenco di regole personalizzate, inclusa la nuova regola di limite di velocità.

Usare la modalità di prevenzione nel WAF

Per impostazione predefinita, il portale di Azure crea criteri WAF in modalità di rilevamento. Questa impostazione significa che WAF non blocca le richieste. Per altre informazioni, vedere Modalità WAF.

Ottimizzare il WAF prima di usare la modalità di prevenzione. L'ottimizzazione consente di evitare rilevamenti falsi positivi. Consente anche di impedire al WAF di bloccare le richieste legittime.

In questo caso si riconfigura WAF per l'uso della modalità di prevenzione.

  1. Aprire il criterio WAF.

    Si noti che la modalità criteri è impostata in Rilevamento.

    Screenshot che mostra il criterio WAF, con la modalità criteri e il pulsante Passa alla modalità di prevenzione evidenziato.

  2. Selezionare Passa alla modalità di prevenzione.

Prerequisiti

Prima di iniziare a configurare un criterio di limite di velocità, configurare l'ambiente PowerShell e creare un profilo frontdoor di Azure.

Configurare l'ambiente PowerShell

Azure PowerShell offre un set di cmdlet che usano il modello Azure Resource Manager per la gestione delle risorse di Azure.

È possibile installare Azure PowerShell nel computer locale e usarlo in qualsiasi sessione di PowerShell. Qui si accede con le credenziali di Azure e si installa il modulo Azure PowerShell per Frontdoor di Azure Standard o Premium.

Connettersi ad Azure con una finestra di dialogo interattiva per l'accesso

Accedere ad Azure mediante il comando seguente:

Connect-AzAccount

Installare PowerShellGet

Assicurarsi che sia installata la versione corrente di PowerShellGet . Eseguire il comando seguente:

Install-Module PowerShellGet -Force -AllowClobber

Riavviare quindi PowerShell per assicurarsi di usare la versione più recente.

Installare i moduli di PowerShell di Frontdoor di Azure

Installare i moduli e Az.Cdn PowerShell per l'uso Az.FrontDoor con Frontdoor di Azure Standard o Premium da PowerShell.

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

Si usa il Az.Cdn modulo per usare le risorse Frontdoor di Azure Standard o Premium. Usare il Az.FrontDoor modulo per usare le risorse WAF.

Creare un gruppo di risorse

Usare il cmdlet New-AzResourceGroup per creare un nuovo gruppo di risorse per il profilo frontdoor di Azure e i criteri WAF. Aggiornare il nome e la posizione del gruppo di risorse per i propri requisiti:

$resourceGroupName = 'FrontDoorRateLimit'

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

Creare un profilo frontdoor di Azure

Usare il cmdlet New-AzFrontDoorCdnProfile per creare un nuovo profilo frontdoor di Azure.

In questo esempio viene creato un profilo standard di Frontdoor di Azure denominato MyFrontDoorProfile:

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

Creare un endpoint frontdoor di Azure

Usare il cmdlet New-AzFrontDoorCdnEndpoint per aggiungere un endpoint al profilo frontdoor di Azure.

Gli endpoint frontdoor di Azure devono avere nomi univoci a livello globale, quindi aggiornare il valore della $frontDoorEndpointName variabile a un elemento univoco.

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

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

Definire una condizione di corrispondenza URL

Usare il cmdlet New-AzFrontDoorWafMatchConditionObject per creare una condizione di corrispondenza per identificare le richieste che devono avere il limite di velocità applicato.

L'esempio seguente corrisponde alle richieste in cui la RequestUri variabile contiene la stringa /promo:

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

Creare una regola personalizzata per il limite di velocità

Usare il cmdlet New-AzFrontDoorWafCustomRuleObject per creare la regola di limite di frequenza, che include la condizione di corrispondenza definita nel passaggio precedente e la soglia della richiesta.

Nell'esempio seguente viene impostato il limite su 1000:

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

Quando un indirizzo IP di origine invia più di 1.000 richieste entro un minuto, WAF blocca le richieste successive fino all'avvio del minuto successivo.

Creare un criterio WAF

Usare il cmdlet New-AzFrontDoorWafPolicy per creare un criterio WAF, che include la regola personalizzata creata.

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

Configurare un criterio di sicurezza per associare il profilo frontdoor di Azure ai criteri WAF

Usare il cmdlet New-AzFrontDoorCdnSecurityPolicy per creare criteri di sicurezza per il profilo frontdoor di Azure. Un criterio di sicurezza associa i criteri WAF ai domini che si desidera proteggere dalla regola WAF.

In questo esempio si associa il nome host predefinito dell'endpoint al criterio WAF:

$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

Prerequisiti

Prima di iniziare a configurare un criterio di limite di velocità, configurare l'ambiente dell'interfaccia della riga di comando di Azure e creare un profilo frontdoor di Azure.

Configurare l'ambiente dell'interfaccia della riga di comando di Azure

L'interfaccia della riga di comando di Azure offre un set di comandi che usano il modello di azure Resource Manager per la gestione delle risorse di Azure.

È possibile installare l'interfaccia della riga di comando di Azure nel computer locale e usarla in qualsiasi sessione della shell. Qui si accede con le credenziali di Azure e si installa l'estensione dell'interfaccia della riga di comando di Azure per Frontdoor di Azure Standard o Premium.

Connettersi ad Azure con una finestra di dialogo interattiva per l'accesso

Accedere ad Azure mediante il comando seguente:

az login

Installare l'estensione Frontdoor di Azure per l'interfaccia della riga di comando di Azure

Installare l'estensione front-door per usare il WAF frontdoor di Azure dall'interfaccia della riga di comando di Azure:

az extension add --name front-door

Usare i az afd comandi per usare le risorse Di Azure Frontdoor Standard o Premium. Usare i az network front-door waf-policy comandi per usare le risorse WAF.

Creare un gruppo di risorse

Usare il comando az group create per creare un nuovo gruppo di risorse per il profilo frontdoor di Azure e i criteri WAF. Aggiornare il nome e la posizione del gruppo di risorse per i propri requisiti:

resourceGroupName='FrontDoorRateLimit'

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

Creare un profilo frontdoor di Azure

Usare il comando az afd profile create per creare un nuovo profilo frontdoor di Azure.

In questo esempio viene creato un profilo standard di Frontdoor di Azure denominato MyFrontDoorProfile:

frontDoorProfileName='MyFrontDoorProfile'

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

Creare un endpoint frontdoor di Azure

Usare il comando az afd endpoint create per aggiungere un endpoint al profilo frontdoor di Azure.

Gli endpoint frontdoor di Azure devono avere nomi univoci a livello globale, quindi aggiornare il valore della frontDoorEndpointName variabile a un elemento univoco.

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

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

Creare un criterio WAF

Usare il comando az network front-door waf-policy create per creare un criterio WAF:

wafPolicyName='MyWafPolicy'

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

Preparare l'aggiunta di una regola di limite di frequenza personalizzata

Usare il comando az network front-door waf-policy rule create per creare una regola personalizzata rate-limit. Nell'esempio seguente il limite viene impostato su 1.000 richieste al minuto.

Le regole limite di frequenza devono contenere una condizione di corrispondenza, creata nel passaggio successivo. In questo comando si include l'argomento --defer , che indica all'interfaccia della riga di comando di Azure di non inviare ancora la regola ad 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

Quando un indirizzo IP di origine invia più di 1.000 richieste entro un minuto, WAF blocca le richieste successive fino all'avvio del minuto successivo.

Aggiungere una condizione di corrispondenza

Usare il comando az network front-door waf-policy rule match-condition add per aggiungere una condizione di corrispondenza alla regola personalizzata. La condizione di corrispondenza identifica le richieste che devono avere il limite di velocità applicato.

L'esempio seguente corrisponde alle richieste in cui la RequestUri variabile contiene la stringa /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

Quando si invia questo comando, l'interfaccia della riga di comando di Azure crea insieme la regola di limite di velocità e la condizione di corrispondenza.

Configurare un criterio di sicurezza per associare il profilo frontdoor di Azure ai criteri WAF

Usare il comando az afd security-policy create per creare un criterio di sicurezza per il profilo frontdoor di Azure. Un criterio di sicurezza associa i criteri WAF ai domini che si desidera proteggere dalla regola WAF.

In questo esempio si associa il nome host predefinito dell'endpoint al criterio WAF:

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

Il codice precedente cerca gli identificatori delle risorse di Azure per i criteri WAF e l'endpoint frontdoor di Azure in modo che possa associarli ai criteri di sicurezza.

Nota

Ogni volta che si apportano modifiche ai criteri WAF, non è necessario ricreare i criteri di sicurezza di Frontdoor di Azure. Gli aggiornamenti dei criteri WAF vengono applicati automaticamente ai domini frontdoor di Azure.

Avvio rapido

Per creare un profilo frontdoor di Azure con una regola di limite di velocità usando Bicep, vedere la guida introduttiva frontdoor di Azure Standard o Premium con limite di velocità Bicep.

Passaggi successivi

Altre informazioni su Frontdoor di Azure.