Delen via


Back-end- en front-endverbindingen van Azure Private Link inschakelen

In dit artikel wordt het gebruik van Azure Private Link samengevat om privéconnectiviteit tussen gebruikers en hun Databricks-werkruimten mogelijk te maken, en ook tussen clusters op het klassieke rekenvlak en de kernservices op het besturingsvlak in de Databricks-werkruimte-infrastructuur.

Als u de netwerktoegang voor serverloze SQL-warehouses wilt wijzigen, raadpleegt u Privéconnectiviteit configureren vanuit serverloze compute.

Overzicht

Private Link biedt privéconnectiviteit van Azure-VNets en on-premises netwerken naar Azure-services zonder dat het verkeer naar het openbare netwerk wordt weergegeven. Azure Databricks ondersteunt de volgende Private Link-verbindingstypen:

  • Front-end Private Link, ook wel bekend als gebruiker naar werkruimte: Met een front-end Private Link-verbinding kunnen gebruikers verbinding maken met de Azure Databricks-webtoepassing, REST API en Databricks Verbinding maken API via een VNet-interface-eindpunt. De front-endverbinding wordt ook gebruikt door JDBC-/ODBC- en Power BI-integraties. Het netwerkverkeer voor een front-end Private Link-verbinding tussen een doorvoer-VNet en het Azure Databricks-besturingsvlak van de werkruimte doorkruist het Backbone-netwerk van Microsoft.
  • Back-end Private Link, ook wel bekend als rekenvlak voor besturingsvlak: Databricks Runtime-clusters in een door de klant beheerd VNet (het rekenvlak) maken verbinding met de kernservices van een Azure Databricks-werkruimte (het besturingsvlak) in het Azure Databricks-cloudaccount. Dit maakt privéconnectiviteit mogelijk van de clusters naar het eindpunt voor beveiligde clusterconnectiviteitsconnectiviteit en REST API-eindpunt.
  • Privé-eindpunt voor browserverificatie: als u privé-front-endverbindingen met de Azure Databricks-webtoepassing wilt ondersteunen voor clients die geen openbare internetverbinding hebben, moet u een privé-eindpunt voor browserverificatie toevoegen ter ondersteuning van callbacks voor eenmalige aanmelding (SSO) bij de Azure Databricks-webtoepassing vanuit Microsoft Entra ID (voorheen Azure Active Directory). Als u verbindingen van uw netwerk naar het openbare internet toestaat, wordt het toevoegen van een privé-eindpunt voor browserverificatie aanbevolen, maar niet vereist. Een privé-eindpunt voor browserverificatie is een privéverbinding met subresourcetype browser_authentication.

Als u Private Link implementeert voor zowel front-end- als back-endverbindingen, kunt u optioneel privéconnectiviteit voor de werkruimte verplicht stellen. Dit betekent dat Azure Databricks verbindingen via het openbare netwerk weigert. Als u weigert om zowel front-end- als back-endverbindingstypen te implementeren, kunt u deze vereiste niet afdwingen.

Het grootste deel van dit artikel gaat over het maken van een nieuwe werkruimte, maar u kunt Private Link in- of uitschakelen voor een bestaande werkruimte. Zie Azure Private Link in- of uitschakelen voor een bestaande werkruimte.

Terminologie

In de volgende tabel wordt belangrijke terminologie beschreven.

Terminologie Beschrijving
Azure Private Link Een Azure-technologie die privéconnectiviteit biedt van Azure-VNets en on-premises netwerken naar Azure-services zonder dat het verkeer naar het openbare netwerk beschikbaar wordt gemaakt.
Azure Private Link-service Een service die de bestemming kan zijn voor een Private Link-verbinding. Elke instantie van het Azure Databricks-besturingsvlak publiceert een Azure Private Link-service.
Azure-privé-eindpunt Een Privé-eindpunt van Azure maakt een privéverbinding mogelijk tussen een VNet en een Private Link-service. Voor front-end- en back-endconnectiviteit is het doel van een azure-privé-eindpunt het Azure Databricks-besturingsvlak.

