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


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

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

В этом документе вы узнаете, как использовать частную конечную точку с рабочей областью Машинного обучения Azure. Сведения о создании виртуальной сети для Машинного обучение 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 свойство, чтобы указать вычислительный кластер, используемый для создания образов. Свойство 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.
  • Можно использовать только IPv4-адреса.
  • Сведения об использовании этой функции с управляемой виртуальной сетью Машинное обучение Azure см. в Машинное обучение Azure управляемой виртуальной сети.

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

Azure CLI не поддерживает общедоступный доступ из диапазонов IP-адресов.

Ограничения для правил 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.

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

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

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

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

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

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

Внимание

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

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

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

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

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

  • Кластер Служба Azure Kubernetes (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. Чтобы разрешить Студия машинного обучения Azure доступ к учетным записям хранения, перейдите в студию в статье о виртуальной сети.

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

Схема изолированного клиента виртуальной сети

Сценарий: изолированная служба 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.

Схема изолированной Службы Azure Kubernetes виртуальной сети