Azure Private Link for Azure Synapse Analytics

Tip

Microsoft Fabric Data Warehouse ist ein relationales Enterprise-Warehouse auf einem Data Lake-Fundament mit zukunftsfähiger Architektur, integrierter KI und neuen Features. Wenn Sie mit Data Warehouse noch nicht vertraut sind, beginnen Sie mit Fabric Data Warehouse. Vorhandene dedizierte SQL-Pool-Workloads können auf Fabric aktualisieren, um neue Funktionen in den Bereichen Data Science, Echtzeitanalyse und Berichterstellung zu nutzen.

Mit Azure Private Link können Sie sich über einen privaten Endpunkt mit Synapse SQL verbinden. Ein privater Endpunkt ist eine Netzwerkschnittstelle mit einer privaten IP-Adresse in Ihrem virtuellen Netzwerk und Subnetz. Der Datenverkehr bleibt im Microsoft-Backbone-Netzwerk, anstatt über das öffentliche Internet zu laufen.

Verwenden Sie immer den vollqualifizierten Domänennamen (FQDN) des Servers (<server>.database.windows.net) in Verbindungszeichenfolgen für alle Clienttreiber und -tools. Authentifizierungsversuche, die die private IP-Adresse oder die Private Link-FQDN (<server>.privatelink.database.windows.net) verwenden, funktionieren nicht. Dieses Verhalten ist so vorgesehen, weil der private Endpunkt den Datenverkehr an das SQL Gateway leitet, das den richtigen FQDN benötigt, um Authentifizierungsanfragen erfolgreich zu leiten.

Erstellungsprozess

Erstellen Sie private Endpunkte mit dem Azure Portal, PowerShell oder der Azure CLI:

Genehmigungsprozess

Nachdem der Netzwerkadministrator den privaten Endpunkt (PE) erstellt hat, kann der SQL-Administrator die private Endpunktverbindung (PEC) zur SQL-Datenbank verwalten.

  1. Gehe zur Serverressource im Azure-Portal.

  2. Gehe zur Seite zur Genehmigung privater Endpunkte. Im Azure Synapse Analytics SQL Server-Ressource unter Sicherheit im Ressourcenmenü wählen Sie Private Endpunktverbindungen aus.

  3. Sehen Sie sich Folgendes an:

    • Eine Liste aller privaten Endpunktverbindungen (PECs)
    • Private Endpunkte erstellt
  4. Wenn es keine privaten Endpunkte gibt, erstellen Sie einen, indem Sie Privaten Endpunkt erstellen auswählen. Andernfalls wählen Sie eine einzelne PEC aus der Liste aus, indem Sie sie markieren.

  5. Der SQL-Administrator kann einen PEC genehmigen oder ablehnen und optional eine kurze Textantwort hinzufügen.

  6. Nach Genehmigung oder Ablehnung zeigt die Liste den entsprechenden Zustand zusammen mit dem Antworttext.

  7. Wählen Sie den Namen des privaten Endpunkts aus.

    Diese Aktion führt Sie zur Übersichtsseite des Private endpoint. Wählen Sie den Link Netzwerkschnittstellen, um die Netzwerkschnittstellendetails für die private Endpunktverbindung einzusehen.

    Auf der Seite Netzwerkschnittstelle wird die private IP-Adresse für die private Endpunktverbindung angezeigt.

Important

Beim Hinzufügen einer Verbindung mit einem privaten Endpunkt wird das öffentliche Routing zu Ihrem logischen Server standardmäßig nicht blockiert. Im Bereich Firewall und virtuelle Netzwerke ist die Einstellung Zugriff auf öffentliches Netzwerk verweigern nicht standardmäßig ausgewählt. Wählen Sie zum Deaktivieren des Zugriffs auf öffentliche Netzwerke unbedingt Zugriff auf öffentliches Netzwerk verweigern aus.

Deaktivieren Sie den öffentlichen Zugriff auf Ihren logischen Server

In Ihrem Azure Synapse Analytics SQL-Server können Sie den öffentlichen Zugriff auf Ihren logischen Server deaktivieren und Verbindungen nur aus Ihrem virtuellen Netzwerk erlauben.

Stellen Sie zunächst sicher, dass Ihre Verbindungen mit privaten Endpunkten aktiviert und konfiguriert sind. So deaktivieren Sie anschließend den öffentlichen Zugriff auf Ihren logischen Server

  1. Wechseln Sie zur Seite Netzwerk Ihres logischen Servers.
  2. Aktivieren Sie das Kontrollkästchen Zugriff auf öffentliches Netzwerk verweigern.

Testen der Konnektivität mit SQL-Datenbank über einen virtuellen Azure-Computer im gleichen virtuellen Netzwerk

In diesem Szenario nehmen wir an, Sie haben eine Azure Virtual Machine (VM) erstellt, die eine aktuelle Version von Windows im selben virtuellen Netzwerk wie der private Endpunkt ausführt.

  1. Starten Sie eine RDP-Sitzung (Remotedesktop), und stellen Sie eine Verbindung mit dem virtuellen Computer her.

  2. Sie können dann einige grundlegende Konnektivitätsprüfungen durchführen, um sicherzustellen, dass die VM über den privaten Endpunkt mit der SQL-Datenbank verbunden ist, indem Sie folgende Tools verwenden:

