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
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Paginare i risultati con QuickGrid in Blazor
Code scanning e advanced security con Azure DevOps
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Utilizzare un service principal per accedere a Azure Container Registry
Utilizzare il trigger SQL con le Azure Function
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Eseguire una query su SQL Azure tramite un workflow di GitHub
Gestione dell'annidamento delle regole dei layer in CSS
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Generare un hash con SHA-3 in .NET
Hosting di componenti WebAssembly in un'applicazione Blazor static
I più letti di oggi
- Sfruttare le API di geolocalizzazione di JavaScript
- Webcast 'Windows Vista: WinFX il framework per gli sviluppatori'
- Impostare il tema light o dark utilizzando i CSS
- Proteggere le risorse Azure con private link e private endpoints
- Cambiare automaticamente lo stato di un work item in una pipeline di Azure DevOps
- Criptare la comunicazione con mTLS in Azure Container Apps
- Ottimizzare l'aggiornamento di una entity sul database con Entity Framework
- Usare entità non mappate come parametri in metodi Invoke di WCF Ria Services e Silverlight
- Annunciata la licenza commerciale di Kinect for Windows: dal primo febbraio 2012