Freigeben über


Konfigurieren von Netzwerken für Databricks-Apps

Databricks-Apps unterstützen fein abgestimmte Netzwerksteuerung, um Ihnen zu helfen, die Kommunikation Ihrer App mit dem Internet und internen Ressourcen zu sichern und zu verwalten. Sie können sowohl eingehende als auch ausgehende Datenverkehrsregeln mithilfe einer Kombination aus IP-Zugriffslisten, privater Front-End-Konnektivität und Netzwerk-Richtlinien konfigurieren.

Netzwerkarchitektur

Azure Databricks stellt Apps auf der serverlosen Computeebene bereit, in der sie direkt Datenverkehr empfangen. Dies ähnelt anderen routenoptimierten Diensten wie Model Serving und Vector Search.

Der Verbindungsvorgang funktioniert wie folgt:

  1. Anfängliche Benutzeranforderungen an eine Azure Databricks-App initiieren die OAuth-Authentifizierung mit der Steuerungsebene, um die Sitzung zu überprüfen und den Zugriff auf die App zu autorisieren.
  2. Bei erfolgreicher Authentifizierung werden alle nachfolgenden Anforderungen direkt an die serverlose Computeebene weitergeleitet, ohne die Steuerungsebene zu durchlaufen.

Netzwerksicherheitsrichtlinien, die für die serverlose Computeebene konfiguriert sind, gelten für Databricks Apps-Datenverkehr. Dazu gehören IP-Zugriffslisten und Konfigurationen für private Front-End-Verbindungen.

Ingress-Steuerelemente

Verwenden Sie die folgenden Features, um den Zugriff auf Ihren Azure Databricks Arbeitsbereich und Ihre Apps aus dem öffentlichen Internet zu beschränken.

  • IP-Zugriffslisten: Beschränken Sie den Arbeitsbereichs- und App-Zugriff auf bekannte und vertrauenswürdige IP-Bereiche, indem Sie IP-Zugriffslisten auf Arbeitsbereichsebene aktivieren. Nur Datenverkehr aus den konfigurierten IP-Bereichen ist zulässig. Ausführliche Informationen finden Sie unter Konfigurieren von IP-Zugriffslisten für Arbeitsbereiche.
  • Front-end private Konnektivität: Leiten Sie eingehenden Datenverkehr über eine Azure-Private-Link-Verbindung weiter, um über Ihr VNet sicher auf Apps zuzugreifen.

    Sie müssen die bedingte DNS-Weiterleitung für die databricksapps.com Domäne konfigurieren, um die ordnungsgemäße Namensauflösung über Ihre private Verbindung sicherzustellen. Andernfalls werden DNS-Abfragen für die Domäne Ihrer App möglicherweise anstelle des privaten Endpunkts in öffentliche IP-Adressen aufgelöst. Anweisungen zum Einrichten finden Sie unter Configure Inbound Private Link.

    Regionale Legacy-URLs werden mit Databricks-Apps nicht unterstützt, da sie OAuth nicht unterstützen, was für die App-Authentifizierung erforderlich ist. Weitere Informationen finden Sie unter Legacy-regionale URL.

Egress-Kontrollen

Um ausgehenden Datenverkehr von Ihrer App zu steuern, erstellen Sie eine Netzwerkkonnektivitätskonfiguration (Network Connectivity Configuration, NCC), und wenden Sie Netzwerkrichtlinien auf den Arbeitsbereich an, in dem die App gehostet wird.

Netzwerkkonnektivitätskonfigurationen

Verwenden Sie eine network-Konnektivitätskonfiguration, um Ihre App sicher mit Azure Diensten zu verbinden. NCCs bieten stabile Subnetz-IDs, die Sie einer Speicherkontofirewall hinzufügen können, um den Zugriff von Ihrer App und anderen serverlosen Berechnungen explizit zuzulassen.

Um den ausgehenden Datenverkehr zu privaten Zielen weiter einzuschränken, konfigurieren Sie serverlose private Endpunkte für Azure-Ressourcen oder leiten Sie den Datenverkehr über einen Azure Load Balancer in Ihrem VNet weiter.

Netzwerkrichtlinien

Verwenden Sie Netzwerkrichtlinien , um Ausgangsbeschränkungen für Databricks-Apps und andere serverlose Workloads zu erzwingen. Dies ist nützlich, wenn Sie die Organisations- oder Complianceanforderungen für die Steuerung der ausgehenden Konnektivität erfüllen müssen.

Hinweis

Netzwerkrichtlinien sind nur auf der Premium-Stufe verfügbar.

Wenden Sie eine Netzwerkrichtlinie an, wenn Ihre App:

  • Muss den Zugriff auf eine bestimmte Gruppe genehmigter externer Domänen einschränken
  • Muss versehentliche Datenexfiltration verhindern
  • Muss Sicherheits- oder Compliancestandards einhalten, die ausgehenden Internetdatenverkehr einschränken

