Uso di endpoint privati per le app di servizio app

Importante

L'endpoint privato è disponibile per le app Windows e Linux, in contenitori o meno, ospitate in questi piani di servizio app: Basic, Standard, PremiumV2, PremiumV3, IsolatedV2, Functions Premium (talvolta definito piano Elastic Premium).

È possibile usare l'endpoint privato per le app servizio app per consentire ai client che si trovano nella rete privata di accedere in modo sicuro all'app tramite collegamento privato di Azure. L'endpoint privato usa un indirizzo IP dallo spazio indirizzi della rete virtuale di Azure. Il traffico di rete tra un client nella rete privata e l'app attraversa la rete virtuale e un collegamento privato nella rete backbone Microsoft, eliminando l'esposizione dalla rete Internet pubblica.

L'uso dell'endpoint privato per l'app consente di:

  • Proteggere l'app configurando l'endpoint privato e disabilitare l'accesso alla rete pubblica per eliminare l'esposizione pubblica.
  • Connettersi in modo sicuro all'app da reti locali che si connettono alla rete virtuale usando un peering privato VPN o ExpressRoute.
  • Evitare l'esfiltrazione di dati dalla rete privata.

Panoramica dei concetti

Un endpoint privato è un'interfaccia di rete speciale per l'app servizio app in una subnet nella rete virtuale. Quando si crea un endpoint privato per l'app, fornisce connettività sicura tra i client nella rete privata e l'app. All'endpoint privato viene assegnato un indirizzo IP dall'intervallo di indirizzi IP della rete virtuale. La connessione tra l'endpoint privato e l'app usa un collegamento privato sicuro. L'endpoint privato viene usato solo per il traffico in ingresso verso l'app. Il traffico in uscita non userà questo endpoint privato. È possibile inserire il traffico in uscita verso la rete in una subnet diversa tramite la funzionalità di integrazione della rete virtuale.

Ogni slot di un'app viene configurato separatamente. È possibile collegare fino a 100 endpoint privati per slot. Non è possibile condividere un endpoint privato tra slot. Il nome della sotto-risorsa di uno slot è sites-<slot-name>.

La subnet in cui si collega l'endpoint privato può contenere altre risorse, non è necessaria una subnet vuota dedicata. È anche possibile distribuire l'endpoint privato in un'area diversa rispetto all'app.

Nota

La funzionalità di integrazione della rete virtuale non può usare la stessa subnet dell'endpoint privato. Si tratta di una limitazione della funzionalità di integrazione della rete virtuale.

Dal punto di vista della sicurezza:

  • L'endpoint privato e l'accesso pubblico possono coesistere in un'app. Per altre informazioni, vedere Panoramica delle restrizioni di accesso
  • Quando si abilitano gli endpoint privati per l'app, assicurarsi che l'accesso alla rete pubblica sia disabilitato per garantire l'isolamento.
  • È possibile abilitare più endpoint privati in altre reti virtuali e subnet, inclusa la rete virtuale in altre aree.
  • Le regole di restrizioni di accesso dell'app non vengono valutate per il traffico attraverso l'endpoint privato.
  • È possibile eliminare il rischio di esfiltrazione dei dati dalla rete virtuale rimuovendo tutte le regole del gruppo di sicurezza di rete in cui la destinazione è contrassegnata da Internet o dai servizi di Azure.

Nei log HTTP Web dell'app si trova l'INDIRIZZO IP di origine del client. Questa funzionalità viene implementata usando il protocollo proxy TCP, inoltrando la proprietà IP client all'app. Per altre informazioni, vedere Ottenere informazioni sulla connessione usando il protocollo proxy TCP v2.

Panoramica globale dell'endpoint privato dell'app servizio app

DNS

Quando usi l'endpoint privato per servizio app app, l'URL richiesto deve corrispondere al nome dell'app. Per impostazione predefinita, mywebappname.azurewebsites.net.

Per impostazione predefinita, senza endpoint privato, il nome pubblico dell'app Web è un nome canonico per il cluster. Ad esempio, la risoluzione dei nomi è:

Nome Type valore
mywebapp.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net Un 40.122.110.154

Quando si distribuisce un endpoint privato, la voce DNS viene aggiornata in modo che punti al nome canonico mywebapp.privatelink.azurewebsites.net. Ad esempio, la risoluzione dei nomi è:

