Isolement réseau avec des points de terminaison en ligne managés

S’APPLIQUE À :Extension Azure CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (version actuelle)

Quand vous déployez un modèle Machine Learning sur un point de terminaison en ligne managé, vous pouvez sécuriser les communications avec ce point de terminaison en ligne au moyen de points de terminaison privés. Dans cet article, vous allez découvrir comment utiliser un point de terminaison privé pour sécuriser la communication entrante vers un point de terminaison en ligne managé. Vous allez également découvrir comment le réseau virtuel managé d’un espace de travail permet de fournir une communication sécurisée entre les déploiements et les ressources.

Vous pouvez sécuriser les requêtes de scoring entrantes des clients vers un point de terminaison en ligne, puis sécuriser les communications sortantes entre un déploiement, les ressources Azure qu’il utilise et les ressources privées. La sécurité des communications entrantes et sortantes est configurée séparément. Pour plus d’informations sur les points de terminaison et les déploiements, consultez Que sont les points de terminaison et les déploiements ?

Le diagramme d’architecture suivant montre le flux des communications des points de terminaison privés vers le point de terminaison en ligne managé. Les requêtes de scoring entrantes provenant du flux de réseau virtuel d’un client transitent par le point de terminaison privé de l’espace de travail vers le point de terminaison en ligne managé. Les communications sortantes des déploiements vers les services sont gérées via des points de terminaison privés du réseau virtuel managé de l’espace de travail vers ces instances de service.

Diagram showing inbound communication via a workspace private endpoint and outbound communication via private endpoints of a workspace managed virtual network.

Remarque

Cet article se concentre sur l’isolement réseau à l’aide du réseau virtuel managé de l’espace de travail. Pour obtenir une description de la méthode héritée d’isolement réseau, dans laquelle Azure Machine Learning crée un réseau virtuel managé pour chaque déploiement dans un point de terminaison, veuillez consulter l’annexe.

Limites

  • L’indicateur v1_legacy_mode doit être désactivé (false) sur votre espace de travail Azure Machine Learning. Si cet indicateur est activé, vous ne pourrez pas créer de point de terminaison en ligne managé. Pour plus d’informations, consultez Isolement réseau avec l’API v2.

  • Si votre espace de travail Azure Machine Learning a un point de terminaison privé qui a été créé avant le 24 mai 2022, vous devez recréer le point de terminaison privé de l’espace de travail avant de configurer vos points de terminaison en ligne pour utiliser un point de terminaison privé. Pour plus d’informations sur la création d’un point de terminaison privé pour votre espace de travail, consultez Guide pratique pour configurer un point de terminaison privé pour un espace de travail Azure Machine Learning.

    Conseil

    Pour confirmer la création d’un espace de travail, vous pouvez vérifier les propriétés de l’espace de travail.

    Dans Studio, accédez à la Directory + Subscription + Workspace section (en haut à droite de Studio) et sélectionnez View all properties in Azure Portal. Sélectionnez la vue JSON en haut à droite de la page « Vue d’ensemble », puis choisissez la dernière version de l’API. À partir de cette page, vous pouvez case activée la valeur de properties.creationTime.

    Vous pouvez également utiliser az ml workspace show avec l’interface CLI, my_ml_client.workspace.get("my-workspace-name") avec le Kit de développement logiciel (SDK) ou curl sur un espace de travail avec l’API REST.

  • Lorsque vous utilisez l’isolement réseau avec des points de terminaison en ligne, vous pouvez utiliser des ressources associées à l’espace de travail (Azure Container Registry (ACR), compte de stockage, Key Vault et Application Insights) depuis un groupe de ressources différent de celui de votre espace de travail. Toutefois, ces ressources doivent appartenir aux mêmes abonnement et locataire que votre espace de travail.

Remarque