Überprüfen Sie die Konnektivität mit Telnet

Telnet ist eine Windows-Funktion, mit der du die Konnektivität testen kannst. Je nach Windows-Version musst du diese Funktion möglicherweise explizit aktivieren.

Öffne ein Kommandozeilenfenster, nachdem du Telnet installiert hast. Führen Sie den Telnet-Befehl aus, und geben Sie dabei die IP-Adresse und den privaten Endpunkt der Datenbank in SQL-Datenbank an:

telnet 10.9.0.4 1433

Wenn Telnet erfolgreich eine Verbindung herstellt, wird im Befehlsfenster ein leerer Bildschirm angezeigt.

Überprüfe die Konnektivität mit PowerShell

Verwenden Sie einen PowerShell-Befehl, um die Konnektivität zu überprüfen:

Test-NetConnection -computer myserver.database.windows.net -port 1433

Überprüfe die Konnektivität mit PsPing

Verwenden Sie PsPing wie folgt, um zu überprüfen, ob der private Endpunkt auf Verbindungen am Port 1433 lauscht.

Führen Sie PsPing aus, indem Sie das FQDN für den logischen SQL-Server und Port 1433 bereitstellen:

PsPing.exe mysqldbsrvr.database.windows.net:1433

Dieses Beispiel zeigt die erwartete Ausgabe:

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

Die Ausgabe zeigt, dass PsPing die private IP-Adresse des privaten Endpunkts pingen kann.

Überprüfen Sie die Konnektivität mit Nmap

Nmap (Network Mapper) ist ein kostenloses und quelloffenes Tool für Netzwerkerkennung und Sicherheitsaudits. Für weitere Informationen und den Download-Link besuchen Sie https://Nmap.org. Nutzen Sie dieses Tool, um sicherzustellen, dass der private Endpunkt auf Verbindungen am Port 1433 lauscht.

Führen Sie Nmap aus, indem Sie den Adressbereich des Subnetzes angeben, das den privaten Endpunkt hostet.

Nmap -n -sP 10.9.0.0/24

Dieses Beispiel zeigt die erwartete Ausgabe:

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

Das Ergebnis zeigt, dass eine IP-Adresse online ist, was der IP-Adresse des privaten Endpunkts entspricht.

Überprüfen Sie die Konnektivität mit SQL Server Management Studio (SSMS)

Verwenden Sie den vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) des Servers in Verbindungszeichenfolgen für Ihre Clients (<server>.database.windows.net). Alle Anmeldeversuche, die direkt an die IP-Adresse oder über die private Verbindung FQDN (<server>.privatelink.database.windows.net) durchgeführt werden, schlagen fehl. Dieses Verhalten ist beabsichtigt, da der private Endpunkt den Datenverkehr zum SQL Gateway in der Region leitet. Du musst die korrekte FQDN angeben, damit die Anmeldung erfolgreich ist.

Folgen Sie den Schritten unter SSMS verwenden, um sich mit der SQL-Datenbank zu verbinden. Nachdem Sie sich über SSMS verbunden haben, gibt die folgende Abfrage client_net_address zurück, das mit der privaten IP-Adresse der Azure-VM übereinstimmt, von der aus Sie sich verbinden:

SELECT client_net_address
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;

Lokale Konnektivität über privates Peering

Wenn Sie sich von On-Premises-Rechnern mit dem öffentlichen Endpunkt verbinden, müssen Sie Ihre IP-Adresse der IP-basierten Firewall mithilfe einer serverbasierten Firewall-Regel hinzufügen. Dieses Modell eignet sich zwar gut, um den Zugriff auf einzelne Computer für Entwicklungs- oder Testworkloads zuzulassen, in einer Produktionsumgebung gestaltet sich die Verwaltung jedoch schwierig.

Durch die Verwendung von Private Link können Sie den plattformübergreifenden Zugriff auf den privaten Endpunkt durch ExpressRoute, privates Peering oder VPN-Tunneling ermöglichen. Du kannst dann alle Zugriffe über den öffentlichen Endpunkt deaktivieren und die IP-basierte Firewall nicht mehr verwenden, um beliebige IP-Adressen zuzulassen.

Clients können sich über dasselbe virtuelle Netzwerk, ein gekoppeltes virtuelles Netzwerk in derselben Region oder über virtuelle Netzwerk-zu-virtuelle Netzwerkverbindungen über verschiedene Regionen mit dem privaten Endpunkt verbinden. Zusätzlich können Clients sich per ExpressRoute, privates Peering oder VPN-Tunneling von vor Ort verbinden. Das folgende vereinfachte Diagramm zeigt die gängigen Anwendungsfälle.

Außerdem können Dienste, die nicht direkt im virtuellen Netzwerk ausgeführt werden, aber darin integriert sind (z. B. App Service-Web-Apps oder Azure Functions), auch eine private Konnektivität mit der Datenbank herstellen.