Nome Type Valore Commento
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net
mywebapp.privatelink.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net Un 40.122.110.154 <--Questo indirizzo IP pubblico non è l'endpoint privato, viene visualizzato un errore 403

È necessario configurare un server DNS privato o una zona privata DNS di Azure. Per i test, è possibile modificare la voce host del computer di test. La zona DNS che è necessario creare è: privatelink.azurewebsites.net. Registrare il record per l'app con un record A e l'indirizzo IP dell'endpoint privato. Ad esempio, la risoluzione dei nomi è:

Nome Type Valore Commento
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net <--Azure crea questa voce CNAME in DNS pubblico di Azure per puntare l'indirizzo dell'app all'indirizzo dell'endpoint privato
mywebapp.privatelink.azurewebsites.net Un 10.10.10.8 <--Si gestisce questa voce nel sistema DNS in modo che punti all'indirizzo IP dell'endpoint privato

Dopo questa configurazione DNS, è possibile raggiungere l'app privatamente con il nome predefinito mywebappname.azurewebsites.net. È necessario usare questo nome, perché il certificato predefinito viene emesso per *.azurewebsites.net.

Se è necessario usare un nome DNS personalizzato, è necessario aggiungere il nome personalizzato nell'app ed è necessario convalidare il nome personalizzato come qualsiasi nome personalizzato, usando la risoluzione DNS pubblica. Per altre informazioni, vedere Convalida DNS personalizzata.

Per la console Kudu o l'API REST Kudu (distribuzione con agenti self-hosted di Azure DevOps), ad esempio, è necessario creare due record che puntano all'INDIRIZZO IP dell'endpoint privato nella zona privata DNS di Azure o nel server DNS personalizzato. Il primo è per l'app, il secondo è per SCM dell'app.

Nome Type Valore
mywebapp.privatelink.azurewebsites.net Un PrivateEndpointIP
mywebapp.scm.privatelink.azurewebsites.net Un PrivateEndpointIP

ambiente del servizio app v3 considerazioni speciali

Per abilitare l'endpoint privato per le app ospitate in un piano IsolatedV2 (ambiente del servizio app v3), è necessario abilitare il supporto dell'endpoint privato a livello di ambiente del servizio app. È possibile attivare la funzionalità dal portale di Azure nel riquadro di configurazione ambiente del servizio app oppure tramite l'interfaccia della riga di comando seguente:

az appservice ase update --name myasename --allow-new-private-endpoint-connections true

Requisiti specifici

Se la rete virtuale si trova in una sottoscrizione diversa rispetto all'app, è necessario assicurarsi che la sottoscrizione con la rete virtuale sia registrata per il Microsoft.Web provider di risorse. È possibile registrare in modo esplicito il provider seguendo questa documentazione, ma si registra automaticamente anche il provider quando si crea la prima app Web in una sottoscrizione.

Prezzi

Per informazioni dettagliate sui prezzi, vedere Prezzi di Collegamento privato di Azure.

Limiti

  • Quando si usa la funzione di Azure nel piano Elastic Premium con un endpoint privato, per eseguire o eseguire la funzione in portale di Azure, è necessario disporre dell'accesso diretto alla rete oppure si riceve un errore HTTP 403. In altre parole, il browser deve essere in grado di raggiungere l'endpoint privato per eseguire la funzione dal portale di Azure.
  • È possibile connettere fino a 100 endpoint privati a una determinata app.
  • La funzionalità di debug remoto non è disponibile tramite l'endpoint privato. È consigliabile distribuire il codice in uno slot e eseguirne il debug remoto.
  • L'accesso FTP viene fornito tramite l'indirizzo IP pubblico in ingresso. L'endpoint privato non supporta l'accesso FTP all'app.
  • SSL basato su IP non è supportato con endpoint privati.
  • Le app configurate con endpoint privati non possono ricevere traffico pubblico proveniente da subnet con Microsoft.Web endpoint di servizio abilitato e non può usare regole di restrizione degli accessi in base all'endpoint di servizio.
  • La denominazione dell'endpoint privato deve seguire le regole definite per le risorse di tipo Microsoft.Network/privateEndpoints. Le regole di denominazione sono disponibili qui.

Stiamo migliorando regolarmente collegamento privato di Azure funzionalità e endpoint privato. Per informazioni aggiornate sulle limitazioni, vedere questo articolo.

Passaggi successivi