Multi-tenancy e collegamento privato di Azure

collegamento privato di Azure fornisce indirizzi IP privati per i servizi della piattaforma Azure e per le proprie applicazioni ospitate in macchine virtuali di Azure. È possibile usare collegamento privato per abilitare la connettività privata dagli ambienti Azure dei tenant. I tenant possono anche usare collegamento privato per accedere alla soluzione dagli ambienti locali, quando sono connessi tramite gateway di rete privata virtuale (Gateway VPN) o ExpressRoute.

collegamento privato di Azure viene usato da molti provider SaaS di grandi dimensioni, tra cui Snowflake, Confluent Cloud e MongoDB Atlas.

Questo articolo illustra come configurare collegamento privato per una soluzione multi-tenant ospitata in Azure.

Considerazioni essenziali

Spazi indirizzi IP sovrapposti

collegamento privato offre potenti funzionalità per le soluzioni multi-tenant, in cui i tenant possono accedere al servizio tramite spazi di indirizzi privati.

I tenant diversi usano spesso gli stessi spazi di indirizzi IP privati o sovrapposti. Ad esempio, la soluzione multi-tenant potrebbe usare lo spazio indirizzi IP di 10.1.0.0/16. Si supponga che il tenant A usi la propria rete locale con lo stesso spazio indirizzi IP e che in modo casuale anche il tenant B usi lo stesso spazio indirizzi IP. Non è possibile connettersi direttamente o eseguire il peering tra le reti perché gli intervalli di indirizzi IP si sovrappongono.

Quando si usa collegamento privato per abilitare la connettività da ogni tenant alla soluzione multi-tenant, viene applicata automaticamente la conversione degli indirizzi di rete (NAT) di ogni tenant. Ogni tenant può usare un indirizzo IP privato all'interno della propria rete e il traffico passa alla soluzione multi-tenant in modo trasparente. collegamento privato esegue NAT sul traffico, anche quando i tenant e il provider di servizi usano intervalli di indirizzi IP sovrapposti:

Diagramma che mostra la connettività tra due tenant e un servizio multi-tenant, tutti che usano lo stesso spazio indirizzi IP.

Quando il traffico arriva nella soluzione multi-tenant, è già stato convertito. Ciò significa che il traffico sembra provenire dall'interno dello spazio di indirizzi IP della rete virtuale del servizio multi-tenant. collegamento privato fornisce Funzionalità TCP Proxy Protocol v2, che consente a un servizio multi-tenant di conoscere il tenant che ha inviato la richiesta e anche l'indirizzo IP originale dalla rete di origine.

Selezione del servizio

Quando si usa collegamento privato, è importante considerare il servizio a cui si vuole consentire la connettività in ingresso.

collegamento privato di Azure servizio viene usato con le macchine virtuali dietro un servizio di bilanciamento del carico standard.

È anche possibile usare collegamento privato con altri servizi di Azure. Questi servizi includono piattaforme di hosting di applicazioni come il servizio app Azure. Includono anche gateway app Azure lication o azure Gestione API, ovvero gateway di rete e API.

La piattaforma dell'applicazione usata determina molti aspetti della configurazione di collegamento privato e i limiti che si applicano. Inoltre, alcuni servizi non supportano collegamento privato per il traffico in ingresso. Esaminare la documentazione relativa ai servizi di Azure usati per comprendere il supporto per collegamento privato.

Limiti

Considerare attentamente il numero di endpoint privati che è possibile creare, in base all'architettura della soluzione. Se si usa una piattaforma applicativa PaaS (Platform as a Service), è importante tenere presente il numero massimo di endpoint privati che una singola risorsa può supportare. Se si eseguono macchine virtuali, è possibile collegare un'istanza del servizio collegamento privato a un servizio di bilanciamento del carico standard. In questa configurazione è in genere possibile connettere un numero maggiore di endpoint privati, ma i limiti sono ancora applicabili. Questi limiti possono determinare il numero di tenant che è possibile connettere alle risorse usando collegamento privato. Esaminare la sottoscrizione di Azure e i limiti, le quote e i vincoli del servizio per comprendere i limiti per il numero di endpoint e connessioni.

