Udostępnij za pośrednictwem


Bezpieczna łączność z klastrem

Po włączeniu bezpiecznej łączności klastra sieci wirtualne klienta nie mają otwartych portów i zasobów obliczeniowych w klasycznej płaszczyźnie obliczeniowej nie mają publicznych adresów IP. Bezpieczna łączność klastra jest również znana jako Brak publicznego adresu IP (NPIP).

  • Na poziomie sieci każdy klaster inicjuje połączenie z bezpiecznym przekaźnikiem łączności klastra płaszczyzny sterowania podczas tworzenia klastra. Klaster ustanawia to połączenie przy użyciu portu 443 (HTTPS) i używa innego adresu IP niż jest używany dla aplikacji internetowej i interfejsu API REST.
  • Gdy płaszczyzna sterowania logicznie uruchamia nowe zadania środowiska Databricks Runtime lub wykonuje inne zadania administracyjne klastra, te żądania są wysyłane do klastra za pośrednictwem tego tunelu.
  • Płaszczyzna obliczeniowa (sieć wirtualna) nie ma otwartych portów, a klasyczne zasoby płaszczyzny obliczeniowej nie mają publicznych adresów IP.

Korzyści:

  • Łatwa administracja siecią bez konieczności konfigurowania portów w grupach zabezpieczeń ani konfigurowania komunikacji równorzędnej sieci.
  • Dzięki ulepszonym bezpieczeństwu i prostej administracji sieci zespoły ds. zabezpieczeń informacji mogą przyspieszyć zatwierdzanie usługi Databricks jako dostawcy paaS.

Uwaga

Cały ruch sieciowy usługi Azure Databricks między klasyczną siecią wirtualną płaszczyzny obliczeniowej a płaszczyzną sterowania usługi Azure Databricks przechodzi przez sieć szkieletową sieci firmy Microsoft, a nie przez publiczny Internet. Jest to prawdą, nawet jeśli łączność z bezpiecznym klastrem jest wyłączona.

Mimo że bezserwerowa płaszczyzna obliczeniowa nie używa bezpiecznego przekaźnika łączności klastra dla klasycznej płaszczyzny obliczeniowej, bezserwerowe magazyny SQL nie mają publicznych adresów IP.

Bezpieczna łączność z klastrem

Używanie bezpiecznej łączności klastra

Aby użyć bezpiecznej łączności klastra z nowym obszarem roboczym usługi Azure Databricks, użyj dowolnej z poniższych opcji.

  • Witryna Azure Portal: po aprowizacji obszaru roboczego przejdź do karty Sieć i ustaw opcję Wdróż obszar roboczy usługi Azure Databricks z bezpieczną łącznością klastra (bez publicznego adresu IP) na Wartość Tak.
  • Szablony usługi ARM: dla Microsoft.Databricks/workspaces zasobu, który tworzy nowy obszar roboczy, ustaw enableNoPublicIp parametr logiczny na truewartość .

Ważne

W obu przypadkach należy zarejestrować dostawcę Microsoft.ManagedIdentity zasobów platformy Azure w subskrypcji platformy Azure używanej do uruchamiania obszarów roboczych z bezpieczną łącznością klastra. Jest to jednorazowa operacja na subskrypcję. Aby uzyskać instrukcje, zobacz Dostawcy zasobów i typy platformy Azure.

Możesz dodać bezpieczną łączność klastra do istniejącego obszaru roboczego, który już używa iniekcji sieci wirtualnej. Zobacz Dodawanie bezpiecznej łączności klastra z istniejącym obszarem roboczym.

Jeśli używasz szablonów usługi ARM, dodaj parametr do jednego z następujących szablonów, na podstawie tego, czy chcesz, aby usługa Azure Databricks utworzyła domyślną (zarządzaną) sieć wirtualną dla obszaru roboczego lub jeśli chcesz użyć własnej sieci wirtualnej, znanej również jako iniekcja sieci wirtualnej. Iniekcja sieci wirtualnej to opcjonalna funkcja, która umożliwia udostępnianie własnej sieci wirtualnej do hostowania nowych klastrów usługi Azure Databricks.

Ruch wychodzący z podsieci obszaru roboczego

Po włączeniu bezpiecznej łączności klastra obie podsieci obszaru roboczego są podsieciami prywatnymi, ponieważ węzły klastra nie mają publicznych adresów IP.

Szczegóły implementacji ruchu wychodzącego sieci różnią się w zależności od tego, czy używasz domyślnej (zarządzanej) sieci wirtualnej, czy też używasz opcjonalnej funkcji iniekcji sieci wirtualnej, aby zapewnić własną sieć wirtualną, w której ma zostać wdrożony obszar roboczy. Szczegółowe informacje można znaleźć w poniższych sekcjach.