Verbinden Sie sich von einer Azure VM in einem peered virtuellen Netzwerk

Konfigurieren Sie das Peering virtueller Netzwerke, um über einen virtuellen Azure-Computer in einem virtuellen Netzwerk mit Peering eine Verbindung mit der SQL-Datenbank-Instanz herzustellen.

Herstellen einer Verbindung von einem virtuellen Azure-Computer in einem virtuellen Netzwerk mit einer virtuellen Netzwerkumgebung

Konfigurieren Sie eine VNET-zu-VNET-VPN-Gatewayverbindung, um über einen virtuellen Azure-Computer in einer anderen Region oder in einem anderen Abonnement eine Verbindung mit einer Datenbank in SQL-Datenbank herzustellen.

Herstellen einer VPN-Verbindung in einer lokalen Umgebung

Um Konnektivität von einer lokalen Umgebung herzustellen, wählen und implementieren Sie eine der folgenden Optionen:

Berücksichtigen Sie auch DNS-Konfigurationsszenarien, da der FQDN des Diensts in die öffentliche IP-Adresse aufgelöst werden kann.

Verbinden Sie Azure Synapse Analytics mit Azure Storage mithilfe von PolyBase und der COPY-Anweisung

Verwenden Sie PolyBase und die COPY-Anweisung, um Daten aus Azure Storage-Konten in Azure Synapse Analytics zu laden. Wenn das Azure Storage-Konto, von dem Sie Daten laden, den Zugriff nur auf eine Reihe virtueller Netzwerksubnetze durch Private Endpunkte, Service Endpoints oder IP-basierte Firewalls beschränkt, bricht die Verbindung von PolyBase und der COPY-Anweisung zum Konto ab. Informationen zum Aktivieren von Import- und Exportszenarien mit Azure Synapse Analytics, die eine Verbindung mit Azure Storage herstellen, die mit einem virtuellen Netzwerk gesichert ist, finden Sie unter Auswirkungen der Verwendung virtueller Netzwerkdienstendpunkte mit Azure Storage.

Verhinderung der Datenexfiltration

Datenexfiltration erfolgt, wenn ein Nutzer, wie ein Datenbankadministrator, Daten aus einem System extrahiert und an einen anderen Ort oder ein anderes System außerhalb der Organisation verschiebt. So kann ein Benutzer beispielsweise Daten in ein Speicherkonto einer Nicht-Microsoft-Gesellschaft verschieben.

Stellen Sie sich ein Szenario vor, in dem ein Benutzer SQL Server Management Studio (SSMS) auf einem virtuellen Azure-Computer ausführt, von dem eine Verbindung mit einer Datenbank in SQL-Datenbank hergestellt wird. Die Datenbank befindet sich im Rechenzentrum „USA, Westen“. Das folgende Beispiel zeigt, wie man den Zugriff mit öffentlichen Endpunkten durch Netzwerkzugriffskontrollen einschränken kann.

  1. Deaktiviere sämtlichen Azure-Service-Datenverkehr zur SQL-Datenbank über den öffentlichen Endpunkt, indem du Azure-Dienste zulassen auf AUS setzt. Stellen Sie sicher, dass die Firewall-Regeln auf Server- und Datenbankebene keine IP-Adressen zulassen. Weitere Informationen finden Sie unter Azure Synapse Analytics Network Access Controls.
  2. Erlauben Sie nur Verkehr an die private IP-Adresse der VM. Weitere Informationen finden Sie unter Virtual Network Firewall Rules.
  3. Auf der Azure-VM sollten Sie den Umfang der ausgehenden Verbindungen eingrenzen, indem Sie Network Security Groups (NSGs) und Service Tags wie folgt verwenden:
    • Spezifiziere eine NSG-Regel, die Datenverkehr für Service Tag = SQL.WestUs erlaubt – wobei nur die Verbindung zur SQL-Datenbank in West US zugelassen wird.
    • Spezifizieren Sie eine NSG-Regel mit höherer Priorität, um den Datenverkehr für Service Tag = Sql zu blockieren – und damit Verbindungen mit der SQL-Datenbank in allen Regionen zu verweigern.

Am Ende dieser Einrichtung kann die Azure-VM nur noch mit einer Ressource in der West-US-Region verbunden werden. Die Konnektivität ist jedoch nicht auf eine einzige Datenbank beschränkt. Die VM kann sich weiterhin mit jeder Datenbank in der West-US-Region verbinden, einschließlich Datenbanken, die nicht Teil des Abonnements sind. Obwohl man den Umfang der Datenexfiltration im vorherigen Szenario auf eine bestimmte Region reduziert hat, hat man ihn nicht vollständig eliminiert.

Durch die Nutzung von Private Link können Sie Netzwerkzugriffskontrollen wie NSGs einrichten, um den Zugriff auf den privaten Endpunkt einzuschränken. Du kannst einzelne Azure PaaS-Ressourcen bestimmten privaten Endpunkten zuweisen. Ein böswilliger Insider kann nur auf die zugeordnete PaaS-Ressource zugreifen und auf keine andere Ressource.