Безопасное подключение кластера

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

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

Преимущества:

  • Простое сетевое администрирование без необходимости настраивать порты в группах безопасности или пиринг сети.
  • Благодаря повышенной безопасности и простому сетевому администрированию команды по информационной безопасности могут ускорить утверждение Databricks в качестве поставщика PaaS.

Примечание.

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

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

Безопасное подключение кластера

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

Чтобы использовать безопасное подключение кластера к новой рабочей области Azure Databricks, доступны несколько вариантов.

  • Портал Azure. При подготовке рабочей области перейдите на вкладку Сеть и задайте для параметра Развернуть рабочую область Azure Databricks с безопасным подключением к кластеру (без общедоступного IP-адреса) значение Да.
  • Шаблоны ARM. Для ресурса Microsoft.Databricks/workspaces, который создает новую рабочую область, задайте для логического параметра enableNoPublicIp значение true.

Внимание

В любом случае необходимо зарегистрировать Microsoft.ManagedIdentity поставщика ресурсов Azure в подписке Azure, которая используется для запуска рабочих областей с безопасным подключением к кластеру. Эта операция выполняется один раз для каждой подписки. Дополнительные сведения см. в статье Поставщики и типы ресурсов Azure.

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

Если вы используете шаблоны ARM, добавьте параметр в один из следующих шаблонов, чтобы с помощью Azure Databricks была создана виртуальная сеть по умолчанию (управляемая) для рабочей области или чтобы использовалась собственная виртуальная сеть (внедрение виртуальной сети). Внедрение виртуальной сети — это необязательная функция, которая позволяет предоставить собственную виртуальную сеть для размещения новых кластеров Azure Databricks.

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

При включении безопасного подключения к кластеру обе подсети вашей рабочей области являются частными подсетями, так как узлы кластера не имеют общедоступных 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. Настройте шлюз в обеих подсетях рабочей области, чтобы весь исходящий трафик в магистральную сеть Azure и общедоступную сеть проходил через него. Кластеры имеют стабильный исходящий общедоступный IP-адрес, и вы можете изменить конфигурацию для собственных нужд, связанных с исходящим трафиком. Это решение можно реализовать с помощью шаблона Azure или портала Azure.
  • Для развертываний со сложными требованиями к маршрутизации или развертываний, использующих внедрение виртуальной сети с брандмауэром исходящего трафика, таким как Брандмауэр Azure, или другими пользовательскими сетевыми архитектурами, вы можете использовать настраиваемые маршруты, называемые определяемыми пользователем маршрутами. Определяемые пользователем маршруты обеспечивают правильную маршрутизацию сетевого трафика для вашей рабочей области непосредственно к требуемым конечным точкам или через брандмауэр исходящего трафика. Если вы используете такое решение, вы должны добавить прямые маршруты или разрешенные правила брандмауэра для ретранслятора безопасного подключения к кластеру Azure Databricks и других необходимых конечных точек, перечисленных в статье Определяемые пользователем параметры маршрута для Azure Databricks.

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

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

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

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

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

Внимание

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

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

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

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

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

Необходимо обновить параметр No Public IP (на шаблоне).enableNoPublicIp Задайте для него значение True (true).

Используйте один из следующих методов:

Использование пользовательского интерфейса портал Azure (без шаблона)

  1. Перейдите к экземпляру службы Azure Databricks в портал Azure.

  2. В области навигации слева в Параметры щелкните "Сеть".

  3. Выберите "Нет общедоступного IP-адреса".

    Примечание.

    В то же время можно также включить Приватный канал Azure, задав значения для правил NSG, необходимых для общего доступа ксети, соответствующим значениям для вашего варианта использования. Однако для включения Приватный канал требуется дополнительная настройка и проверка, поэтому вы можете выполнить это как отдельный шаг после этого обновления для безопасного подключения к кластеру. Важные сведения и требования см. в разделе "Включение Приватный канал Azure".

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

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

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

Примечание.

Если у управляемой группы ресурсов есть пользовательское имя, необходимо соответствующим образом изменить шаблон. Чтобы получить дополнительные сведения, обратитесь к группе учетной записи 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_ipcustom_parameters в блоке можно изменить на falsetrue.

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

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

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

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

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

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

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

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

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

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

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

Восстановление после сбоя

Если обновление рабочей области завершается ошибкой , рабочая область может быть помечена как состояние сбоя , что означает, что рабочая область не может выполнять вычислительные операции. Чтобы восстановить сбой рабочей области обратно в активное состояние, просмотрите инструкции в сообщении о состоянии операции обновления. После устранения каких-либо проблем повторно выполните обновление в рабочей области сбоем. Повторите шаги, пока обновление не завершится успешно.

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

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