L’isolation réseau décrite dans cet article s’applique aux opérations de plan de données, c’est-à-dire aux opérations qui résultent de demandes de scoring (ou de service de modèle). Les opérations de plan de contrôle (telles que les requêtes de création, de mise à jour, de suppression ou de récupération de clés d’authentification) sont envoyées à Azure Resource Manager sur le réseau public.

Sécuriser les requêtes de scoring entrantes

La communication entrante sécurisée d’un client vers un point de terminaison en ligne managé est possible à l’aide d’un point de terminaison privé pour l’espace de travail Azure Machine Learning. Ce point de terminaison privé sur le réseau virtuel du client communique avec l’espace de travail du point de terminaison en ligne managé. D’autre part, ce point de terminaison privé permet au point de terminaison en ligne managé de recevoir les demandes de scoring entrantes du client.

Pour sécuriser les requêtes de scoring adressées au point de terminaison en ligne, puis permettre ainsi à un client d’y accéder uniquement via le point de terminaison privé de l’espace de travail, définissez l’indicateur public_network_access du point de terminaison sur disabled. Après avoir créé le point de terminaison, vous pouvez mettre à jour ce paramètre pour activer l’accès au réseau public si vous le souhaitez.

Définissez l’indicateur public_network_access du point de terminaison sur disabled :

az ml online-endpoint create -f endpoint.yml --set public_network_access=disabled

Quand public_network_access a la valeur disabled, les requêtes de scoring entrantes sont reçues sur le point de terminaison privé de l’espace de travail, et le point de terminaison n’est pas accessible depuis les réseaux publics.

Sinon, si vous définissez public_network_access sur enabled, le point de terminaison peut recevoir des requêtes de scoring entrantes par Internet.

Sécuriser l’accès sortant avec le réseau virtuel managé de l’espace de travail

Pour sécuriser la communication sortante d’un déploiement vers des services, vous devez activer l’isolement de réseau virtuel managé pour votre espace de travail Azure Machine Learning. Ainsi, Azure Machine Learning pourra créer un réseau virtuel managé pour l’espace de travail. Tous les points de terminaison en ligne managés de l’espace de travail (et les ressources de calcul managées de l’espace de travail, telles que les clusters de calcul et les instances de calcul) utilisent automatiquement le réseau virtuel managé de cet espace de travail. De plus, les déploiements sous les points de terminaison partagent les points de terminaison privés du réseau virtuel managé pour la communication avec les ressources de l’espace de travail.

Lorsque vous sécurisez votre espace de travail avec un réseau virtuel managé, l’indicateur egress_public_access des déploiements en ligne managés ne s’applique plus. Évitez de définir cet indicateur lors de la création du déploiement en ligne managé.

Pour la communication sortante avec le réseau virtuel managé d’un espace de travail, Azure Machine Learning :

  • Crée des points de terminaison privés pour le réseau virtuel managé à utiliser pour la communication avec les ressources Azure utilisées par l’espace de travail, telles que le Stockage Azure, Azure Key Vault et Azure Container Registry.
  • Permet aux déploiements d’accéder à Microsoft Container Registry (MCR), ce qui peut être utile lorsque vous souhaitez utiliser des environnements curés ou un déploiement sans code MLflow.
  • Permet aux utilisateurs de configurer des règles de trafic sortant de point de terminaison privé vers des ressources privées et de configurer des règles de trafic sortant (étiquette de service ou nom de domaine complet) pour les ressources publiques. Si vous souhaitez en savoir plus sur la gestion des règles de trafic sortant, veuillez consulter la rubrique Gérer les règles de trafic sortant.

En outre, vous pouvez configurer deux modes d’isolement pour le trafic sortant depuis le réseau virtuel managé de l’espace de travail, à savoir :

  • Autoriser le trafic sortant Internet, pour autoriser tout le trafic sortant Internet depuis le réseau virtuel managé
  • Autoriser uniquement le trafic sortant approuvé, pour contrôler le trafic sortant à l’aide de points de terminaison privés, de règles de trafic sortant de nom de domaine complet et de règles de trafic sortant d’étiquette de service.

