Condividi tramite


Esercitazione: Aggiungere e personalizzare le regole di recapito per Frontdoor di Azure Standard/Premium (anteprima) con l'interfaccia della riga di comando di Azure

Frontdoor di Azure Standard/Premium (anteprima) è un cloud moderno e sicuro rete CDN. Frontdoor di Azure usa la rete perimetrale globale Microsoft e si integra con la protezione intelligente dalle minacce. Frontdoor di Azure Standard è incentrato sulla distribuzione di contenuti. Frontdoor di Azure Premium aggiunge numerose funzionalità di sicurezza e personalizzazione. Questa esercitazione è incentrata sulla creazione di un profilo frontdoor di Azure, quindi sull'aggiunta di regole di recapito per un controllo più granulare sui comportamenti dell'app Web.

Nota

Questa documentazione è per Frontdoor di Azure Standard/Premium (anteprima). Per informazioni su Frontdoor di Azure, vedere Frontdoor di Azure? Visualizzare la documentazione di Frontdoor di Azure.

Questa esercitazione illustra come:

  • Creare un profilo frontdoor di Azure.
  • Creare due istanze di un'app Web.
  • Creare un nuovo criterio di sicurezza.
  • Verificare la connettività alle app Web.
  • Creare un set di regole.
  • Creare una regola e aggiungerla al set di regole.
  • Aggiungere azioni o condizioni alle regole.

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

Prerequisiti

Creare un servizio Frontdoor di Azure

Creare un gruppo di risorse

Per questa guida introduttiva sono necessari due gruppi di risorse. Uno negli Stati Uniti centrali e il secondo negli Stati Uniti orientali.

Eseguire az group create per creare gruppi di risorse.

az group create \
    --name myRGFDCentral \
    --location centralus

az group create \
    --name myRGFDEast \
    --location eastus

Creare un profilo frontdoor di Azure

Eseguire az afd profile create per creare un profilo frontdoor di Azure.

az afd profile create \
    --profile-name contosoafd \
    --resource-group myRGFDCentral \
    --sku Premium_AzureFrontDoor \
    --subscription mysubscription

Creare due istanze di un'app Web

Per questa esercitazione sono necessarie due istanze di un'applicazione Web eseguita in aree di Azure diverse. Entrambe le istanze dell'applicazione Web vengono eseguite in modalità attiva/attiva, in modo che entrambe possano gestire il traffico.

Se non si dispone già di un'app Web, usare lo script seguente per configurare due app Web di esempio.

Creare piani di servizio app

Prima di poter creare le app Web sono necessari due piani di servizio app, uno negli Stati Uniti centrali e il secondo negli Stati Uniti orientali.

Eseguire az appservice plan create per creare i piani di servizio app.

az appservice plan create \
    --name myAppServicePlanCentralUS \
    --resource-group myRGFDCentral

az appservice plan create \
    --name myAppServicePlanEastUS \
    --resource-group myRGFDEast

Creare app Web

Eseguire az webapp create per creare un'app Web in ognuno dei piani di servizio app nel passaggio precedente. I nomi delle app Web devono essere univoci a livello globale.

Eseguire az webapp list-runtimes per visualizzare un elenco di stack predefiniti per le app Web.

az webapp create \
    --name WebAppContoso-001 \
    --resource-group myRGFDCentral \
    --plan myAppServicePlanCentralUS \
    --runtime "DOTNETCORE|2.1"

az webapp create \
    --name WebAppContoso-002 \
    --resource-group myRGFDEast \
    --plan myAppServicePlanEastUS \
    --runtime "DOTNETCORE|2.1"

Prendere nota del nome host predefinito di ogni app Web, in modo da poter definire gli indirizzi back-end quando si distribuirà l'istanza di Frontdoor nel passaggio successivo.

Aggiungi un endpoint

Eseguire az afd endpoint create per creare un endpoint nel profilo. È possibile creare più endpoint nel profilo dopo aver completato l'esperienza di creazione.

az afd endpoint create \
    --resource-group myRGFDCentral \
    --endpoint-name contoso-frontend \
    --profile-name contosoafd \
    --origin-response-timeout-seconds 60 \
    --enabled-state Enabled

Creare un gruppo di origine

Eseguire az afd origin-group create per creare un gruppo di origine contenente le due app Web.

az afd origin-group create \
    --resource-group myRGFDCentral \
    --origin-group-name og1 \
    --profile-name contosoafd \
    --probe-request-type GET \
    --probe-protocol Http \
    --probe-interval-in-seconds 120 \
    --probe-path /test1/azure.txt \
    --sample-size 4 \
    --successful-samples-required 3 \
    --additional-latency-in-milliseconds 50

Aggiungere origini al gruppo

Eseguire az afd origin create per aggiungere un'origine al gruppo di origine.

az afd origin create \
    --resource-group myRGFDCentral \
    --host-name webappcontoso-1.azurewebsites.net
    --profile-name contosoafd \
    --origin-group-name og1 \
    --origin-name contoso1 \
    --origin-host-header webappcontoso-1.azurewebsites.net \
    --priority 1 \
    --weight 1000 \
    --enabled-state Enabled \
    --http-port 80 \
    --https-port 443

Ripetere questo passaggio e aggiungere la seconda origine.