Zie het Microsoft-artikel Wat is een privé-eindpunt? voor algemene informatie over privé-eindpunten.

Standaardimplementatie of vereenvoudigde implementatie kiezen

Er zijn twee typen Private Link-implementaties die door Azure Databricks worden ondersteund. U moet er een kiezen:

  • Standaardimplementatie (aanbevolen):Voor een betere beveiliging raadt Databricks u aan een afzonderlijk privé-eindpunt te gebruiken voor uw front-endverbinding vanuit een afzonderlijk VNet voor doorvoer. U kunt zowel front-end- als back-end Private Link-verbindingen implementeren of alleen de back-endverbinding. Gebruik een afzonderlijk VNet om gebruikerstoegang in te kapselen, gescheiden van het VNet dat u gebruikt voor uw rekenresources in het klassieke rekenvlak. Maak afzonderlijke Private Link-eindpunten voor back-end- en front-endtoegang. Volg de instructies in Azure Private Link inschakelen als een standaardimplementatie.
  • Vereenvoudigde implementatie: sommige organisaties kunnen de standaardimplementatie niet gebruiken om verschillende redenen van netwerkbeleid, zoals het ongedaan maken van meer dan één privé-eindpunt of het ontmoedigen van afzonderlijke doorvoer-VNets. U kunt ook de vereenvoudigde implementatie van Private Link gebruiken. Geen afzonderlijk VNet scheidt gebruikerstoegang van het VNet dat u gebruikt voor uw rekenresources in het klassieke rekenvlak. In plaats daarvan wordt een transitsubnet in het rekenvlak VNet gebruikt voor gebruikerstoegang. Er is slechts één Private Link-eindpunt. Normaal gesproken worden zowel front-end- als back-endconnectiviteit geconfigureerd. U kunt eventueel alleen de back-endverbinding configureren. U kunt er niet voor kiezen om alleen de front-endverbindingen in dit implementatietype te gebruiken. Volg de instructies in Azure Private Link inschakelen als een vereenvoudigde implementatie.

Vereisten

Azure-abonnement

Uw Azure Databricks-werkruimte moet zich in de Premium- of Enterprise-laag bevinden.

Netwerkarchitectuur van Azure Databricks-werkruimte

  • Uw Azure Databricks-werkruimte moet VNet-injectie gebruiken om een Private Link-verbinding toe te voegen (zelfs een front-endverbinding).
  • Als u de back-end Private Link-verbinding implementeert, moet uw Azure Databricks-werkruimte gebruikmaken van beveiligde clusterconnectiviteit (SCC/Geen openbaar IP/NPIP).
  • U hebt een VNet nodig dat voldoet aan de vereisten van VNet-injectie.
    • Zoals beschreven in het hoofdartikel over VNet-injectie, moet u twee subnetten definiëren (waarnaar in de gebruikersinterface wordt verwezen als het openbare subnet en het privésubnet). De IP-bereiken van het VNet en het subnet die u voor Azure Databricks gebruikt, definiëren het maximum aantal clusterknooppunten dat u tegelijk kunt gebruiken. Kies deze waarden zorgvuldig.
    • Als u front-end Private Link, back-end Private Link of beide wilt implementeren, heeft uw werkruimte-VNet een derde subnet nodig dat het Private Link-eindpunt en het BIJBEHORENDE IP-adresbereik niet overlapt met het bereik van uw andere werkruimtesubnetten. Dit artikel verwijst naar dit derde subnet als het subnet van het privé-eindpunt. Voorbeelden en schermopnamen gaan ervan uit dat de subnetnaam private-link. Dit kan zo klein zijn als CIDR-bereik /27. Definieer geen NSG-regels voor een subnet dat privé-eindpunten bevat.
    • Als u de gebruikersinterface gebruikt om objecten te maken, moet u het netwerk en de subnetten handmatig maken voordat u de Azure Databricks-werkruimte maakt. Als u een sjabloon wilt gebruiken, maakt de sjabloon die Azure Databricks biedt een VNet en de juiste subnetten voor u, inclusief de twee reguliere subnetten plus een andere voor privé-eindpunten.
  • Als u een netwerkbeveiligingsgroep of firewall rond uw VNet gebruikt, moet u poorten 443, 6666, 3306 en 8443-8451 toestaan op het subnet van het privé-eindpunt voor uitgaand verkeer voor verbindingen met het Azure Databricks-besturingsvlak, inclusief de beveiligde clusterconnectiviteitsrelay .
  • Als u een beleid voor netwerkbeveiligingsgroepen hebt ingeschakeld op het privé-eindpunt, moet u ook poorten 443, 6666, 3306 en 8443-8451 toestaan voor inkomend verkeer in de netwerkbeveiligingsgroep op het subnet waarop het privé-eindpunt wordt geïmplementeerd.
  • Als u verbinding wilt maken tussen uw netwerk en Azure Portal en de bijbehorende services, moet u mogelijk URL's van Azure Portal toevoegen aan uw acceptatielijst. Zie De URL's van de Azure-portal op uw firewall of proxyserver toestaan

