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.

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.

  1. Navigeer naar de serverresource in Azure Portal.

  2. Selecteer Netwerken in het linkerdeelvenster.

  3. 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

    Screenshot that shows how to locate the list of private endpoint connections for the server resource.

  4. 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.

    Screenshot that shows how to select a private endpoint connection in the Azure portal.

  5. De SQL-beheerder kan kiezen voor het goedkeuren of afwijzen van een PEC en optioneel een korte tekst als antwoord toevoegen.

    Screenshot that shows how to approve a PEC in the Azure portal.

  6. Na goedkeuring of afwijzing wordt in de lijst de juiste staat en de antwoordtekst weergegeven.

    Screenshot that shows the PEC in the Approved state after approval by the admin.

  7. Selecteer ten slotte de naam van het privé-eindpunt

    Screenshot showing PEC details with the endpoint name.

    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.

    Screenshot that shows the NIC details for the private endpoint connection.

    Op de pagina Netwerkinterface ziet u het privé-IP-adres voor de privé-eindpuntverbinding.

    Screenshot that shows the Private IP address for the private endpoint connection.

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:

  1. Ga naar de pagina Netwerken van uw logische server.

  2. Schakel het selectievakje Openbare netwerktoegang weigeren in.

    Screenshot that shows how to disable public network access for the private endpoint connection.

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.

  1. Start een Extern bureaublad-sessie (RDP) en maak verbinding met de virtuele machine.

  2. 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:

Diagram of the Telnet window with blank screen.

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.

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.

Diagram of connectivity option.

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.

  1. 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.
  2. 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.
  3. 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.