Настройте частную конечную точку для рабочей области Машинного обучения Azure

ОБЛАСТЬ ПРИМЕНЕНИЯ:расширение Машинного обучения для Azure CLI версии 2 (текущая версия)

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

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

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

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

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

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

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

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

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

  • Отключить сетевые политики для частных конечных точек перед добавлением частной конечной точки.

Ограничения

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

  • При использовании Mozilla Firefox могут возникнуть проблемы при попытке доступа к частной конечной точке рабочей области. Эта проблема может быть связана с работой DNS по протоколу HTTPS в Mozilla Firefox. Мы рекомендуем использовать Microsoft Edge или Google Chrome.

  • Использование частной конечной точки не влияет на уровень управления Azure (операции управления), такие как удаление рабочей области или управление ресурсами вычислений. Например, создание, обновление или удаление целевого объекта вычислений. Эти операции выполняются через общедоступный Интернет в нормальном режиме. Операции с плоскостью данных, такие как использование Машинного обучения Azure Studio, API (включая опубликованные конвейеры) или пакетов SDK, используют частную конечную точку.

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

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

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

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

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

Создание рабочей области, использующей частную конечную точку

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

Совет

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

ОБЛАСТЬ ПРИМЕНЕНИЯ:расширение Машинного обучения для Azure CLI версии 2 (текущая версия)

При использовании расширения Azure CLI 2.0 для машинного обучения для настройки рабочей области используется документ YAML. Следующий пример демонстрирует создание рабочей области с помощью конфигурации YAML.

Совет

При использовании частного канала рабочая область не сможет использовать вычисление для задач Реестра контейнеров Azure при создании образов. Свойство image_build_compute в этой конфигурации задает имя вычислительного кластера ЦП, которое будет использоваться для сборки среды образов Docker. Можно также указать, будет ли доступ к рабочей области приватного канала осуществляться через Интернет с помощью свойства public_network_access.

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

$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
name: mlw-privatelink-prod
location: eastus
display_name: Private Link endpoint workspace-example
description: When using private link, you must set the image_build_compute property to a cluster name to use for Docker image environment building. You can also specify whether the workspace should be accessible over the internet.
image_build_compute: cpu-compute
public_network_access: Disabled
tags:
  purpose: demonstration
az ml workspace create \
    -g <resource-group-name> \
    --file privatelink.yml

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

az network private-endpoint create \
    --name <private-endpoint-name> \
    --vnet-name <vnet-name> \
    --subnet <subnet-name> \
    --private-connection-resource-id "/subscriptions/<subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>" \
    --group-id amlworkspace \
    --connection-name workspace -l <location>

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

# Add privatelink.api.azureml.ms
az network private-dns zone create \
    -g <resource-group-name> \
    --name privatelink.api.azureml.ms

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name privatelink.api.azureml.ms \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group create \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone privatelink.api.azureml.ms \
    --zone-name privatelink.api.azureml.ms

# Add privatelink.notebooks.azure.net
az network private-dns zone create \
    -g <resource-group-name> \
    --name privatelink.notebooks.azure.net

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name privatelink.notebooks.azure.net \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group add \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone privatelink.notebooks.azure.net \
    --zone-name privatelink.notebooks.azure.net

Добавление частной конечной точки в рабочую область

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

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

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

ОБЛАСТЬ ПРИМЕНЕНИЯ:расширение Машинного обучения для Azure CLI версии 2 (текущая версия)

При использовании расширения Azure CLI 2.0 для машинного обучения используйте сетевые команды интерфейса командной строки Azure для создания конечной точки частного канала для рабочей области.

az network private-endpoint create \
    --name <private-endpoint-name> \
    --vnet-name <vnet-name> \
    --subnet <subnet-name> \
    --private-connection-resource-id "/subscriptions/<subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>" \
    --group-id amlworkspace \
    --connection-name workspace -l <location>

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

# Add privatelink.api.azureml.ms
az network private-dns zone create \
    -g <resource-group-name> \
    --name 'privatelink.api.azureml.ms'

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name 'privatelink.api.azureml.ms' \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group create \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone 'privatelink.api.azureml.ms' \
    --zone-name 'privatelink.api.azureml.ms'

# Add privatelink.notebooks.azure.net
az network private-dns zone create \
    -g <resource-group-name> \
    --name 'privatelink.notebooks.azure.net'

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name 'privatelink.notebooks.azure.net' \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group add \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone 'privatelink.notebooks.azure.net' \
    --zone-name 'privatelink.notebooks.azure.net'

Удаление частной конечной точки

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

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

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

Чтобы удалить частную конечную точку, используйте следующую информацию:

ОБЛАСТЬ ПРИМЕНЕНИЯ:расширение Машинного обучения для Azure CLI версии 2 (текущая версия)

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

az network private-endpoint delete \
    --name <private-endpoint-name> \
    --resource-group <resource-group-name> \

Включение открытого доступа

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

Важно!

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

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

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

  • Некоторые функции студии не смогут получить доступ к данным. Эта проблема возникает, если данные хранятся в службе, защищенной с помощью виртуальной сети. Например, учетной запись службы хранилища Azure. Чтобы устранить эту проблему, добавьте IP-адрес клиентского устройства в брандмауэр учетной записи служба хранилища Azure.
  • Использование Jupyter, JupyterLab, RStudio или Posit Workbench (ранее RStudio Workbench) в вычислительном экземпляре, включая выполнение записных книжек, не поддерживается.

Вот как можно включить общий доступ:

Совет

