Konfigurieren Sie ein privates Netzwerk-Gateway

Important

Dieses Feature befindet sich in der Betaversion. Kontoadministratoren können den Zugriff auf dieses Feature über die Seite " Vorschauen " der Kontokonsole verwalten. Siehe Verwalten von Vorschauen auf Kontoebene.

Dieser Artikel beschreibt, wie man ein privates Netzwerk-Gateway mit der REST-API des Kontos einrichtet und verwaltet. Für einen Überblick darüber, was ein privates Netzwerk-Gateway ist und wie es funktioniert, siehe Private Network Gateway.

Bevor Sie anfangen

Bevor Sie ein privates Netzwerk-Gateway erstellen, stellen Sie sicher, dass Sie Folgendes haben:

  • Ein Azure Databricks-Konto in der Premium-Tarifstufe mit mindestens einem Arbeitsbereich, bei dem serverloses Computing aktiviert ist.
  • Azure Databricks-Kontoadministratorrechte
  • Berechtigung in deinem Azure-Abonnement, ein Subnetz in deinem Ziel-VNet zu Microsoft.Databricks/workspaces delegieren.
  • Ein VNet mit einem dedizierten Subnetz (ein CIDR-Block der Größe /28 oder größer), das für das Gateway verfügbar ist. Dieses Subnetz darf von keiner anderen Azure-Ressource genutzt werden und muss sich in derselben Region wie Ihr NCC und Ihre Arbeitsbereiche befinden.
  • Die Abonnement-ID des VNet, die das delegierte Subnetz enthält, muss im selben Microsoft Entra ID-Mandant sein wie die Abonnement-ID Ihrer Azure Databricks-Arbeitsbereiche.
  • Die IP-Adresse eines DNS-Resolvers, die vom Gateway-Subnetz aus erreichbar ist.

Das Gateway für private Netzwerke ist während der Betaphase in den folgenden Azure-Regionen verfügbar: australiaeast, canadacentral, eastus, uksouth, southcentralus, northcentralus, westus, koreacentral, westus2, eastasia, centralus, eastus2, centralindia, francecentral, japaneast, germanywestcentral, northeurope, uaenorth, westeurope, southeastasia, swedencentral, switzerlandnorth, westcentralus, westus3 und brazilsouth. Das Gateway und sein Subnetz müssen sich im selben Bereich wie der NCC befinden.

Einrichtung eines privaten Netzwerk-Gateways

Alle Gateway-Konfigurationen des privaten Netzwerks verwenden die REST-API des Kontos. Während der Vorschau gibt es keine UI- oder Terraform-Unterstützung.

Erstellen oder auswählen Sie ein NCC

Wenn du bereits einen NCC in der Region hast, die du nutzen möchtest, überspringe diesen Schritt.

Zuerst erhalten Sie ein OAuth-Zugriffstoken über einen Service Principal, der die Rolle des Kontoadministrators innehat. Ein Kontoadministrator erstellt den Service Principal im Voraus in der Kontokonsole. Um das Token anzufordern, führen Sie Folgendes aus:

curl --location 'https://accounts.azuredatabricks.net/oidc/accounts/{account_id}/v1/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --header 'Authorization: Basic <base64(client_id:client_secret)>' \
  --data-urlencode 'grant_type=client_credentials' \
  --data-urlencode 'scope=all-apis'

Um einen NCC zu erstellen, führen Sie Folgendes aus:

curl --request POST \
  'https://accounts.azuredatabricks.net/api/2.0/accounts/{account_id}/network-connectivity-configs' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Content-Type: application/json' \
  --data '{ "name": "my-ncc", "region": "eastus2" }'

Speichern Sie die network_connectivity_config_id aus der Antwort.

Delegiere ein Subnetz an Databricks

