Доступ к локальным ресурсам из управляемой сети Microsoft Foundry (классическая модель)

Применяется только к:Портал Foundry (классический). Эта статья недоступна для нового портала Foundry. Дополнительные сведения о новом портале.

Примечание

Содержание в новой документации Microsoft Foundry может открываться по ссылкам в этой статье вместо документации Foundry (классической версии), которую вы просматриваете сейчас.

Важно

Эта статья предоставляет устаревшую поддержку для проектов на основе концентраторов. Он не будет работать для проектов Foundry. Узнайте , какой у меня тип проекта?

примечание о совместимости SDK. Для примеров кода требуется определенная версия пакета SDK для Foundry Microsoft. При возникновении проблем совместимости рассмотрите возможность миграции из концентратора в проект Foundry.

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

Шлюз приложений Azure — это подсистема балансировки нагрузки, которая принимает решения по маршрутизации на основе URL-адреса HTTPS-запроса. Для получения дополнительной информации см. Что такое Шлюз приложений Azure.

Настройте шлюз приложений в виртуальной сети Azure для входящего доступа к Центру Foundry. После настройки шлюза создайте частную конечную точку, соединяющую управляемую виртуальную сеть концентратора с шлюзом. Частная конечная точка сохраняет весь сквозный путь закрытым и вне Интернета.

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

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

Необходимые условия

  • Настройте управляемую виртуальную сеть Центра Foundry и выберите режим изоляции: разрешить исходящий интернет или разрешить только утвержденный исходящий трафик. Дополнительные сведения см. в разделе " Изоляция управляемой виртуальной сети".
  • Получите частную конечную точку HTTP(S) ресурса.
  • Чтобы использовать пример Azure CLI в этой статье, установите Azure CLI и расширение ml (версия 2.15.0 или более поздней).
  • Чтобы использовать пример Python в этой статье, установите Azure SDK для пакетов Python:
    • pip install azure-ai-ml azure-identity
  • Убедитесь, что управляемое удостоверение хаба может одобрить подключения к частной конечной точке на целевом шлюзе приложений. Назначьте роль Утверждающего подключения к корпоративной сети Azure AI (или пользовательскую роль с эквивалентными разрешениями) для ресурса шлюза приложений.
  • Убедитесь, что учетная запись, используемая для создания правил частной конечной точки для исходящего трафика, имеет разрешения на создание подключений к частной конечной точке, включая такие действия RBAC в Azure:
    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/read
    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/write

Создание настройки исходящего трафика для частной конечной точки (Azure CLI или Python)

После создания Шлюз приложений Azure с частной конфигурацией ВНУТРЕННЕГО IP-адреса с именем appGwPrivateFrontendIpIPv4 добавьте правило исходящего трафика частной конечной точки из управляемой виртуальной сети Центра управления Foundry в шлюз приложений.

Azure CLI

В следующем примере добавляется или обновляется правило исходящего подключения для частной конечной точки в шлюзе приложений (Application Gateway). Замените значения заполнителей собственными значениями.

az ml workspace outbound-rule set \
  --resource-group <resource-group> \
  --workspace-name <hub-name> \
  --rule <rule-name> \
  --type private_endpoint \
  --service-resource-id "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Network/applicationGateways/<APP_GW_NAME>" \
  --subresource-target appGwPrivateFrontendIpIPv4 \
  --spark-enabled false \
  --fqdns "contoso.com,contoso2.com"

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

Ссылки

Python

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

from azure.ai.ml import MLClient
from azure.ai.ml.entities import PrivateEndpointDestination
from azure.identity import DefaultAzureCredential

subscription_id = "<subscription-id>"
resource_group = "<resource-group>"
hub_name = "<hub-name>"

ml_client = MLClient(
    DefaultAzureCredential(),
    subscription_id=subscription_id,
    resource_group_name=resource_group,
    workspace_name=hub_name,
)