Inoltre, alcuni servizi richiedono una configurazione di rete specializzata per usare collegamento privato. Ad esempio, se si usa collegamento privato con app Azure lication Gateway, è necessario effettuare il provisioning di una subnet dedicata, oltre alla subnet standard per la risorsa gateway applicazione.

Testare attentamente la soluzione, inclusa la configurazione di distribuzione e diagnostica, con la configurazione di collegamento privato abilitata. Quando gli endpoint privati sono abilitati in alcuni servizi di Azure, il traffico Internet pubblico viene bloccato. Questo comportamento può richiedere la modifica dei processi di distribuzione e gestione.

È possibile scegliere di distribuire la soluzione sia con connessione Internet che per essere esposta tramite endpoint privati. Ad esempio, alcuni tenant potrebbero richiedere connettività privata, mentre altri si basano sulla connettività Internet pubblica. Prendere in considerazione la topologia di rete complessiva e i percorsi che seguono il traffico di ogni tenant.

Quando la soluzione si basa su macchine virtuali che si trovano dietro un servizio di bilanciamento del carico standard, è possibile esporre l'endpoint tramite il servizio collegamento privato. In questo caso, è probabile che un web application firewall e il routing delle applicazioni facciano già parte del carico di lavoro basato su macchine virtuali.

Molti servizi PaaS di Azure supportano collegamento privato per la connettività in ingresso, anche tra sottoscrizioni di Azure e tenant Microsoft Entra diversi. È possibile usare le funzionalità di collegamento privato del servizio per esporre l'endpoint.

Quando si usano altri servizi con connessione Internet, ad esempio Frontdoor di Azure, è importante valutare se supportano collegamento privato per il traffico in ingresso. In caso contrario, considerare il modo in cui il traffico passa attraverso ogni percorso della soluzione.

Si supponga, ad esempio, di creare un'applicazione con connessione Internet in esecuzione in un set di scalabilità di macchine virtuali. Si usa Frontdoor di Azure, incluso il web application firewall (WAF), per l'accelerazione della sicurezza e del traffico e si configura Frontdoor per inviare il traffico attraverso un endpoint privato al servizio back-end (origine). Il tenant A si connette alla soluzione usando un endpoint pubblico e il tenant B si connette usando un endpoint privato. Poiché Frontdoor non supporta collegamento privato per le connessioni in ingresso, il traffico del tenant B ignora Frontdoor e il relativo WAF:

Diagramma che mostra le richieste provenienti da Frontdoor di Azure e anche tramite un endpoint privato, che ignora Frontdoor.

Modelli di isolamento

collegamento privato è progettato per supportare scenari in cui un singolo livello applicazione può essere usato da più client separati, ad esempio i tenant. Quando si considera l'isolamento per collegamento privato, il problema principale riguarda il numero di risorse da distribuire per supportare i requisiti. I modelli di isolamento tenant che è possibile usare per collegamento privato dipendono dal servizio usato.

Se si usa collegamento privato servizio con macchine virtuali dietro un servizio di bilanciamento del carico standard, è possibile prendere in considerazione diversi modelli di isolamento.

Considerazione Servizio di collegamento privato condiviso e servizio di bilanciamento del carico condiviso Servizio dedicato collegamento privato e servizio di bilanciamento del carico dedicato Servizio di collegamento privato dedicato e servizio di bilanciamento del carico condiviso
Complessità della distribuzione Basso Medio-alto, a seconda del numero di tenant Medio-alto, a seconda del numero di tenant
Complessità operativa Basso Medio-alto, a seconda del numero di risorse Medio-alto, a seconda del numero di risorse
Limiti da considerare Numero di endpoint privati nello stesso servizio collegamento privato Numero di servizi collegamento privato per sottoscrizione Numero di servizi di collegamento privato per servizio di bilanciamento del carico standard
Scenario di esempio Soluzione multi-tenant di grandi dimensioni con livello applicazione condiviso Indicatori di distribuzione separati per ogni tenant Livello applicazione condiviso in un singolo timbro, con un numero elevato di tenant

In tutti e tre i modelli, il livello di isolamento e prestazioni dei dati dipende dagli altri elementi della soluzione e la distribuzione del servizio collegamento privato non influisce materialmente su questi fattori.