Par exemple, supposons que le réseau virtuel managé de votre espace de travail contient deux déploiements sous un point de terminaison en ligne managé. Les deux déploiements peuvent utiliser les points de terminaison privés de l’espace de travail pour communiquer avec les éléments suivants :

  • L’espace de travail Azure Machine Learning
  • Blob de stockage Azure associé à l’espace de travail
  • L’instance Azure Container Registry de l’espace de travail
  • Azure Key Vault
  • (Facultatif) ressources privées supplémentaires qui prennent en charge les points de terminaison privés.

Si vous souhaitez en savoir plus sur les configurations du réseau virtuel managé de l’espace de travail, veuillez consulter la rubrique Architecture des réseaux virtuels managés.

Scénarios de configuration de l’isolement réseau

Votre espace de travail Azure Machine Learning et votre point de terminaison en ligne géré ont chacun un indicateur public_network_access, que vous pouvez utiliser pour configurer leur communication entrante. D’un autre côté, la communication sortante d’un déploiement dépend du réseau virtuel managé de l’espace de travail.

Communication avec le point de terminaison en ligne géré

Supposons qu’un point de terminaison en ligne managé dispose d’un déploiement qui utilise un modèle d’IA et que vous souhaitez utiliser une application pour envoyer des requêtes de scoring au point de terminaison. Vous pouvez choisir la configuration d’isolement réseau à utiliser pour le point de terminaison en ligne managé comme suit :

Pour la communication entrante :

Si l’application est disponible publiquement sur Internet, vous devez activerpublic_network_access pour que le point de terminaison puisse recevoir des requêtes de scoring entrantes de l’application.

Toutefois, supposons que l’application soit privée, par exemple une application interne au sein de votre organisation. Dans ce scénario, le modèle d’IA doit être utilisé uniquement au sein de votre organisation, et non divulgué sur Internet. Par conséquent, vous devez désactiver l’indicateur public_network_access du point de terminaison pour qu’il puisse recevoir des requêtes de scoring entrantes uniquement via le point de terminaison privé de son espace de travail.

Pour la communication sortante (déploiement) :

Supposons que votre déploiement doit accéder à des ressources Azure privées (telles que le blob de Stockage Azure, ACR et Azure Key Vault), ou que l’accès du déploiement à Internet est inacceptable. Dans ce cas, vous devez activer le réseau virtuel managé de l’espace de travail avec le mode d’isolement autoriser uniquement le trafic sortant approuvé. Ce mode d’isolement permet la communication sortante du déploiement vers les destinations approuvées uniquement, ce qui offre une protection contre l’exfiltration de données. En outre, vous pouvez ajouter des règles de trafic sortant pour l’espace de travail, pour autoriser l’accès à davantage de ressources privées ou publiques. Si vous souhaitez en savoir plus, veuillez consulter la rubrique Configurer un réseau virtuel managé pour autoriser seulement le trafic sortant approuvé.

Toutefois, si vous souhaitez que votre déploiement accède à Internet, vous pouvez utiliser le réseau virtuel managé de l’espace de travail avec le mode d’isolement autoriser le trafic internet sortant. En plus de pouvoir accéder à Internet, vous pourrez utiliser les points de terminaison privés du réseau virtuel managé pour accéder aux ressources Azure privées nécessaires.

Enfin, si votre déploiement n’a pas besoin d’accéder à des ressources Azure privées et si vous n’avez pas besoin de contrôler l’accès à Internet, vous n’avez pas besoin d’utiliser le réseau virtuel managé d’un espace de travail.

Communication entrante vers l’espace de travail Azure Machine Learning

Vous pouvez utiliser l’indicateur public_network_access de votre espace de travail Azure Machine Learning pour activer ou désactiver l’accès entrant à l’espace de travail. En règle générale, si vous sécurisez la communication entrante vers votre espace de travail (en désactivant l’indicateur public_network_access de l’espace de travail), vous souhaitez également sécuriser la communication entrante vers votre point de terminaison en ligne géré.

