Condividi tramite


Uso di endpoint privati per le app del servizio app

Nota

A partire dal 1° giugno 2024, per tutte le nuove app del servizio app create sarà possibile generare un nome host predefinito univoco usando la convenzione di denominazione <app-name>-<random-hash>.<region>.azurewebsites.net. I nomi delle app esistenti rimarranno invariati.

Esempio: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

Per ulteriori dettagli, fare riferimento a Nome host predefinito univoco per la risorsa del 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, IsolatoV2, Funzioni Premium (talvolta denominato piano Elastic Premium).

È possibile utilizzare l'endpoint privato per le applicazioni diel Servizio App per consentire ai client situati nella rete privata di accedere in modo sicuro all'applicazione 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 della rete privata e l'applicazione passa attraverso la rete virtuale e un collegamento privato sulla rete dorsale Microsoft, eliminando l'esposizione alla rete Internet pubblica.

L'uso di un 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.
  • Connettetevi in modo sicuro alla vostra applicazione da reti locali che si connettono alla rete virtuale utilizzando una VPN o un peering privato ExpressRoute.
  • Evitare l'esfiltrazione di dati dalla rete privata.

Panoramica dei concetti

Un endpoint privato è un'interfaccia di rete (NIC) speciale per l'app del servizio app di Azure 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 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 a cui si collega l'endpoint privato può includere 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. 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 NSG in cui la destinazione è il tag Internet o i servizi Azure.

Nei log Web HTTP dell'applicazione, si trova l'IP di origine del client. Questa funzione è implementata utilizzando il protocollo TCP Proxy, che inoltra la proprietà IP del client all'applicazione. Per altre informazioni, vedere Ottenere informazioni sulla connessione usando il protocollo proxy TCP v2.

Panoramica globale dell'endpoint privato dell'app del servizio app

DNS

Quando si usa l'endpoint privato per le app del servizio app, l'URL richiesto deve corrispondere al nome dell'app. Per impostazione predefinita mywebappname.azurewebsites.net (vedere la nota in alto).

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 Una 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 (ad esempio, per la distribuzione con gli agenti Azure DevOps self-hosted), è necessario creare due record che puntino all'IP dell'endpoint privato nella zona privata di 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 Una PrivateEndpointIP
mywebapp.scm.privatelink.azurewebsites.net Una PrivateEndpointIP

Considerazioni speciali sull'ambiente del servizio app v3

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à tramite 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, è necessario assicurarsi che la sottoscrizione con la rete virtuale sia registrata per il provider Microsoft.Web 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 una funzione di Azure in un piano elastico Premium con endpoint privato, per eseguire la funzione nel portale di Azure, è necessario avere accesso diretto alla rete oppure si riceverà 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 endpoint del servizio Microsoft.Web abilitato e non possono usare regole di restrizione dell'accesso basate sull'endpoint del 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 la funzione collegamento privato di Azur e l'endpoint privato, vedere questo articoloper informazioni aggiornate sulle limitazioni.

Passaggi successivi