Front-endverbindingsnetwerkarchitectuur

Alleen voor front-end Private Link moet u voor gebruikers toegang tot de werkruimte vanuit uw on-premises netwerk privéconnectiviteit vanuit dat netwerk toevoegen aan uw Azure-netwerk. Voeg deze connectiviteit toe voordat u Private Link configureert. De details variëren afhankelijk van of u de standaardimplementatie van Private Link of de vereenvoudigde implementatie kiest.

  • Voor de standaardimplementatie maakt of gebruikt u een bestaand doorvoer-VNet, ook wel een bastion-VNet of hub-VNet genoemd. Dit VNet moet bereikbaar zijn vanuit de on-premises gebruikersomgeving met behulp van Expressroute of een VPN-gatewayverbinding. Voor front-end Private Link raadt Databricks aan om een afzonderlijk VNet te maken voor uw connectiviteit met het besturingsvlak, in plaats van het VNet van de werkruimte te delen. Houd er rekening mee dat het doorvoer-VNet en het bijbehorende subnet zich in dezelfde regio, zone en resourcegroep kunnen bevinden als uw werkruimte-VNet en de bijbehorende subnetten, maar ze hoeven niet overeen te komen. Maak een resourcegroep voor het afzonderlijke doorvoer-VNet en gebruik een andere privé-DNS-zone voor dat privé-eindpunt. Als u twee afzonderlijke privé-eindpunten gebruikt, kunt u de DNS-zone niet delen.
  • Voor de vereenvoudigde implementatie maakt u een transitsubnet in uw werkruimte-VNet. In deze implementatie heeft het transitsubnet geen afzonderlijk privé-eindpunt. Het transitsubnet in het werkruimte-VNet maakt gebruik van één privé-eindpunt voor zowel back-end- als front-endverbindingen.

Azure-gebruikersmachtigingen

Als Azure-gebruiker moet u voldoende lees-/schrijfmachtigingen hebben om:

  • Richt een nieuwe Azure Databricks-werkruimte in.
  • Maak Azure Private Link-eindpunten in uw werkruimte-VNet en (voor front-endgebruik) uw transit-VNet.

Als de gebruiker die het privé-eindpunt voor het doorvoer-VNet heeft gemaakt, geen machtigingen voor eigenaar/inzender heeft voor de werkruimte, moet een afzonderlijke gebruiker met machtigingen voor eigenaar/inzender voor de werkruimte de aanvraag voor het maken van het privé-eindpunt handmatig goedkeuren.

