Share via


Konfigurieren einer Web Application Firewall-Quotengrenzregel

Die Azure Web Application Firewall-Quotengrenzregel für Azure Front Door steuert die Anzahl der Anforderungen, die von einer bestimmten Quell-IP-Adresse während der Dauer einer Quotenbegrenzung an die Anwendung zulässig sind. Weitere Informationen zur Quotenbegrenzung finden Sie unter Was ist Quotenbegrenzung für Azure Front Door?

In diesem Artikel wird gezeigt, wie Sie eine Web Application Firewall-Quotengrenzregel für die Tarife Azure Front Door Standard und Premium konfigurieren.

Szenario

Angenommen, Sie sind für eine öffentliche Website verantwortlich. Sie haben gerade eine Seite mit Informationen zu einer Werbeaktion Ihrer Organisation hinzugefügt. Sie sind besorgt, dass, wenn diese Seite zu oft von Kunden aufgerufen wird, einige Ihrer Back-End-Dienste möglicherweise nicht schnell genug skalieren und die Anwendung möglicherweise Leistungsprobleme hat.

Sie entscheiden sich, eine Quotengrenzregel zu erstellen, die jede Quell-IP-Adresse auf maximal 1.000 Anforderungen pro Minute beschränkt. Sie wenden diese Regel nur auf Anforderungen an, die */promo* in der Anforderungs-URL enthalten.

Tipp

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Erstellen eines Azure Front Door-Profils und einer WAF-Richtlinie

  1. Klicken Sie im Azure-Portal auf Ressource erstellen.

    Screenshot: Schaltfläche „Ressource erstellen“ auf der Startseite.

  2. Suchen Sie nach Front Door und wählen Sie Front Door- und CDN-Profile aus.

    Screenshot: Marketplace, „Front Door“ hervorgehoben.

  3. Klicken Sie auf Erstellen.

    Screenshot: Front Door- und CDN-Profile, Schaltfläche „Erstellen“ hervorgehoben.

  4. Wählen Sie Mit dem Erstellen einer Front Door-Instanz fortfahren, um den Erstellungsvorgang Schnell erstellen des Portals zu verwenden.

    Screenshot: Azure Front Door-Angebote, Option „Schnell erstellen“ ausgewählt und Schaltfläche „Mit dem Erstellen einer Front Door-Instanz fortfahren“ hervorgehoben.

  5. Geben Sie die erforderlichen Informationen auf der Seite Grundlagen ein:

    • Ressourcengruppe: Wählen Sie eine vorhandene Ressourcengruppe aus, oder erstellen Sie eine neue Ressourcengruppe für die Azure Front Door- und WAF-Ressourcen.
    • Name: Geben Sie den Namen Ihres Azure Front Door-Profils ein.
    • Tarif: Wählen Sie Standard oder Premium aus. Für dieses Szenario unterstützen beide Tarife die Quotenbegrenzung.
    • Endpunktname: Geben Sie einen eindeutigen Namen für Ihren Endpunkt ein, da Azure Front Door-Endpunkte über global eindeutige Namen verfügen müssen.
    • Ursprungstyp und Ursprungshostname: Wählen Sie die Ursprungsanwendung aus, die Sie mit Ihrer Quotengrenzregel schützen möchten.
  6. Wählen Sie neben WAF-Richtlinie die Option Neu erstellen aus.

    Screenshot: Workflow zum Erstellen einer Azure Front Door-Instanz, Schaltfläche „Neu erstellen“ der WAF-Richtlinie hervorgehoben.

  7. Geben Sie den Namen einer WAF-Richtlinie ein, und wählen Sie Erstellen aus.

    Screenshot: Eingabeaufforderung zur Erstellung einer WAF-Richtlinie, Schaltfläche „Erstellen“ hervorgehoben.

  8. Wählen Sie Bewerten + erstellen>Erstellen aus.

    Screenshot: Abgeschlossene Konfiguration des Azure Front Door-Profils.

  9. Wählen Sie nach Abschluss der Bereitstellung die Option Zu Ressource wechseln.

