Настройка сети для приложений Databricks

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

Сетевая архитектура

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

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

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

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

Механизмы контроля входящего трафика

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

  • Списки IP-доступа: Ограничение доступа к рабочей области и приложению к известным и доверенным диапазонам IP-адресов путем включения списков IP-доступа на уровне рабочей области. Разрешен только трафик из настроенных диапазонов IP-адресов. Дополнительные сведения см. в разделе "Настройка списков IP-доступа для рабочих областей".

:::

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

    Чтобы обеспечить надлежащее разрешение имен через частное подключение, необходимо настроить условное перенаправление DNS для databricksapps.com домена. В противном случае DNS-запросы для домена приложения могут разрешаться на общедоступные IP-адреса вместо частной конечной точки. Инструкции по настройке см. в разделе Configure Inbound Приватный канал.

    Устаревшие региональные URL-адреса не поддерживаются в Приложениях Databricks, так как они не поддерживают OAuth, необходимые для проверки подлинности приложения. Дополнительные сведения см. в разделе "Устаревший региональный URL-адрес".

Контроль исходящих данных

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

Конфигурации сетевого подключения

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

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

Политики сети

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

Замечание

Политики сети доступны только на уровне "Премиум".

Примените политику сети, если приложение:

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

Обязательные домены исходящего трафика для развертывания приложений

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

Для всех развертываний приложений Databricks требуются следующие домены:

Домен Purpose
*.databricksapps.com Обслуживание приложений и подключение пользователей
*.databricksapps.us Обслуживание приложений и подключение пользователей (только AWS GovCloud)
*.databricksapps.mil Обслуживание приложений и подключение пользователей (только ДЛЯ AWS GovCloud DoD)
pypi.org, files.pythonhosted.org Загрузка пакетов Python во время сборки приложения (требуется, если ваше приложение использует requirements.txt)
registry.npmjs.org Загрузка пакетов Node.js во время сборки приложений (это необходимо, если ваши приложения используют package.json)

:::

Кроме того, для развертывания Azure могут потребоваться следующие домены:

Домен Purpose
*.blob.core.windows.net конечные точки Хранилище BLOB-объектов Azure, используемые приложениями, которые подключаются к хранилищу Azure
*.dfs.core.windows.net Конечные точки Azure Data Lake Storage, используемые приложениями для подключения к ADLS

:::

:::

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

Это важно

В Приватный канал средах с ограниченным исходящим трафиком отсутствующие записи списка разрешений домена часто вызывают сбои развертывания приложений. Если не удается развернуть приложение, проверьте system.access.outbound_network системную таблицу на предмет отклоненных попыток подключения, чтобы определить, какие домены следует добавить. См. раздел "Проверка журналов отказа".

Рекомендации по настройке политик сети

Следуйте этим рекомендациям, чтобы избежать непредвиденных сбоев и убедиться, что приложения могут получить доступ к необходимым ресурсам:

  • Разрешить только необходимые пункты назначения. Добавьте полные доменные имена (FQDN) для общедоступных или частных ресурсов, необходимых приложению. См. раздел "Обязательные домены исходящего трафика для развертывания приложений", чтобы узнать минимальный набор доменов, необходимых для развертывания.
  • Включите репозитории пакетов по мере необходимости. Если приложение устанавливает общедоступные пакеты Python или Node.js, может потребоваться разрешить домены, такие как pypi.org для Python или registry.npmjs.org для node. Приложению могут потребоваться дополнительные или разные домены в зависимости от конкретных зависимостей. Без этих репозиториев сборка приложений, зависящих от requirements.txt или package.json, может завершиться неудачно.
  • Используйте режим сухого запуска для проверки политики сети. Этот режим имитирует применение политики без блокировки трафика.
  • Просмотрите отклонённые попытки подключения, используя таблицу system.access.outbound_network. Это помогает определить домены, которые могут потребоваться разрешить. См. раздел "Проверка журналов отказа".
  • Добавьте все необходимые внешние домены, такие как доверенные API или учетные записи хранения Azure, не зарегистрированные в Unity Catalog.

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

Конфигурация DNS

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

Добавьте правила условной пересылки для следующих доменов на сервер Azure DNS:

  • *.databricksapps.com
  • *.azuredatabricks.net
  • *.privatelink.azuredatabricks.net

Убедитесь, что виртуальная сеть ссылается на зону Azure Частная зона DNS. Подробные инструкции по настройке DNS см. в разделе "Настраиваемая конфигурация DNS".

Требования к выходу

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

Чтобы настроить исходящий трафик для приложений в среде Приватный канал:

  1. Создайте или обновите конфигурацию сетевого подключения (NCC) и подключите ее к рабочей области, включающей приложение.
  2. Создайте или обновите политику сети, чтобы внести в список разрешённых необходимые домены.
  3. Сначала используйте режим сухого запуска, чтобы проверить конфигурацию без блокировки трафика.
  4. Просмотрите системную таблицу system.access.outbound_network для любых запрещенных попыток подключения во время развертывания приложения.

Если приложение не удается развернуть в среде Приватный канал:

  1. Проверьте журналы отклонения исходящих соединений. Запросите системную таблицу system.access.outbound_network для недавних событий отказа. См. раздел "Проверка журналов отказа".

    SELECT *
    FROM system.access.outbound_network
    WHERE event_time >= CURRENT_TIMESTAMP() - INTERVAL 2 HOUR
    ORDER BY event_time DESC;
    
  2. Проверьте разрешение DNS. Убедитесь, что URL-адрес приложения разрешает частный IP-адрес, а не общедоступный IP-адрес. Используйте nslookup из частной сети для проверки:

    nslookup <your-app-name>.databricksapps.com
    

    Для AWS GovCloud используйте <your-app-name>.aws-gov.databricksapps.us. Для AWS GovCloud DoD используйте <your-app-name>.aws-dod.databricksapps.mil.

  3. Просмотрите конфигурацию политики сети. Убедитесь, что обязательные домены находятся в списке разрешений. Отсутствующие домены для репозиториев пакетов (pypi.org, registry.npmjs.org) являются наиболее распространенным причиной сбоев сборки.

  4. Перезапустите приложение. После обновления политик сети повторно разверните или перезапустите приложение, чтобы обновленные политики вступили в силу. См. статью "Перезапуск или повторное развертывание бессерверных рабочих нагрузок".

Шифрование и маршрутизация трафика

Databricks Apps использует выделенные пути маршрутизации и несколько уровней шифрования для защиты сетевых коммуникаций и защиты данных.

Маршрутизация трафика

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

Трафик между пользователями и databricksapps.com (или databricksapps.us для AWS GovCloud или databricksapps.mil для AWS GovCloud DoD) может проходить через общедоступный Интернет в зависимости от сетевого расположения пользователя. Чтобы избежать общедоступной маршрутизации через Интернет, настройте интерфейсное частное подключение.

Шифрование при передаче

Все сетевые подключения к приложениям и из них шифруются:

  • Трафик пользователя: Обмен данными между пользователями и databricksapps.com (или databricksapps.us / databricksapps.mil для AWS GovCloud) использует шифрование TLS 1.3.
  • Трафик управляющей плоскости: Обмен данными между управляющей плоскостью Azure Databricks и вычислительной плоскостью использует взаимный TLS (mTLS) для операций управления и включает создание, обновление и удаление приложений.

Шифрование неактивных данных

Databricks Apps шифрует сохраненные данные с помощью следующих методов:

  • Application code: Azure Databricks хранит код приложения в файлах рабочей области и использует то же шифрование, что и записные книжки и другие файлы рабочей области.
  • Вычислительное хранилище: Приложения используют временные диски операционной системы узла, зашифрованные с помощью AES-256 и реализации шифрования по умолчанию поставщика облачных служб.