Включение Приватный канал Azure внутренних и интерфейсных подключений

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

Эта функция не изменяет сетевой доступ для бессерверных хранилищ SQL. Однако существует отдельная функция для управления доступом к сети из хранилищ SQL в источники данных. См. раздел "Настройка частного подключения из бессерверных вычислений".

Обзор

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

  • Интерфейсный Приватный канал, также известный как подключение пользователя к рабочей области. Интерфейсное подключение через Приватный канал позволяет пользователям подключаться к веб-приложению Azure Databricks, REST API и API Databricks Connect через конечную точку интерфейса виртуальной сети. Интерфейсное подключение также используется интеграцией JDBC/ODBC и Power BI. Сетевой трафик для интерфейсного Приватный канал подключения между транзитной виртуальной сетью и плоскостью управления Azure Databricks рабочей области проходит магистральную сеть Майкрософт.
  • Внутренние Приватный канал, также известные как плоскость вычислений для управления плоскостью управления: кластеры среды выполнения Databricks в управляемой клиентом виртуальной сети (плоскости вычислений) подключаются к основным службам рабочей области Azure Databricks (плоскости управления) в облачной учетной записи Azure Databricks. Это обеспечивает частное подключение из кластеров к конечной точке ретранслятора безопасного подключения кластера и конечной точке REST API.
  • Частная конечная точка проверки подлинности браузера. Для поддержки частных интерфейсных подключений к веб-приложению Azure Databricks для клиентов, у которых нет общедоступного подключения к Интернету, необходимо добавить частную конечную точку проверки подлинности браузера для поддержки обратного вызова входа единого входа в веб-приложение Azure Databricks из Идентификатора Microsoft Entra ID (ранее Azure Active Directory). Если вы разрешаете подключения из сети к общедоступному Интернету, рекомендуется добавить частную конечную точку проверки подлинности браузера, но не требуется. Частная конечная точка проверки подлинности браузера — это частное подключение с типом подресурсов browser_authentication.

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

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

Терминология

В таблице ниже приводятся важные термины.

Терминология Description
Приватный канал Azure Технология Azure, которая обеспечивает частное подключение из виртуальных сетей Azure и локальных сетей к службам Azure без предоставления трафика в общедоступную сеть.
Служба "Приватный канал Azure" Служба, которая может быть назначением для подключения через Приватный канал. Каждый экземпляр уровня управления Azure Databricks публикует службу "Приватный канал Azure".
Частная конечная точка Azure Частная конечная точка Azure обеспечивает частное подключение между виртуальной сетью и службой "Приватный канал". Для интерфейсных и серверных подключений целью частной конечной точки Azure является уровень управления Azure Databricks.

Общие сведения о частных конечных точках см. в статье Майкрософт Что собой представляет частная конечная точка?

Выбор стандартного или упрощенного развертывания

Существует два типа развертывания Приватный канал, поддерживаемых Azure Databricks, и вы должны выбрать один из следующих типов:

  • Стандартное развертывание (рекомендуется): для повышения безопасности Databricks рекомендует использовать отдельную частную конечную точку для внешнего подключения из отдельной транзитной виртуальной сети. Вы можете реализовать как интерфейсное, так и серверное подключение через Приватный канал либо только серверное. Используйте отдельную виртуальную сеть для инкапсуляции доступа пользователей, отдельно от виртуальной сети, используемой для вычислительных ресурсов в классической плоскости вычислений. Создайте отдельные конечные точки Приватный канал для внутреннего и внешнего доступа. Следуйте инструкциям в разделе "Включить Приватный канал Azure как стандартное развертывание".
  • Упрощенное развертывание. Некоторые организации не могут использовать стандартное развертывание по различным причинам политики сети, например запретить несколько частных конечных точек или запретить отдельные транзитные виртуальные сети. Кроме того, можно использовать Приватный канал упрощенное развертывание. Отдельная виртуальная сеть не отделяет доступ пользователей от виртуальной сети, используемой для вычислительных ресурсов в классической плоскости вычислений. Вместо этого для доступа пользователей используется транзитная подсеть в виртуальной сети плоскости вычислений. Существует только одна конечная точка Приватный канал. Как правило, настраиваются интерфейсные и внутренние подключения. При необходимости можно настроить только внутреннее подключение. Вы не можете использовать только интерфейсные подключения в этом типе развертывания. Следуйте инструкциям в разделе "Включить Приватный канал Azure в качестве упрощенного развертывания".

Требования

Подписка Azure

Рабочая область Azure Databricks должна находиться на уровне "Премиум" или "Корпоративный".