Erstellen einer Quotengrenzregel

  1. Wählen Sie Benutzerdefinierte Regeln>Benutzerdefinierte Regel hinzufügen aus.

    Screenshot: Seite „Benutzerdefinierte Regel“ der WAF-Richtlinie.

  2. Geben Sie die Informationen ein, die erforderlich sind, um eine Quotengrenzregel zu erstellen:

    • Name der benutzerdefinierten Regel: Geben Sie den Namen der benutzerdefinierten Regel ein, z. B. rateLimitRule.
    • Regeltyp: Wählen Sie Quotenbegrenzung aus.
    • Priorität: Geben Sie die Priorität der Regel ein, z. B. 1.
    • Dauer der Quotenbegrenzung: Wählen Sie 1 Minute aus.
    • Schwellenwert für die Quotenbegrenzung (Anforderungen): Geben Sie 1000 ein.
  3. Geben Sie in Bedingungen die erforderlichen Informationen ein, um eine Vergleichsbedingung festzulegen, die Anforderungen identifiziert, in denen die URL die Zeichenfolge */promo* enthält:

    • Übereinstimmungstyp: Wählen Sie die Option Zeichenfolge aus.
    • Übereinstimmungsvariable: Geben Sie RequestUri ein.
    • Vorgang: Wählen Sie die Option Ist aus.
    • Operator: Wählen Sie die Option Enthält aus.
    • Übereinstimmungswerte: Geben Sie /promo ein.
  4. Wählen Sie unter Aktion die Option Protokollieren oder Blockieren aus.

    Quotengrenzregeln unterstützen nur die Aktionen Log und Block. Allow wird nicht unterstützt.

    Screenshot: Konfiguration einer benutzerdefinierten Regel.

  5. Wählen Sie Hinzufügen.

  6. Wählen Sie Speichern aus.

    Screenshot: Liste der benutzerdefinierten Regeln, einschließlich der neuen Quotengrenzregel.

Verwenden des Präventionsmodus in WAF

Standardmäßig erstellt der Azure-Portal WAF-Richtlinien im Erkennungsmodus. Diese Einstellung bedeutet, dass die WAF keine Anforderungen blockiert. Weitere Informationen finden Sie unter WAF-Modi.

Optimieren Sie Ihre WAF, bevor Sie den Schutzmodus verwenden. Die Optimierung hilft, falsch positive Erkennungen zu vermeiden. Sie hilft auch zu verhindern, dass Ihre WAF-Instanz legitime Anforderungen blockiert.

Hier können Sie die WAF-Instanz neu konfigurieren, um den Schutzmodus zu verwenden.

  1. Öffnen Sie die WAF-Richtlinie.

    Beachten Sie, dass Richtlinienmodus auf Erkennung festgelegt ist.

    Screenshot: WAF-Richtlinie, Richtlinienmodus und Schaltfläche „In Schutzmodus wechseln“ hervorgehoben.

  2. Wählen Sie In Präventionsmodus wechseln aus.

Voraussetzungen

Bevor Sie mit der Einrichtung einer Richtlinie für eine Quotenbegrenzung beginnen, müssen Sie zunächst Ihre PowerShell-Umgebung einrichten und ein Azure Front Door-Profil erstellen.

Einrichten Ihrer PowerShell-Umgebung

Azure PowerShell bietet eine Reihe von Cmdlets, die das Azure Resource Manager-Modell für die Verwaltung von Azure-Ressourcen verwenden.

Sie können Azure PowerShell auf Ihrem lokalen Computer installieren und in einer beliebigen PowerShell-Sitzung nutzen. Hier melden Sie sich mit Ihren Azure-Anmeldeinformationen an und installieren das Azure PowerShell-Modul für Azure Front Door Standard oder Premium.

Herstellen einer Verbindung mit Azure über einen interaktiven Anmeldedialog

Melden Sie sich mithilfe des folgenden Befehls bei Azure an:

Connect-AzAccount

Installieren von PowerShellGet

Stellen Sie sicher, dass die aktuelle Version von PowerShellGet installiert ist. Führen Sie den folgenden Befehl aus:

Install-Module PowerShellGet -Force -AllowClobber

Starten Sie dann PowerShell neu, um sicherzustellen, dass Sie die neueste Version verwenden.

Installieren der Azure Front Door PowerShell-Module

Installieren Sie die PowerShell-Module Az.FrontDoor und Az.Cdn, um Azure Front Door Standard oder Premium über PowerShell zu verwenden.

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

Sie verwenden das Az.Cdn-Modul, um mit Azure Front Door Standard- oder Premium-Ressourcen zu arbeiten. Verwenden Sie das Az.FrontDoor Modul, um mit WAF-Ressourcen zu arbeiten.