U kunt Private Link inschakelen voor een bestaande werkruimte. De upgrade vereist dat de werkruimte VNet-injectie, beveiligde clusterconnectiviteit en Premium-prijscategorie gebruikt. U kunt een update uitvoeren om de clusterconnectiviteit en de Premium-prijscategorie te beveiligen tijdens de update.

U kunt een ARM-sjabloon of azurerm Terraform-providerversie 3.41.0+ gebruiken. U kunt Azure Portal gebruiken om een aangepaste sjabloon toe te passen en de parameter in de gebruikersinterface te wijzigen. Er is echter geen ondersteuning voor de gebruikersinterface van Azure Portal voor deze upgrade op het exemplaar van de Azure Databricks-werkruimte zelf.

Als er iets misgaat met de upgrade en u kunt de stap voor het bijwerken van de werkruimte herhalen, maar in plaats daarvan de velden instellen om Private Link uit te schakelen.

Hoewel de focus van deze sectie Private Link op een bestaande werkruimte is ingeschakeld, kunt u deze uitschakelen voor een bestaande werkruimte met behulp van dezelfde aanroep voor het bijwerken van de werkruimte met de ARM-sjabloon of een Terraform-update. Zie stap 4: De werkruimte-update toepassen voor meer informatie.

Stap 1: lees de vereisten en documentatie op deze pagina

Voordat u een upgrade naar Private Link probeert uit te voeren, zijn er belangrijke concepten en vereisten die u moet lezen:

  1. Lees dit artikel, inclusief concepten en vereisten voordat u doorgaat.
  2. Bepaal of u de standaardimplementatie of de vereenvoudigde implementatie wilt gebruiken.
  3. Bekijk de pagina voor standaardimplementatie of de vereenvoudigde implementatie (afhankelijk van de benadering die u gebruikt), zorgvuldig de pagina, inclusief de verschillende scenario's. Zoek het scenario dat overeenkomt met uw use-case. Noteer welke waarden u wilt gebruiken voor publicNetworkAccess en requiredNsgRules. Voor de aanbevolen configuratie van zowel front-end als back-end Private Link waarbij front-endconnectiviteit is vergrendeld, gebruikt u de instellingen publicNetworkAccess=Disabled en requiredNsgRules=NoAzureDatabricksRules

Stap 2: alle rekenresources stoppen

Voordat u deze upgrade uitvoert, moet u alle rekenresources, zoals clusters, pools of klassieke SQL-warehouses, stoppen. Er kunnen geen rekenresources voor werkruimten worden uitgevoerd of de upgradepoging mislukt. Databricks raadt u aan de timing van de upgrade te plannen voor uitvalt.

Belangrijk

Probeer geen rekenresources te starten tijdens de update. Als Azure Databricks bepaalt dat rekenresources zijn gestart (of nog steeds worden gestart), beëindigt Azure Databricks deze na de update.

Stap 3: Subnet- en privé-eindpunten maken

  1. Voeg een subnet toe aan uw werkruimte-VNet voor uw back-end-privé-eindpunten.

  2. Open het artikel voor standaardimplementatie of de vereenvoudigde implementatie (afhankelijk van de benadering die u gebruikt).

    Volg de instructies op die pagina om de privé-eindpunten te maken die overeenkomen met uw type implementatie.

  3. Maak al uw privé-eindpunten voor back-endondersteuning voordat u de werkruimte-update uitvoert.

  4. Voor toegang tot de gebruikersinterface maakt u een privé-eindpunt met subresource databricks_ui_api ter ondersteuning van eenmalige aanmelding vanuit uw transit-VNet. Als u meer dan één doorvoer-VNet hebt dat toegang heeft tot de werkruimte voor front-endtoegang, maakt u meerdere privé-eindpunten met subresource databricks_ui_api.

Stap 4: De werkruimte-update toepassen

In plaats van een nieuwe werkruimte te maken, moet u de werkruimte-update toepassen.

