Dela via


Aktivera Azure Private Link-serverdels- och klientdelsanslutningar

Den här artikeln sammanfattar användningen av Azure Private Link för att möjliggöra privat anslutning mellan användare och deras Databricks-arbetsytor, och även mellan kluster på det klassiska beräkningsplanet och kärntjänsterna på kontrollplanet i Databricks-arbetsyteinfrastrukturen.

Information om hur du ändrar nätverksåtkomst för serverlösa SQL-lager finns i Konfigurera privat anslutning från serverlös beräkning.

Översikt

Private Link tillhandahåller privata anslutningar från virtuella Azure-nätverk och lokala nätverk till Azure-tjänster utan att exponera trafiken för det offentliga nätverket. Azure Databricks stöder följande Private Link-anslutningstyper:

  • Front-end Private Link, även kallat användare till arbetsyta: Med en private link-klientanslutning kan användare ansluta till Azure Databricks-webbprogrammet, REST API och Databricks Anslut API via en slutpunkt för VNet-gränssnittet. Klientdelsanslutningen används också av JDBC/ODBC- och Power BI-integreringar. Nätverkstrafiken för en Private Link-anslutning på klientsidan mellan ett virtuellt överföringsnätverk och arbetsytans Azure Databricks-kontrollplan passerar Microsofts stamnätverk.
  • Backend Private Link, även kallat beräkningsplan för att styra planet: Databricks Runtime-kluster i ett kundhanterat virtuellt nätverk ( beräkningsplanet) ansluter till en Azure Databricks-arbetsytas kärntjänster ( kontrollplanet) i Azure Databricks-molnkontot. Detta möjliggör privat anslutning från klustren till den säkra slutpunkten för klusteranslutningsreläet och REST API-slutpunkten.
  • Privat slutpunkt för webbläsarautentisering: För att stödja privata klientdelsanslutningar till Azure Databricks-webbprogrammet för klienter som inte har någon offentlig Internetanslutning måste du lägga till en privat slutpunkt för webbläsarautentisering för att stödja återanrop för enkel inloggning (SSO) till Azure Databricks-webbprogrammet från Microsoft Entra ID (tidigare Azure Active Directory). Om du tillåter anslutningar från nätverket till det offentliga Internet rekommenderar vi att du lägger till en privat slutpunkt för webbläsarautentisering, men det krävs inte. En privat slutpunkt för webbläsarautentisering är en privat anslutning med underresurstypen browser_authentication.

Om du implementerar Private Link för både klientdels- och serverdelsanslutningar kan du välja att kräva privat anslutning för arbetsytan, vilket innebär att Azure Databricks avvisar alla anslutningar via det offentliga nätverket. Om du inte vill implementera både klientdels- eller serverdelsanslutningstyper kan du inte framtvinga det här kravet.

Det mesta av den här artikeln handlar om att skapa en ny arbetsyta, men du kan aktivera eller inaktivera Private Link på en befintlig arbetsyta. Se Aktivera eller inaktivera Azure Private Link på en befintlig arbetsyta.

Terminologi

I följande tabell beskrivs viktig terminologi.

Terminologi beskrivning
Azure Private Link En Azure-teknik som tillhandahåller privata anslutningar från virtuella Azure-nätverk och lokala nätverk till Azure-tjänster utan att exponera trafiken för det offentliga nätverket.
Azure Private Link-tjänsten En tjänst som kan vara målet för en Private Link-anslutning. Varje Azure Databricks-kontrollplansinstans publicerar en Azure Private Link-tjänst.
Privat Azure-slutpunkt En privat Azure-slutpunkt möjliggör en privat anslutning mellan ett virtuellt nätverk och en Private Link-tjänst. För klientdels- och serverdelsanslutningar är målet för en privat Azure-slutpunkt Azure Databricks-kontrollplanet.

Allmän information om privata slutpunkter finns i Microsoft-artikeln Vad är en privat slutpunkt?.

Välj standarddistribution eller förenklad distribution

