Сетевая изоляция с управляемыми подключенными конечными точками
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)
При развертывании модели машинного обучения в управляемой подключенной конечной точке можно защитить обмен данными с подключенной конечной точкой с использованием частных конечных точек. В этой статье вы узнаете, как можно использовать частную конечную точку для защиты входящего трафика к управляемой сетевой конечной точке. Вы также узнаете, как можно использовать управляемую рабочую область виртуальной сети для обеспечения безопасного взаимодействия между развертываниями и ресурсами.
Вы можете защитить входящие запросы оценки от клиентов к интернет-конечной точке и защитить исходящие связи между развертыванием, ресурсами Azure, которые он использует, и частными ресурсами. Безопасность для входящих и исходящих подключений настраивается отдельно. Дополнительные сведения о конечных точках и развертываниях см. в статье Что такое конечные точки и развертывания.
На следующей схеме архитектуры показано, как обмен данными осуществляется через частные конечные точки к управляемой сетевой конечной точке. Входящие запросы оценки из виртуальной сети клиента передаются через частную конечную точку рабочей области к управляемой сетевой конечной точке. Исходящие связи между развертываниями и службами обрабатываются через частные конечные точки из управляемой виртуальной сети рабочей области в эти экземпляры служб.
Примечание.
- В этой статье рассматривается изоляция сети с помощью управляемой виртуальной сети рабочей области. Описание устаревшего метода сетевой изоляции, в котором Машинное обучение Azure создает управляемую виртуальную сеть для каждого развертывания в конечной точке, см. в приложении.
- Каждое развертывание изолировано от других развертываний независимо от входящего и исходящего взаимодействия, описанного в этой статье. Другими словами, даже при использовании конечных точек или развертываний, позволяющих входящий и исходящий трафик в Интернет, между развертываниями существует сетевая изоляция, которая блокирует любое развертывание от прямого подключения к другим развертываниям.
Ограничения
Флаг
v1_legacy_mode
должен быть отключен (false) в рабочей области Машинного обучения Azure. Если этот флаг включен, вы не сможете создать управляемую конечную точку в сети. Дополнительные сведения см. в статье Сетевая изоляция с помощью API версии 2.Если в рабочей области Машинного обучения Azure есть частная конечная точка, созданная до 24 мая 2022 г., необходимо повторно создать частную конечную точку рабочей области, прежде чем настраивать подключенные конечные точки для использования частной конечной точки. Дополнительные сведения о создании частной конечной точки для рабочей области см. в статье Настройка частной конечной точки для рабочей области Машинного обучения Azure.
Совет
Чтобы подтвердить создание рабочей области, можно проверить свойства рабочей области.
В Студии перейдите в
Directory + Subscription + Workspace
раздел (в правом верхнем углу студии) и выберитеView all properties in Azure Portal
. Выберите представление JSON в правом верхнем углу страницы "Обзор", а затем выберите последнюю версию API. На этой странице можно проверить значениеproperties.creationTime
.Кроме того, используйте
az ml workspace show
интерфейс командной строки сmy_ml_client.workspace.get("my-workspace-name")
пакетом SDK илиcurl
рабочей областью с REST API.При использовании сетевой изоляции с сетевыми конечными точками можно использовать связанные с рабочей областью ресурсы (Реестр контейнеров Azure (ACR), учетную запись хранения, Key Vault и Application Insights) из другой группы ресурсов, отличной от рабочей области. Однако эти ресурсы должны принадлежать той же подписке и клиенту, что и ваша рабочая область.
Примечание.
Сетевая изоляция, описанная в этой статье, применяется к операциям плоскости данных, то есть операциям, которые приводят к запросам оценки (или обслуживанию моделей). Операции плоскости управления (например, запросы на создание, обновление, удаление или извлечение ключей проверки подлинности) отправляются в Azure Resource Manager через общедоступную сеть.
Безопасные запросы оценки входящего трафика
Безопасная входящий трафик от клиента к управляемой сетевой конечной точке возможна с помощью частной конечной точки для рабочей области Машинное обучение Azure. Эта частная конечная точка в виртуальной сети клиента взаимодействует с рабочей областью управляемой сетевой конечной точки и является средством, с помощью которого управляемая конечная точка в Сети может получать входящие запросы оценки от клиента.
Чтобы защитить запросы оценки к сетевой конечной точке, чтобы клиент смог получить доступ только через частную конечную точку рабочей области, установите public_network_access
флаг для конечной точки disabled
. После создания конечной точки можно обновить этот параметр, чтобы включить доступ к общедоступной сети при необходимости.
Задайте для флага disabled
конечной public_network_access
точки значение :
az ml online-endpoint create -f endpoint.yml --set public_network_access=disabled
Если для public_network_access
задано значение disabled
, входящие запросы оценки принимаются с помощью частной конечной точки рабочей области, а доступ к этой конечной точке из общедоступных сетей получить невозможно.
Кроме того, если задано public_network_access
значение enabled
, конечная точка может получать входящие запросы оценки из Интернета.
Безопасный исходящий доступ с помощью управляемой рабочей области виртуальной сети
Чтобы защитить исходящее взаимодействие от развертывания к службам, необходимо включить изоляцию управляемой виртуальной сети для рабочей области Машинное обучение Azure, чтобы Машинное обучение Azure могли создать управляемую виртуальную сеть для рабочей области. Все управляемые сетевые конечные точки в рабочей области (и управляемые вычислительные ресурсы для рабочей области, такие как вычислительные кластеры и вычислительные экземпляры) автоматически используют эту управляемую виртуальную сеть, а развертывания под конечными точками совместно используют частные конечные точки управляемой виртуальной сети для связи с ресурсами рабочей области.
При защите рабочей области с помощью управляемой виртуальной сети egress_public_access
флаг для управляемых развертываний в Сети больше не применяется. Избегайте настройки этого флага при создании управляемого сетевого развертывания.
Для исходящего взаимодействия с управляемой виртуальной сетью рабочей области Машинное обучение Azure:
- Создает частные конечные точки для управляемой виртуальной сети для взаимодействия с ресурсами Azure, которые используются рабочей областью, например служба хранилища Azure, Azure Key Vault и Реестр контейнеров Azure.
- Позволяет развертываниям получить доступ к реестру контейнеров Майкрософт (MCR), что может быть полезно, если вы хотите использовать курируемые среды или развертывание без кода MLflow.
- Позволяет пользователям настраивать правила исходящего трафика частной конечной точки для частных ресурсов и настраивать правила исходящего трафика (тег службы или полное доменное имя) для общедоступных ресурсов. Дополнительные сведения об управлении правилами исходящего трафика см. в разделе "Управление правилами исходящего трафика".
Кроме того, можно настроить два режима изоляции для исходящего трафика из управляемой рабочей области виртуальной сети, а именно:
- Разрешить исходящий интернет, чтобы разрешить весь исходящий трафик через Интернет из управляемой виртуальной сети
- Разрешить только утвержденный исходящий трафик, управлять исходящим трафиком с помощью частных конечных точек, правил исходящего трафика FQDN и правил исходящего тега службы.
Например, предположим, что управляемая виртуальная сеть рабочей области содержит два развертывания в управляемой сетевой конечной точке, оба развертывания могут использовать частные конечные точки рабочей области для обмена данными:
- Рабочая область Машинное обучение Azure
- Большой двоичный объект служба хранилища Azure, связанный с рабочей областью
- Реестр контейнеров Azure рабочей области
- The Azure Key Vault
- (Необязательно) дополнительные частные ресурсы, поддерживающие частные конечные точки.
Дополнительные сведения о конфигурациях управляемой виртуальной сети рабочей области см. в статье об архитектуре управляемой виртуальной сети.
Сценарии конфигурации сетевой изоляции
У вашей рабочей области Машинное обучение Azure и управляемой сетевой конечной точки есть public_network_access
флаг, который можно использовать для настройки входящего взаимодействия. С другой стороны, исходящее взаимодействие из развертывания зависит от управляемой виртуальной сети рабочей области.
Взаимодействие с управляемой сетевой конечной точкой
Предположим, что у управляемой сетевой конечной точки есть развертывание, использующее модель ИИ, и вы хотите использовать приложение для отправки запросов оценки в конечную точку. Вы можете решить, какую конфигурацию сетевой изоляции использовать для управляемой сетевой конечной точки следующим образом:
Для входящего взаимодействия:
Если приложение доступно в Интернете, необходимо включить public_network_access
конечную точку, чтобы он мог получать запросы на входящий балл от приложения.
Тем не менее, предположим, что приложение является частным, например внутренним приложением в вашей организации. В этом сценарии требуется, чтобы модель ИИ использовалась только в вашей организации, а не предоставляет ее в Интернете. Таким образом, необходимо отключить конечную точку public_network_access
, чтобы она получила запросы на входящий оценки только через частную конечную точку рабочей области.
Для исходящего взаимодействия (развертывания):
Предположим, что развертывание должно получить доступ к частным ресурсам Azure (таким как служба хранилища Azure BLOB-объект, ACR и Azure Key Vault), или это неприемлемо для развертывания для доступа к Интернету. В этом случае необходимо включить управляемую виртуальную сеть рабочей области с разрешенным только утвержденным режимом изоляции исходящего трафика . Этот режим изоляции позволяет исходящему подключению от развертывания только к утвержденным назначениям, тем самым защищая от кражи данных. Кроме того, можно добавить правила исходящего трафика для рабочей области, чтобы разрешить доступ к более частным или общедоступным ресурсам. Дополнительные сведения см. в разделе "Настройка управляемой виртуальной сети", чтобы разрешить только утвержденный исходящий трафик.
Тем не менее, если вы хотите, чтобы развертывание было доступом к Интернету, вы можете использовать управляемую виртуальную сеть рабочей области с разрешением режима изоляции исходящего интернета . Помимо доступа к Интернету, вы сможете использовать частные конечные точки управляемой виртуальной сети для доступа к частным ресурсам Azure, которые вам нужны.
Наконец, если развертывание не требует доступа к частным ресурсам Azure и вам не нужно управлять доступом к Интернету, вам не нужно использовать управляемую рабочую область виртуальной сети.
Входящий трафик в рабочую область Машинное обучение Azure
Вы можете использовать public_network_access
флаг рабочей области Машинное обучение Azure, чтобы включить или отключить входящий доступ к рабочей области.
Как правило, если вы защищаете входящий трафик к рабочей области (отключив флаг рабочей области public_network_access
), вы также хотите защитить входящий трафик к управляемой конечной точке в Интернете.
На следующей диаграмме показан типичный рабочий процесс для защиты входящего взаимодействия с рабочей областью Машинное обучение Azure и управляемой конечной точкой в Сети. Для обеспечения оптимальной безопасности рекомендуется отключить public_network_access
флаги для рабочей области и управляемой сетевой конечной точки, чтобы обеспечить доступ через общедоступный Интернет. Если в рабочей области нет частной конечной точки, можно создать ее, обязательно включите правильное разрешение DNS. Затем вы можете получить доступ к управляемой сетевой конечной точке с помощью частной конечной точки рабочей области.
Примечание.
Управляемые сетевые конечные точки используют частную конечную точку рабочей области. Если вы добавляете записи DNS вручную в частную зону privatelink.api.azureml.ms
DNS, необходимо добавить запись с подстановочным знаком *.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.azureml.ms
для маршрутизации всех конечных точек в рабочей области в частную конечную точку.
Дополнительные сведения о разрешении DNS для рабочей области и частной конечной точки см. в статье "Как использовать рабочую область с пользовательским DNS-сервером".
Приложение
Безопасный исходящий доступ с помощью устаревшего метода сетевой изоляции
Для управляемых сетевых конечных точек можно также защитить исходящее взаимодействие между развертываниями и ресурсами с помощью Машинное обучение Azure управляемой виртуальной сети для каждого развертывания в конечной точке. Безопасное исходящее взаимодействие также обрабатывается с помощью частных конечных точек для этих экземпляров служб.
Примечание.
Настоятельно рекомендуется использовать подход, описанный в статье "Безопасный исходящий доступ" с управляемой рабочей областью виртуальной сетью вместо устаревшего метода.
Чтобы ограничить связь между развертыванием и внешними ресурсами, включая используемые ресурсы Azure, необходимо убедиться в том, что:
Флаг развертывания
egress_public_network_access
.disabled
Использование этого флага позволяет с помощью частной конечной точки обеспечить защиту при загрузке модели, кода и изображений, используемых в развертывании. После создания развертывания невозможно обновить флаг (включить или отключить).egress_public_network_access
Попытка изменить флаг во время обновления развертывания завершается сбоем с сообщением об ошибке.Рабочая область имеет приватную ссылку, которая позволяет получить доступ к ресурсам Azure через частную конечную точку.
Рабочая область имеет
public_network_access
флаг, который можно включить или отключить, если планируется использовать управляемое сетевое развертывание, использующее общедоступный исходящий трафик, необходимо также настроить рабочую область для предоставления общедоступного доступа. Это связано с тем, что исходящее взаимодействие из сетевого развертывания — это API рабочей области. Если развертывание настроено для использования общедоступного исходящего трафика, рабочая область должна иметь возможность принять это общедоступное взаимодействие (разрешить общедоступный доступ).
При наличии нескольких развертываний и настройке egress_public_network_access
disabled
для каждого развертывания в управляемой сетевой конечной точке каждое развертывание имеет собственную независимую Машинное обучение Azure управляемую виртуальную сеть. Для каждой виртуальной сети Машинное обучение Azure создает три частные конечные точки для связи со следующими службами:
- Рабочая область Машинное обучение Azure
- Большой двоичный объект служба хранилища Azure, связанный с рабочей областью
- Реестр контейнеров Azure рабочей области
Например, если установить egress_public_network_access
флаг disabled
для двух развертываний управляемой сетевой конечной точки, создается всего шесть частных конечных точек. Каждое развертывание будет использовать три частные конечные точки для взаимодействия с рабочей областью, большим двоичным объектом и реестром контейнеров.
Внимание
Машинное обучение Azure не поддерживает пиринг между управляемой виртуальной сетью развертывания и виртуальной сетью клиента. Для безопасного доступа к ресурсам, необходимым для развертывания, мы используем частные конечные точки для взаимодействия с ресурсами.
На следующей схеме показаны входящие запросы оценки из виртуальной сети клиента, которые передаются через частную конечную точку рабочей области в управляемую сетевую конечную точку. На схеме также показаны два сетевых развертывания, каждый из которых имеет собственный Машинное обучение Azure управляемой виртуальной сети. Виртуальная сеть каждого развертывания имеет три частные конечные точки для исходящего взаимодействия с рабочей областью Машинное обучение Azure, большим двоичным объектом служба хранилища Azure, связанным с рабочей областью, и Реестр контейнеров Azure рабочей области.
Чтобы отключить egress_public_network_access
и создать частные конечные точки, выполните следующие действия.
az ml online-deployment create -f deployment.yml --set egress_public_network_access=disabled
Чтобы подтвердить создание частных конечных точек, сначала проверьте учетную запись хранения и реестр контейнеров, связанные с рабочей областью (см. раздел "Скачать файл конфигурации"), найдите каждый ресурс из портал Azure и проверьте Private endpoint connections
вкладку в Networking
меню.
Внимание
- Как упоминалось ранее, исходящее взаимодействие из управляемого сетевого развертывания конечной точки — это API рабочей области. Если конечная точка настроена для использования общедоступного исходящего трафика (иными словами,
public_network_access
для конечной точки заданenabled
флаг), рабочая область должна иметь возможность принять это общедоступное взаимодействие (public_network_access
флаг для заданнойenabled
рабочей области). - При создании сетевых развертываний с
egress_public_network_access
disabled
установленным флагом они будут иметь доступ только к защищенным ресурсам (рабочей области, BLOB-объектам и реестру контейнеров). Например, если развертывание использует ресурсы модели, отправленные в другие учетные записи хранения, загрузка модели завершится ошибкой. Убедитесь, что ресурсы модели находятся в учетной записи хранения, связанной с рабочей областью. - Если
egress_public_network_access
задано значениеdisabled
, развертывание может получить доступ только к связанным с рабочей областью ресурсам, защищенным в виртуальной сети. Напротив, еслиegress_public_network_access
заданоenabled
значение, развертывание может получить доступ только к ресурсам с общедоступным доступом, что означает, что он не может получить доступ к ресурсам, защищенным в виртуальной сети.
В следующей таблице перечислены конфигурации, поддерживаемые при настройке входящих и исходящих подключений для подключенной конечной точки:
Настройка | Входящий трафик (свойство конечной точки) |
Исходящий трафик (свойство развертывания) |
Поддержка |
---|---|---|---|
безопасный входящий трафик с помощью безопасного исходящего трафика | public_network_access отключено |
egress_public_network_access отключено |
Да |
безопасный входящий трафик с помощью общедоступного исходящего трафика | public_network_access отключено |
egress_public_network_access включена рабочая область также должна разрешить общедоступный доступ, так как исходящий трафик развертывания — это API рабочей области. |
Да |
общедоступный входящий трафик с помощью безопасного исходящего трафика | public_network_access включено |
egress_public_network_access отключено |
Да |
общедоступный входящий трафик с помощью общедоступного исходящего трафика | public_network_access включено |
egress_public_network_access включена рабочая область также должна разрешить общедоступный доступ, так как исходящий трафик развертывания — это API рабочей области. |
Да |