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


Обеспечение безопасности среды обучения "Машинное обучение Azure" с помощью виртуальных сетей

ОБЛАСТЬ ПРИМЕНЕНИЯ: Пакет SDK для Python azure-ai-ml версии 2 (current)

Совет

Вместо действий, описанных в этой статье, можно использовать Машинное обучение Azure управляемых виртуальных сетей. С помощью управляемой виртуальной сети Машинное обучение Azure обрабатывает задание сетевой изоляции для рабочей области и управляемых вычислений. Вы также можете добавить частные конечные точки для ресурсов, необходимых рабочей области, например служба хранилища Azure account. Дополнительные сведения см. в изоляция управляемой сети рабочей области.

Машинное обучение Azure вычислительный экземпляр, бессерверные вычисления и вычислительный кластер можно использовать для безопасного обучения моделей в виртуальная сеть Azure. При планировании среды можно настроить вычислительный экземпляр или кластер или бессерверные вычисления с общедоступным IP-адресом или без нее. Общие различия между этими двумя:

  • Нет общедоступного IP-адреса: снижает затраты, так как они не имеют одинаковых требований к сетевым ресурсам. Повышает безопасность, удаляя требование для входящего трафика из Интернета. Однако существуют дополнительные изменения конфигурации, необходимые для включения исходящего доступа к необходимым ресурсам (идентификатор Microsoft Entra, Azure Resource Manager и т. д.).
  • Общедоступный IP-адрес: работает по умолчанию, но стоит больше из-за дополнительных сетевых ресурсов Azure. Требуется входящий обмен данными из службы Машинное обучение Azure через общедоступный Интернет.

В следующей таблице содержатся различия между этими конфигурациями:

Настройка С общедоступным IP-адресом Без общедоступного IP-адреса
Входящий трафик AzureMachineLearning тег службы. нет
Исходящий трафик По умолчанию доступ к общедоступному Интернету без ограничений.
Вы можете ограничить доступ к доступу с помощью группы безопасности сети или брандмауэра.
По умолчанию доступ к общедоступной сети можно получить с помощью исходящего доступа по умолчанию, предоставленного Azure.
Вместо этого рекомендуется использовать шлюз NAT виртуальная сеть или брандмауэр, если необходимо перенаправить исходящий трафик в необходимые ресурсы в Интернете.
Сетевые ресурсы Azure Общедоступный IP-адрес, подсистема балансировки нагрузки, сетевой интерфейс нет

Вы также можете использовать Azure Databricks или HDInsight для обучения моделей в виртуальной сети.

Внимание

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

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

Руководство по созданию безопасной рабочей области см . в руководстве по созданию безопасной рабочей области, шаблона Bicep или шаблона Terraform.

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

  • Вычислительный кластер Машинного обучения Azure
  • Вычислительная операция Машинного обучения Azure
  • Машинное обучение Azure бессерверные вычисления
  • Azure Databricks
  • Виртуальная машина
  • Кластер HDInsight

Необходимые компоненты

  • Прочитайте статью Обзор сетевой безопасности, чтобы ознакомиться с типовыми сценариями виртуальной сети и общей архитектурой виртуальной сети.

  • Существующие виртуальная сеть и подсеть для использования с вычислительными ресурсами. Эта виртуальная сеть должна находиться в той же подписке, что и рабочая область Машинное обучение Azure.

    • Рекомендуется поместить учетные записи хранения, используемые рабочей областью и заданиями обучения, в том же регионе Azure, который планируется использовать для вычислительных экземпляров, бессерверных вычислений и кластеров. Если они не в одном регионе Azure, вы можете нести расходы на передачу данных и увеличить задержку в сети.
    • Убедитесь, что обмен данными через WebSocket разрешен для *.instances.azureml.net и *.instances.azureml.ms в виртуальной сети. WebSocket используются Jupyter в вычислительных экземплярах.
  • Существующая подсеть в виртуальной сети. Эта подсеть используется при создании вычислительных экземпляров, кластеров и узлов для бессерверных вычислений.

    • Убедитесь, что подсеть не делегирована другим службам Azure.
    • Убедитесь, что подсеть содержит достаточно свободных IP-адресов. Для каждого вычислительного экземпляра требуется один IP-адрес. Каждому узлу в вычислительном кластере и каждому бессерверному вычислительному узлу требуется один IP-адрес.
  • Если у вас есть собственный DNS-сервер, рекомендуется использовать перенаправление DNS для разрешения полных доменных имен (FQDN) вычислительных экземпляров и кластеров. Дополнительные сведения см. в разделе "Использование пользовательского DNS" с Машинное обучение Azure.

  • Чтобы развернуть ресурсы в виртуальной сети или подсети, учетная запись пользователя должна иметь разрешения на доступ к следующим действиям в управлении доступом на основе ролей в Azure (Azure RBAC):

    • "Microsoft.Network/*/read" в ресурсе виртуальной сети. Это разрешение не требуется для развертываний шаблонов Azure Resource Manager (ARM).
    • "Microsoft.Network/virtualNetworks/join/action" в ресурсе виртуальной сети.
    • "Microsoft.Network/virtualNetworks/subnets/join/action" в ресурсе подсети.

    Дополнительные сведения об Azure RBAC при работе с сетью см. в разделе Встроенные роли сети.

Ограничения

  • Вычислительные кластеры/экземпляры и развертывание бессерверных вычислений в виртуальной сети не поддерживаются в Azure Lighthouse.

  • Во время обучения порт 445 должен быть открыт для обмена данными по частной сети между вычислительными экземплярами и учетной записью хранения по умолчанию. Например, если вычислительные ресурсы находятся в одной виртуальной сети, а учетная запись хранения — в другой, не блокируйте порт 445 для виртуальной сети этой учетной записи.

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

Внимание

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

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

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

Внимание

Независимо от выбранного метода необходимо также создать виртуальную сеть для вычислительного кластера; Машинное обучение Azure не создаст его для вас.

Кроме того, необходимо разрешить учетной записи хранения по умолчанию, Реестр контейнеров Azure и Azure Key Vault доступ к виртуальной сети для вычислительного кластера. Этого можно достичь несколькими способами. Например, можно создать частную конечную точку для каждого ресурса в виртуальной сети для вычислительного кластера или использовать пиринг виртуальной сети, чтобы разрешить виртуальной сети рабочей области доступ к виртуальной сети вычислительного кластера.

Сценарий: пиринг виртуальной сети

  1. Настройте рабочую область для использования виртуальная сеть Azure. Дополнительные сведения см. в разделе "Защита ресурсов рабочей области".

  2. Создайте вторую виртуальная сеть Azure, которая будет использоваться для вычислительных кластеров. Он может находиться в другом регионе Azure, отличном от используемого для рабочей области.

  3. Настройте пиринг между двумя виртуальными сетями.

    Совет

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

  4. Измените privatelink.api.azureml.ms зону DNS, чтобы добавить ссылку на виртуальную сеть для вычислительного кластера. Эта зона создается рабочей областью Машинное обучение Azure при использовании частной конечной точки для участия в виртуальной сети.

    1. Добавьте новую ссылку виртуальной сети в зону DNS. Это можно сделать несколькими способами:

      • В портал Azure перейдите в зону DNS и выберите каналы виртуальной сети. Затем нажмите кнопку +Добавить и выберите виртуальную сеть, созданную для вычислительных кластеров.
      • В Azure CLI используйте az network private-dns link vnet create команду. Дополнительные сведения см. в статье az network private-dns link vnet create.
      • В Azure PowerShell используйте New-AzPrivateDnsVirtualNetworkLink команду. Дополнительные сведения см. в статье New-AzPrivateDnsVirtualNetworkLink.
  5. Повторите предыдущий шаг и вложенные шаги для privatelink.notebooks.azure.net зоны DNS.

  6. Настройте следующие ресурсы Azure, чтобы разрешить доступ из обеих виртуальных сетей.

    • Учетная запись хранения по умолчанию для рабочей области.
    • Реестр контейнеров Azure для рабочей области.
    • Azure Key Vault для рабочей области.

    Совет

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

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

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

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

Сценарий: частная конечная точка

  1. Настройте рабочую область для использования виртуальная сеть Azure. Дополнительные сведения см. в разделе "Защита ресурсов рабочей области".

  2. Создайте вторую виртуальная сеть Azure, которая будет использоваться для вычислительных кластеров. Он может находиться в другом регионе Azure, отличном от используемого для рабочей области.

  3. Создайте частную конечную точку для рабочей области в виртуальной сети, которая будет содержать вычислительный кластер.

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

      • При выборе Region (Региона)выберите тот же регион, что и для виртуальной сети.
      • При выборе Resource type (Типа ресурса)используйте Microsoft.MachineLearningServices/workspaces.
      • В разделе Resource (Ресурс) укажите имя рабочей области.
      • Задайте для виртуальной сети и подсети виртуальную сеть и подсеть, созданную для вычислительных кластеров.

      Наконец, выберите Create (Создать), чтобы создать частную конечную точку.

    • Чтобы добавить новую частную конечную точку с помощью Azure CLI, используйте команду az network private-endpoint create. Пример использования этой команды см. в статье "Настройка частной конечной точки для Машинное обучение Azure рабочей области".

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

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

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

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

Внимание

Эта информация действительна только при использовании виртуальная сеть Azure. Если вы используете управляемую виртуальную сеть, вычислительные ресурсы нельзя развернуть в виртуальная сеть Azure. Сведения об использовании управляемой виртуальной сети см. в разделе "Управляемые вычисления" с управляемой сетью.

Внимание

Если вы использовали вычислительные экземпляры или вычислительные кластеры, настроенные для отсутствия общедоступного IP-адреса без предварительной версии, необходимо удалить и повторно создать их после 20 января 2023 г. (если эта функция общедоступна).

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

  • Требования к исходящему трафику — два дополнительных исходящих трафика, которые используются только для управления вычислительными экземплярами и кластерами. Назначение этих тегов службы принадлежит корпорации Майкрософт:
    • AzureMachineLearning тег службы на порте UDP 5831.
    • BatchNodeManagement тег службы на TCP-порте 443.

Следующие конфигурации в дополнение к перечисленным в разделе "Предварительные требования" и относятся к созданию вычислительных экземпляров и кластеров, настроенных без общедоступного IP-адреса. Они также применяются к бессерверным вычислениям:

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

  • В виртуальной сети разрешите исходящий трафик следующим тегам службы или полным доменным именам (FQDN):

    Тег службы Протокол Порт Примечания.
    AzureMachineLearning TCP
    UDP
    443/8787/18881
    5831
    Связь со службой "Машинное обучение Azure".
    BatchNodeManagement.<region> ЛЮБАЯ 443 Для параметра <region> укажите регион Azure, в котором находится ваша рабочая область Машинного обучения Azure. Связь с пакетной службой Azure. Вычислительные экземпляр и кластер внедряются с помощью пакетной службы Azure.
    Storage.<region> TCP 443 Для параметра <region> укажите регион Azure, в котором находится ваша рабочая область Машинного обучения Azure. Этот тег службы нужен для взаимодействия с учетной записью хранения Azure, используемой пакетной службой Azure.

    Внимание

    Исходящий доступ Storage.<region> к потенциальному использованию для получения данных из рабочей области. С помощью Политики конечной точки службы можно устранить эту уязвимость. Дополнительные сведения см. в статье о предотвращении кражи данных Машинного обучения Azure.

    Полное доменное имя Протокол Порт Примечания.
    <region>.tundra.azureml.ms UDP 5831 Для параметра <region> укажите регион Azure, в котором находится ваша рабочая область Машинного обучения Azure.
    graph.windows.net TCP 443 Связь с API Microsoft Graph.
    *.instances.azureml.ms TCP 443/8787/18881 Связь с Машинным обучением Azure.
    *.<region>.batch.azure.com ЛЮБАЯ 443 Для параметра <region> укажите регион Azure, в котором находится ваша рабочая область Машинного обучения Azure. Связь с пакетной службой Azure.
    *.<region>.service.batch.azure.com ЛЮБАЯ 443 Для параметра <region> укажите регион Azure, в котором находится ваша рабочая область Машинного обучения Azure. Связь с пакетной службой Azure.
    *.blob.core.windows.net TCP 443 Связь с хранилищем BLOB-объектов Azure.
    *.queue.core.windows.net TCP 443 Связь с хранилищем очередей Azure.
    *.table.core.windows.net TCP 443 Связь с хранилищем таблиц Azure.
  • По умолчанию у вычислительных экземпляров и кластеров, не настроенных для общедоступного IP-адреса, нет исходящего доступа к Интернету. Если у вас есть такая возможность, это связано с наличием у вас стандартного исходящего доступа Azure и группы NSG, которая разрешает исходящий трафик в Интернет. Однако мы не рекомендуем использовать стандартный исходящий доступ. Если вам нужно разрешить исходящий доступ к Интернету, рекомендуется использовать брандмауэр с правилами для исходящего трафика или шлюз NAT с группами сетевых служб.

    Дополнительные сведения об исходящем трафике, используемом службой "Машинное обучение Azure", см. в этих статьях:

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

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

В команде az ml compute create замените следующие значения:

  • rg: группа ресурсов, в которую будет создано вычисление.
  • ws: имя рабочей области Машинное обучение Azure.
  • yourvnet: Виртуальная сеть Azure.
  • yoursubnet: подсеть, используемая для вычислений.
  • AmlCompute или ComputeInstance: указание AmlCompute создания вычислительного кластера. ComputeInstance создает вычислительный экземпляр.
# create a compute cluster with no public IP
az ml compute create --name cpu-cluster --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type AmlCompute --set enable_node_public_ip=False

# create a compute instance with no public IP
az ml compute create --name myci --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type ComputeInstance --set enable_node_public_ip=False

Используйте следующие сведения, чтобы настроить бессерверные вычислительные узлы без общедоступного IP-адреса в виртуальной сети для данной рабочей области:

Внимание

Если вы используете бессерверные вычисления общедоступного IP-адреса, а в рабочей области используется список разрешений IP-адресов, необходимо добавить в рабочую область исходящую частную конечную точку. Бессерверные вычислительные ресурсы должны взаимодействовать с рабочей областью, но при настройке для общедоступного IP-адреса он использует исходящий трафик Azure по умолчанию для доступа к Интернету. Общедоступный IP-адрес для этого исходящего трафика является динамическим и не может быть добавлен в список разрешенных IP-адресов. Создание исходящей частной конечной точки в рабочей области позволяет трафику из бессерверных вычислений, привязанных к рабочей области, обойти список разрешений IP-адресов.

Создайте рабочую область:

az ml workspace create -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
name: testserverlesswithnpip
location: eastus
public_network_access: Disabled
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: true

Обновление рабочей области:

az ml workspace update -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: true

Вычислительный экземпляр или кластер или бессерверные вычисления с общедоступным IP-адресом

Внимание

Эта информация действительна только при использовании виртуальная сеть Azure. Если вы используете управляемую виртуальную сеть, вычислительные ресурсы нельзя развернуть в виртуальная сеть Azure. Сведения об использовании управляемой виртуальной сети см. в разделе "Управляемые вычисления" с управляемой сетью.

Следующие конфигурации в дополнение к указанным в разделе "Предварительные требования" и относятся к созданию вычислительных экземпляров или кластеров с общедоступным IP-адресом. Они также применяются к бессерверным вычислениям:

  • Если вы помещаете несколько вычислительных экземпляров или кластеров в одну виртуальную сеть, может потребоваться запросить увеличение квоты для одного или нескольких ресурсов. Экземпляр или кластер вычислительных ресурсов машинного обучения автоматически выделяет сетевые ресурсы в группе ресурсов, которая содержит виртуальную сеть. Для каждого экземпляра или кластера вычислительных ресурсов служба выделяет следующие ресурсы:

    • Группа безопасности сети (NSG) создается автоматически. Эта группа безопасности сети разрешает входящий TCP-трафик через порт 44224 из тега AzureMachineLearning службы.

      Внимание

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

      Если у вас есть другая группа безопасности сети на уровне подсети, правила в NSG уровня подсети не должны конфликтовать с правилами в автоматически созданной NSG.

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

    • Одна подсистема балансировки нагрузки

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

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

    Внимание

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

  • В виртуальной сети разрешите входящий TCP-трафик через порт 44224 из тега AzureMachineLearning службы.

    Внимание

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

  • В виртуальной сети разрешите исходящий трафик следующим тегам службы:

    Тег службы Протокол Порт Примечания.
    AzureMachineLearning TCP
    UDP
    443/8787/18881
    5831
    Связь со службой "Машинное обучение Azure".
    BatchNodeManagement.<region> ЛЮБАЯ 443 Для параметра <region> укажите регион Azure, в котором находится ваша рабочая область Машинного обучения Azure. Связь с пакетной службой Azure. Вычислительные экземпляр и кластер внедряются с помощью пакетной службы Azure.
    Storage.<region> TCP 443 Для параметра <region> укажите регион Azure, в котором находится ваша рабочая область Машинного обучения Azure. Этот тег службы нужен для взаимодействия с учетной записью хранения Azure, используемой пакетной службой Azure.

    Внимание

    Исходящий доступ Storage.<region> к потенциальному использованию для получения данных из рабочей области. С помощью Политики конечной точки службы можно устранить эту уязвимость. Дополнительные сведения см. в статье о предотвращении кражи данных Машинного обучения Azure.

    Полное доменное имя Протокол Порт Примечания.
    <region>.tundra.azureml.ms UDP 5831 Для параметра <region> укажите регион Azure, в котором находится ваша рабочая область Машинного обучения Azure.
    graph.windows.net TCP 443 Связь с API Microsoft Graph.
    *.instances.azureml.ms TCP 443/8787/18881 Связь с Машинным обучением Azure.
    *.<region>.batch.azure.com ЛЮБАЯ 443 Для параметра <region> укажите регион Azure, в котором находится ваша рабочая область Машинного обучения Azure. Связь с пакетной службой Azure.
    *.<region>.service.batch.azure.com ЛЮБАЯ 443 Для параметра <region> укажите регион Azure, в котором находится ваша рабочая область Машинного обучения Azure. Связь с пакетной службой Azure.
    *.blob.core.windows.net TCP 443 Связь с хранилищем BLOB-объектов Azure.
    *.queue.core.windows.net TCP 443 Связь с хранилищем очередей Azure.
    *.table.core.windows.net TCP 443 Связь с хранилищем таблиц Azure.

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

В команде az ml compute create замените следующие значения:

  • rg: группа ресурсов, в которую будет создано вычисление.
  • ws: имя рабочей области Машинное обучение Azure.
  • yourvnet: Виртуальная сеть Azure.
  • yoursubnet: подсеть, используемая для вычислений.
  • AmlCompute или ComputeInstance: указание AmlCompute создания вычислительного кластера. ComputeInstance создает вычислительный экземпляр.
# create a compute cluster with a public IP
az ml compute create --name cpu-cluster --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type AmlCompute

# create a compute instance with a public IP
az ml compute create --name myci --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type ComputeInstance

Используйте следующие сведения, чтобы настроить бессерверные вычислительные узлы с общедоступным IP-адресом в виртуальной сети для данной рабочей области:

Создайте рабочую область:

az ml workspace create -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
name: testserverlesswithvnet
location: eastus
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: false

Обновление рабочей области:

az ml workspace update -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: false

Azure Databricks

  • Виртуальная сеть должна размещаться в той же подписке и том же регионе, что и рабочая область Машинного обучения Azure.
  • Если учетные записи хранения Azure для рабочей области также предусмотрены в виртуальной сети, они должны находиться в той же виртуальной сети, что и кластер Azure Databricks.
  • В дополнение к подсетям databricks-private и databricks-public, используемым Azure Databricks, необходимо также создать подсеть по умолчанию для виртуальной сети.
  • Azure Databricks не использует частную конечную точку для взаимодействия с виртуальной сетью.

Конкретные сведения об использовании Azure Databricks с виртуальной сетью см. в разделе Развертывание Azure Databricks в виртуальной сети Azure.

Виртуальная машина или кластер HDInsight

В этом разделе описано, как использовать виртуальную машину или кластер Azure HDInsight в виртуальной сети с рабочей областью.

Создание виртуальной машины или кластера HDInsight

Внимание

Машинное обучение Azure поддерживает только виртуальные машины под управлением Ubuntu.

Создайте виртуальную машину или кластер HDInsight с помощью портала Azure или Azure CLI, а затем поместите кластер в виртуальную сеть Azure. Дополнительные сведения см. в следующих статьях:

Настройка сетевых портов

Разрешите Машинному обучению Azure обращаться к порту SSH на виртуальной машине или в кластере, настроив для группы безопасности сети запись с данными об источнике. Обычно для SSH используется порт 22. Чтобы разрешить трафик от этого источника, выполните следующие действия.

  1. В раскрывающемся списке Источник выберите значение Тег службы.

  2. В раскрывающемся списке Тег исходной службы выберите AzureMachineLearning.

    Снимок экрана: правила входящего трафика для выполнения экспериментов на виртуальной машине или кластере HDInsight в виртуальной сети.

  3. В раскрывающемся списке Исходный диапазон портов выберите *.

  4. В раскрывающемся списке Назначение выберите Любое.

  5. В раскрывающемся списке Диапазоны портов назначения выберите 22.

  6. Для параметра Протокол выберите значение Любой.

  7. В поле Действие выберите Разрешить.

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

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

Подключение виртуальной машины или кластера HDInsight

Подключите виртуальную машину или кластер HDInsight к рабочей области Машинного обучения Azure. Дополнительные сведения см. в статье Управление вычислительными ресурсами для обучения моделей и развертывания в студии.

Обязательный общедоступный доступ к Интернету для обучения моделей

Внимание

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

Машинному обучению Azure требуется как входящий, так и исходящий доступ к общедоступному Интернету. В следующих таблицах представлены общие сведения о требуемом доступе и назначении, которые она служит. Для тегов служб, которые заканчиваются на .region, замените region на регион Azure, содержащий рабочую область. Например, Storage.westus:

Совет

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

Направление Протокол &
порты
Тег службы Характер использования
Исходящие TCP: 80, 443 AzureActiveDirectory Проверка подлинности с использованием Microsoft Entra ID.
Исходящие TCP: 443, 18881
UDP: 5831
AzureMachineLearning Использование служб Машинного обучения Azure.
Intellisense Python в записных книжках использует порт 18881.
Создание, обновление и удаление экземпляра вычислений Машинное обучение Azure использует порт 5831.
Исходящие ANY: 443 BatchNodeManagement.region Обмен данными с пакетная служба Azure внутреннего сервера для Машинное обучение Azure вычислительных экземпляров или кластеров.
Исходящие TCP: 443 AzureResourceManager Создание ресурсов Azure с помощью Машинное обучение Azure, Azure CLI и пакета SDK для Машинное обучение Azure.
Исходящие TCP: 443 Storage.region Доступ к данным, хранящимся в учетной записи хранения Azure, для вычислительного кластера и вычислительного экземпляра. Сведения о предотвращении кражи данных по этому исходящему трафику см. в разделе "Защита от кражи данных".
Исходящие TCP: 443 AzureFrontDoor.FrontEnd
* Не требуется в Microsoft Azure под управлением 21Vianet.
Глобальная точка входа для Студии машинного обучения Azure. Хранение образов и сред для AutoML. Сведения о предотвращении кражи данных по этому исходящему трафику см. в разделе "Защита от кражи данных".
Исходящие TCP: 443 MicrosoftContainerRegistry.region
Обратите внимание, что этот тег имеет зависимость от тега AzureFrontDoor.FirstParty
Доступ к образом Docker, предоставляемым корпорацией Майкрософт. Настройка маршрутизатора Машинного обучения Azure для Службы Kubernetes Azure.

Совет

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

IP-адреса периодически могут меняться.

Кроме того, может потребоваться разрешить исходящий трафик к Visual Studio Code и на сайты, не относящиеся к Майкрософт, для установки пакетов, необходимых для проекта машинного обучения. В следующей таблице перечислены часто используемые репозитории для машинного обучения.

Имя узла Назначение
anaconda.com
*.anaconda.com
Используется для установки пакетов по умолчанию.
*.anaconda.org Используется для получения данных репозитория.
pypi.org Используется для вывода списка зависимостей из индекса по умолчанию, если таковые имеются, а индекс не перезаписывается параметрами пользователя. Если индекс перезаписан, необходимо также разрешить *.pythonhosted.org.
cloud.r-project.org Используется при установке пакетов CRAN для разработки R.
*.pytorch.org Используется в некоторых примерах на основе PyTorch.
*.tensorflow.org Используется в некоторых примерах на основе Tensorflow.
code.visualstudio.com Требуется для скачивания и установки рабочего стола Visual Studio Code. Это не обязательно для Visual Studio Code Web.
update.code.visualstudio.com
*.vo.msecnd.net
Используется для извлечения битов сервера Visual Studio Code, установленных на вычислительном экземпляре с помощью скрипта установки.
marketplace.visualstudio.com
vscode.blob.core.windows.net
*.gallerycdn.vsassets.io
Требуется для скачивания и установки расширений Visual Studio Code. Эти узлы позволяют удаленному подключению к вычислительным экземплярам, предоставляемым расширением Машинного обучения Azure для Visual Studio Code. Дополнительные сведения см. в статье Подключение к вычислительному экземпляру Машинного обучения Azure в Visual Studio Code.
raw.githubusercontent.com/microsoft/vscode-tools-for-ai/master/azureml_remote_websocket_server/* Используется для получения битов сервера WebSocket, установленных на вычислительном экземпляре. Сервер WebSocket используется для передачи запросов от клиента Visual Studio Code (классического приложения) на сервер Visual Studio Code, работающий на вычислительном экземпляре.

Примечание.

При использовании расширения VS Code машинного обучения Azure удаленному вычислительному экземпляру потребуется доступ к общедоступным репозиториям для установки пакетов, необходимых для расширения. Если вычислительному экземпляру требуется прокси-сервер для доступа к этим общедоступным репозиториям или Интернету, вам потребуется установить и экспортировать переменные среды HTTP_PROXY и HTTPS_PROXY в файл ~/.bashrc вычислительного экземпляра. Этот процесс можно автоматизировать во время подготовки с помощью пользовательского скрипта.

При использовании службы Azure Kubernetes Service (AKS) с Машинным обучением Azure разрешите следующий трафик в виртуальной сети AKS.

Сведения об использовании решения брандмауэра см. в статье Использование рабочей области через брандмауэр для Машинного обучения Azure.

Следующие шаги

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