Accesso sicuro tra tenant alle app tramite endpoint privati

Analogamente alla maggior parte delle soluzioni PaaS (Platform as a Service) di Azure, le app Web di Azure e le applicazioni per funzioni sono accessibili pubblicamente su Internet per impostazione predefinita. È possibile limitare il traffico in ingresso a Azure app Web e app per le funzioni usando endpoint privati.

Gli endpoint privati forniscono ai client nella rete privata l'accesso sicuro all'app tramite Azure Private Link. Gli endpoint privati usano indirizzi IP dallo spazio indirizzi della rete virtuale Azure. Il traffico di rete tra il client e l'app attraversa la rete virtuale e Private Link sul backbone Microsoft, eliminando così l'esposizione alla rete Internet pubblica. Gli endpoint privati supportano anche l'accesso diretto tra tenant. Una connessione sicura può essere stabilita da una rete virtuale del cliente in un tenant a un'app Web o a un'app di funzioni specifica in un altro tenant, quindi non sono necessarie VPN da sito a sito o peering di rete virtuale.

Questa guida presenta un'architettura che usa un endpoint privato. L'endpoint privato espone in modo sicuro un'app Web Azure in un tenant a un client che utilizza l'app Web in un altro tenant Azure. È anche possibile usare questo approccio per un'app per le funzioni Azure se si dispone di un piano di servizio app o Premium per Azure Functions.

Architettura

Diagramma che mostra come un endpoint privato connette in modo sicuro un utente in una macchina virtuale (VM) in un tenant a un'app Web in un altro tenant.

Scaricare un file Visio di questa architettura.

Flusso di dati

Il flusso di dati seguente corrisponde al diagramma precedente:

  1. Un utente o un servizio in una macchina virtuale invia una richiesta DNS (Domain Name System) per un'app Web Azure all'indirizzo webapp.azurewebsites.net. L'app Web viene eseguita in un tenant del fornitore.

  2. Il servizio DNS pubblico Azure gestisce la query per webapp.azurewebsites.net. La risposta è un record CNAME (Canonical Name), webapp.privatelink.azurewebsites.net.

  3. Una zona privata Azure DNS gestisce la query DNS per webapp.privatelink.azurewebsites.net.

  4. La risposta è un record A con l'indirizzo IP di un endpoint privato.

  5. La macchina virtuale invia una richiesta HTTPS all'app Web tramite l'indirizzo IP dell'endpoint privato.

  6. L'app Web gestisce la richiesta e risponde alla VM.

  7. Se l'utente o il servizio non ha accesso alla zona DNS privata, il servizio DNS pubblico Azure risolve la query DNS in webapp.privatelink.azurewebsites.net restituendo un indirizzo IP pubblico. Le richieste HTTPS a tale indirizzo IP pubblico ricevono una risposta 403 Accesso negato .

Components

  • Servizio app e la relativa funzionalità di Web Apps offrono una piattaforma gestita che consente di compilare, distribuire e ridimensionare web apps. In questa architettura, la funzionalità Web Apps ospita l'app Web nel tenant del provider. Gli endpoint privati limitano l'accesso pubblico all'app Web.

  • Funzioni è un servizio di calcolo serverless basato su eventi. In questa architettura Funzioni può fungere da alternativa a Web Apps. Gli endpoint privati proteggono anche funzioni per garantire che l'accesso tra tenant rimanga privato.

  • Azure Virtual Network è il livello di rete di base in Azure che facilita la comunicazione sicura tra risorse Azure, Internet e reti locali. In questa architettura, le reti virtuali ospitano gli endpoint privati e le zone DNS, che facilitano la connettività sicura tra provider e tenant consumer.

  • Private Link facilita la connettività privata sicura tra i servizi Azure e le reti virtuali eseguendo il mapping degli endpoint di servizio agli indirizzi IP privati all'interno di una rete virtuale. È possibile usare l'endpoint privato per connettersi ai servizi PaaS Azure, ai servizi clienti o ai servizi partner. In questa architettura, Private Link espone l'app Web o l'app per le funzioni in modo sicuro a un altro tenant senza attraversare la rete Internet pubblica.

  • Azure DNS è un servizio di hosting DNS scalabile che utilizza l'infrastruttura di Azure per la risoluzione dei nomi. Il servizio Azure DNS privato gestisce e risolve i nomi di dominio in una rete virtuale e nelle reti virtuali connesse. Questo servizio non richiede la configurazione di una soluzione DNS personalizzata. In questa architettura, Azure DNS gestisce le query DNS pubbliche e si integra con le zone DNS private per risolvere gli indirizzi degli endpoint privati.

  • Azure DNS zone private forniscono la risoluzione DNS all'interno delle reti virtuali senza esporre i record alla rete Internet pubblica. In questa architettura, le zone DNS private gestiscono la risoluzione dei nomi interna per gli endpoint privati, garantendo un routing sicuro e accurato all'interno e tra i tenant.

  • Azure Virtual Machines offre risorse di calcolo scalabili per l'esecuzione di applicazioni e servizi. In questa architettura, una macchina virtuale nel tenant consumer avvia richieste DNS e HTTPS all'app Web del provider tramite l'endpoint privato.

Configurazione del provider

Nel tenant del provider usare un endpoint privato per proteggere l'app Web e limitare l'accesso da Internet pubblico.

  1. Preparare una rete virtuale e una subnet per la NIC dell'endpoint privato.

    La scheda di interfaccia di rete utilizza un indirizzo IP dalla sottorete. Definire la strategia DNS in modo da poter registrare il record A della scheda di interfaccia di rete nella zona DNS appropriata.

  2. Creare l'endpoint privato.

    • Se si usano i servizi di Azure DNS predefiniti, è consigliabile usare il servizio di zona privata Azure DNS e usare l'integrazione automatica quando si crea l'endpoint privato. Questo approccio garantisce che:

      • La zona DNS privata, privatelink.azurewebsites.net, viene creata automaticamente, se necessario.

      • La zona DNS è collegata alla rete virtuale della NIC del endpoint privato.

      • Il record A venga registrato e gestito automaticamente nella zona DNS privato.

    • Se non si usano i servizi di Azure DNS predefiniti, è necessario configurare e gestire i propri server e zone DNS:

      1. Creare una zona DNS privatelink.azurewebsites.net.

      2. Assicurarsi che sia possibile risolvere privatelink.azurewebsites.net nelle reti virtuali che devono risolvere la NIC dell'endpoint privato.

      3. Registrare il record A nella zona DNS privatelink.azurewebsites.net con l'indirizzo IP dell'endpoint privato. Potrebbe essere necessario configurare un server d'inoltro DNS per risolvere la zona pubblica Azure DNS, azurewebsites.net.

      Per altre informazioni, vedere la configurazione DNS dell'endpoint privato di Azure.

  3. Valutare se il servizio usato richiede controlli di accesso aggiuntivi per bloccare l'accesso pubblico.

Tutti i servizi Azure implementano il proprio comportamento di accesso pubblico. Se non si completano configurazioni aggiuntive, alcuni servizi Azure rimangono disponibili pubblicamente anche dopo averli associati a un endpoint privato. Le app Web e le app per le funzioni diventano non disponibili pubblicamente quando sono associate a un endpoint privato e l'impostazione di accesso pubblico è disattivata.

Durante la creazione dell'endpoint privato, la zona pubblica Azure DNS, azurewebsites.net, viene aggiornata automaticamente con il record CNAME che punta alla zona DNS privata. Gli utenti possono provare a raggiungere l'app web da origini che non riescono a risolvere la zona DNS privata per recuperare il record A effettivo e il suo indirizzo IP interno. Questi utenti ottengono un indirizzo IP risolvibile pubblico, ma la risposta è 403 Accesso negato.

Il provider può configurare un nome di dominio personalizzato per l'app Web tramite un record CNAME che fa riferimento alla voce nell'area azurewebsites.netpubblica . Il record CNAME creato per questo dominio personalizzato non deve puntare al record privatelink.azurewebsites.net.

Configurazione del consumatore

Nel tenant del consumatore, configura un client per raggiungere l'app web di Azure del provider. Il provider deve approvare manualmente la connessione.

Passaggio 1 (consumer): creare un endpoint privato

Creare una risorsa endpoint privato nel tenant consumatore. Come per il tenant del provider, è necessario preparare una rete virtuale e una subnet in cui si distribuisce la scheda di interfaccia di rete dell'endpoint privato. Questo passaggio usa un indirizzo IP dalla subnet. Non esistono vincoli sull'intervallo di indirizzi IP privati della rete virtuale. Gli intervalli di indirizzi IP nel provider e nei tenant consumer possono sovrapporsi.

