Udostępnij przez


Włączanie bezpiecznej łączności z klastrem

W tym artykule wyjaśniono, jak używać bezpiecznej łączności klastra dla obszarów roboczych usługi Azure Databricks. Bezpieczna łączność klastra jest również znana jako brak publicznego adresu IP (NPIP). Zasoby obliczeniowe bezserwerowe nie korzystają z bezpiecznej łączności klastra, ale nie mają również publicznych adresów IP.

Omówienie bezpiecznej łączności klastra

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.

  • Każdy klaster inicjuje połączenie z przekaźnikiem bezpiecznej łączności klastra w płaszczyźnie 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 wykonuje zadania administracyjne klastra, te żądania są wysyłane do klastra za pośrednictwem tego tunelu.

Uwaga

Cały ruch sieciowy Azure Databricks pomiędzy klasyczną siecią wirtualną płaszczyzny obliczeniowej (VNet) a płaszczyzną sterowania Azure Databricks przechodzi przez szkieletową sieć Microsoftu, a nie przez internet publiczny. Jest to prawdą, nawet jeśli łączność z bezpiecznym klastrem jest wyłączona.

Możesz włączyć bezpieczne połączenie klastra w nowym obszarze roboczym lub dodać bezpieczne połączenie do istniejącego obszaru roboczego, który już korzysta z iniekcji sieci wirtualnej .

Włącz bezpieczną łączność klastra w nowym obszarze roboczym

Bezpieczna łączność klastra jest automatycznie włączana podczas tworzenia obszaru roboczego przy użyciu witryny Azure Portal lub szablonu usługi Azure Resource Manager (ARM).

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

Możesz włączyć bezpieczną łączność klastra w istniejącym obszarze roboczym przy użyciu portalu Azure, szablonu ARM lub azurerm dostawcy programu Terraform w wersji 3.41.0 lub nowszej. Uaktualnienie wymaga, aby obszar roboczy używał iniekcji sieci wirtualnej.

Ważne

Jeśli używasz zapory lub innych konfiguracji sieci do kontrolowania ruchu przychodzącego lub wychodzącego z klasycznej płaszczyzny obliczeniowej, może być konieczne zaktualizowanie reguł zapory lub sieciowej grupy zabezpieczeń podczas włączania bezpiecznej łączności klastra, aby zmiany zaczęły obowiązywać. Na przykład przy użyciu 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.

Krok 1. Zatrzymanie wszystkich zasobów obliczeniowych

Zatrzymaj wszystkie klasyczne zasoby obliczeniowe, takie jak klastry, pule lub klasyczne magazyny SQL. Usługa Databricks zaleca zaplanowanie czasu uaktualnienia na czas przestoju.

Krok 2. Aktualizowanie obszaru roboczego

Obszar roboczy można zaktualizować przy użyciu witryny Azure Portal, szablonu usługi ARM lub narzędzia Terraform.

Korzystanie z portalu Azure

  1. Przejdź do obszaru roboczego usługi Azure Databricks w witrynie Azure Portal.
  2. W obszarze Nawigacji po lewej stronie w obszarze Ustawienia kliknij pozycję Sieć.
  3. Na karcie Dostęp do sieci ustaw Wdróż obszar roboczy usługi Azure Databricks z bezpiecznym połączeniem klastra (bez publicznego adresu IP) jako włączone.
  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

Użyj szablonu usługi ARM, aby ustawić parametr enableNoPublicIp na wartość True (true).

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 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 Wdrażanie niestandardowe w portalu Azure.

    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, z wyjątkiem enableNoPublicIpelementu , który należy ustawić na true. Ustaw subskrypcję, region, nazwę obszaru roboczego, nazwy podsieci i 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 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ą programu Terraform można zaktualizować obszar roboczy bez ponownego tworzenia go.

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_ip custom_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 instancji obszaru roboczego w 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ę.

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

Jeśli coś pójdzie nie tak podczas wdrażania, możesz tymczasowo cofnąć proces, ustawiając enableNoPublicIp na false. Jednak wyłączenie bezpiecznej łączności klastra jest obsługiwane tylko jako tymczasowe wycofanie 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ść enableNoPublicIpfalse zamiast wartości true.

Wyjście 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 iniekcji sieci wirtualnej, aby zapewnić własną sieć wirtualną, w której ma zostać wdrożony obszar roboczy.

Ważne

Dodatkowe koszty mogą być naliczane z powodu zwiększonego ruchu wychodzącego w przypadku korzystania z bezpiecznej łączności klastra. W przypadku najbezpieczniejszego wdrożenia firma Microsoft i usługa Databricks zdecydowanie zaleca włączenie bezpiecznej łączności klastra.

Wyjście z domyślną (zarządzaną) siecią VNet

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ę NAT dla ruchu wychodzącego z podsieci obszaru roboczego do sieci szkieletowej i publicznej platformy Azure. Brama NAT jest tworzona w zarządzanej grupie zasobów przez Azure Databricks. Nie można zmodyfikować tej grupy zasobów ani żadnych zasobów dostarczonych w niej. Ta brama NAT wiąże się z dodatkowymi kosztami.

Ruch wychodzący z integracją VNet

Jeśli włączysz bezpieczną łączność w klastrze w obszarze roboczym korzystającym z VNet injection, usługa Databricks zaleca, aby obszar roboczy miał stabilny adres publiczny ruchu wychodzącego IP. 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 po 31 marca 2026 r. nowe sieci wirtualne będą domyślnie korzystać z konfiguracji prywatnych bez wychodzącego dostępu do Internetu. Wymaga to jawnych metod łączności wychodzącej w celu uzyskania dostępu do publicznych punktów końcowych i usług firmy Microsoft. Zobacz to ogłoszenie , aby uzyskać więcej informacji. Ta zmiana nie ma wpływu na istniejące obszary robocze. Jednak nowe obszary robocze usługi Azure Databricks wdrożone po tej dacie będą wymagać bezpiecznej metody ruchu wychodzącego, takiej jak brama NAT, aby zapewnić prawidłową funkcjonalność klastra.

Aby zapewnić łączność z Internetem dla wdrożeń, użyj bramy NAT Azure. Skonfiguruj bramę sieciową w obu podsieciach obszaru roboczego, aby upewnić się, że cały ruch wychodzący jest przez nią przekazywany ze stabilnym publicznym adresem IP wychodzącym. Zapewnia to spójną wychodzącą łączność internetową dla klastrów i umożliwia modyfikowanie konfiguracji pod kątem niestandardowych potrzeb ruchu wychodzącego. Można skonfigurować bramę NAT za pomocą szablonu platformy Azure lub z Azure Portal.

Ostrzeżenie

Nie używaj równoważnika obciążenia dla ruchu wychodzącego w obszarze 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.

Najlepsze rozwiązania dotyczące konfiguracji zapory

Zawsze zezwalaj na listę podanych nazw domen (FQDN) dla punktów końcowych przekaźnika SCC zamiast poszczególnych adresów IP. Adresy IP w tych domenach zmieniają się okresowo z powodu aktualizacji infrastruktury.

Klienci, którzy zezwalają na listę określonych adresów IP, mogą napotkać przerwy w działaniu usługi, gdy wystąpią zmiany infrastruktury. Jeśli musisz używać adresów IP, musisz regularnie pobierać najnowsze adresy IP i aktualizować konfiguracje zapory.