Condividi tramite


Usare endpoint privati per le app del servizio app di Azure

È possibile usare un endpoint privato per le app del servizio app di Azure. L'endpoint privato consente ai client che si trovano nella rete privata di accedere in modo sicuro a un'app tramite collegamento privato di Azure. L'endpoint privato utilizza un indirizzo IP dello spazio di indirizzi della rete virtuale Azure. Il traffico di rete tra un client nella rete privata e l'app passa attraverso la rete virtuale e il collegamento privato nella rete backbone Microsoft. Questa configurazione elimina l'esposizione dalla rete Internet pubblica.

Quando si usa un endpoint privato per l'app, è possibile:

  • Proteggere l'app quando si configura l'endpoint privato e si disabilita l'accesso alla rete pubblica, eliminando così l'esposizione pubblica.
  • Connettetevi in modo sicuro alla vostra applicazione da reti locali che si connettono alla rete virtuale utilizzando una VPN o un peering privato di ExpressRoute.
  • Evitare l'esfiltrazione di dati dalla rete privata.

Importante

Gli endpoint privati sono disponibili per le app Windows e Linux, in contenitori o meno, ospitate nei piani di servizio app seguenti: Basic, Standard, PremiumV2, PremiumV3, PremiumV4, IsolatedV2, Functions Premium (talvolta denominato piano Elastic Premium).

Panoramica dei concetti

Un endpoint privato è un'interfaccia di rete per l'app del servizio app in una subnet nella rete virtuale.

Quando si crea un endpoint privato per la propria applicazione, questo fornisce una connettività sicura tra i client della rete privata e l'applicazione. 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 usa l'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 è configurata separatamente. È possibile usare fino a 100 endpoint privati per slot. Non è possibile condividere un endpoint privato tra slot. Il subresource nome di uno slot è sites-<slot-name>.

La subnet usata per collegare l'endpoint privato può contenere altre risorse. Non è necessaria una subnet vuota dedicata.

È anche possibile distribuire l'endpoint privato in una regione diversa da quella dell'applicazione.

Nota

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

Considerazioni sulla sicurezza

Gli endpoint privati e l'accesso pubblico possono coesistere in un'app. Per altre informazioni, vedere questa panoramica delle restrizioni di accesso.

Per garantire l'isolamento, quando si abilitano gli endpoint privati per l'app, assicurarsi di disabilitare l'accesso alla rete pubblica. È possibile abilitare più endpoint privati in altre reti virtuali e subnet, incluse le reti virtuali in altre aree.

Le regole di restrizione 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. Rimuovere tutte le regole del gruppo di sicurezza di rete (NSG) in cui la destinazione è contrassegnata come internet o servizi di Azure.

È possibile trovare l'INDIRIZZO IP di origine client nei log HTTP Web dell'app. Questa funzionalità viene implementata usando il proxy TCP (Transmission Control Protocol), che inoltra la proprietà IP client all'app. Per altre informazioni, vedere Recupero delle informazioni di connessione tramite il proxy TCP v2.

Diagramma che mostra una panoramica globale degli endpoint privati del servizio app.

DNS (Sistema dei Nomi di Dominio)

Quando si usa l'endpoint privato per le app di App Service, l'URL richiesto deve corrispondere all'indirizzo della tua app. Per impostazione predefinita, senza un endpoint privato, il nome pubblico dell'app Web è un nome canonico per il cluster. Ad esempio, la risoluzione dei nomi è:

Nome Tipo Valore
mywebapp.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net A 192.0.2.13

Quando si distribuisce un endpoint privato, l'approccio aggiorna la voce DNS (Domain Name System) in modo che punti al nome canonico: mywebapp.privatelink.azurewebsites.net. Ad esempio, la risoluzione dei nomi è:

Nome Tipo 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 A 192.0.2.13 <--Questo indirizzo IP pubblico non corrisponde all'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. Con i gruppi di zone DNS privati di Azure, i record DNS vengono aggiunti automaticamente alla zona DNS privato.

Ad esempio, la risoluzione dei nomi è:

Nome Tipo 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 A 10.10.10.8 <--Si gestisce questa voce nel sistema DNS in modo che punti all'indirizzo IP dell'endpoint privato.

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

Nome di dominio personalizzato

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

Nella zona DNS personalizzata è necessario aggiornare il record DNS in modo che punti all'endpoint privato. Se l'app è già configurata con la risoluzione DNS per il nome host predefinito, il modo preferito consiste nell'aggiungere un CNAME record per il dominio personalizzato che punta a mywebapp.azurewebsites.net. Se si vuole solo che il nome di dominio personalizzato venga risolto nell'endpoint privato, è possibile aggiungere direttamente un A record con l'indirizzo IP dell'endpoint privato.

Endpoint Kudu/scm

Per la console Kudu o l'API REST Kudu (per la distribuzione con agenti self-hosted di Azure DevOps Services), ad esempio, è necessario creare un secondo record che punta all'INDIRIZZO IP dell'endpoint privato nella zona privata DNS di Azure o nel server DNS personalizzato. Il primo è per l'app e il secondo è per la gestione del controllo del codice sorgente dell'app. Con i gruppi di zone DNS privati di Azure, l'endpoint scm viene aggiunto automaticamente.

Nome Tipo Valore
mywebapp.privatelink.azurewebsites.net A PrivateEndpointIP
mywebapp.scm.privatelink.azurewebsites.net A PrivateEndpointIP

Considerazioni speciali sull'ambiente di App Service v3

Per abilitare l'endpoint privato per le app ospitate in un piano IsolatedV2 (ambiente del servizio app v3), abilitare il supporto dell'endpoint privato a livello di ambiente del servizio app. È possibile attivare la funzionalità usando il portale di Azure nel riquadro di configurazione dell'ambiente del servizio app o 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, assicurarsi che la sottoscrizione con la rete virtuale sia registrata per il Microsoft.Web provider di risorse. Per registrare in modo esplicito il provider, vedere Registrare il provider di risorse. Il provider viene registrato automaticamente quando si crea la prima app Web in una sottoscrizione.

Prezzi

Per informazioni dettagliate sui prezzi, vedere Prezzi dei collegamenti privati di Azure.

Limiti

  • Quando si usa una funzione di Azure nel piano Elastic Premium con un endpoint privato, è necessario avere accesso diretto alla rete per eseguire la funzione nel portale di Azure. In caso contrario, viene visualizzato un errore HTTP 403. 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 ed eseguirne il debug in remoto.
  • L'accesso FTP viene fornito tramite l'indirizzo IP pubblico in ingresso. Un endpoint privato non supporta l'accesso FTP all'app.
  • TLS basato su IP non è supportato con endpoint privati.
  • Le app configurate con endpoint privati non possono ricevere traffico pubblico proveniente da subnet con un Microsoft.Web endpoint di servizio abilitato e non possono 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 del Microsoft.Network/privateEndpoints tipo. Per altre informazioni, vedere Regole di denominazione e restrizioni.

Per informazioni aggiornate sulle limitazioni, vedere questa documentazione.