Можно настроить два возможных свойства:

  • allow_public_access_when_behind_vnet — используется пакетом SDK для Python версии 1.
  • public_network_access — используется интерфейсом командной строки и пакетом SDK Python версии 2. Каждое свойство переопределяет другое. Например, параметр public_network_access переопределит любой предыдущий параметр на allow_public_access_when_behind_vnet.

Корпорация Майкрософт рекомендует использовать для public_network_access включения и отключения общедоступного доступа к рабочей области.

ОБЛАСТЬ ПРИМЕНЕНИЯ:расширение Машинного обучения для Azure CLI версии 2 (текущая версия)

При использовании расширения Azure CLI 2.0 для машинного обучения используйте az ml update команду, чтобы включить public_network_access для рабочей области:

az ml workspace update \
    --set public_network_access=Enabled \
    -n <workspace-name> \
    -g <resource-group-name>

Вы также можете включить доступ к общедоступной сети с помощью YAML-файла. Дополнительные сведения см. в справочнике по YAML рабочей области.

Включение общедоступного доступа только из диапазонов IP-адресов Интернета (предварительная версия)

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

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

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

ОБЛАСТЬ ПРИМЕНЕНИЯ:расширение Машинного обучения для Azure CLI версии 2 (текущая версия)

Azure CLI не поддерживает это.

Ограничения для правил IP-сети

Следующие ограничения применяются к диапазонам IP-адресов:

  • Сетевые правила для IP-адресов можно применять только для общедоступных IP-адресов в Интернете.

    Диапазоны зарезервированных IP-адресов не допускаются в правилах IP-адресов, таких как частные адреса, начинающиеся с 10, 172.16 до 172.31 и 192.168.

  • Необходимо предоставить допустимые диапазоны адресов Интернета с помощью нотации CIDR в форме 16.17.18.0/24 или в качестве отдельных IP-адресов, таких как 16.17.18.19.

  • Для настройки правил брандмауэра хранилища поддерживаются только адреса IPv4.

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

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

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

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

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

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

Важно!

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

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

Несколько частных конечных точек

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

  • Клиентские среды разработки в отдельной виртуальной сети.

  • Кластер Azure Kubernetes Service (AKS) в отдельной виртуальной сети.

  • Другие службы Azure в отдельной виртуальной сети. Например, Azure Synapse и Фабрика данных Azure могут использовать управляемую виртуальную сеть Майкрософт. В каждом из случаев закрытая конечная точка для рабочей области может быть добавлена в управляемую виртуальную сеть, используемую этими службами. Дополнительные сведения об использовании управляемой виртуальной сети с этими службами см. в следующих статьях:

    Важно!

    Защита от кражи данных Synapse с Машинным обучением Azure не поддерживается.

Важно!

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

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

Сценарий: изолированные клиенты

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

Примечание.

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

  1. Создайте для клиентов другую виртуальную сеть. Эта виртуальная сеть может содержать виртуальные машины Azure, которые выступают в роли клиентов, или VPN-шлюз, используемый локальными клиентами для подключения к виртуальной сети.
  2. Добавьте новую частную конечную точку для учетной записи службы хранилища Azure, хранилища ключей Azure Key Vault и реестра контейнеров Azure, используемых рабочей областью. Эти частные конечные точки должны существовать в клиентской виртуальной сети.
  3. При наличии другого хранилища, используемого рабочей областью, добавьте новую частную конечную точку для этого хранилища. Частная конечная точка должна существовать в клиентской виртуальной сети, и для нее должна быть включена интеграция с частной зоной DNS.
  4. Добавьте новую частную конечную точку в рабочую область. Эта частная конечная точка должна существовать в клиентской виртуальной сети, и для нее должна быть включена интеграция с частной зоной DNS.
  5. Выполните действия, описанные в статье Использование Studio в виртуальной сети, чтобы разрешить студии доступ к учетным записям хранения.

Эта конфигурация представлена на следующей схеме: Виртуальная сеть рабочей нагрузки содержит вычислительные ресурсы, созданные рабочей областью для обучения и развертывания. Клиентская виртуальная сеть содержит клиентов либо клиентские подключения EXPRESSROUTE/VPN. Обе виртуальные сети содержат частные конечные точки для рабочей области, учетную запись службы хранилища Azure, хранилище ключей Azure Key Vault и реестр контейнеров Azure.

Diagram of isolated client VNet

Сценарий: изолированная служба Kubernetes Azure

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

Примечание.

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

  1. Создайте экземпляр Службы Azure Kubernetes (AKS). Во время создания AKS создает виртуальную сеть, содержащую кластер AKS.
  2. Добавьте новую частную конечную точку для учетной записи службы хранилища Azure, хранилища ключей Azure Key Vault и реестра контейнеров Azure, используемых рабочей областью. Эти частные конечные точки должны существовать в клиентской виртуальной сети.
  3. При наличии другого хранилища, используемого рабочей областью, добавьте новую частную конечную точку для этого хранилища. Частная конечная точка должна существовать в клиентской виртуальной сети, и для нее должна быть включена интеграция с частной зоной DNS.
  4. Добавьте новую частную конечную точку в рабочую область. Эта частная конечная точка должна существовать в клиентской виртуальной сети, и для нее должна быть включена интеграция с частной зоной DNS.
  5. Подключите кластер AKS к рабочей области Машинного обучения Azure. Дополнительные сведения см. в разделе Создание и подключение кластера Службы Azure Kubernetes.

Diagram of isolated AKS VNet

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