Partager via


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

APPLIES TO :Extension Azure ML CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (préversion)

Quand vous déployez un modèle de 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 un point de terminaison privé peut sécuriser la communication entrante vers un point de terminaison en ligne managé. Vous découvrez également comment un réseau virtuel géré par l’espace de travail peut fournir une communication sécurisée entre les déploiements et les ressources.

Vous pouvez sécuriser les requêtes de notation entrantes des clients vers un point de terminaison en ligne et sécuriser les communications sortantes entre un déploiement, les ressources Azure qu'il utilise et les ressources privées. Vous configurez la sécurité pour les communications entrantes et sortantes 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 schéma d'architecture suivant illustre le flux de communication à travers les points de terminaison privés jusqu'au point de terminaison en ligne géré. Les requêtes de notation entrantes provenant du réseau virtuel d'un client transitent par le point de terminaison privé de l'espace de travail jusqu'au point de terminaison en ligne géré. Les communications sortantes des déploiements vers les services sont gérées via des points de terminaison privés du réseau virtuel géré de l'espace de travail vers ces instances de service.

Diagramme illustrant la communication entrante via un point de terminaison privé d'espace de travail et la communication sortante via des points de terminaison privés d'un réseau virtuel géré par un espace de travail.

Remarque

  • Cet article se concentre sur l’isolation réseau à l’aide du réseau virtuel managé de l’espace de travail. Pour une description de la méthode traditionnelle d’isolation du réseau, dans laquelle Azure Machine Learning crée un réseau virtuel géré pour chaque déploiement dans un point de terminaison, consultez l’annexe.
  • Chaque déploiement est isolé des autres déploiements, indépendamment de la communication entrante ou sortante évoquée dans cet article. En d’autres termes, même avec des points de terminaison et des déploiements qui autorisent l’accès entrant et sortant Internet, il existe une isolation réseau entre les déploiements, ce qui empêche tout déploiement de se connecter directement à d’autres déploiements.

Limites

  • L’indicateur v1_legacy_mode doit être réglé sur false afin de désactiver le mode hérité v1 sur votre espace de travail Azure Machine Learning. Si ce paramètre est activé, vous ne pouvez pas créer de point de terminaison en ligne managé. Pour plus d’informations, consultez la modification de l’isolation réseau avec notre nouvelle plateforme d’API sur Azure Resource Manager.

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

    Conseil

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

    1. Dans Azure Machine Learning Studio, accédez au coin supérieur droit et sélectionnez le nom de votre espace de travail.
    2. Dans la fenêtre Annuaire + Abonnement + Espace de travail, sélectionnez Afficher toutes les propriétés dans le portail Azure.
    3. Dans la page Vue d’ensemble du portail Azure, accédez au coin supérieur droit et sélectionnez Affichage JSON.
    4. Dans la fenêtre RESOURCE JSON, sous Versions d’API, sélectionnez la dernière version de l’API.
    5. Dans la properties section du code JSON, vérifiez la creationTime valeur.

    Vous pouvez également utiliser l’une des méthodes suivantes :

    • Kit de développement logiciel (SDK) Python : Workspace.get(name=<workspace-name>, subscription_id=<subscription-ID>, resource_group=<resource-group-name>).get_details()
    • API REST : curl https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/?api-version=2023-10-01 -H "Authorization:Bearer <access-token>"
    • PowerShell :Get-AzMLWorkspace -Name <workspace-name> -ResourceGroupName <resource-group-name>
  • Lorsque vous utilisez l’isolation réseau pour sécuriser les points de terminaison en ligne, vous pouvez utiliser des ressources associées à l’espace de travail à partir d’un groupe de ressources différent de celui de votre groupe de ressources d’espace de travail. Toutefois, ces ressources doivent appartenir aux mêmes abonnement et locataire que votre espace de travail. Les ressources associées à un espace de travail incluent Azure Container Registry, Stockage Azure, Azure Key Vault et Application Insights.

Remarque

Cet article décrit l’isolation réseau qui s’applique aux opérations de plan de données. Ces opérations résultent de demandes de scoring ou de service de modèle. Les opérations de plan de contrôle, telles que les demandes 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.

Requêtes de notation entrantes sécurisées

Vous pouvez sécuriser la communication entrante entre un client et un point de terminaison en ligne géré à 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é et est le moyen par lequel le point de terminaison en ligne managé reçoit les demandes de scoring entrantes du client.

Pour sécuriser les requêtes de notation vers le point de terminaison en ligne, afin qu'un client ne puisse y accéder que par le biais du 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 du point de terminaison public_network_access sur disabled :