Il consumatore non è proprietario della risorsa di destinazione, quindi utilizzare l'ID completo della risorsa dell'app web nel tenant del provider. L'ID risorsa contiene l'ID sottoscrizione del provider, il nome del gruppo di risorse e il nome della risorsa dell'app Web. È consigliabile che il provider condivida queste informazioni con il consumatore in modo sicuro. Non è possibile usare un alias.

Alcune risorse Azure hanno più sottorisorse. Ad esempio, una risorsa Azure Storage ha blob, table, queue, file, web e dfs sottorisorse. Il provider deve inoltre fornire informazioni sulle sottorisorse. Le app Web e le app per le funzioni hanno una sola sottorisorsa, siti. Per maggiori informazioni sulle sottorisorse dell'endpoint privato e sui relativi valori, consultare la sezione Risorsa collegamento privato. Poiché la connessione all'endpoint privato non viene approvata automaticamente, il cliente può inserire un messaggio che il fornitore potrà leggere.

Non è possibile automatizzare la configurazione dell'integrazione della zona DNS. Il consumer deve configurare manualmente i record DNS.

Dopo aver creato la risorsa endpoint privato, lo stato della connessione è In sospeso. La connessione rimane in stato inutilizzabile fino a quando il provider non approva la richiesta.

Passaggio 2 (provider): esaminare e approvare la richiesta di connessione

Il consumer deve inviare una notifica al provider della richiesta di connessione dell'endpoint privato.

Il provider può recuperare, esaminare e approvare o rifiutare le richieste in sospeso nel portale di Azure nelle posizioni seguenti:

  • Nella pagina Private Link Center. Il responsabile delle approvazioni può inserire un messaggio di approvazione in questa pagina.
  • Sotto Rete nell'app web. Selezionare Endpoint privati.

In alternativa, il provider può usare il Azure CLI o Azure PowerShell per recuperare, esaminare e approvare o rifiutare le richieste in sospeso.

Il provider può visualizzare:

  • Messaggio che il consumer include dopo la creazione dell'endpoint privato.
  • Nome dell'endpoint privato.
  • L'ID tenant del consumer, il nome del gruppo di risorse e il nome della risorsa dell'endpoint privato nell'Azure CLI o Azure PowerShell.

Il portale di Azure crea un collegamento ipertestuale all'endpoint privato del consumer. Poiché il consumer si trova in un tenant diverso, il provider in genere non può accedere al collegamento ipertestuale.

Non è possibile automatizzare le approvazioni delle connessioni all'endpoint privato. Tuttavia, è possibile utilizzare la proprietà di autorizzazione automatica in Private Link per pre-approvare un set di sottoscrizioni per l'accesso automatico al servizio.

Passaggio 3 (consumer): configurazione DNS

È possibile eseguire i passaggi descritti in questa sezione immediatamente dopo aver creato la risorsa endpoint privata al passaggio 1. È tuttavia consigliabile attendere che il provider approvi la connessione.

Il consumer deve impostare e configurare la zona DNS privata per assicurarsi che i client possano trovare la NIC dell'endpoint privato. Come per il provider, la strategia DNS nel tenant determina i passaggi necessari.

  • Se il consumer usa i servizi di Azure DNS predefiniti, è consigliabile usare il servizio Azure DNS zona privata. Se necessario, il consumer può creare la zona privatelink.azurewebsites.net DNS privata e collegarla a una rete virtuale contenente la scheda di interfaccia di rete dell'endpoint privato. La registrazione automatica non è necessaria per questa zona DNS. Il consumer deve quindi aggiungere una nuova configurazione DNS:

    1. Nel portale di Azure cercare e selezionare l'endpoint privato.
    2. Aprire la configurazione DNS.
    3. Selezionare la zona DNS privato e specificare un nome di connessione per aggiungere una nuova configurazione DNS.

    Queste azioni creano il record A nella zona DNS privato. Il nome di dominio completo (FQDN) viene popolato automaticamente quando la connessione viene approvata.

  • Se il consumer gestisce le proprie zone DNS, il consumer deve configurare il proprio ambiente.

Se il provider crea un nome di dominio personalizzato, il consumer può accedere all'app Web tramite tale nome.

