Netwerktoegangsbeheer van Azure SQL Database en Azure Synapse Analytics
Van toepassing op: Azure SQL DatabaseAzure Synapse Analytics (alleen toegewezen SQL-pools)
Wanneer u een logische server maakt vanuit Azure Portal voor Azure SQL Database en Azure Synapse Analytics, is het resultaat een openbaar eindpunt in de indeling, yourservername.database.windows.net.
U kunt de volgende besturingselementen voor netwerktoegang gebruiken om selectief toegang tot een database toe te staan via het openbare eindpunt:
- Toestaan dat Azure-services en -resources toegang krijgen tot deze server: wanneer deze optie is ingeschakeld, hebben andere resources binnen de Azure-grens, bijvoorbeeld een virtuele Azure-machine, toegang tot SQL Database
- IP-firewallregels: gebruik deze functie om expliciet verbindingen van een specifiek IP-adres toe te staan, bijvoorbeeld vanaf on-premises machines
U kunt ook privétoegang tot de database vanuit virtuele netwerken toestaan via:
- Firewallregels voor virtuele netwerken: gebruik deze functie om verkeer van een specifiek virtueel netwerk binnen de Azure-grens toe te staan
- Private Link: Gebruik deze functie om een privé-eindpunt te maken voor een logische server in Azure binnen een specifiek virtueel netwerk
Belangrijk
Dit artikel is niet van toepassing op SQL Managed Instance. Zie verbinding maken met Azure SQL Managed Instance voor meer informatie over de netwerkconfiguratie.
Zie de onderstaande video voor een uitleg op hoog niveau van deze toegangsbeheer en wat ze doen:
Azure-services toestaan
Standaard wordt tijdens het maken van een nieuwe logische server vanuit De Azure-portal Toestaan dat Azure-services en -resources toegang krijgen tot deze server uitgeschakeld en niet ingeschakeld. Deze instelling wordt weergegeven wanneer connectiviteit is toegestaan met behulp van het openbare service-eindpunt.
U kunt deze instelling ook wijzigen via de netwerkinstelling nadat de logische server als volgt is gemaakt:
Wanneer Azure-services en -resources toegang geven tot deze server is ingeschakeld, staat uw server communicatie toe van alle resources binnen de Azure-grens, die al dan niet deel uitmaken van uw abonnement.
In veel gevallen is het inschakelen van de instelling meer permissief dan wat de meeste klanten willen. U kunt deze instelling uitschakelen en vervangen door meer beperkende IP-firewallregels of firewallregels voor virtuele netwerken.
Dit is echter van invloed op de volgende functies die worden uitgevoerd op virtuele machines in Azure die geen deel uitmaken van uw virtuele netwerk en dus verbinding maken met de database via een Azure IP-adres:
Importeer-/exporteerservice
Import Export Service werkt niet wanneer Azure-services en -resources toegang verlenen tot deze server niet is ingeschakeld. U kunt het probleem echter omzeilen door SqlPackage handmatig uit te voeren vanaf een Azure-VM of de export rechtstreeks in uw code uit te voeren met behulp van de DACFx-API.
Gegevens synchroniseren
Als u de functie Gegevenssynchronisatie wilt gebruiken met Azure-services en -resources toegang geven tot deze server, moet u afzonderlijke vermeldingen voor firewallregels maken om IP-adressen toe te voegen vanuit de Sql-servicetag voor de regio die als host fungeert voor de Hub-database. Voeg deze firewallregels op serverniveau toe aan de servers die als host fungeren voor zowel hub - als liddatabases (die zich mogelijk in verschillende regio's bevinden)
Gebruik het volgende PowerShell-script om IP-adressen te genereren die overeenkomen met de SQL-servicetag voor de regio VS - west
PS C:\> $serviceTags = Get-AzNetworkServiceTag -Location eastus2
PS C:\> $sql = $serviceTags.Values | Where-Object { $_.Name -eq "Sql.WestUS" }
PS C:\> $sql.Properties.AddressPrefixes.Count
70
PS C:\> $sql.Properties.AddressPrefixes
13.86.216.0/25
13.86.216.128/26
13.86.216.192/27
13.86.217.0/25
13.86.217.128/26
13.86.217.192/27
Tip
Get-AzNetworkServiceTag retourneert het globale bereik voor SQL Service Tag ondanks het opgeven van de locatieparameter. Zorg ervoor dat u deze filtert op de regio die als host fungeert voor de Hub-database die wordt gebruikt door uw synchronisatiegroep
Houd er rekening mee dat de uitvoer van het PowerShell-script zich in CIDR-notatie (Classless Inter-Domain Routing) bevindt. Dit moet worden geconverteerd naar een indeling van het begin- en eind-IP-adres met get-IPrangeStartEnd.ps1 als volgt:
PS C:\> Get-IPrangeStartEnd -ip 52.229.17.93 -cidr 26
start end
----- ---
52.229.17.64 52.229.17.127
U kunt dit extra PowerShell-script gebruiken om alle IP-adressen van CIDR te converteren naar de indeling van het begin- en eind-IP-adres.
PS C:\>foreach( $i in $sql.Properties.AddressPrefixes) {$ip,$cidr= $i.split('/') ; Get-IPrangeStartEnd -ip $ip -cidr $cidr;}
start end
----- ---
13.86.216.0 13.86.216.127
13.86.216.128 13.86.216.191
13.86.216.192 13.86.216.223
U kunt deze nu toevoegen als afzonderlijke firewallregels en vervolgens de instelling Azure-services en -resources toegang geven tot deze server uitschakelen.
IP-firewallregels
Ip-firewall is een functie van de logische server in Azure die alle toegang tot uw server voorkomt totdat u expliciet IP-adressen van de clientcomputers toevoegt.
Firewallregels voor virtueel netwerk
Naast IP-regels kunt u met de serverfirewall regels voor virtuele netwerken definiëren. Zie service-eindpunten en regels voor virtuele netwerken voor Azure SQL Database voor meer informatie.
Azure-netwerkterminologie
Houd rekening met de volgende Azure-netwerkvoorwaarden tijdens het verkennen van firewallregels voor virtuele netwerken
Virtueel netwerk: u kunt virtuele netwerken koppelen aan uw Azure-abonnement
Subnet: Een virtueel netwerk bevat subnetten. Virtuele Azure-machines (VM's) die u hebt toegewezen aan subnetten. Eén subnet kan meerdere VM's of andere rekenknooppunten bevatten. Rekenknooppunten die zich buiten uw virtuele netwerk bevinden, hebben geen toegang tot uw virtuele netwerk, tenzij u uw beveiliging configureert om toegang toe te staan.
Service-eindpunt voor virtueel netwerk: een service-eindpunt voor een virtueel netwerk is een subnet waarvan de eigenschapswaarden een of meer formele Azure-servicetypenamen bevatten. In dit artikel zijn we geïnteresseerd in de typenaam Microsoft.Sql, die verwijst naar de Azure-service met de naam SQL Database.
Regel voor virtueel netwerk: een regel voor een virtueel netwerk voor uw server is een subnet dat wordt vermeld in de toegangsbeheerlijst (ACL) van uw server. Als u de ACL voor uw database in SQL Database wilt hebben, moet het subnet de naam van het Microsoft.Sql-type bevatten. Een regel voor een virtueel netwerk geeft aan dat uw server communicatie accepteert van elk knooppunt dat zich in het subnet bevindt.
IP-adres versus firewallregels voor virtueel netwerk
Met de Azure SQL Database-firewall kunt u IP-adresbereiken opgeven van waaruit communicatie wordt geaccepteerd in SQL Database. Deze benadering is prima voor stabiele IP-adressen die zich buiten het privénetwerk van Azure bevinden. Virtuele machines (VM's) binnen het privénetwerk van Azure worden echter geconfigureerd met dynamische IP-adressen. Dynamische IP-adressen kunnen veranderen wanneer uw VIRTUELE machine opnieuw wordt opgestart en op zijn beurt de firewallregel op basis van IP ongeldig maken. Het zou folly zijn om een dynamisch IP-adres op te geven in een firewallregel, in een productieomgeving.
U kunt deze beperking omzeilen door een statisch IP-adres voor uw VIRTUELE machine te verkrijgen. Zie Een virtuele machine maken met een statisch openbaar IP-adres met behulp van Azure Portal voor meer informatie. De statische IP-benadering kan echter moeilijk te beheren zijn en het is kostbaar wanneer deze op schaal wordt uitgevoerd.
Regels voor virtuele netwerken zijn eenvoudiger te gebruiken om toegang tot stand te brengen en te beheren vanuit een specifiek subnet dat uw VM's bevat.
Notitie
U kunt nog geen SQL Database op een subnet hebben. Als uw server een knooppunt in een subnet in uw virtuele netwerk was, kunnen alle knooppunten in het virtuele netwerk communiceren met uw SQL Database. In dit geval kunnen uw VM's communiceren met SQL Database zonder dat hiervoor regels of IP-regels voor virtuele netwerken nodig zijn.
Private Link
Met Private Link kunt u verbinding maken met een server via een privé-eindpunt. Een privé-eindpunt is een privé-IP-adres binnen een specifiek virtueel netwerk en subnet.
Volgende stappen
Zie Een database maken in SQL Database voor een quickstart over het maken van een IP-firewallregel op serverniveau.
Zie Service-eindpunten en -regels voor Virtuele netwerken voor Azure SQL Database voor een quickstart over het maken van een firewallregel op serverniveau.
Voor hulp bij het maken van verbinding met een database in SQL Database vanuit open source- of toepassingen van derden, raadpleegt u quickstart-codevoorbeelden voor client met SQL Database.
Zie de SQL Database: Outside versus inside section of Ports beyond 1433 for ADO.NET 4.5 and SQL Database(s) voor meer poorten dan 1433 voor meer poorten die u mogelijk moet openen.
Zie Uw database beveiligen voor een overzicht van Azure SQL Database security