Erstellen einer Ressourcengruppe

Verwenden Sie das Cmdlet New-AzResourceGroup, um eine neue Ressourcengruppe für Ihr Azure Front Door-Profil und die WAF-Richtlinie zu erstellen. Aktualisieren Sie den Ressourcengruppennamen und den Speicherort entsprechend Ihrer eigenen Anforderungen:

$resourceGroupName = 'FrontDoorRateLimit'

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

Erstellen eines Azure Front Door-Profils

Verwenden Sie das Cmdlet New-AzFrontDoorCdnProfile, um ein neues Azure Front Door-Profil zu erstellen.

In diesem Beispiel erstellen Sie ein Azure Front Door-Standardprofil namens MyFrontDoorProfile:

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

Erstellen eines Azure Front Door-Endpunkts

Verwenden Sie das Cmdlet New-AzFrontDoorCdnEndpoint, um Ihrem Azure Front Door-Profil einen Endpunkt hinzuzufügen.

Azure Front Door-Endpunkte müssen global eindeutige Namen aufweisen, aktualisieren Sie den Wert der $frontDoorEndpointName-Variable also auf einen eindeutigen Wert.

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

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

Definieren einer URL-Vergleichsbedingung

Verwenden Sie das Cmdlet New-AzFrontDoorWafMatchConditionObject, um eine Vergleichsbedingung zum Identifizieren von Anforderungen zu erstellen, auf die die Quotenbegrenzung angewendet werden soll.

Im folgenden Beispiel werden übereinstimmende Anforderungen angezeigt, bei denen die RequestUri-Variable die Zeichenfolge /promo enthält:

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

Erstellen einer benutzerdefinierten Quotengrenzregel

Verwenden Sie das Cmdlet New-AzFrontDoorWafCustomRuleObject, um die Quotengrenzregel zu erstellen, die die im vorherigen Schritt definierte Vergleichsbedingung und den Anforderungsschwellenwert enthält.

Im folgenden Beispiel wird der Grenzwert auf 1000 festgelegt:

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

Wenn eine der Quell-IP-Adressen mehr als 1.000 Anforderungen innerhalb einer Minute sendet, blockiert die WAF nachfolgende Anforderungen, bis die nächste Minute beginnt.

Erstellen einer WAF-Richtlinie

Verwenden Sie das Cmdlet New-AzFrontDoorWafPolicy, um eine WAF-Richtlinie zu erstellen, die die benutzerdefinierte Regel enthält, die Sie gerade erstellt haben.

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

Konfigurieren einer Sicherheitsrichtlinie, um Ihr Azure Front Door-Profil Ihrer WAF-Richtlinie zuzuordnen

Verwenden Sie das Cmdlet New-AzFrontDoorCdnSecurityPolicy, um eine Sicherheitsrichtlinie für Ihr Azure Front Door-Profil zu erstellen. Eine Sicherheitsrichtlinie ordnet Ihre WAF-Richtlinie Domänen zu, die Sie durch die WAF-Regel schützen möchten.

In diesem Beispiel ordnen Sie Ihrer WAF-Richtlinie den Standardhostname des Endpunkts zu:

$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

Voraussetzungen

Bevor Sie mit der Einrichtung einer Richtlinie für eine Quotenbegrenzung beginnen, müssen Sie zunächst Ihre Azure CLI-Umgebung einrichten und ein Azure Front Door-Profil erstellen.

Einrichten Ihrer Azure CLI-Umgebung

Die Azure CLI bietet eine Reihe von Befehlen, die das Azure Resource Manager-Modell für die Verwaltung Ihrer Azure-Ressourcen verwenden.

Sie können die Azure CLI auf Ihrem lokalen Computer installieren und in jeder Shellsitzung verwenden. Hier melden Sie sich mit Ihren Azure-Anmeldeinformationen an und installieren die Azure CLI-Erweiterung für Azure Front Door Standard oder Premium.

Herstellen einer Verbindung mit Azure über einen interaktiven Anmeldedialog

Melden Sie sich mithilfe des folgenden Befehls bei Azure an:

az login

Installieren der Azure Front Door-Erweiterung für die Azure CLI

Installieren Sie die front-door-Erweiterung, um von der Azure CLI aus die WAF-Instanz in Azure Front Door zu verwenden:

az extension add --name front-door

