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:
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.
collegamento privato in combinazione con i servizi pubblici
È 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:
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.
Modelli di isolamento per collegamento privato servizio
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.
Servizio di collegamento privato condiviso e servizio di bilanciamento del carico standard condiviso
È 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.
Servizio dedicato collegamento privato e servizio di bilanciamento del carico standard dedicato per tenant
È 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.
Servizio di collegamento privato dedicato per tenant e servizio di bilanciamento del carico standard condiviso
È 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.
Funzionalità di collegamento privato di Azure che supportano la multi-tenancy
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.
Risorse correlate
- 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 numericolinkIdentifier
, dettoLINKID
anche , 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:
- John Downs | Principal Software Engineer
- Arsen Vladimirintune | Principal Customer Engineer, FastTrack per Azure
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.