Ważne

Dodatkowe koszty mogą być naliczane z powodu zwiększonego ruchu wychodzącego w przypadku korzystania z bezpiecznej łączności klastra. W przypadku mniejszej organizacji, która wymaga rozwiązania zoptymalizowanego pod kątem kosztów, można wyłączyć bezpieczną łączność klastra podczas wdrażania obszaru roboczego. Jednak w przypadku najbezpieczniejszego wdrożenia firma Microsoft i usługa Databricks zdecydowanie zaleca włączenie bezpiecznej łączności klastra.

Ruch wychodzący z domyślną (zarządzaną) siecią wirtualną

Jeśli używasz bezpiecznej łączności klastra z domyślną siecią wirtualną tworzoną przez usługę Azure Databricks, usługa Azure Databricks automatycznie tworzy bramę translatora adresów sieciowych dla ruchu wychodzącego z podsieci obszaru roboczego do sieci szkieletowej i publicznej platformy Azure. Brama translatora adresów sieciowych jest tworzona w zarządzanej grupie zasobów zarządzanej przez usługę Azure Databricks. Nie można zmodyfikować tej grupy zasobów ani żadnych zasobów aprowizowania w niej.

Automatycznie utworzona brama translatora adresów sieciowych wiąże się z dodatkowymi kosztami.

Ruch wychodzący z iniekcją sieci wirtualnej

Jeśli włączysz bezpieczną łączność klastra w obszarze roboczym korzystającym z iniekcji sieci wirtualnej, usługa Databricks zaleca, aby obszar roboczy miał stabilny publiczny adres IP ruchu wychodzącego.

Stabilne publiczne adresy IP ruchu wychodzącego są przydatne, ponieważ można je dodać do zewnętrznych list dozwolonych. Na przykład aby nawiązać połączenie z usługi Azure Databricks z usługą Salesforce przy użyciu stabilnego wychodzącego adresu IP.

Ostrzeżenie

Firma Microsoft ogłosiła, że 30 września 2025 r. zostanie wycofana domyślna łączność dostępu wychodzącego dla maszyn wirtualnych na platformie Azure. Zobacz to ogłoszenie. Oznacza to, że istniejące obszary robocze usługi Azure Databricks korzystające z domyślnego dostępu wychodzącego zamiast stabilnego publicznego adresu IP ruchu wychodzącego mogą nie nadal działać po tej dacie. Usługa Databricks zaleca dodanie jawnych metod ruchu wychodzącego dla obszarów roboczych przed tą datą.

Wybierz jedną z następujących opcji:

  • W przypadku wdrożeń, które wymagają dostosowania, wybierz bramę translatora adresów sieciowych platformy Azure. Skonfiguruj bramę w obu podsieciach obszaru roboczego, aby upewnić się, że cały ruch wychodzący do sieci szkieletowej platformy Azure i sieci publicznej odbywa się przez nią. Klastry mają stabilny publiczny adres IP ruchu wychodzącego i można zmodyfikować konfigurację dla niestandardowych potrzeb ruchu wychodzącego. To rozwiązanie można zaimplementować przy użyciu szablonu platformy Azure lub witryny Azure Portal.
  • W przypadku wdrożeń ze złożonymi wymaganiami dotyczącymi routingu lub wdrożeniami korzystającymi z iniekcji sieci wirtualnej z zaporą ruchu wychodzącego, taką jak usługa Azure Firewall lub inne niestandardowe architektury sieciowe, można użyć tras niestandardowych nazywanych trasami zdefiniowanymi przez użytkownika (UDR). Trasy zdefiniowane przez użytkownika zapewniają prawidłowe kierowanie ruchu sieciowego dla obszaru roboczego bezpośrednio do wymaganych punktów końcowych lub przez zaporę ruchu wychodzącego. Jeśli używasz takiego rozwiązania, musisz dodać trasy bezpośrednie lub dozwolone reguły zapory dla przekaźnika bezpiecznej łączności klastra usługi Azure Databricks i innych wymaganych punktów końcowych wymienionych w ustawieniach trasy zdefiniowanej przez użytkownika dla usługi Azure Databricks.

Ostrzeżenie

Nie używaj modułu równoważenia obciążenia ruchu wychodzącego z obszarem roboczym, który ma włączoną bezpieczną łączność z klastrem. W systemach produkcyjnych moduł równoważenia obciążenia ruchu wychodzącego może prowadzić do ryzyka wyczerpania portów.