az afd origin create \
    --resource-group myRGFDCentral \
    --host-name webappcontoso-2.azurewebsites.net
    --profile-name contosoafd \
    --origin-group-name og1 \
    --origin-name contoso2 \
    --origin-host-header webappcontoso-2.azurewebsites.net \
    --priority 1 \
    --weight 1000 \
    --enabled-state Enabled \
    --http-port 80 \
    --https-port 443

Aggiungere una route

Eseguire az afd route create per eseguire il mapping dell'endpoint front-end al gruppo di origine. Questa route inoltra le richieste dall'endpoint a og1.

az afd route create \
    --resource-group myRGFDCentral \
    --endpoint-name contoso-frontend \
    --profile-name contosoafd \
    --route-name route1 \
    --https-redirect Enabled \
    --origin-group og1 \
    --supported-protocols Https \
    --link-to-default-domain Enabled \
    --forwarding-protocol MatchRequest

Creare un nuovo criterio di sicurezza

Creare un criterio WAF

Eseguire az network front-door waf-policy create per creare un criterio WAF per uno dei gruppi di risorse.

Creare un nuovo criterio WAF per Frontdoor. In questo esempio viene creato un criterio abilitato e in modalità di prevenzione.

az network front-door waf-policy create
    --name contosoWAF /
    --resource-group myRGFDCentral /
    --sku Premium_AzureFrontDoor
    --disabled false /
    --mode Prevention

Nota

Se si seleziona Detection la modalità, waf non blocca le richieste.

Creare i criteri di sicurezza

Eseguire az afd security-policy create per applicare i criteri WAF al dominio predefinito dell'endpoint.

az afd security-policy create \
    --resource-group myRGFDCentral \
    --profile-name contosoafd \
    --security-policy-name contososecurity \
    --domains /subscriptions/mysubscription/resourcegroups/myRGFDCentral/providers/Microsoft.Cdn/profiles/contosoafd/afdEndpoints/contoso-frontend.z01.azurefd.net \
    --waf-policy /subscriptions/mysubscription/resourcegroups/myRGFDCentral/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/contosoWAF

Verificare frontdoor di Azure

Quando si crea il profilo Frontdoor di Azure Standard/Premium, la distribuzione globale della configurazione richiede alcuni minuti. Al termine, è possibile accedere all'host front-end creato. In un browser passare all'indirizzo contoso-frontend.z01.azurefd.net. La richiesta verrà indirizzata automaticamente al server più vicino dai server specificati nel gruppo di origine.

Per testare il failover globale istantaneo, seguire questa procedura:

  1. Aprire un browser, come descritto sopra, e passare all'indirizzo del front-end contoso-frontend.azurefd.net.

  2. Nel portale di Azure cercare e selezionare Servizi app. Scorrere verso il basso per trovare una delle app Web, in questo esempio WebAppContoso-1.

  3. Selezionare l'app Web, quindi selezionare Arrestae per verifica.

  4. Aggiorna il browser. Si dovrebbe visualizzare la stessa pagina di informazioni.

    Suggerimento

    Per queste azioni si verifica un leggero ritardo. Può essere necessario eseguire di nuovo l'aggiornamento.

  5. Trovare l'altra app Web e arrestarla.

  6. Aggiorna il browser. Questa volta dovrebbe essere visualizzato un messaggio di errore.

    Both instances of the web app stopped

Creare un set di regole

Creare un set di regole per personalizzare la modalità di gestione delle richieste HTTP nel perimetro. Le regole di recapito aggiunte al set di regole forniscono un maggiore controllo sui comportamenti dell'applicazione Web. Eseguire az afd rule-set create per creare un set di regole nel profilo di Frontdoor di Azure.

az afd rule-set create \
    --profile-name contosoafd \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules

Creare una regola di recapito e aggiungerla al set di regole

Creare una nuova regola di recapito all'interno del set di regole. Eseguire az afd rule create per creare una regola di recapito nel set di regole. Per questo esempio si creerà una regola per un reindirizzamento da http a https.

az afd rule create \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules \
    --profile-name contosoafd \
    --order 1 \
    --match-variable RequestScheme \
    --operator Equal \
    --match-values HTTP \
    --rule-name "redirect" \
    --action-name "UrlRedirect" \
    --redirect-protocol Https \
    --redirect-type Moved

Aggiungere un'azione o una condizione alla regola di recapito

Potrebbe essere necessario personalizzare ulteriormente la nuova regola di recapito. È possibile aggiungere azioni o condizioni in base alle esigenze dopo la creazione. Eseguire az afd rule action add o az afd rule condition add per aggiornare la regola.

Aggiungere un'azione

az afd rule action add \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules \
    --profile-name contosoafd \
    --rule-name redirect \
    --action-name "CacheExpiration" \
    --cache-behavior BypassCache

Aggiungere una condizione

az afd rule condition add \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules \
    --profile-name contosoafd \
    --rule-name redirect \
    --match-variable RemoteAddress \
    --operator GeoMatch \
    --match-values "TH"

Pulire le risorse

Quando non sono necessarie le risorse per Frontdoor, eliminare entrambi i gruppi di risorse. L'eliminazione dei gruppi di risorse comporta anche l'eliminazione di Frontdoor e di tutte le relative risorse correlate.

Eseguire az group delete:

az group delete \
    --name myRGFDCentral

az group delete \
    --name myRGFDEast