È possibile valutare la possibilità di distribuire un servizio di collegamento privato condiviso, connesso a un servizio di bilanciamento del carico standard. Ogni tenant può creare un endpoint privato e usarlo per connettersi alla soluzione.

Una singola istanza del servizio collegamento privato supporta un numero elevato di endpoint privati. Se si esaurisce il limite, è possibile distribuire più istanze del servizio collegamento privato, anche se esistono anche limiti al numero di servizi collegamento privato che è possibile distribuire in un singolo servizio di bilanciamento del carico. Se si prevede di avvicinarsi a questi limiti, è consigliabile usare un approccio basato su stamp di distribuzione e distribuire servizi di bilanciamento del carico condivisi e istanze del servizio collegamento privato in ogni timbro.

È possibile distribuire un servizio di collegamento privato dedicato e un servizio di bilanciamento del carico dedicato per ogni tenant. Questo approccio ha senso quando si dispone di un set dedicato di macchine virtuali per ogni tenant, ad esempio quando i tenant hanno requisiti di conformità rigorosi.

È anche possibile distribuire istanze dedicate del servizio collegamento privato per ogni tenant, con un servizio di bilanciamento del carico standard condiviso. Tuttavia, è improbabile che questo modello fornisca molto vantaggio. Inoltre, poiché esiste un limite al numero di servizi collegamento privato che è possibile distribuire in un singolo servizio di bilanciamento del carico standard, questo modello non è probabilmente scalabile oltre una piccola soluzione multi-tenant.

Più comunemente, è possibile distribuire più servizi di collegamento privato condivisi. Questo approccio consente di espandere il numero di endpoint privati che la soluzione può supportare in un servizio di bilanciamento del carico condiviso.

Modelli di isolamento per i servizi PaaS di Azure con endpoint privati

Quando si distribuiscono i servizi PaaS (Platform as a Service) di Azure e si vuole consentire ai tenant di accedere a tali servizi con endpoint privati, prendere in considerazione le funzionalità e i vincoli del servizio specifico. Valutare inoltre se le risorse del livello applicazione sono dedicate a un tenant specifico o se sono condivise tra tenant.

Se si distribuisce un set dedicato di risorse del livello applicazione per ogni tenant, è probabile che sia possibile distribuire un endpoint privato per tale tenant da usare per accedere alle risorse. È improbabile che si esaurisca qualsiasi limite del servizio correlato a collegamento privato, perché ogni tenant ha le proprie risorse dedicate.

Quando si condividono le risorse del livello applicazione tra tenant, è consigliabile distribuire un endpoint privato per ogni tenant. Esistono limiti al numero di endpoint privati che possono essere collegati a una singola risorsa e questi limiti sono diversi per ogni servizio.

collegamento privato include diverse funzionalità utili in un ambiente multi-tenant. Tuttavia, le funzionalità specifiche disponibili dipendono dal servizio usato. Il servizio di base collegamento privato di Azure, per le macchine virtuali e i servizi di bilanciamento del carico, supporta tutte le funzionalità descritte di seguito. Altri servizi con supporto collegamento privato possono fornire solo un subset di queste funzionalità.

Alias del servizio

Quando un tenant configura l'accesso al servizio usando collegamento privato, deve essere in grado di identificare il servizio in modo che Azure possa stabilire la connessione.

collegamento privato servizio e alcuni altri servizi di Azure compatibili con collegamento privato consentono di configurare un alias fornito ai tenant. Usando un alias, è possibile evitare di divulgare gli ID sottoscrizione di Azure e i nomi dei gruppi di risorse.

Visibilità del servizio

Il servizio collegamento privato consente di controllare la visibilità dell'endpoint privato. È possibile consentire a tutti i clienti di Azure di connettersi al servizio, se conoscono l'alias o l'ID risorsa. In alternativa, è possibile limitare l'accesso solo a un set di clienti noti di Azure.

È anche possibile specificare un set di ID sottoscrizione di Azure già approvati che possono connettersi all'endpoint privato. Se si sceglie di usare questo approccio, prendere in considerazione la modalità di raccolta e autorizzazione degli ID sottoscrizione. Ad esempio, è possibile fornire un'interfaccia utente di amministrazione nell'applicazione per raccogliere l'ID sottoscrizione di un tenant. È quindi possibile riconfigurare dinamicamente l'istanza del servizio collegamento privato per pre-approvare l'ID sottoscrizione per le connessioni.

