Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ:
Расширение Azure CLI для машинного обучения версии 2 (текущая)
Python SDK azure-ai-ml версии 2 (текущая)
Совет
Вместо действий, описанных в этой статье, можно использовать Машинное обучение Azure управляемых виртуальных сетей. В управляемой виртуальной сети Машинное обучение Azure обеспечивает изоляцию сети для ваших рабочих областей и управляемых вычислений. Вы также можете добавить частные конечные точки для ресурсов, необходимых рабочему пространству, например, учетная запись хранилища Azure. Для получения дополнительной информации см. управляемую изоляцию сети рабочей области.
В этой статье вы узнаете, как защитить рабочее пространство Машинное обучение Azure и связанные с ним ресурсы в виртуальной сети Azure.
Эта статья входит в цикл статей, посвященных вопросам защиты рабочего процесса Машинного обучения Azure. Другие статьи этой серии:
- Общие сведения о виртуальных сетях
- Защита среды обучения
- Безопасная среда вывода
- Включение функций Студии
- Использование пользовательских DNS-серверов
- Использование брандмауэра
- Сетевая изоляция платформы API
Для получения руководства по созданию безопасной рабочей области см. Руководство: Создание безопасной рабочей области, шаблон Bicep или шаблон Terraform.
Из этой статьи вы узнаете, как включить следующие ресурсы рабочей области в виртуальной сети:
- Рабочая область службы "Машинное обучение 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
При настройке рабочей области Машинного обучения Azure или любого ресурса с частной конечной точкой может потребоваться настроить управляемый пользователем вычислительный кластер для сборок образов среды машинного обучения Azure. Сценарий по умолчанию использует бессерверные вычисления и в настоящее время предназначен для сценариев без ограничений сети на ресурсы, связанные с рабочей областью Машинного обучения Azure.
Внимание
Вычислительный кластер, используемый для создания образов Docker, должен получить доступ к репозиториям пакетов, которые используются для обучения и развертывания моделей. Возможно, потребуется добавить правила безопасности сети, разрешающие доступ к общедоступным репозиториям, использовать частные пакеты Python или использовать пользовательские образы Docker (sdk версии 1), которые уже включают пакеты.
Использование частного реестра контейнеров Azure через подключение к рабочей области для извлечения образов не поддерживается в конфигурации собственной виртуальной сети (BYO VNet). Чтобы использовать частный ACR, настройте его в качестве присоединенного по умолчанию ACR для рабочей области и следуйте инструкциям в разделе "Включить реестр контейнеров Azure" (ACR).
Azure Monitor
Предупреждение
Azure Monitor поддерживает использование Приватного канала Azure для подключения к виртуальной сети. Однако в Azure Monitor необходимо использовать открытый режим Приватный канал. Дополнительные сведения см. в разделе Режимы доступа к Приватному каналу: только частный или открытый.
Требуется общий доступ в Интернет
Машинному обучению 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 на серверной части для экземпляров/кластеров вычислений машинного обучения Azure. |
| Исходящие | TCP: 443 | AzureResourceManager |
Создание ресурсов Azure с помощью Машинное обучение Azure, Azure CLI и Машинное обучение Azure SDK. |
| Исходящие | 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-адресов Azure и тегов служб.
- Используйте команду Azure CLI az network list-service-tags.
- Используйте команду Azure PowerShell Get-AzNetworkServiceTag.
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.comvscode.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.
- Общие требования к входящему/исходящему трафику для AKS приведены в статье Ограничение исходящего трафика в Службе Azure Kubernetes.
- Исходящий трафик на mcr.microsoft.com.
- При развертывании модели в кластере AKS используйте руководство в статье Развертывание моделей машинного обучения в Службе Azure Kubernetes.
Сведения об использовании решения брандмауэра см. в разделе "Настройка требуемого входного и выходного взаимодействия".
Защита рабочей области с помощью частной конечной точки
Приватный канал Azure позволяет подключаться к рабочей области с помощью частной конечной точки. Частная конечная точка — это набор частных IP-адресов в виртуальной сети. Затем можно ограничить доступ пользователей к рабочей области, чтобы он осуществлялся только по частным IP-адресам. Частная конечная точка помогает снизить риск утечки данных.
Дополнительные сведения о настройке частной конечной точки для рабочей области см. в статье Как настроить частную конечную точку.
Предупреждение
Защита рабочей области с помощью частных конечных точек не обеспечивает сквозную безопасность. Чтобы защитить отдельные компоненты решения, дополнительно нужно выполнить действия, описанные в оставшейся части этой статьи и всей серии статей о виртуальных сетях. Например, если вы используете частную конечную точку для рабочей области, но ваша учетная запись хранения Azure не стоит за виртуальной сетью, трафик между рабочей областью и хранилищем не использует виртуальную сеть для безопасности.
Защита учетных записей хранения Azure
Машинное обучение Azure поддерживает учетные записи хранения, которые настроены для использования частной конечной точки или конечной точки службы.
На портале Azure выберите учетную запись службы хранилища Azure.
Изучите информацию в статье Использование частных конечных точек для службы хранилища Azure, чтобы добавить частные конечные точки для следующих ресурсов хранилища:
- Блоб
- Файл
- Очередь — требуется только в том случае, если планируется использовать пакетные конечные точки или ParallelRunStep в конвейере машинного обучения Azure.
- Таблица — требуется только в том случае, если планируется использовать конечные точки Batch или ParallelRunStep в конвейере машинного обучения Azure.
Совет
При настройке учетной записи хранения, которая не является хранилищем по умолчанию, выберите тип целевого подресурса , соответствующий учетной записи хранения, которую нужно добавить.
После создания частных конечных точек для ресурсов хранилища перейдите на вкладку Брандмауэры и виртуальные сети в разделе Сеть для учетной записи хранения.
Нажмите Выбранные сети, а затем в разделе Экземпляры ресурсов выберите
Microsoft.MachineLearningServices/Workspaceв качестве Тип ресурса. Выберите свою рабочую область, используя Имя экземпляра. Дополнительные сведения см. в разделе Доверенный доступ на основе управляемого удостоверения, назначаемого системой.Совет
Вы также можете установить флажок Разрешить службам Azure из списка доверенных служб доступ к этой учетной записи хранения, чтобы расширить возможности доступа из доверенных служб. Дополнительные сведения см. в статье Настройка брандмауэров службы хранилища Azure и виртуальных сетей.
Выберите Сохранить, чтобы сохранить конфигурацию.
Совет
При использовании частной конечной точки можно также отключить анонимный доступ. Дополнительные сведения см. в разделе о запрете анонимного доступа.
Защищенное хранилище Azure Key Vault
Машинное обучение Azure использует связанный экземпляр Key Vault для хранения следующих учетных данных:
- строка подключения связанной учетной записи хранения;
- Пароли для экземпляров Реестра контейнеров Azure
- строки подключения к хранилищам данных.
Хранилище ключей Azure можно настроить для использования частной конечной точки или конечной точки службы. Чтобы использовать возможности экспериментирования в системе Машинного обучения Azure с хранилищем ключей Azure за виртуальной сетью, выполните следующие действия.
Совет
Хранилище ключей должно находиться в той же виртуальной сети, что и рабочая область, но она может находиться в одноранговой виртуальной сети.
Сведения об использовании частной конечной точки с Azure Key Vault см. в статье Интеграция Key Vault со службой "Приватный канал Azure".
Включение Реестра контейнеров Azure (ACR)
Совет
Если при создании рабочей области не использовался существующий реестр контейнеров Azure, возможно, он не существует. По умолчанию рабочая область не создает экземпляр ACR, пока не понадобится его. Чтобы принудительно создать объект, обучите или разверните модель в рабочей области до того как вы перейдете к шагам в этом разделе.
Реестр контейнеров Azure можно настроить для использования частной конечной точки. Чтобы настроить рабочую область для использования ACR в виртуальной сети, выполните следующие действия.
Найдите имя реестра контейнеров Azure для рабочей области с помощью одного из следующих методов:
ПРИМЕНЯЕТСЯ К: расширение Azure CLI для машинного обучения версия 2 (текущая)
Если вы установили расширение Машинного обучения версии 2 для Azure CLI, используйте
az ml workspace showкоманду для отображения сведений о рабочей области. Расширение версии 1 не возвращает эти сведения.az ml workspace show -n yourworkspacename -g resourcegroupname --query 'container_registry'Эта команда возвращает значение следующего вида:
"/subscriptions/{GUID}/resourceGroups/{resourcegroupname}/providers/Microsoft.ContainerRegistry/registries/{ACRname}". Последняя часть строки — это имя реестра контейнеров Azure для рабочей области.Ограничьте доступ к виртуальной сети, выполнив действия, описанные в разделе "Подключение к частному подключению к реестру контейнеров Azure". При добавлении виртуальной сети выберите виртуальную сеть и подсеть для ресурсов Машинного обучения Azure.
Настройте ACR для рабочей области, чтобы разрешить доступ доверенным службам.
По умолчанию Машинное обучение Azure пытается использовать бессерверные вычисления для создания образа. Этот подход работает только в том случае, если ресурсы, зависящие от рабочей области, такие как учетная запись хранения или реестр контейнеров, не зависят от сети (частные конечные точки). Если вы ограничиваете сетевой доступ к зависимым от рабочей области ресурсам, используйте вместо этого image-build-compute.
Чтобы настроить вычислительный ресурс для сборки образов, создайте кластер вычислений Машинное обучение Azure SKU с процессором CPU в той же Виртуальной сети, что и зависимые от рабочего пространства ресурсы. Вы можете задать этот кластер в качестве вычислительной среды для сборки образов по умолчанию. Он с этого момента создает каждый образ в вашей рабочей области. Используйте один из следующих методов, чтобы настроить рабочую область для создания образов 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Вы можете вернуться к бессерверным вычислениям, выполнив ту же команду и ссылаясь на вычисление как пустое пространство:
--image-build-compute ''
Совет
Если ACR находится за виртуальной сетью, вы также можете отключить общедоступный доступ к нему.
Защита Azure Monitor и Application Insights
Чтобы включить сетевую изоляцию для Azure Monitor и экземпляра Application Insights в рабочей области, выполните следующие действия.
Откройте ресурс Application Insights на портале Azure. На вкладке "Обзор " может быть свойство "Рабочая область". Если у него нет свойства, выполните шаг 2. Если это так, то можно перейти сразу к шагу 3.
Совет
Новые рабочие области создают ресурс Application Insights на базе рабочей области по умолчанию. Если вы недавно создали рабочую область, вам не нужно выполнить шаг 2.
Обновите экземпляр Application Insights для рабочей области. Для получения инструкций по обновлению см. статью "Миграция на ресурсы Application Insights в рабочей области".
Создайте область Azure Monitor Приватный канал и добавьте экземпляр Application Insights из шага 1 в область. Дополнительные сведения см. в статье «Настройка приватного подключения Azure Monitor».
Безопасное подключение к рабочей области
Чтобы подключиться к рабочей области, защищенной виртуальной сетью, используйте один из перечисленных ниже методов.
VPN-шлюз Azure подключает локальные сети к виртуальной сети через частное подключение. Подключение осуществляется через общедоступный Интернет. Доступно два типа VPN-шлюзов.
- "точка — сеть": каждый клиентский компьютер использует VPN-клиент для подключения к виртуальной сети;
- межсайтовый: VPN-устройство подключает виртуальную сеть к внутренней сети вашей локальной инфраструктуры.
ExpressRoute. Подключает локальные сети к облаку через частное подключение. Подключение устанавливается с помощью поставщика услуг подключения.
Бастион Azure. В этом сценарии вы создаете виртуальную машину Azure (иногда называемую блоком перехода) в виртуальной сети. Затем вы подключаетесь к виртуальной машине с помощью Бастиона Azure. Бастион позволяет подключаться к виртуальной машине с помощью сеанса RDP или SSH из локального веб-браузера. Затем вы используете блок перехода в качестве среды разработки. Так как он находится внутри виртуальной сети, он имеет прямой доступ к рабочей области. Для примера использования jump box обратитесь к разделу Создание защищенной рабочей области.
Внимание
При использовании VPN-шлюза или шлюза ExpressRoute необходимо спланировать, как будет работать разрешение имен между локальными ресурсами вашей организации и ресурсами в виртуальной сети. Дополнительные сведения см. в статье Использование настраиваемого DNS-сервера.
Если у вас возникли проблемы с подключением к рабочей области, см. статью Устранение неполадок с безопасным подключением к рабочей области.
Диагностика рабочей области
Из Студии машинного обучения Azure или пакета SDK Python можно запустить диагностику в рабочей области. После выполнения диагностики возвращается список всех обнаруженных проблем. Этот список содержит ссылки на возможные решения. Дополнительные сведения см. в статье Как использовать диагностику рабочей области.
Общедоступный доступ к рабочей области
Внимание
Хотя машинное обучение Azure поддерживает эту конфигурацию, корпорация Майкрософт не рекомендует ее. Проверьте эту конфигурацию с помощью команды безопасности перед его использованием в рабочей среде.
В некоторых случаях может потребоваться разрешить доступ к рабочей области из общедоступной сети (без подключения через виртуальную сеть с помощью методов, описанных в разделе Безопасное подключение к рабочей области). Доступ через общедоступный Интернет защищен с помощью TLS.
Чтобы включить доступ к рабочей области общедоступной сети, выполните следующие действия.
- Включите общедоступный доступ к рабочей области после настройки частной конечной точки рабочей области.
- Настройте брандмауэр службы хранилища Azure, чтобы разрешить обмен данными с IP-адресами клиентов, которые подключаются через общедоступный Интернет. Возможно, потребуется изменить разрешенный IP-адрес, если у клиентов нет статического IP-адреса. Например, если один из Специалист по обработке и анализу данных работает из дома и не может установить VPN-подключение к виртуальной сети.
Следующие шаги
Эта статья входит в цикл статей, посвященных вопросам защиты рабочего процесса Машинного обучения Azure. Другие статьи этой серии:
- Общие сведения о виртуальных сетях
- Защита среды обучения
- Обеспечьте безопасность среды инференса
- Включение функций Студии
- Использование пользовательских DNS-серверов
- Использование брандмауэра
- Руководство. Создание защищенной рабочей области
- Шаблон Bicep
- Шаблон Terraform.
- Сетевая изоляция платформы API