U moet de publicNetworkAccess en requiredNsgRules parameters bijwerken naar de waarden die u in een vorige stap hebt gekozen.

Gebruik een van de volgende methoden:

Een bijgewerkte ARM-sjabloon toepassen met behulp van Azure Portal

Notitie

Als uw beheerde resourcegroep een aangepaste naam heeft, moet u de sjabloon dienovereenkomstig wijzigen. Neem contact op met uw Azure Databricks-accountteam voor meer informatie.

  1. Kopieer de volgende upgrade van de JSON van de ARM-sjabloon:

    {
       "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
       "contentVersion": "1.0.0.0",
       "parameters": {
           "location": {
               "defaultValue": "[resourceGroup().location]",
               "type": "String",
               "metadata": {
                   "description": "Location for all resources."
               }
           },
           "workspaceName": {
               "type": "String",
               "metadata": {
                   "description": "The name of the Azure Databricks workspace to create."
               }
           },
           "apiVersion": {
               "defaultValue": "2023-02-01",
               "allowedValues": [
                "2018-04-01",
                   "2020-02-15",
                   "2022-04-01-preview",
                   "2023-02-01"
               ],
               "type": "String",
               "metadata": {
                   "description": "2018-03-15 for 'full region isolation control plane' and 2020-02-15 for 'FedRAMP certified' regions"
               }
           },
           "publicNetworkAccess": {
               "defaultValue": "Enabled",
               "allowedValues": [
                   "Enabled",
                   "Disabled"
               ],
               "type": "String",
               "metadata": {
                   "description": "Whether the workspace allows access from the public Internet"
               }
           },
           "requiredNsgRules": {
               "defaultValue": "AllRules",
               "allowedValues": [
                   "AllRules",
                   "NoAzureDatabricksRules"
               ],
               "type": "String",
               "metadata": {
                   "description": "The security rules that are applied to the security group of the Vnet"
               }
           },
           "enableNoPublicIp": {
               "defaultValue": true,
               "type": "Bool"
           },
           "pricingTier": {
               "defaultValue": "premium",
               "allowedValues": [
                   "premium",
                   "standard",
                   "trial"
               ],
               "type": "String",
               "metadata": {
                   "description": "The pricing tier of workspace."
               }
           },
           "privateSubnetName": {
               "defaultValue": "private-subnet",
               "type": "String",
               "metadata": {
                   "description": "The name of the private subnet."
               }
           },
           "publicSubnetName": {
               "defaultValue": "public-subnet",
               "type": "String",
               "metadata": {
                   "description": "The name of the public subnet."
               }
           },
           "vnetId": {
               "type": "String",
               "metadata": {
                   "description": "The virtual network Resource ID."
               }
           }
       },
       "variables": {
           "managedResourceGroupName": "[concat('databricks-rg-', parameters('workspaceName'), '-', uniqueString(parameters('workspaceName'), resourceGroup().id))]",
           "managedResourceGroupId": "[subscriptionResourceId('Microsoft.Resources/resourceGroups', variables('managedResourceGroupName'))]"
        },
        "resources": [
           {
               "type": "Microsoft.Databricks/workspaces",
               "apiVersion": "[parameters('apiVersion')]",
               "name": "[parameters('workspaceName')]",
               "location": "[parameters('location')]",
               "sku": {
                   "name": "[parameters('pricingTier')]"
               },
               "properties": {
                   "ManagedResourceGroupId": "[variables('managedResourceGroupId')]",
                   "publicNetworkAccess": "[parameters('publicNetworkAccess')]",
                   "requiredNsgRules": "[parameters('requiredNsgRules')]",
                   "parameters": {
                       "enableNoPublicIp": {
                           "value": "[parameters('enableNoPublicIp')]"
                       },
                       "customVirtualNetworkId": {
                           "value": "[parameters('vnetId')]"
                       },
                       "customPublicSubnetName": {
                           "value": "[parameters('publicSubnetName')]"
                       },
                       "customPrivateSubnetName": {
                           "value": "[parameters('privateSubnetName')]"
                       }
                   }
               }
           }
       ]
    }
    
    1. Ga naar de pagina Aangepaste implementatie in Azure Portal.

    2. Klik op Uw eigen sjabloon maken in de editor.

    3. Plak de JSON voor de sjabloon die u hebt gekopieerd.

    4. Klik op Opslaan.

    5. Als u Private Link wilt inschakelen, stelt u deze in en requiredNsgRules stelt publicNetworkAccess u parameters in op basis van uw use-case.

      Als u Private Link wilt uitschakelen, stelt u in publicNetworkAccess op true en stelt u deze in requiredNsgRules op AllRules.

    6. Gebruik voor andere velden dezelfde parameters die u hebt gebruikt om de werkruimte te maken, zoals abonnement, regio, werkruimtenaam, subnetnamen, resource-id van het bestaande VNet.

      Belangrijk

      De naam, werkruimtenaam en subnetnamen van de resourcegroep moeten identiek zijn aan uw bestaande werkruimte, zodat deze opdracht de bestaande werkruimte bijwerkt in plaats van een nieuwe werkruimte te maken.

    7. Klik op Controleren + maken.

    8. Als er geen validatieproblemen zijn, klikt u op Maken.

    Het kan 15 minuten duren voordat de netwerkupdate is voltooid.