Erforderliche Ausgangsdomänen für die App-Bereitstellung

Wenn Sie eingeschränkte Netzwerkrichtlinien verwenden, müssen Sie bestimmte Domänen für App-Builds oder zur Laufzeit zulassen, damit sie erfolgreich sind. Ohne diese Domänen schlagen App-Bereitstellungen fehl, da der Buildprozess keine Abhängigkeiten herunterladen oder mit erforderlichen Diensten kommunizieren kann.

Die folgenden Domänen sind für alle Databricks-Apps-Bereitstellungen erforderlich:

Domäne Purpose
*.databricksapps.com App-Bereitstellung und Benutzerkonnektivität
pypi.org, files.pythonhosted.org Downloads von Python-Paketen bei Anwendungs-Builds (erforderlich, wenn Ihre App requirements.txt verwendet)
registry.npmjs.org Node.js-Paketdownloads während der App-Builds (erforderlich, wenn Ihre App package.json verwendet)

:::

Darüber hinaus erfordern Azure Bereitstellungen möglicherweise folgende Domänen:

Domäne Purpose
*.blob.core.windows.net Azure Blob Storage Endpunkte, die von Apps verwendet werden, die eine Verbindung mit Azure Speicher herstellen
*.dfs.core.windows.net Azure Data Lake Storage Endpunkte, die von Apps verwendet werden, die eine Verbindung mit ADLS herstellen

:::

:::

Ihre App erfordert möglicherweise zusätzliche Domänen, abhängig von Ihren spezifischen Abhängigkeiten oder den externen APIs, die sie aufruft. Wenn Ihre App beispielsweise eine REST-API eines Drittanbieters aufruft, fügen Sie die Domäne dieser API zur Zulassungsliste hinzu.

Von Bedeutung

In Private Link Umgebungen mit eingeschränktem Ausgang verursachen fehlende Zulassungslisteneinträge für Domänen häufig Fehler bei der App-Bereitstellung. Wenn Die App nicht bereitgestellt werden kann, überprüfen Sie die system.access.outbound_network Systemtabelle auf verweigerte Verbindungsversuche, um zu ermitteln, welche Domänen hinzugefügt werden sollen. Siehe "Denialprotokolle überprüfen".

Bewährte Methoden zum Konfigurieren von Netzwerkrichtlinien

Befolgen Sie diese Richtlinien, um unbeabsichtigte Unterbrechungen zu vermeiden und sicherzustellen, dass Ihre Apps auf erforderliche Ressourcen zugreifen können:

  • Nur erforderliche Ziele zulassen. Fügen Sie vollqualifizierte Domänennamen (FQDNs) für öffentliche oder private Ressourcen hinzu, die Ihre App benötigt. Siehe Erforderliche Ausgangsdomänen für die App-Bereitstellung für die Mindestmenge der Domänen, die für die Bereitstellung erforderlich sind.
  • Schließen Sie paketrepositorys nach Bedarf ein. Wenn Ihre App öffentliche Python- oder Node.js-Pakete installiert, müssen Sie möglicherweise Domänen wie pypi.org für Python oder registry.npmjs.org für Node zulassen. Ihre Anwendung erfordert je nach Ihren spezifischen Abhängigkeiten möglicherweise zusätzliche oder unterschiedliche Domänen. Ohne diese Repositorys könnten App-Builds, die auf requirements.txt oder package.json basieren, fehlschlagen.
  • Verwenden Sie den Trockenlaufmodus, um Ihre Netzwerkrichtlinie zu überprüfen. In diesem Modus wird die Richtlinienerzwingung simuliert, ohne den Datenverkehr zu blockieren.
  • Überprüfen Sie die abgelehnten Verbindungsversuche mit der system.access.outbound_network Tabelle. Auf diese Weise können Sie Domänen identifizieren, die Sie möglicherweise zulassen müssen. Siehe "Denialprotokolle überprüfen".
  • Fügen Sie alle erforderlichen externen Domänen hinzu, z. B. vertrauenswürdige APIs oder Azure Speicherkonten, die nicht im Unity-Katalog registriert sind.

Wenn Ihr Arbeitsbereich die private Front-End-Konnektivität verwendet, müssen Sie zusätzliche Konfigurationsschritte ausführen, um Databricks-Apps bereitzustellen und zu verwenden. Ohne diese Konfiguration können App-Bereitstellungen fehlschlagen, oder Benutzer können die App nicht erreichen.

DNS-Konfiguration

Sie müssen die bedingte DNS-Weiterleitung für die databricksapps.com Domäne konfigurieren, damit App-URLs anstelle öffentlicher IP-Adressen in private IP-Adressen aufgelöst werden. Ohne diese Konfiguration können Benutzer hinter einem privaten Netzwerk keine bereitgestellten Apps erreichen.

Fügen Sie ihrem Azure DNS Server Regeln für die bedingte Weiterleitung für die folgenden Domänen hinzu:

  • *.databricksapps.com
  • *.azuredatabricks.net
  • *.privatelink.azuredatabricks.net