Сетевая архитектура рабочей области Azure Databricks

  • Для добавления любого подключения через Приватный канал (даже если это только интерфейсное подключение) рабочая область Azure Databricks должна использовать внедрение виртуальной сети.
  • Если вы реализуете внутреннее подключение Приватный канал, рабочая область Azure Databricks должна использовать безопасное подключение к кластеру (SCC/ No Public IP/NPIP).
  • Вам потребуется виртуальная сеть, удовлетворяющая требованиям для внедрения виртуальной сети.
    • Как описано в статье о внедрении основной виртуальной сети, необходимо определить две подсети (называемые в пользовательском интерфейсе общедоступными подсетями и частной подсетью). Диапазоны IP-адресов виртуальной сети и подсетей, используемые для Azure Databricks, определяют максимальное количество узлов кластера, которое можно использовать одновременно. Выбирайте эти значения тщательно.
    • Для реализации интерфейсного Приватного канала, серверного Приватного канала или обоих вариантов в виртуальной сети рабочей области должна быть третья подсеть, содержащая конечную точку Приватного канала, причем ее диапазон IP-адресов не должен пересекаться с диапазонами других подсетей рабочей области. В данной статье эта третья подсеть называется подсетью частной конечной точки. В примерах и на снимках экрана она имеет имя private-link. Достаточно будет диапазона CIDR /27. Не определяйте правила группы безопасности сети для подсети, содержащей частные конечные точки.
    • Если объекты создаются в пользовательском интерфейсе, необходимо вручную создать сеть и подсети перед созданием рабочей области Azure Databricks. Можно также использовать предоставляемый Azure Databricks шаблон, который создает виртуальную сеть и соответствующие подсети, включая две обычные подсети и еще одну для частных конечных точек.
  • Если вы используете или планируете использовать группу безопасности сети или брандмауэр вокруг виртуальной сети для управления исходящими данными, необходимо разрешить порты 443, 6666, 3306 и 8443-8451 в подсети частной конечной точки для исходящего трафика для подключений к плоскости управления Azure Databricks, включая безопасное ретранслятор подключения к кластеру. Если в частной конечной точке включена политика групп безопасности сети, необходимо также разрешить порты 443, 6666 и 8443-8451 для входящего трафика в группе безопасности сети в подсети, в которой развернута частная конечная точка.

Архитектура сети подключения переднего плана

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

  • Для стандартного развертывания можно создать или использовать существующую транзитную виртуальную сеть, иногда называемую виртуальной сетью бастиона или виртуальной сетью концентратора. Эта виртуальная сеть должна быть доступной из локальной пользовательской среды с помощью Expressroute или VPN-шлюза. Для интерфейсного Приватного канала в Databricks рекомендуется создать отдельную виртуальную сеть для подключения к уровню управления, а не использовать совместно виртуальную сеть рабочей области. Обратите внимание, что транзитная виртуальная сеть и ее подсеть могут находиться в тех же регионе, зоне и группе ресурсов, что и виртуальная сеть рабочей области и ее подсети, но они не обязательно должны совпадать. Создайте группу ресурсов для отдельной транзитной виртуальной сети и используйте другую частную зону DNS для этой частной конечной точки. Если вы используете две отдельные частные конечные точки, зона DNS не может быть общей.
  • Для упрощенного развертывания создается транзитная подсеть в виртуальной сети рабочей области. В этом развертывании транзитная подсеть не имеет отдельной частной конечной точки. Транзитная подсеть в виртуальной сети рабочей области использует одну частную конечную точку для внутренних и интерфейсных подключений.

Разрешения пользователя Azure

Как пользователь Azure должен иметь необходимые разрешения на чтение и запись:

  • подготовка новой рабочей области Azure Databricks;
  • создание конечных точек Приватного канала Azure в виртуальной сети рабочей области, а также (для интерфейсного использования) в транзитной виртуальной сети.

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

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

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

Если что-то не так с обновлением, и вы можете повторить шаг обновления рабочей области, но вместо этого задайте поля для отключения Приватный канал.

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

Шаг 1. Ознакомьтесь с требованиями и документацией на этой странице

Перед попыткой обновления до Приватный канал существуют важные понятия и требования, которые необходимо прочитать:

  1. Ознакомьтесь с этой статьей, включая понятия и требования, прежде чем продолжить.
  2. Определите, следует ли использовать стандартное развертывание или упрощенное развертывание.
  3. На странице стандартного развертывания или упрощенного развертывания (независимо от используемого подхода) внимательно просмотрите страницу, включая различные сценарии. Найдите сценарий, соответствующий вашему варианту использования. Запишите значения, которые вы планируете использовать для publicNetworkAccess и requiredNsgRules. Для рекомендуемой конфигурации интерфейсных и внутренних Приватный канал с заблокированным подключением внешнего интерфейса используйте параметры publicNetworkAccess=Disabled иrequiredNsgRules=NoAzureDatabricksRules

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

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

Внимание

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

Шаг 3. Создание подсети и частных конечных точек

  1. Добавьте подсеть в виртуальную сеть рабочей области для внутренних частных конечных точек.

  2. Откройте статью для стандартного развертывания или упрощенного развертывания (независимо от используемого подхода).

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

  3. Создайте все частные конечные точки для поддержки внутренних компонентов перед обновлением рабочей области.

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

Шаг 4. Применение обновления рабочей области

Вместо создания новой рабочей области необходимо применить обновление рабочей области.

Необходимо обновить publicNetworkAccess значения и requiredNsgRules параметры, выбранные на предыдущем шаге.

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

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

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

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

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

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

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

    3. Задайте для параметра Allow Public Network Access and Required NSG Rules (Разрешить доступ к общедоступной сети и обязательные правила NSG) соответствующим значениям в зависимости от варианта использования. См. шаг 1. Ознакомьтесь с требованиями и документацией на этой странице.

      Примечание.

      Чтобы включить Приватный канал Azure, рабочая область должна включить безопасное подключение к кластеру (иногда называется No Public IP). Если он еще не включен, одновременно с обновлением Приватный канал вы можете включить безопасное подключение к кластеру, установив для параметра "Нет общедоступного IP-адреса" значение True. Однако Azure Databricks рекомендует включить безопасное подключение к кластеру как отдельный шаг перед включением Приватный канал, чтобы можно было отдельно проверить успешность.

    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"
               }
           },
           "publicNetworkAccess": {
               "defaultValue": "Enabled",
               "allowedValues": [
                   "Enabled",
                   "Disabled"
               ],
               "type": "String",
               "metadata": {
                   "description": "Whether the workspace allows access from the public Internet"
               }
           },
           "requiredNsgRules": {
               "defaultValue": "AllRules",
               "allowedValues": [
                   "AllRules",
                   "NoAzureDatabricksRules"
               ],
               "type": "String",
               "metadata": {
                   "description": "The security rules that are applied to the security group of the Vnet"
               }
           },
           "enableNoPublicIp": {
               "defaultValue": true,
               "type": "Bool"
           },
           "pricingTier": {
               "defaultValue": "premium",
               "allowedValues": [
                   "premium",
                   "standard",
                   "trial"
               ],
               "type": "String",
               "metadata": {
                   "description": "The pricing tier of workspace."
               }
           },
           "privateSubnetName": {
               "defaultValue": "private-subnet",
               "type": "String",
               "metadata": {
                   "description": "The name of the private subnet."
               }
           },
           "publicSubnetName": {
               "defaultValue": "public-subnet",
               "type": "String",
               "metadata": {
                   "description": "The name of the public subnet."
               }
           },
           "vnetId": {
               "type": "String",
               "metadata": {
                   "description": "The virtual network Resource ID."
               }
           }
       },
       "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')]"
                       },
                       "customVirtualNetworkId": {
                           "value": "[parameters('vnetId')]"
                       },
                       "customPublicSubnetName": {
                           "value": "[parameters('publicSubnetName')]"
                       },
                       "customPrivateSubnetName": {
                           "value": "[parameters('privateSubnetName')]"
                       }
                   }
               }
           }
       ]
    }
    
    1. Перейдите на страницу портал Azure настраиваемого развертывания.

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

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

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

    5. Чтобы включить Приватный канал, задайте publicNetworkAccess и requiredNsgRules параметры в соответствии с вашим вариантом использования.

      Чтобы отключить Приватный канал, задайте publicNetworkAccess для параметра и установите значение requiredNsgRulesAllRulestrue .

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

      Внимание

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

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

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

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

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

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

Внимание

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

Для этого выполните следующие обобщенные действия.

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

    • public_network_access_enabled: установлено значение true (включено) или false (отключено)
    • network_security_group_rules_required: задано AllRules значение или NoAzureDatabricksRules.

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

  2. Создайте частные конечные точки.

Подробное руководство по включению Приватный канал и созданию частных конечных точек:

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

Шаг 5. Проверка подлинности пользователя единого входа и подключение к серверной части

Следуйте инструкциям на главной странице развертывания.

  • Проверка проверки подлинности единого входа пользователя в рабочей области.
  • Проверка внутреннего подключения Приватный канал (требуется для внутреннего подключения)

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

  1. Перейдите к экземпляру службы Azure Databricks в портал Azure.
  2. В области навигации слева в Параметры щелкните "Сеть".
  3. Убедитесь, что значение allow Public Network Access соответствует заданному значению.
  4. Убедитесь, что значение обязательных правил NSG соответствует заданному значению.

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

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