Dodawanie bezpiecznej łączności klastra z istniejącym obszarem roboczym

W istniejącym obszarze roboczym można włączyć bezpieczną łączność z klastrem. Uaktualnienie wymaga, aby obszar roboczy używał iniekcji sieci wirtualnej.

Możesz użyć interfejsu użytkownika portalu, szablonu usługi ARM lub azurerm dostawcy programu Terraform w wersji 3.41.0 lub nowszej. Za pomocą witryny Azure Portal można zastosować szablon niestandardowy i zmodyfikować parametr w interfejsie użytkownika. Możesz również uaktualnić wystąpienie obszaru roboczego usługi Azure Databricks w interfejsie użytkownika witryny Azure Portal.

Ważne

Przed wprowadzeniem tej zmiany, jeśli używasz zapory lub innych zmian konfiguracji sieci w celu kontrolowania ruchu przychodzącego lub wychodzącego z klasycznej płaszczyzny obliczeniowej, może być konieczne zaktualizowanie reguł zapory lub sieciowej grupy zabezpieczeń w tym samym czasie, co te zmiany w celu ich pełnego zastosowania. Na przykład w przypadku bezpiecznej łączności klastra istnieje dodatkowe połączenie wychodzące z płaszczyzną sterowania, a połączenia przychodzące z płaszczyzny sterowania nie są już używane.

Jeśli coś pójdzie nie tak z uaktualnieniem i trzeba będzie tymczasowo wycofać zmianę, zobacz temat Tymczasowe wycofanie uaktualnienia do bezpiecznej łączności klastra.

Krok 1. Zatrzymanie wszystkich zasobów obliczeniowych

Przed podjęciem próby uaktualnienia należy zatrzymać wszystkie zasoby obliczeniowe, takie jak klastry, pule lub klasyczne magazyny SQL. Nie można uruchomić żadnych zasobów obliczeniowych obszaru roboczego lub próba uaktualnienia nie powiedzie się. Usługa Databricks zaleca zaplanowanie czasu uaktualnienia na czas pracy.

Krok 2. Aktualizowanie obszaru roboczego

Należy zaktualizować parametr Brak publicznego adresu IP (w szablonie jest enableNoPublicIpto ). Ustaw ją na wartość True (true).

Użyj jednej z następujących metod:

Korzystanie z interfejsu użytkownika witryny Azure Portal (bez szablonu)

  1. Przejdź do wystąpienia usługi Azure Databricks Service w witrynie Azure Portal.

  2. W obszarze Nawigacji po lewej stronie w obszarze Ustawienia kliknij pozycję Sieć.

  3. Wybierz pozycję Brak publicznego adresu IP.

    Uwaga

    Jednocześnie można włączyć usługę Azure Private Link , ustawiając wartości Zezwalaj na dostęp do sieci publicznej Wymagane reguły sieciowej grupy zabezpieczeń do odpowiednich wartości dla danego przypadku użycia. Jednak do włączenia usługi Private Link jest wymagana dodatkowa konfiguracja i weryfikacja, dlatego można to zrobić jako oddzielny krok po tej aktualizacji w celu zapewnienia bezpiecznej łączności z klastrem. Aby uzyskać ważne szczegóły i wymagania, zobacz włączanie usługi Azure Private Link.

  4. Kliknij przycisk Zapisz.

Ukończenie aktualizacji sieci może potrwać ponad 15 minut.

Stosowanie zaktualizowanego szablonu usługi ARM przy użyciu witryny Azure Portal

Uwaga

Jeśli zarządzana grupa zasobów ma niestandardową nazwę, należy odpowiednio zmodyfikować szablon. Aby uzyskać więcej informacji, skontaktuj się z zespołem konta usługi Azure Databricks.

  1. Skopiuj następujący kod JSON szablonu uaktualnienia usługi ARM:

      {
        "$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"
                }
            },
            "enableNoPublicIp": {
                "defaultValue": true,
                "type": "Bool"
            },
            "pricingTier": {
                "defaultValue": "premium",
                "allowedValues": [
                    "premium",
                    "standard",
                    "trial"
                ],
                "type": "String",
                "metadata": {
                    "description": "The pricing tier of workspace."
                }
            },
            "publicNetworkAccess": {
              "type": "string",
              "defaultValue": "Enabled",
              "allowedValues": [
                "Enabled",
                "Disabled"
              ],
              "metadata": {
                "description": "Indicates whether public network access is allowed to the workspace - possible values are Enabled or Disabled."
              }
            },
            "requiredNsgRules": {
              "type": "string",
              "defaultValue": "AllRules",
              "allowedValues": [
                "AllRules",
                "NoAzureDatabricksRules"
              ],
              "metadata": {
                "description": "Indicates whether to retain or remove the AzureDatabricks outbound NSG rule - possible values are AllRules or NoAzureDatabricksRules."
              }
            }
            },
        "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')]"
                        }
                    }
                }
            }
        ]
    }
    
    1. Przejdź do strony niestandardowego wdrażania w witrynie Azure Portal.

    2. Kliknij pozycję Utwórz własny szablon w edytorze.

    3. Wklej kod JSON skopiowanego szablonu.

    4. Kliknij przycisk Zapisz.

    5. Wypełnij parametry.

    6. Aby zaktualizować istniejący obszar roboczy, użyj tych samych parametrów, które użyto do utworzenia obszaru roboczego innego niż enableNoPublicIp , dla którego musisz ustawić truewartość . Ustaw subskrypcję, region, nazwę obszaru roboczego, nazwy podsieci, identyfikator zasobu istniejącej sieci wirtualnej.

      Ważne

      Nazwa grupy zasobów, nazwa obszaru roboczego i nazwy podsieci są identyczne z istniejącym obszarem roboczym, dzięki czemu to polecenie aktualizuje istniejący obszar roboczy zamiast tworzyć nowy obszar roboczy.

    7. Kliknij pozycję Przejrzyj i utwórz.

    8. Jeśli nie ma problemów z walidacją, kliknij przycisk Utwórz.

    Ukończenie aktualizacji sieci może potrwać ponad 15 minut.

Stosowanie aktualizacji przy użyciu narzędzia Terraform

W przypadku obszarów roboczych utworzonych za pomocą narzędzia Terraform można zaktualizować obszar roboczy bez ponownego tworzenia obszaru roboczego.

Ważne

Musisz użyć terraform-provider-azurerm wersji 3.41.0 lub nowszej, więc w razie potrzeby uaktualnij wersję dostawcy programu Terraform. Wcześniejsze wersje próbują odtworzyć obszar roboczy, jeśli zmienisz dowolne z tych ustawień.

Zmień następujące ustawienia obszaru roboczego:

  • no_public_ipcustom_parameters w bloku można zmienić z false na true.

Ukończenie aktualizacji sieci może potrwać ponad 15 minut.

Krok 3. Weryfikowanie aktualizacji

Gdy obszar roboczy jest w stanie aktywnym, zadanie aktualizacji zostanie ukończone. Sprawdź, czy aktualizacja została zastosowana:

  1. Otwórz usługę Azure Databricks w przeglądarce internetowej.

  2. Uruchom jeden z klastrów obszaru roboczego i zaczekaj na pełne uruchomienie klastra.

  3. Przejdź do wystąpienia obszaru roboczego w witrynie Azure Portal.

  4. Kliknij niebieski identyfikator obok etykiety pola Zarządzana grupa zasobów.

  5. W tej grupie znajdź maszyny wirtualne dla klastra i kliknij jedną z nich.

  6. W obszarze Ustawienia maszyny wirtualnej w obszarze Właściwości wyszukaj pola w obszarze Sieć .

  7. Upewnij się, że pole Publiczny adres IP jest puste.

    Jeśli zostanie ona wypełniona, maszyna wirtualna ma publiczny adres IP, co oznacza, że aktualizacja nie powiodła się.

Odzyskiwanie po awarii

Jeśli aktualizacja obszaru roboczego nie powiedzie się, obszar roboczy może być oznaczony jako stan Niepowodzenie , co oznacza, że obszar roboczy nie może wykonać operacji obliczeniowych. Aby przywrócić stan aktywnego obszaru roboczego, przejrzyj instrukcje w komunikacie o stanie operacji aktualizacji. Po rozwiązaniu wszelkich problemów wykonaj ponownie aktualizację w obszarze roboczym, który zakończył się niepowodzeniem. Powtórz kroki do momentu pomyślnego ukończenia aktualizacji.

Tymczasowe wycofanie uaktualnienia do bezpiecznej łączności z klastrem

Jeśli coś pójdzie nie tak podczas wdrażania, możesz cofnąć proces jako tymczasowe wycofanie, ale wyłączenie SCC w obszarze roboczym jest nieobsługiwane inaczej niż w przypadku tymczasowego wycofywania przed kontynuowaniem uaktualnienia później. Jeśli jest to konieczne tymczasowo, możesz postępować zgodnie z powyższymi instrukcjami dotyczącymi uaktualniania, ale ustawić wartość enableNoPublicIp false zamiast wartości true.