Accesso alle app Web multi-tenant da una rete locale con opzioni di sicurezza ottimizzate

Servizio app di Azure
Rete virtuale di Azure
Collegamento privato di Azure
Insieme di credenziali chiave di Azure
Account di archiviazione di Azure

Questo articolo descrive come configurare una connettività privata a un'app Web o a un'app per le funzioni multi-tenant da una rete locale o da una rete virtuale di Azure con opzioni di sicurezza ottimizzate. Illustra anche come configurare una connettività tra l'app e altri servizi PaaS di Azure, con opzioni di sicurezza ottimizzate, su collegamento privato di Azure, senza usare la rete Internet pubblica.

Architettura

Diagramma che mostra l'architettura di riferimento per l'accesso sicuro alle app Web multi-tenant da una rete locale.

Scaricare un file di Visio di questa architettura.

Flusso di dati

  • Usando l'integrazione di rete virtuale a livello di area di Servizio app di Azure, l'app Web si connette ai servizi di Azure tramite la subnet di integrazione della rete virtuale della subnet delegata in una rete virtuale di Azure.

    • Le reti subnet di integrazione rete virtuale e subnet dell'endpoint privato sono reti virtuali separate in sottoscrizioni diverse. Entrambe le reti sono sottoposte a peering con hub Rete virtuale come parte di una configurazione di rete hub-spoke. Per l'integrazione della rete virtuale a livello di area, le reti virtuali con peering devono trovarsi nella stessa area di Azure.
  • collegamento privato di Azure servizio configura un endpoint privato per i servizi PaaS, le app Web, il database SQL di Azure, l'account di archiviazione di Azure e l'insieme di credenziali delle chiavi di Azure nell'endpoint privato Rete virtuale.

    In questo esempio questa rete virtuale è dedicata solo per la distribuzione di endpoint privati. Nessun'altra risorsa, ad esempio macchine virtuali, verrà distribuita in questa rete virtuale. La richiesta futura di aggiungere endpoint privati è stata presa in considerazione quando è stata selezionata la dimensione della subnet.

  • La rete locale e le reti virtuali di Azure possono essere connesse tramite VPN da sito a sito o peering privato Azure ExpressRoute. Gli utenti nella rete locale accedono all'app privatamente e con maggiore sicurezza solo sulla rete privata.

    In questo esempio, la rete locale e le reti virtuali di Azure sono connesse tramite peering privato ExpressRoute.

  • Per una rete locale che dispone già di una soluzione DNS (Domain Name System), la soluzione DNS locale è configurata per inoltrare il traffico DNS a un record DNS privato di Azure (ad esempio, azurewebsites.net) tramite un server d'inoltro condizionale che inoltra la richiesta all'endpoint in ingresso del servizio Resolver privato DNS distribuito in Azure. Dns Private Resolver esegue una query su DNS di Azure e riceve informazioni sul collegamento di rete virtuale DNS privato di Azure. La risoluzione viene quindi eseguita dalla zona DNS privata collegata alla rete virtuale.

    Le zone DNS private vengono distribuite anche nella stessa sottoscrizione della rete virtuale dell'endpoint privato.

    In questo esempio, un server d'inoltro DNS all'indirizzo IP 192.168.0.254 nella rete locale inoltra tutte le richieste di risoluzione DNS al nome host azurewebsites.net all'endpoint in ingresso del servizio Resolver privato DNS in Azure all'indirizzo 10.0.0.132. Le richieste vengono quindi risolte dal servizio DNS fornito da Azure, con indirizzo IP 168.63.129.16, tramite la zona di DNS privato di Azure collegata alla rete virtuale.

    È necessario un endpoint in uscita per abilitare la risoluzione dei nomi di inoltro condizionale da Azure a locale, ad altri provider di servizi cloud o a server DNS esterni, usando un set di regole di inoltro DNS.

    La configurazione di un set di regole di inoltro DNS non è necessaria per questo scenario.

    Deve essere presente questa configurazione del servizio app:

    Chiave valore
    WEBSITE_DNS_SERVER 168.63.129.16
  • Le reti virtuali sono collegate a tutte le zone DNS private di Azure.

    • La rete virtuale con endpoint privati viene collegata automaticamente alle zone DNS private. È necessario collegare separatamente le altre reti virtuali.
  • L'app Web comunica con gli endpoint privati dei servizi PaaS nella rete virtuale degli endpoint privati tramite Firewall di Azure.

  • In Firewall di Azure le regole dell'applicazione sono configurate per consentire la comunicazione tra la subnet di integrazione della rete virtuale e gli endpoint privati delle risorse PaaS. I nomi di dominio completi (FQDN) di destinazione sono:

    • *.azurewebsites.net
    • *.database.windows.net
    • *.core.windows.net
    • *.vaultcore.azure.net
  • La configurazione del firewall e della rete virtuale per Azure SQL, account di Archiviazione di Azure e Azure Key Vault consente il traffico solo dalla subnet di integrazione della rete virtuale. La configurazione non consente la comunicazione con altre reti virtuali o con la rete Internet pubblica.