Det finns två typer av Private Link-distribution som Azure Databricks stöder, och du måste välja en:

  • Standarddistribution (rekommenderas): För förbättrad säkerhet rekommenderar Databricks att du använder en separat privat slutpunkt för klientdelsanslutningen från ett separat virtuellt överföringsnätverk. Du kan implementera både klient- och serverdelsanslutningar för Private Link eller bara serverdelsanslutningen. Använd ett separat virtuellt nätverk för att kapsla in användaråtkomst, separat från det virtuella nätverk som du använder för dina beräkningsresurser i det klassiska beräkningsplanet. Skapa separata Private Link-slutpunkter för serverdels- och klientdelsåtkomst. Följ anvisningarna i Aktivera Azure Private Link som en standarddistribution.
  • Förenklad distribution: Vissa organisationer kan inte använda standarddistributionen av olika nätverksprincipskäl, till exempel att inte tillåta mer än en privat slutpunkt eller att inaktivera separata virtuella överföringsnätverk. Du kan också använda den förenklade distributionen av Private Link. Inget separat virtuellt nätverk separerar användaråtkomsten från det virtuella nätverk som du använder för dina beräkningsresurser i det klassiska beräkningsplanet. I stället används ett transitundernät i det virtuella beräkningsplanets virtuella nätverk för användaråtkomst. Det finns bara en enskild Private Link-slutpunkt. Normalt konfigureras både klientdels- och serverdelsanslutningar. Du kan också konfigurera endast serverdelsanslutningen. Du kan inte välja att endast använda klientdelsanslutningarna i den här distributionstypen. Följ anvisningarna i Aktivera Azure Private Link som en förenklad distribution.

Krav

Azure-prenumeration

Din Azure Databricks-arbetsyta måste vara på Premium- eller Enterprise-nivån.

Nätverksarkitektur för Azure Databricks-arbetsyta

  • Din Azure Databricks-arbetsyta måste använda VNet-inmatning för att lägga till en Private Link-anslutning (även en klientdelsanslutning).
  • Om du implementerar private link-anslutningen för serverdelen måste din Azure Databricks-arbetsyta använda säker klusteranslutning (SCC/Ingen offentlig IP/NPIP).
  • Du behöver ett virtuellt nätverk som uppfyller kraven för VNet-inmatning.
    • Som beskrivs i den huvudsakliga VNet-inmatningsartikeln måste du definiera två undernät (som i användargränssnittet kallas för det offentliga undernätet och det privata undernätet). IP-intervallen för virtuella nätverk och undernät som du använder för Azure Databricks definierar det maximala antalet klusternoder som du kan använda samtidigt. Välj dessa värden noggrant.
    • Om du vill implementera private link på klientsidan, private link eller båda, behöver ditt virtuella arbetsytenätverk ett tredje undernät som innehåller Private Link-slutpunkten och dess IP-adressintervall får inte överlappa intervallet för dina andra arbetsyteundernät. Den här artikeln refererar till det tredje undernätet som undernätet för den privata slutpunkten. Exempel och skärmbilder förutsätter undernätets namn private-link. Detta kan vara så litet som CIDR-intervallet /27. Definiera inga NSG-regler för ett undernät som innehåller privata slutpunkter.
    • Om du använder användargränssnittet för att skapa objekt måste du skapa nätverket och undernäten manuellt innan du skapar Azure Databricks-arbetsytan. Om du vill använda en mall skapar mallen som Azure Databricks tillhandahåller ett virtuellt nätverk och lämpliga undernät åt dig, inklusive de två vanliga undernäten plus ett annat för privata slutpunkter.
  • Om du använder en nätverkssäkerhetsgrupp eller brandvägg runt ditt virtuella nätverk måste du tillåta portarna 443, 6666, 3306 och 8443-8451 i det privata slutpunktsundernätet för utgående trafik för anslutningar till Azure Databricks-kontrollplanet, inklusive det säkra klusteranslutningsreläet.
  • Om du har en princip för nätverkssäkerhetsgrupper aktiverad på den privata slutpunkten måste du även tillåta portarna 443, 6666, 3306 och 8443-8451 för ingress i nätverkssäkerhetsgruppen i undernätet där den privata slutpunkten distribueras.
  • Om du vill ansluta mellan ditt nätverk och Azure-portalen och dess tjänster kan du behöva lägga till URL:er för Azure-portalen i listan över tillåtna. Se Tillåt URL:er för Azure-portalen på brandväggen eller proxyservern

Nätverksarkitektur för klientdelsanslutning