Le graphique suivant montre un workflow classique de sécurisation de la communication entrante vers votre espace de travail Azure Machine Learning et votre point de terminaison en ligne géré. Pour une sécurité optimale, nous vous recommandons de désactiver les indicateurs public_network_access de l’espace de travail et du point de terminaison en ligne géré, afin d’avoir la certitude qu’ils sont inaccessibles via l’Internet public. Si l’espace de travail n’a pas de point de terminaison privé, vous pouvez en créer un, en prenant soin d’inclure la résolution DNS appropriée. Vous pouvez ensuite accéder au point de terminaison en ligne géré à l’aide du point de terminaison privé de l’espace de travail.

A screenshot showing a typical workflow for securing inbound communication to your workspace and managed online endpoint.

Remarque

Les points de terminaison en ligne gérés partagent le point de terminaison privé de l’espace de travail. Si vous ajoutez manuellement des enregistrements DNS à la zone DNS privée privatelink.api.azureml.ms, un enregistrement A avec un caractère générique *.<per-workspace globally-unique identifier>.inference.<region>.privatelink.api.azureml.ms doit être ajouté pour router tous les points de terminaison situés sous l’espace de travail vers le point de terminaison privé.

Pour plus d’informations sur la résolution DNS de votre espace de travail et de votre point de terminaison privé, consultez Utilisation de votre espace de travail avec un serveur DNS personnalisé.

Annexe

Sécuriser l’accès sortant avec la méthode d’isolement réseau héritée

Pour les points de terminaison en ligne managés, vous pouvez également sécuriser la communication sortante entre les déploiements et les ressources à l’aide d’un réseau virtuel managé Azure Machine Learning pour chaque déploiement du point de terminaison. La communication sortante sécurisée est également gérée à l’aide de points de terminaison privés vers ces instances de service.

Remarque

Nous vous recommandons vivement d’utiliser l’approche décrite dans Sécuriser l’accès sortant avec le réseau virtuel géré de l’espace de travail au lieu de cette méthode héritée.

Pour restreindre la communication entre un déploiement et des ressources externes, y compris les ressources Azure qu’il utilise, vous devez vérifier les points suivants :

  • L’indicateur egress_public_network_access du déploiement est disabled. Cet indicateur garantit que le téléchargement du modèle, du code et des images requis par votre déploiement est sécurisé avec un point de terminaison privé. Après avoir créé le déploiement, vous ne pouvez pas mettre à jour (activer ou désactiver) l’indicateur egress_public_network_access. Toute tentative de modification de l’indicateur lors de la mise à jour du déploiement génère une erreur.

  • L’espace de travail a une liaison privée d’accès aux ressources Azure via un point de terminaison privé.

  • L’espace de travail a un indicateur public_network_access qui peut être activé ou désactivé. Si vous envisagez d’utiliser un déploiement en ligne managé qui utilise le trafic sortant public, vous devez également configurer l’espace de travail pour autoriser l’accès public. Effectivement, la communication sortante depuis le déploiement en ligne est destinée à l’API de l’espace de travail. Lorsque le déploiement est configuré pour utiliser un trafic sortant public, l’espace de travail doit être en mesure d’accepter cette communication publique (autoriser l’accès public).

Lorsque vous avez plusieurs déploiements et que vous configurez l’indicateur egress_public_network_access sur disabled pour chaque déploiement d’un point de terminaison en ligne managé, chaque déploiement a son propre réseau virtuel managé Azure Machine Learning indépendant. Pour chaque réseau virtuel, Azure Machine Learning crée trois points de terminaison privés pour la communication avec les services suivants :

  • L’espace de travail Azure Machine Learning
  • Blob de stockage Azure associé à l’espace de travail
  • L’instance Azure Container Registry de l’espace de travail