Een update toepassen met Behulp van Terraform

Voor werkruimten die zijn gemaakt met Terraform, kunt u de werkruimte bijwerken om Private Link te gebruiken.

Belangrijk

U moet versie 3.41.0 of hoger gebruiken terraform-provider-azurerm , dus werk indien nodig een upgrade uit van uw Terraform-providerversie. Eerdere versies proberen de werkruimte opnieuw te maken als u een van deze instellingen wijzigt.

De stappen op hoog niveau zijn:

  1. Wijzig de volgende werkruimte-instellingen:

    • public_network_access_enabled: Instellen op true (ingeschakeld) of false (uitgeschakeld)
    • network_security_group_rules_required: Ingesteld op AllRules of NoAzureDatabricksRules.

    Het kan 15 minuten duren voordat de netwerkupdate is voltooid.

  2. Maak uw privé-eindpunten.

Voor een gedetailleerde handleiding voor het inschakelen van Private Link en het maken van de privé-eindpunten:

Het kan 15 minuten duren voordat de netwerkupdate is voltooid.

Stap 5: Eenmalige aanmelding van gebruikers en back-endconnectiviteit testen

Volg de hoofdimplementatiepagina voor meer informatie over het volgende:

  • Test eenmalige aanmelding van gebruikers voor uw werkruimte.
  • Back-end Private Link-verbinding testen (vereist voor een back-endverbinding)

Stap 6: De update valideren

  1. Ga naar uw Azure Databricks Service-exemplaar in Azure Portal.
  2. Klik in het linkernavigatievenster onder Instellingen op Netwerken.
  3. Controleer of de waarde voor Openbare netwerktoegang toestaan overeenkomt met de waarde die u hebt ingesteld.
  4. Controleer of de waarde voor vereiste NSG-regels overeenkomt met de waarde die u hebt ingesteld.

Foutherstel

Als een update van een werkruimte mislukt, kan de werkruimte worden gemarkeerd als de status Mislukt , wat betekent dat de werkruimte geen rekenbewerkingen kan uitvoeren. Als u een mislukte werkruimte terug wilt herstellen naar de status Actief , raadpleegt u de instructies in het statusbericht van de updatebewerking. Zodra u problemen hebt opgelost, moet u de update opnieuw uitvoeren in de mislukte werkruimte. Herhaal de stappen totdat de update is voltooid. Neem contact op met uw Azure Databricks-accountteam als u vragen hebt.