Componenti

  • Servizio app di Azure, che ospita applicazioni Web e app per le funzioni con scalabilità automatica e disponibilità elevata senza che sia necessario gestire l'infrastruttura.
  • Database SQL di Azure, ovvero un servizio gestito di database relazionale di uso generale che supporta dati relazionali, dati spaziali, JSON e XML.
  • Account di Archiviazione di Azure, che fornisce uno spazio dei nomi univoco per i dati di Archiviazione di Azure accessibili da qualsiasi posizione tramite HTTP o HTTPS. Contiene tutti gli oggetti dati di Archiviazione di Azure, ossia BLOB, file, code, tabelle e dischi.
  • Azure Key Vault, ovvero un servizio per eseguire in sicurezza l'archiviazione e l'accesso a chiavi API, password, certificati, chiavi crittografiche o qualsiasi altro segreto usato da servizi e app cloud.
  • Rete virtuale di Azure rappresenta il blocco costitutivo delle reti private in Azure. Le risorse di Azure come le macchine virtuali possono comunicare in modo sicuro tra loro, Internet e reti locali tramite reti virtuali.
  • Collegamento privato di Azure, che offre un endpoint privato in una rete virtuale per la connettività ai servizi PaaS di Azure, come Archiviazione di Azure e il database SQL di Azure, oppure ai servizi dei clienti o dei partner.
  • Peering privato Azure ExpressRoute, che estende le reti locali sul cloud Microsoft tramite una connessione privata. È anche possibile stabilire una connessione VPN da sito a sito tra la rete locale e la rete di Azure invece di usare Azure ExpressRoute.
  • Firewall di Azure, ovvero un servizio di sicurezza di rete gestito e basato sul cloud che consente di proteggere le risorse di Rete virtuale di Azure.
  • Zona DNS privata, che fornisce un servizio DNS affidabile e sicuro per la gestione e la risoluzione dei nomi di dominio nella rete virtuale.
  • Il resolver privato DNS consente di eseguire query sulle zone private dns di Azure da un ambiente locale e viceversa, senza distribuire server DNS basati su vm.

Alternative

Per la connettività privata, un approccio alternativo consiste nell'uso di un ambiente del servizio app per ospitare l'applicazione Web in un ambiente isolato. Per il database, è possibile distribuire Istanza gestita di SQL di Azure in modo nativo in una rete virtuale, in modo che non sia necessaria l'integrazione della rete virtuale o gli endpoint privati. Tali implementazioni sono in genere più costose, perché offrono una distribuzione isolata a tenant singolo e altre funzionalità.

Se si dispone di un ambiente del servizio app ma non si usa Istanza gestita di SQL, è comunque possibile usare un endpoint privato per la connettività privata a un database SQL di Azure. Se si dispone già di un'istanza gestita di SQL, ma si usa il servizio app multi-tenant, è comunque possibile usare l'integrazione di rete virtuale a livello di area per connettersi all'indirizzo privato dell'istanza gestita di SQL.

Per altri servizi di Azure, ad esempio Key Vault o Archiviazione, non esiste alcuna alternativa all'uso di endpoint privati per connessioni private e altamente sicure dall'app Web.

Potenziali casi d'uso

  • Accedere privatamente a un'app Web multi-tenant o a un'app per le funzioni con una maggiore sicurezza tramite l'endpoint privato da una rete locale o dall'interno di reti virtuali di Azure.
  • Connessione da un'app Web o da un'app per le funzioni alle offerte PaaS (Platform as a Service) di Azure:
    • Un'altra app Web
    • Database SQL
    • Archiviazione di Azure
    • Key Vault
    • Qualsiasi altro servizio che supporta gli endpoint privati di Azure per la connettività in ingresso

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, che è un set di set di principi guida che possono essere usati per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Framework ben progettato di Microsoft Azure.

Sicurezza

La sicurezza offre garanzie contro attacchi intenzionali e l'abuso di dati e sistemi preziosi. Per altre informazioni, vedere Panoramica del pilastro della sicurezza.

