Proteggere le app di Azure Container con Web Application Firewall in gateway applicazione
Quando si ospitano le app o i microservizi in App Azure Container, è possibile che non si voglia sempre pubblicarli direttamente in Internet. È invece consigliabile esporli tramite un proxy inverso.
Un proxy inverso è un servizio che si trova davanti a uno o più servizi, intercettando e indirizzando il traffico in ingresso alla destinazione appropriata.
I proxy inversi consentono di posizionare i servizi davanti alle app che supportano funzionalità trasversali, tra cui:
- Routing
- Memorizzazione nella cache
- Limitazione della frequenza
- Bilanciamento del carico
- Livelli di sicurezza
- Filtro richieste
Questo articolo illustra come proteggere le app contenitore usando un web application firewall (WAF) nel gateway di app Azure lication con un ambiente app contenitore interno.
Per altre informazioni sui concetti di rete in App contenitore, vedere Ambiente di rete nelle app contenitore di Azure.
Prerequisiti
Ambiente interno con rete virtuale personalizzata: avere un'app contenitore che si trova in un ambiente interno e integrata con una rete virtuale personalizzata. Per altre informazioni su come creare un'app integrata di rete virtuale personalizzata, vedere Fornire una rete virtuale a un ambiente interno di App Contenitore di Azure.
Certificati di sicurezza: se è necessario usare la crittografia TLS/SSL per il gateway applicazione, è necessario un certificato pubblico valido usato per l'associazione al gateway applicazione.
Recuperare il dominio dell'app contenitore
Usare la procedura seguente per recuperare i valori del dominio predefinito e l'INDIRIZZO IP statico per configurare la zona DNS privato.
Nella finestra Panoramica del gruppo di risorse del portale selezionare l'app contenitore.
Nella finestra Panoramica per la risorsa dell'app contenitore selezionare il collegamento per Ambiente app contenitore
Nella finestra Panoramica per la risorsa dell'ambiente dell'app contenitore selezionare Visualizzazione JSON nell'angolo superiore destro della pagina per visualizzare la rappresentazione JSON dell'ambiente delle app contenitore.
Copiare i valori per le proprietà defaultDomain e staticIp e incollarle in un editor di testo. Si creerà una zona DNS privata usando questi valori per il dominio predefinito nella sezione successiva.
Creare e configurare una zona DNS privato di Azure
Nel menu portale di Azure o nella home page selezionare Crea una risorsa.
Cercare DNS privato Zona e selezionare DNS privato Zona nei risultati della ricerca.
Selezionare il pulsante Crea.
Immettere i valori seguenti:
Impostazione Azione Subscription Seleziona la tua sottoscrizione di Azure. Resource group Selezionare il gruppo di risorse dell'app contenitore. Nome Immettere la proprietà defaultDomain dell'ambiente app contenitore della sezione precedente. Percorso gruppo di risorse Lasciare l'impostazione predefinita. Un valore non è necessario perché le zone di DNS privato sono globali. Selezionare Rivedi e crea. Al termine della convalida, selezionare Crea.
Dopo aver creato la zona DNS privata, selezionare Vai alla risorsa.
Nella finestra Panoramica selezionare +Set di record per aggiungere un nuovo set di record.
Nella finestra Aggiungi set di record immettere i valori seguenti:
Impostazione Azione Nome Immetti *. Tipo Selezionare Record indirizzo. TTL Mantenere i valori predefiniti. Unità TTL Mantenere i valori predefiniti. Indirizzo IP Immettere la proprietà staticIp dell'ambiente app contenitore della sezione precedente. Selezionare OK per creare il set di record.
Selezionare di nuovo +Set di record per aggiungere un secondo set di record.
Nella finestra Aggiungi set di record immettere i valori seguenti:
Impostazione Azione Nome Immetti @. Tipo Selezionare Record indirizzo. TTL Mantenere i valori predefiniti. Unità TTL Mantenere i valori predefiniti. Indirizzo IP Immettere la proprietà staticIp dell'ambiente app contenitore della sezione precedente. Selezionare OK per creare il set di record.
Selezionare la finestra Collegamenti rete virtuale dal menu a sinistra della pagina.
Selezionare +Aggiungi per creare un nuovo collegamento con i valori seguenti:
Impostazione Azione Nome collegamento Immettere my-custom-vnet-pdns-link. Conosco l'ID risorsa della rete virtuale Lasciare deselezionata. Rete virtuale Selezionare la rete virtuale con cui è integrata l'app contenitore. Abilita registrazione automatica Lasciare deselezionata. Selezionare OK per creare il collegamento alla rete virtuale.
Creare e configurare il gateway applicazione di Azure
Scheda Informazioni di base
Immettere i valori seguenti nella sezione Dettagli progetto.
Impostazione Azione Subscription Seleziona la tua sottoscrizione di Azure. Resource group Selezionare il gruppo di risorse per l'app contenitore. Nome del gateway applicazione Immettere my-container-apps-agw. Area Selezionare il percorso in cui è stato effettuato il provisioning dell'app contenitore. Livello Selezionare WAF V2. Se non è necessario WAF, è possibile usare la versione 2 Standard. Abilitare la scalabilità automatica Lasciare il valore predefinito. Per gli ambienti di produzione, è consigliabile eseguire la scalabilità automatica. Vedere Scalabilità automatica app Azure gateway di applicazione. Zona di disponibilità Selezionare Nessuno. Per gli ambienti di produzione, è consigliabile zone di disponibilità per una disponibilità più elevata. HTTP2 Mantenere il valore predefinito. Criterio di WAF Selezionare Crea nuovo e immettere my-waf-policy per i criteri WAF. Seleziona OK. Se si sceglie Standard V2 per il livello, ignorare questo passaggio. Rete virtuale Selezionare la rete virtuale con cui è integrata l'app contenitore. Subnet Selezionare Gestisci configurazione subnet. Se si ha già una subnet che si vuole usare, usarla e passare alla sezione Front-end. Nella finestra Subnet della rete virtuale personalizzata selezionare +Subnet e immettere i valori seguenti:
Impostazione Azione Nome Immettere appgateway-subnet. Intervallo di indirizzi subnet Mantenere i valori predefiniti. Per il resto delle impostazioni, mantenere i valori predefiniti.
Selezionare Salva per creare la nuova subnet.
Chiudere la finestra Subnet per tornare alla finestra Crea gateway applicazione.
Seleziona i valori seguenti:
Impostazione Azione Subnet Selezionare la subnet appgateway-subnet creata. Selezionare Avanti: Front-end per continuare.
Scheda Front-end
Nella scheda Front-end immettere i valori seguenti:
Impostazione Azione Tipo di indirizzo IP front-end Selezionare Pubblico. Indirizzo IP pubblico Seleziona Aggiungi nuovo. Immettere my-frontend come nome del front-end e selezionare OK Nota
Per lo SKU gateway applicazione v2, deve essere presente un indirizzo IP front-end pubblico. È possibile avere una configurazione IP front-end pubblica e privata, ma una configurazione IP front-end privata senza ip pubblico non è attualmente supportata nello SKU v2. Per altre informazioni, leggere qui.
Selezionare Avanti: Back-end.
Scheda Back-end
Il pool back-end viene usato per instradare le richieste ai server back-end appropriati. I pool back-end possono essere costituiti da qualsiasi combinazione delle risorse seguenti:
- Schede di interfaccia di rete
- Indirizzi IP pubblici
- Indirizzi IP interni
- Set di scalabilità di macchine virtuali
- Nomi di dominio completi (FQDN)
- Back-end multi-tenant come il servizio app Azure e le app contenitore
In questo esempio viene creato un pool back-end destinato all'app contenitore.
Selezionare Aggiungi un pool back-end.
Aprire una nuova scheda e passare all'app contenitore.
Nella finestra Panoramica dell'app contenitore trovare l'URL dell'applicazione e copiarlo.
Tornare alla scheda Back-end e immettere i valori seguenti nella finestra Aggiungi pool back-end:
Impostazione Azione Nome Immettere my-agw-backend-pool. Aggiunta di uni pool back-end senza destinazioni Selezionare No. Tipo di destinazione Selezionare Indirizzo IP o FQDN. Destinazione Immettere l'URL dell'applicazione dell'app contenitore copiato e rimuovere il prefisso https://. Questo percorso è il nome di dominio completo dell'app contenitore. Seleziona Aggiungi.
Nella scheda Back-end selezionare Avanti: Configurazione.
Scheda Configurazione
Nella scheda Configurazione si connettono il front-end e il pool back-end creati usando una regola di routing.
Selezionare Aggiungi una regola di routing. Immettere i valori seguenti:
Impostazione Azione Nome Immettere my-agw-routing-rule. Priorità Immettere 1. Nella scheda Listener immettere i valori seguenti:
Impostazione Azione Nome listener Immettere my-agw-listener. IP front-end Selezionare Pubblico. Protocollo selezionare HTTPS. Se non si ha un certificato da usare, è possibile selezionare HTTP Port Immettere 443. Se si è scelto HTTP per il protocollo, immettere 80 e passare alla sezione dominio predefinito/personalizzato. Scegliere un certificato Selezionare Carica un certificato. Se il certificato viene archiviato nell'insieme di credenziali delle chiavi, è possibile selezionare Scegliere un certificato da Key Vault. Nome del certificato Immettere un nome per il certificato. File di certificato PFX Selezionare il certificato pubblico valido. Password Immettere la password del certificato. Se si vuole usare il dominio predefinito, immettere i valori seguenti:
Impostazione Azione Tipo di listener Selezionare Basic URL pagina di errore Lasciare No In alternativa, se si vuole usare un dominio personalizzato, immettere i valori seguenti:
Impostazione Azione Tipo di listener Selezionare Multi site Host type Seleziona singolo Nomi host Immettere il dominio personalizzato da usare. URL pagina di errore Lasciare No Selezionare la scheda Destinazioni back-end e immettere i valori seguenti:
Passare alla scheda Destinazioni back-end e immettere i valori seguenti:
Impostazione Azione Tipo di destinazione Selezionare my-agw-backend-pool creato in precedenza. Impostazioni back-end Seleziona Aggiungi nuovo. Nella finestra Aggiungi impostazione back-end immettere i valori seguenti:
Impostazione Azione Nome delle impostazioni back-end Immettere my-agw-backend-setting. Protocollo back-end selezionare HTTPS. Porta back-end Immettere 443. Usare un certificato CA noto Selezionare Sì. Sovrascrivi con nuovo nome host Selezionare Sì. Override nome host Selezionare Seleziona nome host dalla destinazione back-end. Crea probe personalizzati Selezionare No. Selezionare Aggiungi per aggiungere le impostazioni back-end.
Nella finestra Aggiungi una regola di routing selezionare di nuovo Aggiungi .
Al termine, selezionare Avanti: Tag.
Selezionare Avanti: Rivedi e crea e quindi selezionare Crea.
Aggiungere un collegamento privato al gateway applicazione
È possibile stabilire una connessione protetta agli ambienti dell'app contenitore solo interno tramite il collegamento privato levaraging, in quanto consente al gateway applicazione di comunicare con l'app contenitore nel back-end tramite la rete virtuale.
Dopo aver creato il gateway applicazione, selezionare Vai alla risorsa.
Dal menu a sinistra selezionare Collegamento privato, quindi selezionare Aggiungi.
Immettere i valori seguenti:
Impostazione Azione Nome Immettere my-agw-private-link. Subnet del collegamento privato Selezionare la subnet con cui si vuole creare il collegamento privato. Configurazione dell'indirizzo IP front-end Selezionare l'indirizzo IP front-end per il gateway applicazione. In Impostazioni indirizzo IP privato selezionare Aggiungi.
Selezionare Aggiungi nella parte inferiore della finestra.
Verificare l'app contenitore
Trovare l'indirizzo IP pubblico per il gateway applicazione nella pagina Panoramica oppure cercare l'indirizzo. Per cercare, selezionare Tutte le risorse e immettere my-container-apps-agw-pip nella casella di ricerca. Selezionare quindi l'INDIRIZZO IP nei risultati della ricerca.
Passare all'indirizzo IP pubblico del gateway applicazione.
La richiesta viene indirizzata automaticamente all'app contenitore, che verifica che il gateway applicazione sia stato creato correttamente.
Pulire le risorse
Quando non sono più necessarie le risorse create, eliminare il gruppo di risorse. Quando si elimina il gruppo di risorse, si rimuovono anche tutte le risorse correlate.
Per eliminare il gruppo di risorse:
Nel menu del portale di Azure selezionare Gruppi di risorse oppure cercare e selezionare Gruppi di risorse.
Nella pagina Gruppi di risorse cercare e selezionare my-container-apps.
Nella pagina Gruppo di risorse selezionare Elimina gruppo di risorse.
Immettere my-container-apps in DIGITARE IL NOME DEL GRUPPO DI RISORSE e quindi selezionare Elimina