Avant d’exécuter la commande Azure CLI :

  • Vérifiez que vous disposez d’un endpoint.yml fichier dans votre répertoire de travail actuel (localement ou dans Azure Cloud Shell).
  • Si vous utilisez Azure Cloud Shell, chargez ou clonez endpoint.yml un référentiel qui le contient dans votre répertoire de base Cloud Shell.
  • Si votre espace de travail Azure Machine Learning et votre groupe de ressources par défaut ne sont pas définis, ajoutez les paramètres --resource-group et --workspace-name.
az ml online-endpoint create \
  --file endpoint.yml \
  --set public_network_access=disabled

# Optionally specify the workspace and resource group explicitly
az ml online-endpoint create \
  --file endpoint.yml \
  --resource-group <resource-group-name> \
  --workspace-name <workspace-name> \
  --set public_network_access=disabled

Si vous voyez une No such file or directory: endpoint.yml erreur, vérifiez qu’il endpoint.yml existe dans votre répertoire actif et que vous exécutez la commande à partir de ce répertoire.

Lorsque vous désactivez public_network_access, le point de terminaison privé de l’espace de travail reçoit des demandes de scoring entrantes et les réseaux publics ne peuvent pas atteindre le point de terminaison.

Si vous activez public_network_access, le point de terminaison peut recevoir des demandes de scoring entrant à partir d’Internet.

Sécuriser le scoring entrant avec l’accès réseau public à partir d’adresses IP spécifiques

L’espace de travail Azure Machine Learning prend en charge l’activation de l’accès réseau public à partir d’adresses IP ou de plages d’adresses spécifiques. Cette fonctionnalité présente des interactions avec l’indicateur de public_network_access du point de terminaison en ligne managé que vous devez connaître lors de son utilisation avec des points de terminaison en ligne managés. Pour plus d’informations, consultez Scénario : Points de terminaison en ligne gérés avec accès à partir d’adresses IP spécifiques.

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

Pour sécuriser les communications sortantes d'un déploiement vers les services, vous devez activer l'isolation du réseau virtuel géré pour votre espace de travail Azure Machine Learning afin qu'Azure Machine Learning puisse créer un réseau virtuel géré pour cet espace de travail. Tous les points de terminaison en ligne gérés dans l'espace de travail (et les ressources de calcul gérées pour l'espace de travail, telles que les clusters de calcul et les instances de calcul) utilisent automatiquement ce réseau virtuel géré de l'espace de travail, et les déploiements sous les points de terminaison partagent les points de terminaison privés du réseau virtuel géré pour communiquer avec les ressources de l'espace de travail.

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

Pour les communications sortantes avec un réseau virtuel géré par 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 Stockage Azure, Azure Key Vault et Azure Container Registry.
  • Permet aux déploiements d'accéder au registre de conteneurs Microsoft (MCR), ce qui peut s'avérer utile lorsque vous souhaitez utiliser des environnements organisés ou le déploiement sans code MLflow.
  • Permet aux utilisateurs de configurer des règles de sortie 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 (FQDN)) pour les ressources publiques. Pour plus d'informations sur la gestion des règles de trafic sortant, consultez la section Gérer les règles de sortie.

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

  • Autoriser le trafic Internet sortant, pour autoriser tout le trafic Internet sortant du réseau virtuel géré
  • Autorisez uniquement le trafic sortant approuvé pour contrôler les flux à l’aide de points de terminaison privés, de règles sortantes basées sur les FQDN et de règles sortantes basées sur les étiquettes de service.

Par exemple, si 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 :

  • 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
  • L’Azure Key Vault
  • (Facultatif) ressources privées supplémentaires prenant en charge les points de terminaison privés.

Pour en savoir plus sur les configurations du réseau virtuel géré de l'espace de travail, consultez la section Architecture du réseau virtuel géré.

Scénarios de configuration d'isolation du 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 géré dispose d'un déploiement qui utilise un modèle d'IA, et que vous souhaitiez utiliser une application pour envoyer des requêtes de notation à ce point de terminaison. Vous pouvez choisir la configuration d'isolation réseau à utiliser pour le point de terminaison en ligne géré comme suit :

Pour les communications entrantes :

Si l'application est accessible publiquement sur Internet, vous devez activerpublic_network_access le point de terminaison afin qu'il puisse recevoir les requêtes de notation entrantes provenant de l'application.