L'uso di un endpoint privato per l'app Web consente di:

  • Proteggere l'app Web configurando l'endpoint privato, eliminando l'esposizione pubblica.
  • Connettersi con maggiore sicurezza alle app Web da reti locali che si connettono alla rete virtuale tramite un peering privato ExpressRoute o VPN. Le connessioni in ingresso all'app Web sono consentite solo dalla rete locale o dalla rete virtuale di Azure.
  • Evitare l'esfiltrazione di dati dalla rete privata.

È possibile migliorare ulteriormente la sicurezza della connessione in ingresso all'app Web offrendo all'app un servizio come gateway applicazione di Azure o Frontdoor di Azure, facoltativamente con Web application firewall di Azure. Quando si abilita l'endpoint privato per l'app Web, la configurazione delle restrizioni di accesso dell'app Web non viene valutata.

Questo scenario migliora anche la sicurezza della connessione in uscita da un'app Web del servizio app a una dipendenza downstream, ad esempio un database, una risorsa di archiviazione o un insieme di credenziali delle chiavi.

È possibile configurare il routing delle applicazioni per instradare tutto il traffico o solo il traffico privato (noto anche come traffico RFC1918) nella rete virtuale. Per configurare questo comportamento, usare l'impostazione Instrada tutto. Se l'opzione Instrada tutto è disabilitata, l'app Web instrada solo il traffico privato nella rete virtuale. Per bloccare il traffico verso indirizzi pubblici, abilitare l'impostazione Instrada tutto alla rete virtuale. È anche possibile usare un gruppo di sicurezza di rete per bloccare il traffico in uscita verso le risorse nella rete virtuale o in Internet. Quando l'opzione Instrada tutto non è abilitata, i gruppi di sicurezza di rete vengono applicati solo al traffico RFC1918.

In questo esempio, non è necessario che l'app Web comunichi con eventuali servizi non presenti nella rete virtuale, quindi l'opzione Instrada tutto è abilitata.

Una considerazione importante sulla sicurezza in questo scenario è la configurazione del firewall per le risorse PaaS.

Opzioni firewall del database SQL

Senza usare connettività privata, è possibile aggiungere regole di firewall che consentono traffico in ingresso solo da intervalli di indirizzi IP specifici. Un altro approccio consiste nel permettere ai servizi di Azure di accedere al server. Questo approccio blocca il firewall per consentire solo il traffico dall'interno di Azure. Questo traffico include, tuttavia, tutte le aree e altri clienti di Azure.

È anche possibile aggiungere una regola del firewall più restrittiva per consentire solo agli indirizzi IP in uscita dell'app di accedere al database. Poiché, tuttavia, il servizio app è un servizio multi-tenant, questi indirizzi IP vengono condivisi con altri clienti, e consentono il traffico che ne proviene, nello stesso stamp di distribuzione, che usa gli stessi indirizzi IP in uscita.

L'uso della connettività privata tramite la rete virtuale offre le opzioni del firewall seguenti per impedire ad altri utenti di accedere al database:

  • Creare una regola di rete virtuale che consenta il traffico solo dalla subnet delegata dell'integrazione di rete virtuale a livello di area, ovvero subnet di integrazione della rete virtuale in questo esempio. Per la subnet delegata deve essere configurato un endpoint di servizio per Microsoft.Sql, in modo che il database possa identificare il traffico da tale subnet.
  • Configurare il firewall per negare l'accesso alla rete pubblica. In questo modo, vengono disattivate tutte le altre regole del firewall e il database diventa accessibile solo tramite il relativo endpoint privato.

L'opzione che consente di negare l'accesso alla rete pubblica è la configurazione più sicura. Se tuttavia si usa questa opzione, l'accesso al database è possibile solo tramite la rete virtuale che ospita l'endpoint privato. Per connettersi al database, qualsiasi elemento diverso dall'app Web deve disporre di connettività diretta alla rete virtuale.

Le distribuzioni o le connessioni manuali urgenti da SQL Server Management Studio (SSMS) nei computer locali non possono raggiungere il database se non tramite la connettività VPN o ExpressRoute nella rete virtuale. È anche possibile connettersi in remoto a una macchina virtuale nella rete virtuale e usare quindi SSMS. In situazioni eccezionali è possibile consentire temporaneamente l'accesso alla rete pubblica e ridurre i rischi tramite altre opzioni di configurazione.

Opzioni firewall dell'account di archiviazione e dell'insieme di credenziali delle chiavi

Gli account di archiviazione e gli insiemi di credenziali delle chiavi hanno un endpoint pubblico accessibile da Internet. È anche possibile creare endpoint privati per l'account di archiviazione e l'insieme di credenziali delle chiavi. In questo modo, a questi servizi viene assegnato un indirizzo IP privato dalla rete virtuale ed è possibile proteggere tutto il traffico tra la rete virtuale e il rispettivo servizio tramite un collegamento privato.

