Поделиться через


Включение безопасного подключения к кластеру

В этой статье объясняется, как использовать безопасное подключение к кластеру для рабочих областей Azure Databricks. Безопасное подключение к кластеру также называется отсутствием общедоступного IP-адреса (NPIP). Хотя бессерверная плоскость вычислений не использует безопасное подключение к кластеру, бессерверные вычислительные ресурсы не имеют общедоступных IP-адресов.

Общие сведения о защищенном подключении к кластеру

При включении безопасного подключения к кластеру виртуальные сети клиентов не имеют открытых портов и вычислительных ресурсов в классической вычислительной плоскости нет общедоступных IP-адресов.

  • Каждый кластер инициирует подключение к безопасному ретранслятору подключения кластера уровня управления во время создания кластера. Кластер устанавливает это подключение с помощью порта 443 (HTTPS) и использует другой IP-адрес, отличный от используемого для веб-приложения и REST API.
  • Когда плоскость управления выполняет задачи администрирования кластера, эти запросы отправляются в кластер через этот туннель.

Примечание.

Весь сетевой трафик Azure Databricks между классической виртуальной сетью плоскости вычислений и плоскостью управления Azure Databricks проходит через магистральной сети Майкрософт, а не через общедоступный Интернет. Это справедливо, даже если безопасное подключение к кластеру отключено.

Вы можете включить безопасное подключение к кластеру в новой рабочей области или добавить его в существующую рабочую область, уже использующую внедрение виртуальной сети .

Включение безопасного подключения к кластеру в новой рабочей области

Вы можете включить безопасное подключение к кластеру при создании рабочей области с помощью портала Azure или шаблона Azure Resource Manager (ARM).

Добавление безопасного подключения к кластеру в существующую рабочую область

Вы можете включить безопасное подключение к кластеру в существующей рабочей области с помощью портала Azure, шаблона ARM или azurerm поставщика Terraform версии 3.41.0+. Для обновления требуется, чтобы рабочая область использовала внедрение виртуальной сети.

Внимание

Если вы используете брандмауэр или другие изменения конфигурации сети для управления входящего трафика или исходящего трафика из классической вычислительной плоскости, может потребоваться обновить правила брандмауэра или группы безопасности сети одновременно, чтобы эти изменения вступили в силу. Например, при использовании безопасного подключения к кластеру существует дополнительное исходящее подключение к плоскости управления, а входящие подключения из плоскости управления больше не используются.

Шаг 1. Остановка всех вычислительных ресурсов

Остановите все классические вычислительные ресурсы, такие как кластеры, пулы или классические хранилища SQL. Databricks рекомендует планировать время обновления на время простоя.

шаг 2. Обновление рабочей области

Вы можете обновить рабочую область с помощью портала Azure, шаблона ARM или Terraform.

Использование портала Azure

  1. Перейдите в рабочую область Azure Databricks на портале Azure.
  2. В области навигации слева в разделе "Параметры" щелкните "Сеть".
  3. На вкладке сетевого доступа установите развертывание рабочей области Azure Databricks с безопасным подключением к кластеру (без общедоступного IP-адреса) на включено.
  4. Нажмите кнопку Сохранить.

Обновление сети может занять более 15 минут.

Применение обновленного шаблона ARM с помощью портал Azure

Используйте шаблон ARM, чтобы установить значение параметра enableNoPublicIp в True (true).

Примечание.

Если у управляемой группы ресурсов есть пользовательское имя, необходимо соответствующим образом изменить шаблон. Чтобы получить дополнительные сведения, обратитесь к группе учетной записи Azure Databricks.

  1. Скопируйте следующий код JSON шаблона 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. Перейдите на страницу портал Azure настраиваемого развертывания.

    2. Выберите Создать собственный шаблон в редакторе.

    3. Вставьте файл JSON для скопированного шаблона.

    4. Нажмите кнопку Сохранить.

    5. Заполните параметры.

    6. Чтобы обновить существующую рабочую область, используйте те же параметры, которые использовались для создания рабочей области, отличной от enableNoPublicIp, которую необходимо задать для true. Задайте подписку, регион, имя рабочей области, имена подсетей, идентификатор ресурса существующей виртуальной сети.

      Внимание

      Имя группы ресурсов, имя рабочей области и имена подсетей идентичны существующей рабочей области, чтобы эта команда обновляла существующую рабочую область, а не создавала новую рабочую область.

    7. Щелкните Просмотр и создание.

    8. Если нет проблем с проверкой, нажмите кнопку Создать.

    Обновление сети может занять более 15 минут.

Применить обновление с помощью Terraform

Для рабочих областей, созданных с помощью Terraform, можно обновить рабочую область без повторного создания рабочей области.

Внимание

Необходимо использовать terraform-provider-azurerm версию 3.41.0 или более позднюю, поэтому при необходимости обновите версию поставщика Terraform. Предыдущие версии пытаются повторно создать рабочую область при изменении любого из этих параметров.

Измените следующие параметры рабочей области:

  • no_public_ip custom_parameters в блоке можно изменить на falsetrue.

