Netzwerk-Zugriffssteuerung für Azure SQL-Datenbank und Azure Synapse Analytics

Gilt für:Azure SQL-DatenbankAzure Synapse Analytics (nur dedizierte SQL-Pools)

Wenn Sie im Azure-Portal einen logischen Server für Azure SQL-Datenbank und Azure Synapse Analytics erstellen, ist das Ergebnis ein öffentlicher Endpunkt im Format IhrServername.database.windows.net.

Mit den folgenden Netzwerkzugriffssteuerungen können Sie den Zugriff auf eine Datenbank über den öffentlichen Endpunkt selektiv zulassen:

  • Azure-Diensten und -Ressourcen den Zugriff auf diesen Server erlauben: Wenn diese Option aktiviert ist, können andere Ressourcen innerhalb der Azure-Grenze (z. B. eine Azure-VM) auf die SQL-Datenbank-Instanz zugreifen.
  • IP-Firewallregeln: Verwenden Sie dieses Feature, um Verbindungen von einer bestimmten IP-Adresse explizit zuzulassen (z. B. von lokalen Computern).

Sie können den privaten Zugriff auf die Datenbank über virtuelle Netzwerke auch wie folgt zulassen:

  • Firewallregeln für virtuelle Netzwerke: Verwenden Sie dieses Feature, um Datenverkehr von einem bestimmten virtuellen Netzwerk innerhalb der Azure-Grenze zuzulassen.
  • Private Link: Verwenden Sie dieses Feature zum Erstellen eines privaten Endpunkts für einen logischen Server in Azure innerhalb eines bestimmten virtuellen Netzwerks.

Wichtig

Dieser Artikel bezieht sich nicht auf SQL Managed Instance. Weitere Informationen zur Netzwerkkonfiguration finden Sie unter Herstellen einer Verbindung zwischen einer Anwendung und Azure SQL Managed Instance.

Im folgenden Video finden Sie eine Übersicht über diese Zugriffssteuerungen und ihre Aufgaben:

Azure-Dienste zulassen

Bei der Erstellung einer neuen logischen SQL Server-Instanz im Azure-Portal ist die Einstellung Azure-Diensten und -Ressourcen den Zugriff auf diesen Server erlauben standardmäßig nicht ausgewählt und nicht aktiviert. Diese Einstellung wird angezeigt, wenn die Konnektivität mithilfe des öffentlichen Dienstendpunkts zugelassen ist.

Sie können diese Einstellung nach dem Erstellen des logischen Servers auch wie folgt über die Einstellung Netzwerk ändern.

Screenshot of manage server firewall

Wenn Azure-Diensten und -Ressourcen den Zugriff auf diesen Server erlauben aktiviert ist, lässt Ihr Server die Kommunikation mit allen Ressourcen innerhalb der Azure-Grenze zu, und zwar unabhängig davon, ob sie zu Ihrem Abonnement gehören.

In vielen Fällen ist die Aktivierung der weniger einschränkend, als es die meisten Kunden wünschen. Sie können diese Einstellung deaktivieren und sie durch strengere IP-Firewallregeln oder Firewallregeln für virtuelle Netzwerke ersetzen.

Dies wirkt sich jedoch auf die folgenden Features auf virtuellen Computern in Azure aus, die nicht Teil Ihres virtuellen Netzwerks sind und somit über eine Azure-IP-Adresse eine Verbindung mit der Datenbank herstellen:

Import/Export-Dienst

Der Import-/Exportdienst funktioniert nicht, wenn Azure-Diensten und -Ressourcen den Zugriff auf diesen Server erlauben nicht aktiviert ist. Sie können dieses Problem jedoch umgehen, indem Sie SqlPackage manuell auf einer Azure-VM ausführen oder den Export mithilfe der DACFx-API direkt in Ihrem Code durchführen.

Datensynchronisierung

Um die Datensynchronisierungsfunktion zu verwenden, wenn Azure-Diensten und -Ressourcen den Zugriff auf diesen Server erlauben nicht aktiviert ist, müssen Sie einzelne Firewallregeleinträge erstellen, um IP-Adressen aus dem Sql-Diensttag für die Region hinzuzufügen, die die Hub-Datenbank hostet. Fügen Sie diese Firewallregeln auf Serverebene den Servern hinzu, die sowohl die Hub-Datenbank als auch die Mitgliedsdatenbanken hosten. (Diese können sich in verschiedenen Regionen befinden.)

Verwenden Sie das folgende PowerShell-Skript, um die entsprechenden IP-Adressen für das SQL-Diensttag für die Region „USA, Westen“ zu generieren:

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

Tipp

„Get-AzNetworkServiceTag“ gibt trotz Angabe des Parameters „Location“ den globalen Bereich für das SQL-Diensttag zurück. Filtern Sie daher nach der Region, in der die von Ihrer Synchronisierungsgruppe verwendete Hub-Datenbank gehostet wird.

Beachten Sie, dass die Ausgabe des PowerShell-Skripts in CIDR-Notation (Classless Inter-Domain Routing) erfolgt. Diese muss wie folgt unter Verwendung von Get-IPrangeStartEnd.ps1 in ein Format mit Start- und End-IP-Adresse konvertiert werden:

