Creare un gateway applicazione usando il modello di Gestione risorse di Azure

Il gateway applicazione di Azure è un dispositivo di bilanciamento del carico di livello 7. Fornisce richieste HTTP con routing delle prestazioni e failover tra server diversi, sia nel cloud che in locale. Il gateway applicazione offre numerose funzionalità di controller per la distribuzione di applicazioni (ADC, Application Delivery Controller), tra cui bilanciamento del carico HTTP, affinità di sessione basata su cookie, offload SSL (Secure Sockets Layer), probe di integrità personalizzati, supporto per più siti e molte altre. Per un elenco completo delle funzionalità supportate, vedere Panoramica del gateway applicazione.

Questo articolo illustra come scaricare e modificare un modello di Azure Resource Manager esistente da GitHub e distribuire il modello da GitHub, da PowerShell e dall'interfaccia della riga di comando di Azure.

Se si sta distribuendo il modello di Gestione risorse di Azure direttamente da GitHub, senza alcuna modifica, andare al passaggio che illustra la distribuzione di un modello da GitHub.

Scenario

In questo scenario si apprenderà come:

  • Creare un gateway applicazione con web application firewall.
  • Creare una rete virtuale denominata VirtualNetwork1 con un blocco CIDR riservato 10.0.0.0/16.
  • Creare una subnet denominata Appgatewaysubnet che usa 10.0.0.0/28 come blocco CIDR.
  • Impostare due indirizzi IP back-end configurati in precedenza per i server Web da usare per bilanciare il carico del traffico. In questo esempio di modello vengono usati gli indirizzi IP back-end 10.0.1.10 e 10.0.1.11.

Nota

Tali impostazioni sono i parametri per il modello. Per personalizzare il modello, è possibile modificare le regole, il listener, il protocollo SSL e altre opzioni nel file azuredeploy.json.

Scenario

Scaricare e comprendere il modello di Gestione risorse di Azure

È possibile scaricare da GitHub il modello di Gestione risorse di Azure esistente per creare una rete virtuale e due subnet, apportare eventuali modifiche e riutilizzarlo. A tale scopo, seguire questa procedura:

  1. Passare a Create Application Gateway with web application firewall enabled (Creare un gateway applicazione con web application firewall abilitato).
  2. Fare clic su azuredeploy.json, quindi fare clic su RAW.
  3. Salvare il file in una cartella locale nel computer.
  4. Se si ha familiarità con i modelli di Gestione risorse di Azure, procedere al passaggio 7.
  5. Aprire il file salvato e visualizzare il contenuto in parameters nella riga
  6. La sezione parameters del modello di Gestione risorse di Azure è un segnaposto per i valori che possono essere inseriti durante la distribuzione.

    Parametro Descrizione
    subnetPrefix Blocco CIDR della subnet del gateway applicazione.
    applicationGatewaySize Dimensione del gateway applicazione. WAF consente solo gateway di medie e grandi dimensioni.
    backendIpaddress1 Indirizzo IP del primo server Web.
    backendIpaddress2 Indirizzo IP del secondo server Web.
    wafEnabled Impostazione per determinare se WAF è abilitato.
    wafMode Modalità di web application firewall. Le opzioni disponibili sono prevention (prevenzione) e detection (rilevamento).
    wafRuleSetType Tipo di set di regole per WAF. Attualmente OWASP è l'unica opzione supportata.
    wafRuleSetVersion Versione del set di regole. Attualmente, sono supportate le opzioni OWASP CRS 2.2.9 e 3.0.
  7. Controllare il contenuto in resources e prendere nota delle proprietà seguenti:

    • type. Tipo di risorsa che sarà creato dal modello. In questo caso il tipo è Microsoft.Network/applicationGateways, che rappresenta un gateway applicazione.
    • name. Nome della risorsa. Si noti l'uso di [parameters('applicationGatewayName')], che indica che il nome viene specificato come input dell'utente o di un file di parametri durante la distribuzione.
    • properties. Elenco di proprietà per la risorsa. Questo modello usa la rete virtuale e l'indirizzo IP pubblico durante la creazione del gateway applicazione.

    Nota

    Per altre informazioni sui modelli, visitare la pagina Resource Manager templates reference (Riferimenti ai modelli di Resource Manager)

  8. Tornare a https://github.com/Azure/azure-quickstart-templates/blob/master/101-application-gateway-waf/.

  9. Fare clic su azuredeploy-parameters.json e quindi su RAW.
  10. Salvare il file in una cartella locale nel computer.
  11. Aprire il file salvato e modificare i valori dei parametri. Usare i valori riportati di seguito per la distribuzione del gateway applicazione descritto in questo scenario.

    {
        "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "addressPrefix": {
            "value": "10.0.0.0/16"
            },
            "subnetPrefix": {
            "value": "10.0.0.0/28"
            },
            "applicationGatewaySize": {
            "value": "WAF_Medium"
            },
            "capacity": {
            "value": 2
            },
            "backendIpAddress1": {
            "value": "10.0.1.10"
            },
            "backendIpAddress2": {
            "value": "10.0.1.11"
            },
            "wafEnabled": {
            "value": true
            },
            "wafMode": {
            "value": "Detection"
            },
            "wafRuleSetType": {
            "value": "OWASP"
            },
            "wafRuleSetVersion": {
            "value": "3.0"
            }
        }
    }
    
  12. Salvare il file. È possibile testare il modello JSON e il modello di parametri usando strumenti online di convalida di JSON come JSlint.com.