Das Gateway injiziert in ein Subnetz in deinem VNet, um den Tunnel aufzubauen. Delegieren Sie dieses Subnetz an Microsoft.Databricks/workspaces, bevor Sie das Gateway erstellen.

  1. Im Azure-Portal gehe du zu deinem Ziel-VNet.

  2. Klicke in der linken Seitenleiste auf Subnetze .

  3. Wählen Sie ein Subnetz, das dem Gateway zugeordnet ist, oder erstellen Sie ein neues. Dieses Subnetz darf von keiner anderen Ressource verwendet werden.

  4. Wählen Sie unter SubnetzdelegationMicrosoft.Databricks/workspaces aus.

  5. Klicke auf Speichern.

    Das delegierte Subnetz muss sich in derselben Azure-Region wie Ihr NCC und Ihre Zielarbeitsbereiche befinden und genügend IP-Adressen für die Gateway-Knoten besitzen. /28 oder höher wird empfohlen.

Erstellen Sie das private Netzwerk-Gateway

Das Erstellen eines Gateways aus der REST-API der Kontokonsole erfordert ein OAuth-Zugriffstoken eines Serviceprinzipals mit Client-Zugangsdaten, das zuvor von einem Kontoadministrator in der Kontokonsole erstellt wurde.

Um das Gateway zu erstellen, senden Sie eine POST-Anfrage an den private-network-gateways Endpunkt unter Ihrem NCC. Der Anfragekörper unterstützt die folgenden Felder:

  • gateway_name (erforderlich): Ein für Menschen lesbarer Name für das Gateway.
  • azure_cloud_connection.gateway_subnet.resource_id(erforderlich): Die vollständige Azure-Ressourcen-ID des Subnetzes, das Sie im vorherigen Schritt delegiert haben.
  • private_dns_resolvers (erforderlich): Die IP-Adresse des DNS-Resolvers in deinem VNet. Nutze 168.63.129.16 den von Azure bereitgestellten DNS, wenn du keine benutzerdefinierte private DNS-Zone hast.
  • traffic_mode (erforderlich): SPECIFIC_DESTINATIONS oder ALL_TRAFFIC. Siehe Verkehrsmodi.
  • destinations (erforderlich, wenn traffic_mode auf SPECIFIC_DESTINATIONS gesetzt ist): Die DNS-Namen, die über das Gateway geleitet werden sollen.

Um ein Gateway im Modus SPECIFIC_DESTINATIONS zu erstellen, führen Sie Folgendes aus:

curl --request POST \
  'https://accounts.azuredatabricks.net/api/2.0/accounts/{account_id}/network-connectivity-configs/{network_connectivity_config_id}/private-network-gateways' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "gateway_name": "my-azure-png",
    "traffic_mode": "SPECIFIC_DESTINATIONS",
    "azure_cloud_connection": {
      "gateway_subnet": {
        "resource_id": "/subscriptions/{subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.Network/virtualNetworks/{vnet_name}/subnets/{subnet_name}"
      }
    },
    "private_dns_resolvers": [
      { "resolver_type": "IP_ADDRESS", "value": "10.0.0.4" }
    ],
    "destinations": [
      { "destination_type": "DNS_NAME", "value": "myserver.internal.contoso.com" }
    ]
  }'

Das Gateway wird im Zustand CREATING erstellt. Es wechselt zu ESTABLISHED, sobald Azure Databricks das Gateway erfolgreich in Ihr Subnetz injiziert hat, was in der Regel 2 bis 5 Minuten dauert.

Bestätigen Sie, dass das Gateway eingerichtet ist

Um den Gateway-Zustand zu überprüfen, senden Sie eine GET-Anfrage, bis stateESTABLISHED ist:

curl --request GET \
  'https://accounts.azuredatabricks.net/api/2.0/accounts/{account_id}/network-connectivity-configs/{network_connectivity_config_id}/private-network-gateways/{gateway_id}' \
  --header 'Authorization: Bearer <access_token>'

Bestätigen Sie, dass stateESTABLISHED ist, bevor Sie fortfahren.

Hänge das NCC an deine Arbeitsbereiche an

Wenn Ihr Arbeitsplatz bereits an das NCC angeschlossen ist, überspringen Sie diesen Schritt. Ein NCC ist ein regionales Objekt und kann nur an Arbeitsbereiche derselben Region angehängt werden.