Обновление сети может занять более 15 минут.

шаг 3. Проверка обновления

Когда рабочая область находится в активном состоянии, задание обновления будет завершено. Убедитесь, что обновление было применено:

  1. Откройте Azure Databricks в веб-браузере.

  2. Запустите один из кластеров рабочей области и дождитесь завершения работы кластера.

  3. Перейдите к экземпляру рабочей области в портал Azure.

  4. Щелкните синий идентификатор рядом с меткой поля Managed Resource Group.

  5. В этой группе найдите виртуальные машины для кластера и щелкните один из них.

  6. В параметрах виртуальной машины в разделе "Свойства" найдите поля в области "Сеть ".

  7. Убедитесь, что поле общедоступного IP-адреса пусто.

    Если он заполнен, виртуальная машина имеет общедоступный IP-адрес, то есть обновление завершилось сбоем.

Временный откат обновления до безопасного подключения к кластеру

Если во время развертывания что-то пойдет не так, можно отменить процесс развертывания для временного отката. Отключение SCC в рабочей области не поддерживается, за исключением временного отката, прежде чем продолжить позднее обновление. Если это необходимо временно, можно следовать приведенным выше инструкциям по обновлению, но присвоить enableNoPublicIp значение false вместо true.

Исходящий трафик и подсети рабочей области

При включении безопасного подключения к кластеру обе подсети вашей рабочей области являются частными подсетями, так как узлы кластера не имеют общедоступных IP-адресов.

Сведения о реализации исходящего трафика сети зависят от того, используете ли вы виртуальную сеть по умолчанию (управляемую) или используете функцию внедрения виртуальной сети для предоставления возможности развернуть собственную виртуальную сеть, в которой будет развернута рабочая область.

Внимание

Из-за увеличения исходящего трафика при использовании безопасного подключения к кластеру могут возникать дополнительные затраты. Для наиболее безопасного развертывания Корпорация Майкрософт и Databricks настоятельно рекомендует включить безопасное подключение к кластеру.

Исходящий трафик и виртуальная сеть по умолчанию (управляемая)

Если вы используете безопасное подключение кластера с виртуальной сетью по умолчанию, которую создает Azure Databricks, Azure Databricks автоматически создаст шлюз NAT для исходящего трафика из подсетей вашей рабочей области в магистральную и общедоступную сеть Azure. Шлюз NAT создается в управляемой группе ресурсов, управляемой Azure Databricks. Вы не можете изменить эту группу ресурсов или ресурсы, подготовленные в ней. Этот шлюз NAT несет дополнительные затраты.

Исходящий трафик с внедрением виртуальной сети

Если вы включите безопасное подключение к кластеру в рабочей области, использующую внедрение виртуальной сети, Databricks рекомендует, чтобы в вашей рабочей области был стабильный исходящий общедоступный IP-адрес. Стабильные исходящие общедоступные IP-адреса полезны, так как их можно добавить во внешние списки разрешений. Например, чтобы подключиться из Azure Databricks к Salesforce с стабильным исходящим IP-адресом.

Предупреждение

Корпорация Майкрософт объявила, что 30 сентября 2025 г. подключение к исходящему доступу по умолчанию для виртуальных машин в Azure будет прекращено. См . это объявление. Это означает, что существующие рабочие области Azure Databricks, использующие исходящий доступ по умолчанию, а не стабильный исходящий общедоступный IP-адрес, могут продолжать работать после этой даты. Databricks рекомендует добавлять явные исходящие методы для рабочих областей до этой даты.

Чтобы добавить явные методы исходящих подключений для рабочей области, используйте шлюз Azure NAT или пользовательские маршруты (UDR).

  • шлюз NAT Azure: используйте шлюз NAT Azure, если вашим развертываниям требуется только небольшая настройка. Настройте шлюз в обеих подсетях рабочей области, чтобы весь исходящий трафик в магистральную сеть Azure и общедоступную сеть проходил через него. Кластеры имеют стабильный исходящий общедоступный IP-адрес, и вы можете изменить конфигурацию для собственных нужд, связанных с исходящим трафиком. Это можно настроить с помощью шаблона Azure или на портале Azure.
  • таблицы маршрутизации, определяемые пользователем (UDR). Используйте UDR, если для развертываний требуются сложные маршрутизационные требования или рабочие области используют внедрение виртуальной сети (VNet) с брандмауэром для исходящего трафика. Определяемые пользователем маршруты обеспечивают правильную маршрутизацию сетевого трафика для вашей рабочей области непосредственно к требуемым конечным точкам или через брандмауэр исходящего трафика. Чтобы использовать UDR, необходимо добавить прямые маршруты или разрешенные правила брандмауэра для ретранслятора защищенного подключения к кластеру Azure Databricks и других необходимых конечных точек, перечисленных в разделе пользовательских параметров маршрута для Azure Databricks.

Предупреждение

Не используйте подсистему балансировки нагрузки исходящего трафика с рабочей областью с поддержкой безопасного подключения к кластеру. В рабочих системах подсистема балансировки нагрузки исходящего трафика может привести к риску исчерпания портов.