PS C:\> Get-IPrangeStartEnd -ip 52.229.17.93 -cidr 26
start        end
-----        ---
52.229.17.64 52.229.17.127

Sie können dieses zusätzliche PowerShell-Skript verwenden, um alle IP-Adressen von CIDR in das Start- und End-IP-Adressformat zu konvertieren.

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

Sie können diese nun als unterschiedliche Firewallregeln hinzufügen und dann die Einstellung Azure-Diensten und -Ressourcen den Zugriff auf diesen Server erlauben deaktivieren.

IP-Firewallregeln

Die IP-basierte Firewall ist ein Feature des logischen Servers in Azure, das den gesamten Zugriff auf den Server verhindert, bis Sie explizit die IP-Adressen der Clientcomputer hinzufügen.

Firewallregeln für virtuelle Netzwerke

Zusätzlich zu den IP-Regeln können Sie mit der Serverfirewall Regeln für virtuelle Netzwerke definieren. Weitere Informationen finden Sie unter Virtual Network service endpoints and rules for Azure SQL Database (VNET-Dienstendpunkte und -Regeln für Azure SQL-Datenbank).

Azure-Netzwerkterminologie

Beachten Sie die folgenden Azure-Netzwerkbegriffe beim Erkunden von Firewallregeln für virtuelle Netzwerke.

Virtuelles Netzwerk: Sie können Ihrem Azure-Abonnement virtuelle Netzwerke zuordnen.

Subnetz: Ein virtuelles Netzwerk enthält Subnetze. Ihre virtuellen Azure-Computer (VMs) sind Subnetzen zugewiesen. Ein Subnetz kann mehrere VMs oder andere Computeknoten enthalten. Computeknoten, die sich außerhalb Ihres virtuellen Netzwerks befinden, können nicht auf Ihr virtuelles Netzwerk zugreifen, es sei denn, Sie konfigurieren für sie den sicheren Zugriff.

Dienstendpunkt eines virtuellen Netzwerks: Ein Dienstendpunkt eines virtuellen Netzwerks ist ein Subnetz, dessen Eigenschaftswerte mindestens einen formalen Azure-Diensttypnamen enthalten. In diesem Artikel beschäftigen wir uns mit dem Typnamen Microsoft.Sql, der auf einen Azure-Dienst mit dem Namen „SQL-Datenbank“ verweist.

VNET-Regel: Bei einer VNET-Regel für Ihren Server handelt es sich um ein Subnetz, das in der Zugriffssteuerungsliste des Servers aufgeführt ist. Um auf die Zugriffssteuerungsliste für Ihre SQL-Datenbank-Instanz zu gelangen, muss das Subnetz den Typnamen Microsoft.Sql enthalten. Eine solche Regel weist Ihren Server an, Nachrichten von allen Knoten im Subnetz zu akzeptieren.

IP-Firewallregeln im Vergleich zu Firewallregeln für virtuelle Netzwerke

Die Firewall von Azure SQL-Datenbank ermöglicht Ihnen das Angeben von IP-Adressbereichen, aus denen SQL-Datenbank Nachrichten akzeptiert. Dieser Ansatz eignet sich gut für statische IP-Adressen, die sich außerhalb des privaten Azure-Netzwerks befinden. Doch viele virtuelle Computer (VMs) innerhalb des privaten Azure-Netzwerks sind mit dynamischen IP-Adressen konfiguriert. Dynamische IP-Adressen können sich ändern, wenn der virtuelle Computer neu gestartet wird, und damit die IP-basierte Firewallregel ungültig machen. Es wäre töricht, eine dynamische IP-Adresse in einer Firewallregel in einer Produktionsumgebung anzugeben.

Sie können diese Einschränkung umgehen, indem Sie eine statische IP-Adresse für Ihre VM abrufen. Einzelheiten finden Sie unter Erstellen eines virtuellen Computers mit einer statischen öffentlichen IP-Adresse mithilfe des Azure-Portals. Der Ansatz mit statischen IP-Adressen kann jedoch schwierig zu handhaben und aufwendig sein, wenn er in großem Maßstab befolgt wird.

Regeln für virtuelle Netzwerke stellen eine einfachere Alternative zum Einrichten und Verwalten des Zugriffs von einem bestimmten Subnetz mit Ihren virtuellen Computern dar.

Hinweis

Azure SQL-Datenbank wird noch nicht in einem Subnetz unterstützt. Wenn Ihr Server ein Knoten in einem Subnetz in Ihrem virtuellen Netzwerk ist, können alle Knoten innerhalb des virtuellen Netzwerks mit Ihrer SQL-Datenbank-Instanz kommunizieren. In diesem Fall könnten Ihre virtuellen Computer mit der SQL-Datenbank-Instanz kommunizieren, ohne dass VNET-Regeln oder IP-Regeln erforderlich sind.

Private Link ermöglicht das Herstellen von Verbindungen mit einem Server über einen privaten Endpunkt. Ein privater Endpunkt ist eine private IP-Adresse in einem bestimmten virtuellen Netzwerk und Subnetz.

Nächste Schritte