Stellen Sie sicher, dass Ihr VNet mit der zone Azure Private DNS verknüpft ist. Ausführliche Anweisungen zum DNS-Setup finden Sie unter "Benutzerdefinierte DNS-Konfiguration".

Anforderungen an den Fluchtweg

In Private Link Umgebungen mit eingeschränktem Ausgang erfordern Apps ausgehende Verbindungen zu bestimmten Domänen sowohl während der Buildzeit als auch zur Laufzeit. Informationen zur vollständigen Liste der zulässigen Domänen finden Sie unter "Erforderliche Ausgangsdomänen" für die App-Bereitstellung .

So konfigurieren Sie den Ausgang für Apps in einer Private Link Umgebung:

  1. Erstellen oder aktualisieren Sie eine Netzwerkkonnektivitätskonfiguration (Network Connectivity Configuration, NCC), und fügen Sie sie an den Arbeitsbereich an, in dem Ihre App gehostet wird.
  2. Erstellen oder aktualisieren Sie eine Netzwerkrichtlinie , um die erforderlichen Domänen zuzulassen.
  3. Verwenden Sie zuerst den Trockenlaufmodus, um Ihre Konfiguration zu überprüfen, ohne den Datenverkehr zu blockieren.
  4. Überprüfen Sie die Systemtabelle auf alle verweigerten Verbindungsversuche während der system.access.outbound_network App-Bereitstellung.

Wenn Ihre App in einer Private Link Umgebung nicht bereitgestellt werden kann:

  1. Überprüfen Sie die Egress-Deny-Protokolle. Abfragen Sie die system.access.outbound_network-Systemtabelle nach aktuellen Ablehnungsereignissen. Siehe "Denialprotokolle überprüfen".

    SELECT *
    FROM system.access.outbound_network
    WHERE event_time >= CURRENT_TIMESTAMP() - INTERVAL 2 HOUR
    ORDER BY event_time DESC;
    
  2. Überprüfen Sie die DNS-Auflösung. Vergewissern Sie sich, dass die URL Ihrer App in eine private IP-Adresse aufgelöst wird, nicht in eine öffentliche IP-Adresse. Verwenden Sie nslookup innerhalb Ihres privaten Netzwerks, um Folgendes zu überprüfen:

    nslookup <your-app-name>.databricksapps.com
    
  3. Überprüfen Sie die Netzwerkrichtlinienkonfiguration. Überprüfen Sie, ob sich die erforderlichen Domänen in der Zulassungsliste befinden. Fehlende Domänen für Paketrepositorys (pypi.org, registry.npmjs.org) sind die häufigste Ursache für Buildfehler.

  4. Starten Sie die App neu. Nach dem Aktualisieren von Netzwerkrichtlinien müssen Sie die App erneut bereitstellen oder neu starten, damit die aktualisierten Richtlinien wirksam werden. Siehe Neustarten oder erneutes Bereitstellen von serverlosen Workloads.

Verschlüsselung und Datenverkehrsrouting

Databricks Apps verwendet dedizierte Routingpfade und mehrere Verschlüsselungsebenen, um die Netzwerkkommunikation zu sichern und Daten zu schützen.

Routing von Datenverkehr

Der Datenverkehr zwischen der Azure-Databricks-Steuerebene, der Azure-Databricks-Compute-Ebene, anderen Azure-Databricks-Ressourcen und Clouddiensten erfolgt über das globale Netzwerk des Cloudanbieters und durchläuft nicht das öffentliche Internet.

Datenverkehr zwischen Benutzern und databricksapps.com kann je nach Netzwerkstandort des Benutzers über das öffentliche Internet erfolgen. Um öffentliches Internetrouting zu vermeiden, konfigurieren Sie die private Front-End-Konnektivität.

Verschlüsselung während der Übertragung

Alle Netzwerkkommunikationen zu und von Apps werden verschlüsselt:

  • Benutzerverkehr: Die Kommunikation zwischen Benutzern und databricksapps.com, bei der die Transport Layer Security (TLS) 1.3-Verschlüsselung verwendet wird.
  • Control plane traffic: Die Kommunikation zwischen der Azure Databricks-Steuerebene und der Berechnungsebene verwendet gegenseitiges TLS (mTLS) für Verwaltungsoperationen, einschließlich der Erstellung, Aktualisierung und Löschung von Apps.

Verschlüsselung ruhender Daten

Databricks Apps verschlüsselt gespeicherte Daten mithilfe der folgenden Methoden:

  • Application code: Azure Databricks speichert App-Code in Arbeitsbereichsdateien und verwendet dieselbe Verschlüsselung wie Notizbücher und andere Arbeitsbereichsdateien.
  • Computespeicher: Apps verwenden kurzlebige Hostbetriebssystemdatenträger, die mit AES-256 und der Standardverschlüsselungsimplementierung des Cloudanbieters verschlüsselt sind.