Approvazioni delle connessioni

Dopo aver richiesto una connessione tra un client (ad esempio un tenant) e un endpoint privato, collegamento privato richiede l'approvazione della connessione. Finché la connessione non viene approvata, il traffico non può passare attraverso la connessione dell'endpoint privato.

Il servizio collegamento privato supporta diversi tipi di flussi di approvazione, tra cui:

  • Approvazione manuale, in cui il team approva in modo esplicito ogni connessione. Questo approccio è fattibile quando si hanno solo pochi tenant che usano il servizio tramite collegamento privato.
  • Approvazione basata su API, in cui il servizio collegamento privato considera la connessione come necessaria un'approvazione manuale e l'applicazione usa l'API Update Private Endpoint Connection, l'interfaccia della riga di comando di Azure o Azure PowerShell per approvare una connessione. Questo approccio può essere utile quando si dispone di un elenco di tenant autorizzati a usare endpoint privati.
  • Approvazione automatica, in cui il servizio collegamento privato stesso mantiene l'elenco di ID sottoscrizione che devono avere le connessioni approvate automaticamente.

Per altre informazioni, vedere Controllare l'accesso al servizio.

Protocollo proxy v2

Quando si usa il servizio collegamento privato, per impostazione predefinita l'applicazione ha visibilità solo di un indirizzo IP che è stato eseguito tramite nat (Network Address Translation). Questo comportamento significa che il traffico sembra fluire dall'interno della propria rete virtuale.

collegamento privato consente di accedere all'indirizzo IP client originale, nella rete virtuale del tenant. Questa funzionalità usa tcp proxy protocol v2.

Si supponga, ad esempio, che gli amministratori dei tenant debbano aggiungere restrizioni di accesso basate sugli indirizzi IP, ad esempio host 10.0.0.10 possono accedere al servizio, ma l'host 10.0.0.20 non può. Quando si usa il protocollo proxy v2, è possibile abilitare i tenant per configurare questi tipi di restrizioni di accesso nell'applicazione. Tuttavia, il codice dell'applicazione deve esaminare l'indirizzo IP originale del client e applicare le restrizioni.

  • collegamento privato di Azure spiegazione del servizio e demo del provider (ISV SaaS) e delle prospettive dei consumer: un video che esamina la funzionalità del servizio collegamento privato di Azure che consente ai provider di servizi multi-tenant (ad esempio fornitori di software indipendenti che creano prodotti SaaS). Questa soluzione consente ai consumer di accedere al servizio del provider usando indirizzi IP privati dalle reti virtuali di Azure del consumer.
  • Tcp Proxy Protocol v2 con collegamento privato di Azure Service - Approfondimento: video che illustra un approfondimento sul protocollo proxy TCP v2, una funzionalità avanzata del servizio collegamento privato di Azure. È utile negli scenari multi-tenant e SaaS. Il video illustra come abilitare il protocollo proxy v2 nel servizio collegamento privato di Azure. Viene inoltre illustrato come configurare un servizio NGINX per leggere l'indirizzo IP privato di origine del client originale, anziché l'IP NAT, per accedere al servizio tramite l'endpoint privato.
  • Uso di NGINX Plus per decodificare il protocollo proxy TLV dal servizio collegamento privato di Azure: un video che illustra come usare NGINX Plus per ottenere il protocollo TLV linkIdentifier v2 del protocollo proxy TCP dal servizio collegamento privato di Azure. Il video mostra come estrarre e decodificare il valore numerico linkIdentifier, detto LINKIDanche , della connessione all'endpoint privato. Questa soluzione è utile per i provider multi-tenant che devono identificare il tenant consumer specifico da cui è stata stabilita la connessione.
  • Modello di connettività privata SaaS: una soluzione di esempio che illustra un approccio per automatizzare l'approvazione delle connessioni di endpoint privati usando applicazioni gestite di Azure.

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autori principali:

Altro collaboratore:

  • Sumeet Mittal | Principal Product Manager, collegamento privato di Azure

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

Passaggi successivi

Esaminare gli approcci di rete per la multi-tenancy.