Gehe in der Kontokonsole zu Arbeitsbereichen, wähle den Arbeitsbereich aus, klicke auf Arbeitsbereich aktualisieren und wähle unter Netzwerkkonnektivitätskonfiguration deinen NCC aus. Wiederhole das für jeden Arbeitsbereich, der das Gateway nutzen sollte.

Du kannst das NCC auch über die REST-API des Kontos anhängen:

curl --request PATCH \
  'https://accounts.azuredatabricks.net/api/2.0/accounts/{account_id}/workspaces/{workspace_id}' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Content-Type: application/json' \
  --data '{ "network_connectivity_config_id": "{network_connectivity_config_id}" }'

DNS-Konfiguration

Ein Gateway verwendet den von dir angegebenen private_dns_resolvers Resolver, um Hostnamen für die von dir konfigurierten Ziele zu lösen. Der Resolver muss vom Gateway-Subnetz aus erreichbar sein.

Wenn deine privaten Ressourcen in einer Azure-privaten DNS-Zone registriert sind, verknüpfe diese Zone mit dem VNet, das das Gateway-Subnetz enthält, damit die Hostnamen korrekt aufgelöst werden. Um öffentliche FQDNs zu lösen, zum Beispiel für Ressourcen, die durch Ihre Firewall ausgehen, verwenden Sie den von Azure bereitgestellten Resolver bei 168.63.129.16. Wenn du private DNS-Zonen mit sich überschneidenden Namen hast, benutze stattdessen deinen eigenen Resolver.

Verwaltung eines Gateways

Du kannst Gateways mit der Account REST API aktualisieren, löschen und auflisten.

Aktualisieren eines Gateways

Du kannst private_dns_resolvers, traffic_mode, gateway_name und destinations mit einer PATCH-Anfrage direkt aktualisieren. Der Abfrageparameter update_mask ist erforderlich und gibt an, welche Felder aktualisiert werden sollen. Wenn du von traffic_mode zu ALL_TRAFFIC wechselst, lösche destinations in derselben Anfrage. Wenn Sie zu SPECIFIC_DESTINATIONS wechseln, fügen Sie die Ziele hinzu, die weitergeleitet werden sollen. Um das Gateway-Subnetz zu ändern, lösche das Gateway und erstelle ein neues.

Um den Ziel- und Verkehrsmodus zu aktualisieren, führen Sie Folgendes aus:

curl --request PATCH \
  'https://accounts.azuredatabricks.net/api/2.0/accounts/{account_id}/network-connectivity-configs/{network_connectivity_config_id}/private-network-gateways/{gateway_id}?update_mask=destinations,traffic_mode' \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Content-Type: application/json' \
  --data '{ "destinations": [ { "destination_type": "DNS_NAME", "value": "onprem-db2.corp.contoso.com" } ], "traffic_mode": "SPECIFIC_DESTINATIONS" }'

Löschen eines Gateways

Warning

Das Löschen eines Gateways unterbricht die Verbindung zu den privaten Ressourcen, die davon abhängig sind. Bestätigen Sie, dass keine aktiven Workloads vom Gateway abhängen, bevor Sie es löschen.

Um das Gateway zu löschen, senden Sie eine DELETE-Anfrage an den Gateway-Endpunkt unter Ihrem NCC:

curl --request DELETE \
  'https://accounts.azuredatabricks.net/api/2.0/accounts/{account_id}/network-connectivity-configs/{network_connectivity_config_id}/private-network-gateways/{gateway_id}' \
  --header 'Authorization: Bearer <access_token>'

Gateways auflisten

Um die privaten Netzwerk-Gateways in einem NCC aufzulisten, senden Sie eine GET Anfrage an den Gateway-Endpunkt unter Ihrem NCC:

curl --request GET \
  'https://accounts.azuredatabricks.net/api/2.0/accounts/{account_id}/network-connectivity-configs/{network_connectivity_config_id}/private-network-gateways' \
  --header 'Authorization: Bearer <access_token>'

