Azure Private Link voor Azure SQL Database en Azure Synapse Analytics
Van toepassing op: Azure SQL DatabaseAzure Synapse Analytics (alleen toegewezen SQL-pools)
Met een Private Link kunt u via een privé-eindpunt verbinding maken met verschillende PaaS-services in Azure. Raadpleeg de pagina Documentatie over Private Link voor een lijst van PaaS-services die de Private Link-functionaliteit ondersteunen. Een privé-eindpunt is een privé-IP-adres binnen een specifiek VNet en subnet.
Belangrijk
Dit artikel is van toepassing op zowel Azure SQL Database als toegewezen SQL-pool (voorheen SQL DW) in Azure Synapse Analytics. Deze instellingen zijn van toepassing op alle SQL Database- en toegewezen SQL-pooldatabases (voorheen SQL DW) die zijn gekoppeld aan de server. Ter vereenvoudiging verwijst de term “database” naar beide databases in Azure SQL Database en Azure Synapse Analytics. Eventuele verwijzingen naar 'server' verwijzen ook naar de logische server die als host fungeert voor Azure SQL Database en een toegewezen SQL-pool (voorheen SQL DW) in Azure Synapse Analytics. Dit artikel is niet van toepassing op Azure SQL Managed Instance of toegewezen SQL-pools in Azure Synapse Analytics-werkruimten.
Private Link instellen
Proces voor maken
Privé-eindpunten kunnen worden gemaakt met behulp van de Azure-portal, PowerShell of de Azure CLI:
Goedkeuringsproces
Zodra de netwerkbeheerder het privé-eindpunt (PE) heeft gemaakt, kan de SQL-beheerder de verbinding met het privé-eindpunt (PEC) met SQL Database beheren.
Navigeer naar de serverresource in Azure Portal.
Selecteer Netwerken in het linkerdeelvenster.
Selecteer het tabblad Persoonlijke toegang . Op de pagina ziet u het volgende:
- Een lijst met alle privé-eindpunten Verbinding maken ions (PEC's)
- Privé-eindpunten (PE) gemaakt
Als er geen privé-eindpunten zijn, maakt u er een met behulp van de knop Een privé-eindpunt maken. Kies anders een afzonderlijke PEC in de lijst door deze te selecteren.
De SQL-beheerder kan kiezen voor het goedkeuren of afwijzen van een PEC en optioneel een korte tekst als antwoord toevoegen.
Na goedkeuring of afwijzing wordt in de lijst de juiste staat en de antwoordtekst weergegeven.
Selecteer ten slotte de naam van het privé-eindpunt
Hiermee gaat u naar de overzichtspagina van het privé-eindpunt . Selecteer de koppeling Netwerkinterfaces om de details van de netwerkinterface voor de privé-eindpuntverbinding op te halen.
Op de pagina Netwerkinterface ziet u het privé-IP-adres voor de privé-eindpuntverbinding.
Belangrijk
Wanneer u een privé-eindpuntverbinding toevoegt, wordt openbare routering naar uw logische server niet standaard geblokkeerd. In het deelvenster Firewall en virtuele netwerken is de instelling Openbare netwerktoegang weigeren niet standaard geselecteerd. Als u openbare netwerktoegang wilt uitschakelen, moet u openbare netwerktoegang weigeren selecteren.
Openbare toegang tot uw logische server uitschakelen
Voor dit scenario wordt ervan uitgegaan dat u alle openbare toegang tot uw logische server wilt uitschakelen en alleen verbindingen vanuit uw virtuele netwerk wilt toestaan.
Zorg er eerst voor dat uw privé-eindpuntverbindingen zijn ingeschakeld en geconfigureerd. Als u vervolgens openbare toegang tot uw logische server wilt uitschakelen:
Ga naar de pagina Netwerken van uw logische server.
Schakel het selectievakje Openbare netwerktoegang weigeren in.
De connectiviteit met de SQL Database testen vanaf een Azure-VM in hetzelfde virtuele netwerk
Voor dit scenario wordt ervan uitgegaan dat u een virtuele Azure-machine (VM) hebt gemaakt waarop een recente versie van Windows wordt uitgevoerd in hetzelfde virtuele netwerk als het privé-eindpunt.
Start een Extern bureaublad-sessie (RDP) en maak verbinding met de virtuele machine.
U kunt vervolgens een aantal basis connectiviteitscontroles uitvoeren om ervoor te zorgen dat de VM verbinding maakt met de SQL Database via het privé-eindpunt met behulp van de volgende hulpprogramma's:
- Telnet
- PsPing
- Nmap
- SQL Server Management Studio (SSMS)
Connectiviteit controleren met Telnet
Telnet-client is een Windows-functie die kan worden gebruikt om de connectiviteit te testen. Afhankelijk van de versie van het Windows-besturingssysteem moet u deze functie mogelijk expliciet inschakelen.
Open een opdrachtpromptvenster nadat u Telnet hebt geïnstalleerd. Voer de Telnet-opdracht uit en geef het IP-adres en het privé-eindpunt van de database op in SQL Database.
telnet 10.9.0.4 1433
Wanneer Telnet verbinding maakt, wordt er een leeg scherm weergegeven in het opdrachtvenster, zoals wordt weergegeven in de volgende afbeelding:
Gebruik de PowerShell-opdracht om de connectiviteit te controleren:
Test-NetConnection -computer myserver.database.windows.net -port 1433
Verbinding maken iviteit controleren met Behulp van PsPing
PsPing kan als volgt worden gebruikt om te controleren of het privé-eindpunt luistert naar verbindingen op poort 1433.
Voer PsPing als volgt uit door de FQDN op te geven voor logische SQL-server en poort 1433:
PsPing.exe mysqldbsrvr.database.windows.net:1433
Dit is een voorbeeld van de verwachte uitvoer:
TCP connect to 10.9.0.4:1433:
5 iterations (warmup 1) ping test:
Connecting to 10.9.0.4:1433 (warmup): from 10.6.0.4:49953: 2.83ms
Connecting to 10.9.0.4:1433: from 10.6.0.4:49954: 1.26ms
Connecting to 10.9.0.4:1433: from 10.6.0.4:49955: 1.98ms
Connecting to 10.9.0.4:1433: from 10.6.0.4:49956: 1.43ms
Connecting to 10.9.0.4:1433: from 10.6.0.4:49958: 2.28ms
De uitvoer laat zien dat PsPing het privé-IP-adres kan pingen dat is gekoppeld aan het privé-eindpunt.
Connectiviteit controleren met Nmap
Nmap (Network Mapper) is een gratis en open source-hulpprogramma dat wordt gebruikt voor netwerkdetectie en beveiligingscontrole. Ga voor meer informatie en de downloadkoppeling naar https://Nmap.org. U kunt dit hulpprogramma gebruiken om ervoor te zorgen dat het privé-eindpunt luistert naar verbindingen op poort 1433.
Voer Nmap als volgt uit door het adresbereik op te geven van het subnet dat als host fungeert voor het privé-eindpunt.
Nmap -n -sP 10.9.0.0/24
Dit is een voorbeeld van de verwachte uitvoer:
Nmap scan report for 10.9.0.4
Host is up (0.00s latency).
Nmap done: 256 IP addresses (1 host up) scanned in 207.00 seconds
In het resultaat ziet u dat één IP-adres actief is. dat overeenkomt met het IP-adres voor het privé-eindpunt.
Controleer de connectiviteit met behulp van SQL Server Management Studio (SSMS)
Notitie
Gebruik de FQDN (Fully Qualified Domain Name) van de server in verbindingstekenreeksen voor uw clients (<server>.database.windows.net
). Aanmeldingspogingen rechtstreeks naar het IP-adres of met behulp van de FQDN van de privékoppeling (<server>.privatelink.database.windows.net
) zullen falen. Dit gedrag is inherent aan het ontwerp, omdat het privé-eindpunt verkeer naar de SQL-gateway in de regio routeert en de juiste FQDN moet worden opgegeven om aanmeldingen te laten slagen.
Volg de onderstaande stappen voor gebruik van SSMS om verbinding te maken met de SQL Database. Nadat u verbinding hebt gemaakt met de SQL Database met behulp van SSMS, geeft de volgende query client_net_address weer die overeenkomt met het privé-IP-adres van de Azure-VM waarmee u verbinding maakt:
SELECT client_net_address
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;
Verbindingsbeleid omleiden gebruiken met privé-eindpunten
We raden klanten aan om de privékoppeling te gebruiken met het omleidingsverbindingsbeleid voor verminderde latentie en verbeterde doorvoer. Clients moeten voldoen aan de volgende vereisten voor verbindingen om deze modus te kunnen gebruiken:
Sta binnenkomende communicatie met het VNET dat als host fungeert voor het privé-eindpunt toe aan poortbereik 1433 tot 65535.
Sta uitgaande communicatie van het VNET dat als host fungeert voor de client toe naar poortbereik 1433 tot 65535.
Gebruik de nieuwste versie van stuurprogramma's waarvoor omleidingsondersteuning is ingebouwd. Ondersteuning voor omleiding is opgenomen in de stuurprogramma's ODBC, OLEDB, NET SqlClient Data Provider, Core .NET SqlClient Data Provider en JDBC (versie 9.4 of hoger). Verbindingen die afkomstig zijn van alle andere stuurprogramma's, worden geproxied.
Na het voldoen aan de vereiste, moeten clients explcitly kiezen voor omleidingsverbindingsbeleid.
Als het niet haalbaar is om de firewallinstellingen te wijzigen om uitgaande toegang toe te staan op het poortbereik 1433-65535, is een alternatieve oplossing om het verbindingsbeleid te wijzigen in Proxy.
Bestaande privé-eindpunten die gebruikmaken van het standaardverbindingsbeleid , worden geproxied, d.w. het proxyverbindingsbeleid met poort 1433. De reden hiervoor is om te voorkomen dat het verkeer van de client wordt onderbroken door het bereiken van Sql Database vanwege vereiste poortbereiken voor omleiding die niet open zijn.
On-premises connectiviteit via privé-peering
Wanneer klanten verbinding maken met het openbare eindpunt vanaf on-premises computers, moet hun IP-adres worden toegevoegd aan de op IP-gebaseerde firewall met behulp van een firewallregel op serverniveau. Hoewel dit model goed werkt voor het toestaan van toegang tot afzonderlijke computers voor ontwikkel- of testwerkbelastingen, is het moeilijk te beheren in een productieomgeving.
Met Private Link kunnen klanten cross-premises toegang tot het privé-eindpunt inschakelen met behulp van ExpressRoute, privé-peering of VPN-tunneling. Klanten kunnen vervolgens alle toegang uitschakelen via het openbare eindpunt en de op IP-gebaseerde firewall niet gebruiken om IP-adressen toe te staan.
Cases van Private Link gebruiken voor Azure SQL Database
Clients kunnen verbinding maken met het privé-eindpunt van hetzelfde virtuele netwerk, een peered virtueel netwerk in dezelfde regio, of via een verbinding van virtueel netwerk tot virtueel netwerk tussen regio's. Daarnaast kunnen clients via on-premises verbinding maken met behulp van ExpressRoute, privé peering of VPN-tunneling. In het volgende vereenvoudigde diagram ziet u de algemene gebruiksvoorbeelden.
Daarnaast kunnen services die niet rechtstreeks in het virtuele netwerk worden uitgevoerd, worden geïntegreerd (bijvoorbeeld App Service-web-apps of -functies) ook privéconnectiviteit met de database bereiken. Zie de web-app met privéconnectiviteit met azure SQL-databasearchitectuurscenario voor meer informatie over deze specifieke use case.
Verbinding maken van een Virtuele Azure-machine in peered Virtual Network
Configureer peering van virtuele netwerken om verbinding te maken met de SQL Database vanuit een Azure-VM in een peered virtueel netwerk.
Verbinding maken van een virtuele Azure-machine in een virtueel netwerk naar een virtuele netwerkomgeving
Configureer een VPN-gatewayverbinding van virtueel netwerk naar virtueel netwerk om connectiviteit te maken met een database in SQL Database vanaf een Azure VM in een andere regio of een ander abonnement.
Verbinding maken vanuit een on-premises omgeving via VPN
Als u verbinding wilt maken vanuit een on-premises omgeving met de database in SQL Database, kiest en implementeert u een van de volgende opties:
Overweeg ook DNS-configuratiescenario's , en de FQDN-naam van de service kan worden omgezet in het openbare IP-adres.
Verbinding maken van Azure Synapse Analytics naar Azure Storage met behulp van PolyBase en de COPY-instructie
PolyBase en de COPY-instructie worden vaak gebruikt voor het laden van gegevens in Azure Synapse Analytics vanuit Azure Storage-accounts. Als het Azure Storage-account waaruit u gegevens laadt, alleen de toegang beperkt tot een set subnetten van virtuele netwerken via privé-eindpunten, service-eindpunten of op IP gebaseerde firewalls, wordt de connectiviteit van PolyBase en de COPY-instructie voor het account verbroken. Voor het inschakelen van zowel import- als exportscenario's met Azure Synapse Analytics waarmee verbinding wordt gemaakt met Azure Storage dat is beveiligd met een virtueel netwerk, volgt u de stappen die hier worden weergegeven.
Preventie van gegevensexfiltratie
Gegevensexfiltratie in Azure SQL Database is wanneer een gebruiker, zoals een databasebeheerder, gegevens uit het ene systeem kan extraheren en naar een andere locatie of een ander systeem buiten de organisatie kan verplaatsen. De gebruiker verplaatst bijvoorbeeld de gegevens naar een opslagaccount dat eigendom is van een derde partij.
Overweeg een scenario met een gebruiker die SQL Server Management Studio (SSMS) uitvoert binnen een virtuele machine in Azure die verbinding maakt met een database in SQL Database. Deze SQL Database bevindt zich in het datacentrum US - west. In het volgende voorbeeld ziet u hoe u de toegang met openbare eindpunten in SQL Database beperkt met behulp van besturingselementen voor netwerktoegang.
- Schakel alle Azure-serviceverkeer uit naar SQL Database via het openbare eindpunt door Azure-services toestaan UIT te schakelen. Zorg ervoor dat er geen IP-adressen zijn toegestaan in de firewallregels op server- en databaseniveau. Zie Azure SQL Database en Azure Synapse Analytics-netwerk toegangsbeheervoor meer informatie.
- Alleen verkeer naar de database in SQL Database toestaan met behulp van het privé-IP-adres van de VM. Zie de artikelen over Service-eindpunt en firewallregels voor virtuele netwerkenvoor meer informatie.
- Beperk op de Virtuele Azure-machine het bereik van de uitgaande verbinding met behulp van netwerkbeveiligingsgroepen (NSG's) en servicetags als volgt.
- Geef een NSG-regel op om verkeer toe te staan voor servicetag = SQL. WestUs: alleen verbinding met SQL Database in VS - west toestaan.
- Geef een NSG-regel (met een hogere prioriteit) op om verkeer voor servicetag = SQL te weigeren: verbindingen met SQL Database in alle regio's weigeren.
Aan het einde van deze installatie kan de Azure-VM alleen verbinding maken met een database in SQL Database in de regio US - west. De connectiviteit is echter niet beperkt tot één database in SQL Database. De VM kan nog steeds verbinding maken met elke database in de regio US - west, met inbegrip van de databases die geen onderdeel zijn van het abonnement. Hoewel we het bereik van de gegevensexfiltratie in het bovenstaande scenario naar een bepaalde regio hebben gereduceerd, hebben we het niet geheel verwijderd.
Met Private Link kunnen klanten nu netwerk toegangsbeheer instellen, zoals NSG's om de toegang tot het privé-eindpunt te beperken. Afzonderlijke Azure PaaS-resources worden vervolgens toegewezen aan specifieke privé-eindpunten. Een kwaadwillende Insider heeft alleen toegang tot de toegewezen PaaS-resource (bijvoorbeeld een database in SQL Database) en geen andere resource.