Endast för private link i klientdelen måste du lägga till privata anslutningar från nätverket till ditt Azure-nätverk för att användare ska kunna komma åt arbetsytan från ditt lokala nätverk. Lägg till den här anslutningen innan du konfigurerar Private Link. Informationen varierar beroende på om du väljer private link-standarddistributionen eller den förenklade distributionen.

  • För standarddistributionen skulle du skapa eller använda ett befintligt virtuellt transitnätverk, som ibland kallas för ett bastion-VNet eller ett virtuellt hubbnätverk. Det här virtuella nätverket måste kunna nås från den lokala användarmiljön med hjälp av Expressroute eller en VPN-gatewayanslutning. För Private Link i klientdelen rekommenderar Databricks att du skapar ett separat VNet för din anslutning till kontrollplanet i stället för att dela arbetsytans virtuella nätverk. Observera att det virtuella överföringsnätverket och dess undernät kan finnas i samma region, zon och resursgrupp som ditt virtuella arbetsytenätverk och dess undernät, men de behöver inte matcha. Skapa en resursgrupp för det separata virtuella överföringsnätverket och använd en annan privat DNS-zon för den privata slutpunkten. Om du använder två separata privata slutpunkter kan du inte dela DNS-zonen.
  • För den förenklade distributionen skapar du ett transitundernät i ditt virtuella arbetsytenätverk. I den här distributionen har transitundernätet ingen separat privat slutpunkt. Undernätet för överföring i arbetsytans virtuella nätverk använder en enskild privat slutpunkt för både serverdels- och klientdelsanslutningar.

Azure-användarbehörigheter

Som Azure-användare måste du ha läs- och skrivbehörigheter som räcker för att:

  • Etablera en ny Azure Databricks-arbetsyta.
  • Skapa Azure Private Link-slutpunkter i ditt virtuella arbetsytenätverk och även (för klientdelsanvändning) ditt virtuella transitnätverk.

Om användaren som skapade den privata slutpunkten för det virtuella överföringsnätverket inte har behörighet som ägare/deltagare för arbetsytan, måste en separat användare med ägar-/deltagarbehörighet för arbetsytan manuellt godkänna begäran om att skapa den privata slutpunkten.

Du kan aktivera Private Link på en befintlig arbetsyta. Uppgraderingen kräver att arbetsytan använder VNet-inmatning, säker klusteranslutning och premiumprisnivå. Du kan uppdatera till säker klusteranslutning och premiumprisnivån under uppdateringen.

Du kan använda en ARM-mall eller azurerm Terraform-provider version 3.41.0+. Du kan använda Azure-portalen för att tillämpa en anpassad mall och ändra parametern i användargränssnittet. Det finns dock inget stöd för användargränssnittet i Azure Portal för den här uppgraderingen på själva Azure Databricks-arbetsyteinstansen.

Om något går fel med uppgraderingen och du kan upprepa uppdateringssteget för arbetsytan men i stället ange fälten för att inaktivera Private Link.

Även om fokus i det här avsnittet är att aktivera Private Link på en befintlig arbetsyta kan du inaktivera den på en befintlig arbetsyta med hjälp av samma uppdateringsanrop för arbetsytan med ARM-mallen eller en Terraform-uppdatering. Mer information finns i steg 4: Använd uppdateringen av arbetsytan.

Steg 1: Läs kraven och dokumentationen på den här sidan

Innan du försöker uppgradera till Private Link finns det viktiga begrepp och krav som du bör läsa:

  1. Läs den här artikeln med begrepp och krav innan du fortsätter.
  2. Avgör om du vill använda standarddistributionen eller den förenklade distributionen.
  3. På sidan för standarddistribution eller förenklad distribution (beroende på vilken metod du använder) granskar du noggrant sidan med de olika scenarierna. Hitta det scenario som matchar ditt användningsfall. Skriv ned vilka värden du tänker använda för publicNetworkAccess och requiredNsgRules. För den rekommenderade konfigurationen av både klientdelen och serverdelen Private Link med klientdelsanslutningen låst använder du inställningarna publicNetworkAccess=Disabled och requiredNsgRules=NoAzureDatabricksRules

Steg 2: Stoppa alla beräkningsresurser

Innan du försöker utföra den här uppgraderingen måste du stoppa alla beräkningsresurser, till exempel kluster, pooler eller klassiska SQL-lager. Inga beräkningsresurser för arbetsytan kan köras eller så misslyckas uppgraderingsförsöket. Databricks rekommenderar att du planerar tidpunkten för uppgraderingen för stilleståndstid.

Viktigt!

Försök inte starta några beräkningsresurser under uppdateringen. Om Azure Databricks fastställer att beräkningsresurser har startats (eller fortfarande startar) avslutar Azure Databricks dem efter uppdateringen.