In questa architettura, la macchina virtuale consumer usa l'endpoint privato per accedere all'app Web. L'accesso richiede l'approvazione del provider della connessione e la configurazione DNS corretta.

Gestione delle connessioni

Sia il provider che il consumer possono gestire la connessione dell'endpoint privato dopo la creazione e l'approvazione.

  • Il consumatore può rimuovere la connessione in modo indipendente tramite l'endpoint privato, la pagina Private Link Center, l'interfaccia della riga di comando di Azure (Azure CLI) o con Azure PowerShell.

  • Il provider può rimuovere le connessioni al servizio nel Azure CLI, Azure PowerShell o in Networking nell'app Web. Dopo l'eliminazione dell'endpoint privato, l'accesso del consumer al servizio viene bloccato. Il consumer rileva che la connessione nell'endpoint privato ha lo stato Disconnesso e che il record DNS viene rimosso dalla zona DNS privato. L'utente deve eliminare la risorsa dell'endpoint privato manualmente.

Non è possibile sospendere o disattivare temporaneamente una connessione. Una volta che il consumer o il provider ha eliminato una connessione, è necessario creare un nuovo endpoint privato per ripristinare la connessione.

Ottimizzazione dei costi

A differenza delle restrizioni di accesso, che sono gratuite, gli endpoint privati sono dotati di costi fissi e variabili sia per il provider che per il consumer.

Costi fissi:

Costi variabili:

  • Volume di dati elaborati nell'endpoint privato
  • I costi della larghezza di banda se si distribuisce l'app Web e l'endpoint privato in regioni diverse
  • Numero di query DNS

Le VM non sono incluse in questa panoramica dei prezzi perché non sono un requisito assoluto per l'architettura.

Altre considerazioni

  • Il provider deve condividere l'ID della sottoscrizione, il nome del gruppo di risorse e il nome della risorsa dell'applicazione web con il consumatore. Il cliente condivide l'ID della sottoscrizione, il nome del gruppo di risorse e il nome della risorsa dell'endpoint privato con il provider.

  • Il numero di endpoint privati che è possibile creare in una sottoscrizione è limitato. Questo limite in genere non è un problema perché i consumer creano gli endpoint nelle proprie sottoscrizioni anziché nei provider. Per altre informazioni, vedere sottoscrizione di Azure e limiti dei servizi, quote e vincoli.

  • La sottoscrizione che contiene la risorsa Private Link deve essere registrata con il provider di risorse di rete Microsoft. La sottoscrizione che contiene l'endpoint privato deve essere registrata anche con il provider di risorse di rete Microsoft. Per ulteriori informazioni, vedere provider di risorse di Azure e tipi.

  • In caso di problemi di connettività, vedere Risoluzione dei problemi di connettività dell'endpoint privato di Azure. In particolare, verificare la configurazione DNS.

Implementare questo scenario

Per distribuire questa architettura, usare i modelli di Bicep in Project Accesso sicuro tra tenant per Web Apps e funzioni tramite endpoint privati.

Altre soluzioni

Le restrizioni di accesso offrono un'alternativa agli endpoint privati. È possibile configurare il firewall interno della risorsa usando le restrizioni di accesso per definire regole di autorizzazione e negazione. È possibile basare restrizioni su indirizzi IPv4 o IPv6, tag di servizio o endpoint di servizio. Gli endpoint di servizio consentono il traffico solo da subnet e reti virtuali selezionate. Le restrizioni di accesso sono gratuite in tutti i piani di Azure App Service e Azure Functions. Tuttavia, è difficile gestire le regole e i client non Microsoft richiedono indirizzi IP elencati che potrebbero essere dinamici o sensibili.

Per alcune risorse PaaS, ad esempio account Azure Storage, Azure Key Vault e Azure Event Hubs, è possibile usare un perimetro di sicurezza di rete per limitare il traffico in ingresso. Un perimetro di sicurezza di rete definisce un limite di sicurezza logico intorno a determinate risorse PaaS Azure non distribuite all'interno di una rete virtuale. È possibile controllare chi e cosa può comunicare con le risorse. È possibile usare un perimetro di sicurezza di rete in combinazione con gli endpoint privati.

Contributori

Microsoft gestisce questo articolo. I collaboratori seguenti hanno scritto questo articolo.

Autore principale:

Altro collaboratore:

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

Passaggi successivi