Un problema comune con le risorse PaaS, come un database o un Service Bus, è che per poterle accedere è necessario aprire l'accesso almeno all'intera infrastruttura Azure, esponendo potenzialmente le risorse al rischio di attacchi. Azure Private Link e Private Endpoints risolvono questo problema migliorando la sicurezza e facilitando la connettività privata ai servizi Azure e ai servizi personalizzati all'interno delle reti virtuali, senza esporre il traffico a internet pubblico.
Azure Private Link e Private Endpoints sono strumenti che ci permettono di garantire una connessione sicura e privata verso i servizi Azure o risorse accessibili tramite VPN, evitando di esporre il traffico a internet. Questa tecnologia ci offre un grande vantaggio in termini di sicurezza, dato che tutte le connessioni avvengono all'interno della rete backbone di Microsoft, proteggendo i dati e riducendo il rischio di attacchi.
Nel dettaglio, Azure Private Link ci consente di accedere a servizi PaaS come Azure Storage o Azure SQL Database attraverso un endpoint privato che si trova direttamente nella nostra rete virtuale. Questo approccio risolve il problema dell'esposizione delle risorse al pubblico, mantenendo tutte le connessioni interne e controllate. I Private Endpoints agiscono come interfacce di rete con un IP privato, consentendoci di collegare in modo sicuro i servizi alla nostra rete. La connessione può essere automatica o manuale, a seconda dei permessi che abbiamo, e la configurazione delle policy di rete come i NSG e le route definite dall'utente ci permette di mantenere il controllo totale.
Per configurare Azure Private Link, prima di tutto creiamo una Virtual Network con una subnet, mantenendo le impostazioni predefinite. Successivamente, prendiamo come esempio un SQL Server e dal portale di Azure ci rechiamo nella sezione Security e poi Networking. All'interno della sezione Private Access clicchiamo su Create Private Endpoint. Si presenta un wizard che ci chiede il nome dell'interfaccia di rete che verrà creata per collegarsi alla nostra Virtual Network.

Nel secondo passaggio indichiamo la risorsa da agganciare, appunto quella di SQL Server.

Ci vuoi poi chiesto la virtual network alla quale collegare la scheda di rete e il servizio in questione.

Nell'ultimo passaggio ci chiede se integrarci con il servizio DNS. Se acconsentiamo, viene creata una DNS zone privata e un dominio private-link.database-windows.net (ci sono domini diversi a seconda del servizio) nel quale verrà registrato un dominio con il nome del private endpoint, facendo puntare l'alias all'IP assegnato alla scheda di rete. In questo modo, all'interno della rete potremo risolvere con il dominio [endpoint].private-link.database-windows.net l'indirizzo IP interno o esterno a seconda di chi cerca di farlo.

Fatto questo se cerchiamo nel portale Private Link Center troveremo la lista dei private endpoint, con il nome, l'IP e la loro risorsa. Ipotiziamo ora di volerci connettere al database da un App Service. Per fare questo non dobbiamo creare un altro private endpoint, perché il servizio serve permettere di ricevere in ingresso i pacchetti, ma non per farli uscire. Dobbiamo in questo caso connettere l'app service alla virtual network creando prima una nuova subnet (non possiamo usare la stessa del private endpoint) e successivamente andare nel networking dell'app service e collegarlo alla virtual network.

Dall'immagine si vede la nuova subnet webapps e quella di default già presente usata per le private network. Fatto questo, se andiamo nella nostra app, apriamo la shell e proviamo a risolvere il dominio del database, otterremo l'indirizzo IP interno.

Collegandoci all'IP riusciremo poi ad entrare nel server mantenendo l'accesso pubblico disabilitato.

L'argomento del networking in Azure è molto più vasto e complesso. Questa è solo una panoramica iniziale delle possibilità offerte da Azure Private Link e Private Endpoints. Esplorare ulteriormente i vari servizi e le configurazioni disponibili è fondamentale per poter sfruttare al meglio la potenza della rete in Azure.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Utilizzare DeepSeek R1 con Azure AI
Selettore CSS :has() e i suoi casi d'uso avanzati
Creare agenti facilmente con Azure AI Agent Service
Utilizzare Locust con Azure Load Testing
Utilizzare i variable font nel CSS
Ricevere notifiche sui test con Azure Load Testing
Gestione dei nomi con le regole @layer in CSS
Utilizzare una qualunque lista per i parametri di tipo params in C#
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Potenziare la ricerca su Cosmos DB con Full Text Search