Distribuire il modello di Gestione risorse di Azure usando PowerShell

Se è la prima volta che si usa Azure PowerShell, vedere Come installare e configurare Azure PowerShell e seguire le istruzioni per accedere ad Azure e selezionare la sottoscrizione.

  1. Accesso a PowerShell

    Login-AzureRmAccount
    
  2. Controllare le sottoscrizioni per l'account.

    Get-AzureRmSubscription
    

    Verrà richiesto di eseguire l'autenticazione con le proprie credenziali.

  3. Scegliere le sottoscrizioni ad Azure da usare.

    Select-AzureRmSubscription -Subscriptionid "GUID of subscription"
    
  4. Se necessario, creare un gruppo di risorse usando il cmdlet New-AzureResourceGroup . Nell'esempio seguente viene creato un nuovo gruppo di risorse denominato AppgatewayRG nella località Stati Uniti orientali.

    New-AzureRmResourceGroup -Name AppgatewayRG -Location "West US"
    
  5. Eseguire il cmdlet New-AzureRmResourceGroupDeployment per distribuire la nuova rete virtuale usando il modello e i file di parametri scaricati e modificati in precedenza.

    New-AzureRmResourceGroupDeployment -Name TestAppgatewayDeployment -ResourceGroupName AppgatewayRG `
    -TemplateFile C:\ARM\azuredeploy.json -TemplateParameterFile C:\ARM\azuredeploy-parameters.json
    

Distribuire il modello di Gestione risorse di Azure usando l'interfaccia della riga di comando di Azure

Per distribuire il modello di Azure Resource Manager scaricato usando l'interfaccia della riga di comando di Azure, seguire questa procedura:

  1. Se è la prima volta che si usa l'interfaccia della riga di comando di Azure, vedere Installare l'interfaccia della riga di comando di Azure e seguire le istruzioni fino al punto in cui si selezionano l'account e la sottoscrizione di Azure.

  2. Se necessario, eseguire il comando az group create per creare un nuovo gruppo di risorse, come illustrato nel frammento di codice seguente. Si noti l'output del comando. Nell'elenco riportato dopo l'output sono indicati i parametri usati. Per altre informazioni sui gruppi di risorse, vedere Panoramica di Azure Resource Manager.

    az group create --location westus --name appgatewayRG
    

    -n (o --nome). Nome del nuovo gruppo di risorse. Per questo scenario, appgatewayRG.

    -l (o --location). Area di Azure in cui viene creato il nuovo gruppo di risorse. Per questo scenario, westus.

  3. Eseguire il cmdlet az group deployment create per distribuire la nuova rete virtuale usando il modello e i file di parametri scaricati e modificati nel passaggio precedente. Nell'elenco riportato dopo l'output sono indicati i parametri usati.

    az group deployment create --resource-group appgatewayRG --name TestAppgatewayDeployment --template-file azuredeploy.json --parameters @azuredeploy-parameters.json
    

Distribuire il modello di Gestione risorse di Azure usando il pulsante per la distribuzione

Il pulsante per la distribuzione offre un altro modo per usare i modelli di Gestione risorse di Azure. Questo è un modo semplice di usare i modelli con il portale di Azure.

  1. Andare a Creare un gateway applicazione con web application firewall.

  2. Fare clic su Distribuzione in Azure.

    Distribuzione in Azure

  3. Inserire i parametri per il modello di distribuzione nel portale e fare clic su OK.

    Parametri

  4. Selezionare Accetto le condizioni riportate sopra e quindi fare clic su Acquista.

  5. Nel pannello Distribuzione personalizzata fare clic su Crea.

Fornire i dati certificato ai modelli di Resource Manager

Quando si usa SSL con un modello, il certificato deve essere fornito in una stringa base64 anziché essere caricato. Per convertire un formato PFX o CER in una stringa base64, usare uno dei comandi seguenti. I comandi seguenti convertono il certificato in una stringa base64 che può essere assegnata al modello. L'output previsto è una stringa che può essere archiviata in una variabile e incollata nel modello.

macOS

cert=$( base64 <certificate path and name>.pfx )
echo $cert

Windows

[System.Convert]::ToBase64String([System.IO.File]::ReadAllBytes("<certificate path and name>.pfx"))

Eliminare tutte le risorse

Per eliminare tutte le risorse create durante l'esecuzione dell'esercizio, seguire questa procedura:

PowerShell

Remove-AzureRmResourceGroup -Name appgatewayRG

Interfaccia della riga di comando di Azure

az group delete --name appgatewayRG

Passaggi successivi

Per configurare l'offload SSL, visitare Configurare un gateway applicazione per l'offload SSL.

Per configurare un gateway applicazione da usare con un servizio di bilanciamento del carico interno, visitare Creare un gateway applicazione con un dispositivo di bilanciamento del carico interno (ILB).

Per altre informazioni generali sulle opzioni di bilanciamento del carico, vedere: