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


Защита рабочей области Машинное обучение Azure с помощью виртуальных сетей (версия 1)

ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение ml для Azure CLI v1Python SDK azureml v1

Внимание

В этой статье содержатся сведения об использовании пакета SDK машинного обучения Azure версии 1. Пакет SDK версии 1 устарел с 31 марта 2025 г. Поддержка будет завершена 30 июня 2026 г. Вы можете установить и использовать пакет SDK версии 1 до этой даты. Существующие рабочие процессы, использующие пакет SDK версии 1, будут продолжать работать после даты окончания поддержки. Однако они могут быть подвержены рискам безопасности или критическим изменениям в случае изменений архитектуры в продукте.

Рекомендуется перейти на пакет SDK версии 2 до 30 июня 2026 г. Дополнительные сведения о пакете SDK версии 2 см. в статье "Что такое ИНТЕРФЕЙС командной строки Машинного обучения Azure" и пакет SDK для Python версии 2 исправочник по пакету SDK версии 2.

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

Совет

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

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

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

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

  • Рабочая область службы "Машинное обучение Azure"
  • Учетные записи хранения Azure
  • хранилища данных и наборы данных Машинного обучения Azure;
  • Azure Key Vault
  • Реестр контейнеров Azure

Предварительные условия

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

  • Изучите подробности в статье Рекомендации по обеспечению корпоративной безопасности с помощью службы "Машинное обучение Azure".

  • Существующая виртуальная сеть и подсеть для использования с вычислительными ресурсами.

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

    Не используйте диапазон IP-адресов 172.17.0.0/16 для виртуальной сети. Это диапазон подсети по умолчанию, используемый сетью моста Docker, и приведет к ошибкам при использовании для виртуальной сети. Другие диапазоны также могут конфликтовать в зависимости от того, что вы хотите подключить к виртуальной сети. Например, если вы планируете подключить локальную сеть к виртуальной сети, а локальная сеть также использует диапазон 172.16.0.0/16. В конечном счете, это зависит от вас, как спланировать сетевую инфраструктуру.

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

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

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

Реестр контейнеров Azure

  • Реестр контейнеров Azure должен иметь версию "Премиум". Дополнительные сведения об обновлении см. в разделе Изменение SKU.

  • Если в Реестре контейнеров Azure используется частная конечная точка, то она должна находиться в той же виртуальной сети, что и учетная запись хранения и целевые объекты вычислений, применяемые для обучения или получения выводов. Если же используется конечная точка службы, то она должна находиться в той же виртуальной сети и подсети, что и учетная запись хранения и целевые объекты вычислений.

  • Рабочая область Машинного обучения Azure должна содержать кластер вычислительных ресурсов Машинного обучения Azure.

Ограничения

Учетная запись хранения Azure

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

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

Экземпляры контейнеров Azure

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

Реестр контейнеров Azure

Если ACR находится за виртуальной сетью, Машинное обучение Azure не может использовать его для непосредственного создания образов Docker. Вместо этого для построения образов используется кластер вычислений.

Внимание

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

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

Если Реестр контейнеров Azure использует для взаимодействия с виртуальной сетью частную конечную точку или конечную точку службы, то вы не сможете использовать управляемое удостоверение с кластерами вычислений Azure Machine Learning.

Azure Monitor

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

Azure Monitor поддерживает использование Приватного канала Azure для подключения к виртуальной сети. Однако в Azure Monitor необходимо использовать открытый режим Private Link. Дополнительные сведения см. в разделе Режимы доступа к Приватному каналу: только частный или открытый.

Требуется общий доступ в Интернет

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

Совет

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

Направление Протокол &
порты
Сервисный тег Цель
Исходящие TCP: 80, 443 AzureActiveDirectory Проверка подлинности с использованием Microsoft Entra ID.
Исходящие TCP: 443, 18881
UDP: 5831
AzureMachineLearning Использование служб Машинного обучения Azure.
Интеллисенс Python в блокнотах использует порт 18881.
Создание, обновление и удаление экземпляра вычислений для машинного обучения Azure используют порт 5831.
Исходящие ANY: 443 BatchNodeManagement.region Взаимодействие с серверной частью Azure Batch для вычислительных экземпляров или кластеров Azure Machine Learning.
Исходящие 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 ML для 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 Machine Learning.

Защита рабочей области с помощью частной конечной точки

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

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

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

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

Защита учетных записей хранения Azure

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

  1. На портале Azure выберите учетную запись службы хранилища Azure.

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

    • Блоб
    • Файл
    • Очередь (если вы планируете использовать ParallelRunStep в конвейере Машинного обучения Azure)
    • Таблица (если вы планируете использовать ParallelRunStep в конвейере Машинного обучения Azure)

    Совет

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

  3. После создания частных конечных точек для ресурсов хранилища перейдите на вкладку Брандмауэры и виртуальные сети в разделе Сеть для учетной записи хранения.

  4. Нажмите Выбранные сети, а затем в разделе Экземпляры ресурсов в списке Microsoft.MachineLearningServices/Workspace выберите . Выберите ваше рабочее пространство, используя Имя экземпляра. Дополнительные сведения см. в разделе Доверенный доступ на основе управляемого удостоверения, назначаемого системой.

    Совет

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

  5. Выберите Сохранить, чтобы сохранить конфигурацию.

Совет

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

Защищенное хранилище Azure Key Vault

Машинное обучение Azure использует связанный экземпляр Key Vault для хранения следующих учетных данных:

  • строка подключения связанной учетной записи хранения;
  • Пароли для репозиториев контейнеров Azure
  • строки подключения к хранилищам данных.

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

Совет

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

Сведения об использовании частной конечной точки с Azure Key Vault см. в статье Интеграция Key Vault со службой "Приватный канал Azure".

Настройка Реестра контейнеров Azure (ACR)

Совет

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

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

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

    ОБЛАСТЬ ПРИМЕНЕНИЯ: расширение Azure CLI для модулей машинного обучения версии 1

    Если вы установили расширение Машинное обучение версии 1 для Azure CLI, можно использовать az ml workspace show команду для отображения сведений о рабочей области.

    az ml workspace show -w yourworkspacename -g resourcegroupname --query 'containerRegistry'
    

    Эта команда возвращает значение следующего вида: "/subscriptions/{GUID}/resourceGroups/{resourcegroupname}/providers/Microsoft.ContainerRegistry/registries/{ACRname}". Последняя часть строки — это имя реестра контейнеров Azure для рабочей области.

  2. Ограничьте доступ к виртуальной сети по инструкции из статьи Частное подключение к Реестру контейнеров Azure . При добавлении виртуальной сети выберите виртуальную сеть и подсеть для ресурсов Машинного обучения Azure.

  3. Настройте ACR для рабочей области на разрешение доступа доверенным службам.

  4. создадите вычислительный кластер Машинного обучения Azure; Этот кластер используется для создания образов Docker, когда Azure Container Registry (ACR) находится в виртуальной сети. Дополнительные сведения см. в разделе Создание вычислительного кластера.

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

    Внимание

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

    • Поддерживается только SKU c ЦП.
    • Если вы используете вычислительный кластер, настроенный для отсутствия общедоступного IP-адреса, то для доступа к общедоступному Интернету кластеру необходимо предоставить какой-то способ. Доступ к Интернету необходим при доступе к образам, хранящимся в реестре контейнеров Майкрософт, пакетам, установленным на Pypi, Conda и т. д. Вам необходимо настроить определяемую пользователем маршрутизацию (UDR) для доступа к общедоступному IP-адресу, чтобы получить доступ к Интернету. Например, вы можете воспользоваться общедоступным IP-адресом своего брандмауэра или использовать NAT виртуальных сетей с общедоступным IP-адресом. Дополнительные сведения см. в статье о безопасном обучении в виртуальной сети.

    Вы можете использовать команду az ml workspace update, чтобы задать вычисление сборки. Эта команда одинакова для расширений Azure CLI версии 1 и версии 2 для Машинного обучения. В приведенной ниже команде замените myworkspace на имя рабочей области, myresourcegroup — на группу ресурсов, которая содержит эту рабочую область, а mycomputecluster — на имя вычислительного кластера.

    az ml workspace update --name myworkspace --resource-group myresourcegroup --image-build-compute mycomputecluster
    

Совет

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

Хранилища данных и наборы данных

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

Сервис Требуется пропускать проверку?
Хранилище BLOB-объектов Azure Да
Файловый ресурс Azure Да
Azure Data Lake Store 1-го поколения Нет
Azure Data Lake Store 2-го поколения Нет
База данных SQL Azure Да
PostgreSQL Да

Примечание.

Azure Data Lake Store 1-го поколения и Azure Data Lake Store 2-го поколения по умолчанию не используют эту проверку, поэтому для них какие-либо действия не требуются.

С помощью следующего примера кода создается новое хранилище Blob Azure и задается skip_validation=True.

blob_datastore = Datastore.register_azure_blob_container(workspace=ws,  

                                                         datastore_name=blob_datastore_name,  

                                                         container_name=container_name,  

                                                         account_name=account_name, 

                                                         account_key=account_key, 

                                                         skip_validation=True ) // Set skip_validation to true

Использование наборов данных

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

  • файл с разделителями полей
  • JSON (JavaScript Object Notation)
  • Паркет
  • SQL
  • Файлы

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

json_ds = Dataset.Tabular.from_json_lines_files(path=datastore_paths, 

validate=False) 

Обеспечение безопасности Azure Monitor и Application Insights

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

  1. Откройте ресурс Application Insights на портале Azure. Вкладка "Обзор" может иметь или не может иметь свойство "Рабочая область". Если у него нет свойства, выполните шаг 2. Если это так, можно перейти непосредственно к шагу 3.

    Совет

    Новые рабочие области по умолчанию создают ресурс Application Insights на базе рабочей области. Если рабочая область была создана недавно, вам не потребуется выполнить шаг 2.

  2. Обновите инстанцию Application Insights для рабочей области. Инструкции по обновлению см. в статье "Переход на ресурсы Application Insights, основанные на рабочей области".

  3. Создайте область действия Private Link в Azure Monitor и добавьте экземпляр Application Insights из шага 1 в эту область. Инструкции по этой настройке см. в статье "Настройка приватного канала Azure Monitor".

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

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

  • VPN-шлюз Azure подключает локальные сети к виртуальной сети через частное подключение. Подключение осуществляется через общедоступный Интернет. Доступно два типа VPN-шлюзов.

    • "точка — сеть": каждый клиентский компьютер использует VPN-клиент для подключения к виртуальной сети;
    • "сеть — сеть": VPN-устройство подключает виртуальную сеть к локальной сети.
  • ExpressRoute. Подключает локальные сети к облаку через частное подключение. Подключение устанавливается с помощью поставщика услуг подключения.

  • Бастион Azure. В этом сценарии вы создаете виртуальную машину Azure (иногда называемую блоком перехода) в виртуальной сети. Затем вы подключаетесь к виртуальной машине с помощью Бастиона Azure. Бастион позволяет подключаться к виртуальной машине с помощью сеанса RDP или SSH из локального веб-браузера. Затем вы используете "jump box" в качестве среды разработки. Так как он находится внутри виртуальной сети, он имеет прямой доступ к рабочей области. Для примера использования пограничного сервера см. раздел Создание защищенной рабочей области.

Внимание

При использовании VPN-шлюза или шлюза ExpressRoute необходимо спланировать, как будет происходить разрешение имен между вашими локальными ресурсами и ресурсами в виртуальной сети (VNet). Дополнительные сведения см. в статье Использование настраиваемого DNS-сервера.

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

Диагностика рабочей области

Из Студии машинного обучения Azure или пакета SDK Python можно запустить диагностику в рабочей области. После выполнения диагностики возвращается список всех обнаруженных проблем. Этот список содержит ссылки на возможные решения. Дополнительные сведения см. в статье Как использовать диагностику рабочей области.

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

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