Gateway-Staaten

Ein Gateway meldet einen der folgenden Zustände:

Staat Description
CREATING Azure Databricks erstellt die Gateway-Netzwerkschnittstelle in Ihrem Subnetz.
ESTABLISHED Das Gateway ist bereit, den Verkehr zu leiten.
DELETING Das Tor wird entfernt.
FAILED Das Gateway konnte nicht bereitgestellt werden. Dieser Zustand ist terminal: Löschen Sie das Gateway und erstellen Sie ein neues, nachdem Sie die zugrunde liegende Ursache behoben haben, wie etwa eine nicht unterstützte Region oder eine Verfügbarkeitszone.

Troubleshooting

Wenn eine Arbeitslast nicht über das Gateway mit einem benötigten Endpunkt verbunden werden kann, verwenden Sie die folgende Tabelle, um häufige Probleme zu diagnostizieren.

Issue Ursache Resolution
Das Gateway bleibt für mehr als 10 Minuten CREATING Die Subnetzdelegation fehlt oder ist falsch konfiguriert, oder es gibt nicht genug IP-Speicherplatz Überprüfen Sie, ob das Subnetz an Microsoft.Databricks/workspaces delegiert ist und mindestens /28 groß ist. Kontaktiere dein Account-Team, falls das Problem weiterhin besteht.
Die DNS-Auflösung schlägt bei SERVFAIL oder NXDOMAIN fehl Der private DNS-Resolver ist vom Gateway-Subnetz aus nicht erreichbar, oder die private DNS-Zone ist nicht mit dem richtigen VNet verknüpft. Bestätigen Sie, dass die Resolver-IP aus dem delegierten Subnetz heraus erreichbar ist und dass die private DNS-Zone mit dem VNet verknüpft ist, das das Gateway-Subnetz enthält.
DNS-Auflösung funktioniert, aber bei der Verbindung tritt eine Zeitüberschreitung auf NSG-Regeln blockieren den Datenverkehr im Gateway-Subnetz oder im Ziel-Subnetz Überprüfen Sie die NSG-Ein- und Ausgangsregeln sowohl im Gateway-Subnetz als auch auf der Zielressource und überprüfen Sie, ob das Ziel vom selben VNet aus erreichbar ist.
Eine JDBC- oder Datenbankverbindung schlägt trotz der Auflösung von DNS fehl Eine datenbankseitige Firewall oder Authentifizierungsrichtlinie blockiert Verbindungen vom Gateway Überprüfen Sie, ob die Datenbank Verbindungen aus dem IP-Bereich des Gateway-Subnetzes zulässt, und prüfen Sie die Datenbankfirewall und die Zugriffskontrollkonfiguration.
Das Gateway ist ESTABLISHED, aber der Datenverkehr fließt dennoch nicht Das Ziel DNS_NAME wird dem Gateway nicht hinzugefügt oder das Gateway ist an einen NCC angeschlossen, der nicht an den Arbeitsbereich gebunden ist Überprüfen Sie die auf dem Gateway konfigurierten Ziele und bestätigen Sie, dass der NCC mit dem Quellarbeitsbereich verbunden ist.
Der Datenverkehr zu einem von Azure verwalteten Dienst wie Azure SQL-Datenbank oder Key Vault läuft nicht über das Gateway Der DNS_NAME stimmt mit dem Suffix eines Azure-Dienstendpunkts überein, sodass stattdessen der Dienstendpunktpfad verwendet wird Vergleiche das DNS_NAME mit der Suffixliste des Service-Endpunkts. Für ausschließlich private Ressourcen dem Gateway ein spezifischeres DNS_NAME hinzufügen.
Verkehr wird abgebrochen, obwohl das FQDN auf dem Gateway konfiguriert ist Eine Richtlinie für das serverlose ausgehende Gateway (SEG) verweigert den Zugriff auf das Ziel und wird vor dem privaten Netzwerkgateway bewertet Schau dir die SEG-Erlaubnislisten für überlappende Arbeitsbereiche an.