Quando si crea un endpoint privato, la subnet di integrazione della rete virtuale può accedere al servizio privatamente e con sicurezza migliorata tramite un collegamento privato. Tuttavia, l'account di archiviazione e l'insieme di credenziali delle chiavi sono ancora accessibili da altre reti virtuali di Azure. Per bloccare l'accesso da qualsiasi altra rete virtuale, creare l'endpoint di servizio per questa subnet delegata.

Disponibilità

collegamento privato è disponibile il supporto per servizio app, database SQL di Azure, Archiviazione di Azure e Azure Key Vault in tutte le aree pubbliche. Per controllare la disponibilità in altre aree, vedere collegamento privato di Azure disponibilità

collegamento privato introduce un altro componente e considerazioni sulla disponibilità nell'architettura. Il servizio Collegamento privato dispone di un contratto di servizio a disponibilità elevata. È necessario prendere in considerazione questo contratto di servizio quando si calcola il contratto di servizio composito dell'intera soluzione.

Scalabilità

Per informazioni sull'integrazione di Collegamento privato di Azure per i servizi PaaS con le zone DNS private di Azure nelle architetture di rete hub-spoke, vedere Collegamento privato e integrazione DNS su larga scala.

Peering globale

Qualsiasi servizio in qualsiasi area di Azure in grado di connettersi tramite la rete virtuale può raggiungere gli endpoint privati dei servizi PaaS, ad esempio tramite il peering di reti virtuali nelle topologie hub-spoke. Per l'integrazione di rete virtuale a livello di area del servizio app, le reti virtuali con peering devono trovarsi nella stessa area di Azure.

La mancanza di supporto del peering globale significa che non è possibile usare questa soluzione per la connettività tra aree dal servizio app a un database oppure a un altro endpoint privato in un'area diversa di Azure. Questa soluzione, ad esempio, non consentirebbe a una distribuzione multiarea di supportare un failover parziale in cui l'app Web rimane attiva in un'area, ma deve connettersi a un database di cui è stato eseguito il failover in un'altra area o viceversa. Per questa situazione esistono tuttavia altre soluzioni.

Se è necessario connettere le app Web a una rete virtuale in un'altra area, è possibile configurare l'integrazione della rete virtuale richiesta dal gateway. La limitazione è che l'integrazione della rete virtuale richiesta dal gateway non può essere usata con una rete virtuale connessa con Azure ExpressRoute.

Registrazione e monitoraggio

Collegamento privato di Azure è integrato con Monitoraggio di Azure, che consente di verificare se i dati sono in flusso.

È anche possibile usare il servizio di risoluzione dei problemi di connessione in Azure, Network Watcher, per analizzare la connettività da una macchina virtuale in una rete virtuale al nome di dominio completo della risorsa endpoint privato.

Ottimizzazione dei costi

L'ottimizzazione dei costi riguarda l'analisi dei modi per ridurre le spese non necessarie e migliorare l'efficienza operativa. Per altre informazioni, vedere Panoramica del pilastro di ottimizzazione dei costi.

Non sono previsti costi aggiuntivi per servizio app'integrazione rete virtuale a livello di area nei piani tariffari supportati nei piani Basic, Standard, Premium v2, Premium v3, Isolated v2 servizio app e Funzioni di Azure Premium.

L'endpoint privato è disponibile per app Web Windows e app Web Linux, in contenitori o meno, ospitate in piani Basic, Standard, Premium v2, Premium v3 e Isolated v servizio app e anche per le app per le funzioni distribuite in un piano Premium.

Il servizio Collegamento privato di Azure che abilita gli endpoint privati per i servizi PaaS ha un costo associato in base a una tariffa oraria più un sovrapprezzo per la larghezza di banda. Per informazioni dettagliate, vedere la pagina Prezzi di Collegamento privato. Le connessioni da una rete virtuale client a Firewall di Azure nella rete virtuale dell'hub comportano costi. Non vengono addebitate le connessioni da Firewall di Azure nella rete virtuale dell'hub agli endpoint privati in una rete virtuale con peer.

I costi delle zone DNS private di Azure si basano sul numero di zone DNS ospitate in Azure e sul numero di query DNS ricevute.

Per esplorare il costo di esecuzione di questo scenario, usare Calcolatore prezzi di Azure. Tutti i servizi descritti in questo articolo sono preconfigurati con valori predefiniti ragionevoli per un'applicazione su scala ridotta. Per verificare la variazione dei prezzi per un determinato caso d'uso, modificare le variabili appropriate in base all'uso previsto.

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dal collaboratore seguente.

Autore principale:

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi