Udostępnij za pośrednictwem


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). Mimo że bezserwerowa płaszczyzna obliczeniowa nie korzysta z bezpiecznej łączności klastra, zasoby obliczeniowe bezserwerowe nie mają 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 usługi Azure Databricks między klasyczną siecią wirtualną płaszczyzny obliczeniowej a płaszczyzną sterowania usługi Azure Databricks przechodzi przez sieć szkieletową firmy Microsoft, a nie przez publiczny Internet. 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

Możesz włączyć bezpieczną łączność klastra 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 witryny Azure Portal, szablonu usługi 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 sieciowej lub dokonujesz innych zmian konfiguracji sieci w celu kontrolowania ruchu przychodzącego lub wychodzącego z klasycznej platformy obliczeniowej, może być konieczne zaktualizowanie reguł zapory lub reguł grupy zabezpieczeń sieciowych równocześnie z tymi zmianami, aby zostały one w pełni zastosowane. 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 pracy.

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), aby 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 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_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 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ę.

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

Jeśli coś pójdzie nie tak podczas wdrażania, można cofnąć proces jako tymczasowe wycofanie, ale wyłączenie SCC w obszarze roboczym nie jest obsł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ść enableNoPublicIpfalse zamiast wartości true.

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 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.

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. Ta brama NAT wiąże się z dodatkowymi kosztami.

Ruch wychodzący z iniekcją sieci wirtualnej

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 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ą.

Aby dodać jawne metody ruchu wychodzącego dla obszaru roboczego, użyj bramy translatora adresów sieciowych platformy Azure lub tras zdefiniowanych przez użytkownika (UDR).

  • Azure NAT gateway: użyj Azure NAT gateway, jeśli twoje wdrożenia potrzebują jedynie pewnego stopnia dostosowania. 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. Można to skonfigurować przy użyciu szablonu platformy Azure lub witryny Azure Portal.
  • trasy zdefiniowane przez użytkownika: Użyj tras zdefiniowanych przez użytkownika, jeśli twoje wdrożenia wymagają złożonych wymagań dotyczących routingu lub jeśli twoje obszary robocze używają iniekcji sieci wirtualnej wraz z zaporą ruchu wychodzącego. 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. Aby korzystać z tras zdefiniowanych przez użytkownika, należy dodać bezpośrednie trasy 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 ustawienia tras zdefiniowanych 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.