Par exemple, si vous définissez l’indicateur egress_public_network_access sur disabled pour deux déploiements d’un point de terminaison en ligne managé, six points de terminaison privés sont créés au total. Chaque déploiement utilise trois points de terminaison privés disponibles pour communiquer avec l’espace de travail, le blob et le registre de conteneurs.

Important

Azure Machine Learning ne prend pas en charge le peering entre le réseau virtuel managé d’un déploiement et le réseau virtuel de votre client. Pour un accès sécurisé aux ressources nécessaires au déploiement, nous utilisons des points de terminaison privés pour communiquer avec les ressources.

Le diagramme suivant montre les requêtes de scoring entrantes provenant du flux de réseau virtuel d’un client transitent par le point de terminaison privé de l’espace de travail vers le point de terminaison en ligne managé. Le diagramme montre également deux déploiements en ligne, chacun dans son propre réseau virtuel managé Azure Machine Learning. Le réseau virtuel de chaque déploiement a trois points de terminaison privés pour la communication sortante avec l’espace de travail Azure Machine Learning, le blob Stockage Azure associé à l’espace de travail et le registre Azure Container Registry de l’espace de travail.

Diagram of overall network isolation with the legacy method.

Pour désactiver egress_public_network_access, puis créer les points de terminaison privés :

az ml online-deployment create -f deployment.yml --set egress_public_network_access=disabled

Pour confirmer la création des points de terminaison privés, vérifiez d’abord le compte de stockage et le registre de conteneurs associés à l’espace de travail (si vous souhaitez en savoir plus, veuillez consulter la rubrique Télécharger un fichier de configuration), recherchez chaque ressource depuis le Portail Azure, puis vérifiez l’onglet Private endpoint connections sous le menu Networking.

Important

  • Comment mentionné précédemment, la communication sortante à partir d’un déploiement de point de terminaison en ligne managé va vers l’API Espace de travail. Lorsque le point de terminaison est configuré pour utiliser le trafic sortant public (en d’autres termes, l’indicateur public_network_access du point de terminaison est défini sur enabled), l’espace de travail doit être en mesure d’accepter cette communication publique (indicateur public_network_access de l’espace de travail défini sur enabled).
  • Lorsque des déploiements en ligne sont créés avec l’indicateur egress_public_network_access défini sur disabled, ils ont uniquement accès aux ressources sécurisées (espace de travail, blob et registre de conteneurs). Par exemple, si le déploiement utilise des ressources de modèle chargées sur d’autres comptes de stockage, le téléchargement du modèle échoue. Vérifiez que les ressources du modèle se trouvent sur le compte de stockage associé à l’espace de travail.
  • Lorsque egress_public_network_access est défini sur disabled, le déploiement peut uniquement accéder aux ressources associées à l’espace de travail sécurisées dans le réseau virtuel. Dans le cas contraire, quand egress_public_network_access est défini sur enabled, le déploiement peut uniquement accéder aux ressources avec un accès public, ce qui signifie qu’il ne peut pas accéder aux ressources sécurisées dans le réseau virtuel.

Le tableau suivant liste les configurations prises en charge lors de la configuration des communications entrantes et sortantes sur un point de terminaison en ligne :

Configuration Entrant
(propriété de point de terminaison)
Sortant
(propriété de déploiement)
Pris en charge ?
entrant sécurisé avec sortant sécurisé public_network_access est désactivé egress_public_network_access est désactivé Oui
entrant sécurisé avec sortant public public_network_access est désactivé egress_public_network_access est activé
L’espace de travail doit également autoriser l’accès public, car le déploiement sortant est vers l’API de l’espace de travail.
Oui
entrant public avec sortant sécurisé public_network_access est activé egress_public_network_access est désactivé Oui
entrant public avec sortant public public_network_access est activé egress_public_network_access est activé
L’espace de travail doit également autoriser l’accès public, car le déploiement sortant est vers l’API de l’espace de travail.
Oui

Étapes suivantes