Sie verwenden die az afd-Befehle, um mit Azure Front Door Standard- oder Premium-Ressourcen zu arbeiten. Verwenden Sie die az network front-door waf-policy-Befehle, um mit WAF-Ressourcen zu arbeiten.

Erstellen einer Ressourcengruppe

Verwenden Sie den Befehl az group create, um eine neue Ressourcengruppe für Ihr Azure Front Door-Profil und die WAF-Richtlinie zu erstellen. Aktualisieren Sie den Ressourcengruppennamen und den Speicherort entsprechend Ihrer eigenen Anforderungen:

resourceGroupName='FrontDoorRateLimit'

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

Erstellen eines Azure Front Door-Profils

Verwenden Sie den Befehl az afd profile create, um ein neues Azure Front Door-Profil zu erstellen.

In diesem Beispiel erstellen Sie ein Azure Front Door-Standardprofil namens MyFrontDoorProfile:

frontDoorProfileName='MyFrontDoorProfile'

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

Erstellen eines Azure Front Door-Endpunkts

Verwenden Sie den Befehl az afd endpoint create, um Ihrem Azure Front Door-Profil einen Endpunkt hinzuzufügen.

Azure Front Door-Endpunkte müssen global eindeutige Namen aufweisen, aktualisieren Sie den Wert der frontDoorEndpointName-Variable also auf einen eindeutigen Wert.

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

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

Erstellen einer WAF-Richtlinie

Erstellen Sie mit dem Befehl az network front-door waf-policy create eine WAF-Richtlinie:

wafPolicyName='MyWafPolicy'

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

Vorbereiten des Hinzufügens einer benutzerdefinierten Quotengrenzregel

Verwenden Sie den Befehl az network front-door waf-policy rule create zum Erstellen einer benutzerdefinierten Quotengrenzregel. Im folgenden Beispiel wird der Grenzwert auf 1.000 Anforderungen pro Minute festgelegt.

Quotengrenzregeln müssen eine Vergleichsbedingung enthalten, die Sie im nächsten Schritt erstellen. In diesen Befehl schließen Sie das --defer-Argument ein, das die Azure CLI anweist, die Regel nicht an Azure zu übermitteln.

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

Wenn eine der Quell-IP-Adressen mehr als 1.000 Anforderungen innerhalb einer Minute sendet, blockiert die WAF nachfolgende Anforderungen, bis die nächste Minute beginnt.

Hinzufügen einer Vergleichsbedingung

Verwenden Sie den Befehl az network front-door waf-policy rule match-condition add, um ihrer benutzerdefinierten Regel eine Vergleichsbedingung hinzuzufügen. Die Vergleichsbedingung identifiziert Anforderungen, auf die die Quotengrenze angewendet werden soll.

Im folgenden Beispiel werden übereinstimmende Anforderungen angezeigt, bei denen die RequestUri-Variable die Zeichenfolge /promo enthält:

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

Wenn Sie diesen Befehl übermitteln, erstellt die Azure CLI Quotengrenzregel und Vergleichsbedingung zusammen.

Konfigurieren einer Sicherheitsrichtlinie, um Ihr Azure Front Door-Profil Ihrer WAF-Richtlinie zuzuordnen

Verwenden Sie den Befehl az afd security-policy create, um eine Sicherheitsrichtlinie für Ihr Azure Front Door-Profil zu erstellen. Eine Sicherheitsrichtlinie ordnet Ihre WAF-Richtlinie Domänen zu, die Sie durch die WAF-Regel schützen möchten.

In diesem Beispiel ordnen Sie Ihrer WAF-Richtlinie den Standardhostname des Endpunkts zu:

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

Der vorherige Code sucht die Azure-Ressourcenbezeichner für die WAF-Richtlinie und den Azure Front Door-Endpunkt, sodass er sie Ihrer Sicherheitsrichtlinie zuordnen kann.

Hinweis

Wenn Sie Änderungen an Ihrer WAF-Richtlinie vornehmen, müssen Sie die Azure Front Door-Sicherheitsrichtlinie nicht neu erstellen. WAF-Richtlinienaktualisierungen werden automatisch auf Azure Front Door-Domänen angewandt.

Schnellstart

Informationen zum Erstellen eines Azure Front Door-Profils mit einer Quotengrenzregel unter Verwendung von Bicep finden Sie im Bicep-Schnellstart Azure Front Door Standard oder Premium mit Quotenbegrenzung.

Nächste Schritte

Erfahren Sie mehr zu Azure Front Door.