Σε αυτό το άρθρο θα αναφερθούμε στο Azure Private Link ,ποια είναι τα πλεονεκτηματά του συγκεκριμένου Service και ποιές οι διαφορές του με το Azure Service Endpoint.
Θα σας παρουσιάσω επίσης πως μπορείτε με απλά βήματα να ενεργοποιήσετε το συγκεκριμένο Service σε μία Azure SQL database.
Τον Φεβρουάριο του 20 η Microsoft ανακοίνωσε το Azure Private Linκ το οποίο μας δίνει την δυνατότητα να συνδεθούμε σε διάφορα Azure platform as a service (Paas) resources όπως πχ μια SQL Database, ένα Azure Storage ή μία Azure Cosmos DB, και σε υπηρεσίες που ανήκουν σε πελάτες ή σε Microsoft Service Providers, μέσω ενός private endpoint από ενα Vnet (virtual network) ή απο ένα on-premise δίκτυο με την χρήση του site-2-site ή Point-2-Site VPN.
Ουσιαστικά το private endpoint είναι ένα network interface που αντιστοιχεί,παρέχει μια εσωτερική IP στο PaaS azure resource μας μέσα απο τα virtual network που έχουμε διαθέσιμα στο Tenant . Επίσης όλη η κίνηση προς το Paas Service περνάει απο το Backbone της Microsoft και όχι μέσω του Public Internet όπως γνωρίζαμε με το Azure Service Endpoint.Ιδιαίτερα χρήσιμο είναι οταν έχεις να συνδιάσεις υπηρεσίες IaaS με PaaS που η συνδεσιμότητα των δύο απλοποιέιται με την ενεργοποίηση του Azure Private Link.
Μερικα απο το πλεονεκτήματα του συγκεκριμένου Service είναι τα παρακάτω :
- Η πρόσβαση στο PaaS περνάει μέσα απο το δίκτυο της Microsoft (Backbone Service).
- Παρεχει μία Private IP για τα resources πού έχετε σε μία PaaS υπηρεσία.
- Μπορείτε να έχετε πρόσβαση στο PaaS service τόσο μέσα απο τα εσωτερικά VNET peers όσο και απο τα on-premises resources με την χρήση VPN ή Express Route VPN .
- Τα private endpoints μπορούν να δημιουργηθούν σε resources που τα vnet τους ανήκουν σε διαφορετικά Regions ακόμα και σε διαφορετικά AD Tenant.
- Η πρόσβαση των χρηστών περιορίζεται αποκλειστικά στο συγκεκριμένο azure resource (SQL DB, Storage Account κ.λπ.) και όχι σε ολόκληρo τo Service και έτσι έχουμε τον πλήρη έλεγχο στο τί γίνεται expose απο το azure δίκτυό μας.
- Δημιουργία private endpoints και σύνδεση τους μέ το Frontend network configuration ενός Standard Azure Load Balancer (όχι Basic) γνωστό και ως Private Link Service.
Το Private Link Service επιτρέπει στους Service Providers να δημιουργήσουν ένα private endpoint για τις εφαρμογές τους και να κάνουν χρήση του Private Link για να διανείμουν αυτές τις εφαρμογές μέσα απο το virtual network των πελατών τους.Με αυτό τον τρόπο παραχωρείται στους πελάτες μία ασφαλή πρόσβαση με την κίνηση να μήν διέρχεται καθόλου απο το Internet .
Azure Private Link VS Azure Service Endpoint
Τα Service Endpoint παρόλο που δεν επιτρέπουν την απευθείας σύνδεση με τα PaaS resources η σύνδεση γίνεται υποχρεωτικά μεσω των Public Endpoints.Οπως επίσης η πρόσβαση περιορίζεται αποκλειστικά στο συγκεκριμένο Azure PaaS resource και όχι σε όλο το Service.Επίσης στο Azure Private Link δεν χρειάζεται να ρυθμίσετε NSG rules για να επιτρέψετε το outbound traffic οπως γίνεται στην περίπτωση του Service Endpoint.
Στον παρακάτω πίνακα θα βρείτε κάποιες απο τις βασικές διαφορές των δύο Service.
Differencies
Azure Private Link Endpoint |
Azure Service Endpoint |
In-built data exfiltration protection |
Traffic will need to be passed through an NVA/Firewall for exfiltration protection |
Easily extensible for On-prem network traffic via ExpressRoute or VPN. |
Restricting On-prem traffic is not straight forward |
Control Access to PaaS Services over Private Network |
Control Access to PaaS Services over the public internet. |
VNET to PaaS resource via Microsoft backbone |
VNET to PaaS service via the Microsoft backbone |
PaaS resource mapped to a private IP address. NSGs are restricted to Vnet space |
The destination is still a public IP address, NSG needs to be opened, service tags can help. |
Let’s LAB
Ας ξεκινήσουμε λοιπόν να ενεργοποιήσουμε το Azure Private Link σε μία Azure SQL database και να συνδεθούμε σε αυτήν τόσο μέσα απο ενα Azure VM όσο και απο on-premise δικτυό μας.
Μέσα από το Azure Portal δημιουργούμε το Azure Private Link (Image1) επιλέγοντας το Build a private connection to a service (SQL Database).
Στο Image2 δίνουμε ένα όνομα στο service μας και επιλέγουμε το ResourgeGroup κάτω απο το οποίο αυτό θα δημιουργηθεί καθώς και το Region.
Στο επόμενο βήμα και το Image3 επιλέγουμε τον τύπο του Resource που είναι το resource που θα συνδεθούμε και στο drop down-list του Resource επιλέγουμε το sql instance name που στο Lab του έχουμε δώσει το όνομα demoprivatelink.
Στην συνέχεια και στο image4 επίλέγουμε το Virtual Network το οποίο θα συνδεθεί το Private Link .Να προσθέσω εδώ οτι στο ίδιο Virtual Network είναι και το Azure VM που θα συνδεθούμε για να δοκιμάσουμε το connectivity με την SQL database .Επίσης αν δεν έχετε κάποιο δικό σας DNS Server επιλέξτε ΝΑΙ στην επιλογή integrate with private DNS Zone.Αυτό θα μας επιτρέψει να κάνουμε resolve το όνομα του SQL database privatelink.database.windows.net σε μια private IP address.
Τέλος επιλέγουμε Next και Create και τo Azure Private Link είναι έτοιμο.
Συνδεόμαστε στο VM να δοκιμάσουσε να συνδέθούμε στην SQL database μας .Μπορείτε να κανετε και ένα nslookup image 5 στο demoprivatelink.database.windows.net στο οποίο απαντάει η private ip 10.10.0.6.
Στο image 6 θα δείτε ότι συνδεθήκαμε επιτυχώς απο το Azure VM στην SQL Database με το Traffic να μην δρομολογείτε απο την Public IP αλλά απο την Private.Αν θέλετε να συνδεθείτε απο τον υπολογιστή σας θα χρειαστεί να δημιουργήσετε ενα Point-2-Site VPN tunnel και να συσχετίσετε το όνομα του SQL Server με την private IP του στο αρχείο HOSTS.
Το Azure Private Link πέρα απο την ασφάλεια σας παρέχει και την ευελιξία να συνδεθείτε σε οποιοδήποτε resource PaaS που είναι supported χωρίς να ρυθμίσετε extra firewall rules (NSG) καθώς όλη η κίνηση δρομολογείτε στο εσωτερικό δίκτυο (Backbone) μειώνοντας έτσι τις πιθανότητες να εκτεθεί το περιβάλλον σας σε εξωτερικές απειλές.
Kyriakos Petsalaris