Steg 3: Skapa undernät och privata slutpunkter

  1. Lägg till ett undernät i ditt virtuella arbetsytenätverk för dina privata slutpunkter i serverdelen.

  2. Öppna artikeln för standarddistribution eller förenklad distribution (beroende på vilken metod du använder).

    Följ anvisningarna på den sidan för att skapa de privata slutpunkter som matchar din typ av distribution.

  3. Skapa alla dina privata slutpunkter för backend-stöd innan du uppdaterar arbetsytan.

  4. För åtkomst till användargränssnittet skapar du en privat slutpunkt med underresurs databricks_ui_api för att stödja enkel inloggning från ditt virtuella transitnätverk. Om du har fler än ett virtuellt överföringsnätverk som har åtkomst till arbetsytan för klientdelsåtkomst skapar du flera privata slutpunkter med underresursen databricks_ui_api.

Steg 4: Tillämpa uppdateringen av arbetsytan

I stället för att skapa en ny arbetsyta måste du använda arbetsyteuppdateringen.

Du måste uppdatera parametrarna publicNetworkAccess och requiredNsgRules till de värden som du valde i ett tidigare steg.

Använd någon av följande metoder:

Använda en uppdaterad ARM-mall med Hjälp av Azure-portalen

Kommentar

Om den hanterade resursgruppen har ett anpassat namn måste du ändra mallen i enlighet med detta. Kontakta ditt Azure Databricks-kontoteam om du vill ha mer information.

  1. Kopiera följande uppgradering av ARM-mallenS JSON:

    {
       "$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. Gå till sidan anpassad distribution i Azure-portalen.

    2. Klicka på Skapa en egen mall i redigeraren.

    3. Klistra in JSON för mallen som du kopierade.

    4. Klicka på Spara.

    5. Om du vill aktivera Private Link anger publicNetworkAccess du och requiredNsgRules parametrar enligt ditt användningsfall.

      Om du vill inaktivera Private Link anger du publicNetworkAccess till true och anger requiredNsgRules till AllRules.

    6. För andra fält använder du samma parametrar som du använde för att skapa arbetsytan, till exempel prenumeration, region, arbetsytenamn, undernätsnamn, resurs-ID för det befintliga virtuella nätverket.

      Viktigt!

      Resursgruppens namn, arbetsytenamn och undernätsnamn måste vara identiska med din befintliga arbetsyta så att det här kommandot uppdaterar den befintliga arbetsytan i stället för att skapa en ny arbetsyta.

    7. Klicka på Granska + Skapa.

    8. Om det inte finns några verifieringsproblem klickar du på Skapa.

    Nätverksuppdateringen kan ta över 15 minuter att slutföra.

Tillämpa en uppdatering med Terraform

För arbetsytor som skapats med Terraform kan du uppdatera arbetsytan så att den använder Private Link.

Viktigt!

Du måste använda terraform-provider-azurerm version 3.41.0 eller senare, så uppgradera Terraform-providerversionen efter behov. Tidigare versioner försöker återskapa arbetsytan om du ändrar någon av dessa inställningar.

De övergripande stegen är:

  1. Ändra följande inställningar för arbetsytan:

    • public_network_access_enabled: Ange till true (aktiverad) eller false (inaktiverad)
    • network_security_group_rules_required: Ange till AllRules eller NoAzureDatabricksRules.

    Nätverksuppdateringen kan ta över 15 minuter att slutföra.

  2. Skapa dina privata slutpunkter.

En detaljerad guide för hur du aktiverar Private Link och skapar de privata slutpunkterna:

Nätverksuppdateringen kan ta över 15 minuter att slutföra.

Steg 5: Testa användarens SSO-autentisering och serverdelsanslutning

Följ huvuddistributionssidan för mer information om hur du gör:

  • Testa användarens SSO-autentisering till din arbetsyta.
  • Testa private link-anslutningen för serverdelen (krävs för en serverdelsanslutning)

Steg 6: Verifiera uppdateringen

  1. Gå till din Azure Databricks Service-instans i Azure-portalen.
  2. I det vänstra navigeringsfältet under Inställningar klickar du på Nätverk.
  3. Bekräfta att värdet för Tillåt åtkomst till offentligt nätverk matchar det värde som du har angett.
  4. Kontrollera att värdet för Obligatoriska NSG-regler matchar det värde som du har angett.

Återställning vid fel

Om en uppdatering av arbetsytan misslyckas kan arbetsytan markeras som ett feltillstånd , vilket innebär att arbetsytan inte kan utföra beräkningsåtgärder. Om du vill återställa en misslyckad arbetsyta tillbaka till aktivt tillstånd läser du anvisningarna i statusmeddelandet för uppdateringsåtgärden. När du har åtgärdat eventuella problem gör du om uppdateringen på den misslyckade arbetsytan. Upprepa stegen tills uppdateringen har slutförts. Om du har frågor kontaktar du ditt Azure Databricks-kontoteam.