Toutefois, si l’application est privée, telle qu’une application interne au sein de votre organisation, vous souhaitez que le modèle IA soit utilisé uniquement au sein de votre organisation plutôt que de l’exposer à Internet. Par conséquent, vous devez désactiver le point de terminaison public_network_access afin qu'il ne puisse recevoir les requêtes de notation entrantes que via le point de terminaison privé de son espace de travail.

Pour la communication sortante (déploiement) :

Supposons que votre déploiement doive accéder à des ressources Azure privées (telles que le blob de stockage Azure, ACR et Azure Key Vault), ou qu'il soit inacceptable que le déploiement accède à Internet. Dans ce cas, vous devez activer le réseau virtuel géré de l'espace de travail en mode d'isolation autoriser uniquement les connexions sortantes approuvées. Ce mode d'isolation autorise les communications sortantes du déploiement uniquement vers les destinations approuvées, protégeant ainsi contre l'exfiltration de données. De plus, vous pouvez ajouter des règles de trafic sortant pour l'espace de travail, afin d'autoriser l'accès à des ressources plus privées ou publiques. Pour plus d'informations, consultez la section Configurer un réseau virtuel géré pour n'autoriser que les connexions sortantes approuvées.

Toutefois, si vous souhaitez que votre déploiement accède à Internet, vous pouvez utiliser le réseau virtuel géré de l'espace de travail avec le mode d'isolation autoriser les connexions sortantes Internet. Outre l'accès à Internet, vous pourrez utiliser les points de terminaison privés du réseau virtuel géré pour accéder aux ressources Azure privées dont vous avez besoin.

Enfin, si votre déploiement n'a pas besoin d'accéder à des ressources Azure privées et que vous n'avez pas besoin de contrôler l'accès à Internet, vous n'avez pas besoin d'utiliser un réseau virtuel géré par 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.

Capture d’écran illustrant un workflow classique de sécurisation de la communication entrante vers votre espace de travail et votre point de terminaison en ligne géré.

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 une méthode d'isolation réseau héritée

Pour les points de terminaison en ligne managés, vous pouvez 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 dans le point de terminaison. La communication sortante sécurisée est également gérée via des points de terminaison privés vers ces instances de service.

Remarque

Nous vous suggestions vivement d'utiliser l'approche décrite dans Sécuriser l'accès sortant avec un réseau virtuel géré par espace de travail plutôt que cette méthode héritée.

Pour limiter la communication entre un déploiement et les ressources externes, y compris les ressources Azure qu'il utilise, vous devez vous assurer que :

  • Le drapeau du déploiement egress_public_network_access est disabled. Cet indicateur garantit que le téléchargement du modèle, du code et des images nécessaires au déploiement est sécurisé par un point de terminaison privé. Une fois le déploiement créé, vous ne pouvez pas mettre à jour (activer ou désactiver) l’indicateur egress_public_network_access . Toute tentative de modification de l'indicateur pendant la mise à jour du déploiement échoue avec une erreur.

  • L'espace de travail dispose d'un lien privé qui permet d'accéder aux ressources Azure via un point de terminaison privé.

  • L’espace de travail a un public_network_access indicateur que vous pouvez activer ou désactiver. 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. Cette exigence existe, car la communication sortante à partir du déploiement en ligne est vers l’API de l’espace de travail. Lorsque vous configurez le déploiement pour utiliser le 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 le egress_public_network_access sur disabled pour chaque déploiement, chaque déploiement dispose de son propre réseau virtuel géré 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 géré, un total de six points de terminaison privés sont créés. Chaque déploiement utilise trois points de terminaison privés 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 illustre les requêtes de notation entrantes provenant du réseau virtuel d'un client et transitant par le point de terminaison privé de l'espace de travail jusqu'au point de terminaison en ligne géré. Le diagramme montre également deux déploiements en ligne, chacun dans son propre réseau virtuel géré par Azure Machine Learning. Chaque réseau virtuel de déploiement possède trois points de terminaison privés pour la communication sortante avec l'espace de travail Azure Machine Learning, le blob Azure Storage associé à l'espace de travail et le registre de conteneurs Azure pour l'espace de travail.

Schéma de l'isolation globale du réseau avec la méthode traditionnelle.

Pour désactiver egress_public_network_access et 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 (voir Télécharger un fichier de configuration), recherchez chaque ressource dans le portail Azure et consultez 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 le drapeau egress_public_network_access défini à disabled, ils n'ont accès qu'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. Au contraire, lorsque 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 options de configuration prises en charge pour configurer les communications entrantes et sortantes sur un point de terminaison en ligne :

Paramétrage 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