hub = ml_client.workspaces.get(name=hub_name)

hub.managed_network.outbound_rules = [
    PrivateEndpointDestination(
        name="<rule-name>",
        service_resource_id="/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Network/applicationGateways/<APP_GW_NAME>",
        subresource_target="appGwPrivateFrontendIpIPv4",
        spark_enabled=False,
        fqdns=["contoso.com", "contoso2.com"],
    )
]

ml_client.workspaces.begin_update(hub).result()

Ссылки

Поддерживаемые ресурсы

Шлюз приложений поддерживает любой внутренний ресурс, использующий HTTP или HTTPS. Шлюз приложений проверяет подключения из управляемой виртуальной сети к следующим ресурсам:

  • JFrog Artifactory
  • Снежинка
  • Частные API

Настройка Шлюз приложений Azure

Следуйте руководству "Быстрый старт": настройка веб-трафика с помощью портала. Чтобы правильно настроить шлюз приложений для использования с Foundry, используйте следующие рекомендации при создании шлюза приложений:

  1. На вкладке "Основные сведения" просмотрите и примените следующие параметры.

    • Убедитесь, что шлюз приложений находится в том же регионе, что и выбранная Azure Virtual Network.
    • Foundry поддерживает только IPv4 для шлюза приложений.
    • В виртуальной сети выберите одну выделенную подсеть для шлюза приложений. Не развертывайте другие ресурсы в этой подсети.
  2. На вкладке Frontends шлюз приложений не поддерживает только частный внешний IP-адрес, поэтому выберите или создайте общедоступный IP-адрес. Добавьте частные IP-адреса для внутренних ресурсов в диапазоне подсети, выбранном на вкладке "Основные сведения".

  3. На вкладке Backends добавьте целевые объекты серверной части в серверные пулы для маршрутизации. Создайте разные пулы по мере необходимости (например, базу данных Snowflake).

  4. На вкладке "Конфигурация" настройте, как интерфейсные IP-адреса получают запросы и направляют их в серверную часть.

    • В разделе прослушивателя :

      • Создайте прослушиватель с помощью HTTP или HTTPS и укажите порт прослушивания. Чтобы использовать два прослушивателя на одном интерфейсном IP-адресе, который направляется в разные серверные пулы, используйте разные порты. Входящие запросы различаются по порту.
      • Для сквозного шифрования TLS выберите прослушиватель HTTPS и отправьте сертификат, чтобы шлюз приложений смог расшифровать запрос, полученный прослушивателем. Дополнительные сведения см. в разделе Enabling end to end TLS on Шлюз приложений Azure.
      • Для полностью закрытого внутреннего целевого объекта без доступа к общедоступной сети не настраивайте прослушиватель на общедоступный внешний IP-адрес или его правило маршрутизации. Шлюз приложений перенаправит только запросы, которые прослушиватели получают на указанном порту. Чтобы избежать случайного добавления прослушивателя внешнего интерфейса IP, ознакомьтесь с правилами безопасности сети для блокировки доступа к публичной сети.
    • В разделе целевые серверы, если вы используете HTTPS и сертификат серверной части не выдан известным центром сертификации, загрузите корневой сертификат (.CER) серверной части. Дополнительные сведения см. в разделе "Настройка сквозного шифрования TLS" с помощью портала.

  5. После создания ресурса шлюза приложений перейдите к нему на портале Azure. В разделе "Параметры" выберите "Приватный канал ", чтобы включить частный доступ через подключение к частной конечной точке. Конфигурация приватного канала не создается по умолчанию.

    • Выберите + Добавить, чтобы добавить конфигурацию Приватный канал, а затем используйте следующие значения для создания конфигурации:
      • Имя: укажите имя конфигурации приватного канала
      • Подсеть частного канала: выберите подсеть в виртуальной сети
      • Конфигурация ВНЕШНЕГО IP-адреса: appGwPrivateFrontendIpIPv4
    • Чтобы проверить правильность настройки приватного канала, перейдите на вкладку подключения к частной конечной точке и выберите +Частная конечная точка. На вкладке "Ресурс"целевой подресурс должен быть именем конфигурации IP-адреса частного фронтенда, appGwPrivateFrontendIpIPv4. Если значение в целевом подресурсе не отображается, прослушиватель шлюза приложений настроен неправильно. Дополнительные сведения см. в разделе Configure Шлюз приложений Azure Приватный канал.
  1. После создания интерфейсного IP-адреса и серверных пулов шлюза приложений настройте частную конечную точку из управляемой виртуальной сети в шлюз приложений. На портале Azure перейдите в центр Foundry, выберите Networking, а затем выберите Управляемый рабочей областью исходящий доступ>+ Добавить пользовательские правила исходящего трафика.

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

    • Имя правила: введите имя частной конечной точки для шлюза приложений.
    • Тип назначения: частная конечная точка
    • Подписка и группа ресурсов: выберите подписку и группу ресурсов, в которой развернут шлюз приложений.
    • Тип ресурса: Microsoft.Network/applicationGateways
    • Имя ресурса: имя ресурса шлюза приложений.
    • Подресурс: appGwPrivateFrontendIpIPv4
    • Полные доменные имена (FQDN): введите FQDN-псевдонимы, которые будут использоваться на портале Foundry. Они разрешаются на частный IP-адрес управляемой частной конечной точки, предназначенный для шлюза приложений. Добавьте несколько FQDN, если необходимо связаться с несколькими ресурсами через шлюз приложений.
      • Все добавленные полные доменные имена используют один и тот же IP-адрес для целевого шлюза приложений.
      • IP-адрес находится в диапазоне управляемой виртуальной сети, а не в диапазоне виртуальной сети клиента.

    Примечание

    • Если вы используете прослушиватель HTTPS с отправленным сертификатом, убедитесь, что псевдоним FQDN соответствует сертификату CN (общее имя) или SAN (альтернативное имя субъекта), в противном случае вызов HTTPS завершается ошибкой из-за SNI (указание имени сервера).
    • Каждое полное доменное имя должно иметь по крайней мере три метки, чтобы создать частную зону DNS для частной конечной точки в шлюзе приложений.
    • После создания частной конечной точки вы можете изменить поле полных доменных имен с помощью пакета SDK или CLI. Его нельзя изменить на портале Azure.
    • Динамическое именование подресурсов не поддерживается для конфигурации закрытого IP-адреса на фронтенде. Имя внешнего IP-адреса должно быть appGwPrivateFrontendIpIPv4.

Настройка с помощью пакета SDK Python и Azure CLI

Чтобы создать правило исходящего трафика частной конечной точки с помощью Azure CLI или Python, см. статью Создание правила исходящего трафика частной конечной точки (Azure CLI или Python).

Ограничения

  • Шлюз приложений поддерживает только конечные точки HTTP(S) в серверном пуле. Он не поддерживает сетевой трафик, отличный от HTTP(S). Убедитесь, что ресурсы используют протокол HTTP(S).
  • При подключении к Snowflake через шлюз приложений, добавьте правила исходящего подключения для FQDN, чтобы можно было скачивать пакеты и драйверы и выполнять проверку OCSP.
    • Драйвер Snowflake JDBC использует ПРОТОКОЛ HTTPS, но другие драйверы могут отличаться. Убедитесь, что ресурс использует протокол HTTP(S).
  • Шлюз приложений не поддерживает сценарии использования Spark, такие как вычислительные задачи на Spark или бессерверные вычисления на Spark. Ошибка разрешения DNS (например, с nslookup) возникает при попытке разрешения FQDN в среде Spark.
  • Дополнительные сведения см. в разделе часто задаваемые вопросы о шлюзе приложений.

Ошибки шлюза приложений

Устранение ошибок подключения шлюза приложений к ресурсам серверной части: