Configurer un point de terminaison privé pour un espace de travail Azure Machine Learning

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)

Dans ce document, vous allez apprendre à configurer un point de terminaison privé pour votre espace de travail Azure Machine Learning. Pour plus d’informations sur la création d’un réseau virtuel pour Azure Machine Learning, consultez Vue d’ensemble de l’isolement et de la confidentialité des réseaux virtuels.

Azure Private Link vous permet de vous connecter à votre espace de travail à l’aide d’un point de terminaison privé. Le point de terminaison privé est un ensemble d’adresses IP privées au sein de votre réseau virtuel. Vous pouvez alors limiter l’accès à votre espace de travail pour qu’il ne se fasse que sur les adresses IP privées. Un point de terminaison privé permet de réduire le risque d’exfiltration de données. Pour plus d’informations sur les points de terminaison privés, consultez l’article Azure Private Link.

Avertissement

La sécurisation d’un espace de travail avec des points de terminaison privés ne suffit pas à garantir une sécurité de bout en bout. Vous devez sécuriser tous les composants individuels de votre solution. Par exemple, si vous utilisez un point de terminaison privé pour l’espace de travail, mais que votre compte de stockage Azure ne se trouve pas derrière le réseau virtuel, le trafic entre l’espace de travail et le stockage n’utilise pas le réseau virtuel pour la sécurité.

Pour plus d’informations sur la sécurisation des ressources utilisées par Azure Machine Learning, consultez les articles suivants :

Prérequis

  • Vous devez disposer d’un réseau virtuel existant dans lequel créer le point de terminaison privé.

    Avertissement

    N’utilisez pas la plage d’adresses IP 172.17.0.0/16 pour votre réseau virtuel. Il s’agit de la plage de sous-réseaux par défaut utilisée par le réseau de pont Docker. Si vous l’utilisez pour votre réseau virtuel, des erreurs se produisent. D’autres plages peuvent également être en conflit, en fonction de ce que vous souhaitez connecter au réseau virtuel. Par exemple, si vous envisagez de connecter votre réseau local au réseau virtuel, et que votre réseau local utilise également la plage 172.16.0.0/16. Au bout du compte, il vous appartient de planifier votre infrastructure réseau.

  • Désactivez les stratégies réseau pour les points de terminaison privés avant d’ajouter le point de terminaison privé.

Limites

  • Si vous activez l’accès public à un espace de travail sécurisé avec point de terminaison privé et utilisez Azure Machine Learning studio sur l’Internet public, certaines fonctionnalités telles que le concepteur peuvent ne pas parvenir à accéder à vos données. Ce problème se produit quand les données sont stockées sur un service sécurisé derrière le réseau virtuel. Par exemple, un compte de stockage Azure.

  • Il se peut que vous rencontriez des problèmes en tentant d’accéder au point de terminaison privé de votre espace de travail si vous utilisez Mozilla Firefox. Ce problème peut être lié à DNS sur HTTPS dans Mozilla Firefox. Nous vous recommandons d’utiliser Microsoft Edge ou Google Chrome.

  • L’utilisation d’un point de terminaison privé n’a pas d’effet sur le plan de contrôle Azure (opérations de gestion), comme la suppression de l’espace de travail ou la gestion des ressources de calcul. Par exemple, la création, la mise à jour ou la suppression d’une cible de calcul. Ces opérations sont effectuées sur l’Internet public comme d’habitude. Les opérations de plan de données telles que l’utilisation du studio Azure Machine Learning, des API (y compris les pipelines publiés) ou du SDK utilisent le point de terminaison privé.

  • Lors de la création d’une instance de calcul ou d’un cluster de calcul dans un espace de travail avec un point de terminaison privé, l’instance de calcul et le cluster de calcul doivent se trouver dans la même région Azure que l’espace de travail.

  • Lors de l’attachement d’un cluster Azure Kubernetes Service à un espace de travail avec un point de terminaison privé, le cluster doit se trouver dans la même région que l’espace de travail.

  • Lorsque vous utilisez un espace de travail avec plusieurs points de terminaison privés, l’un des points de terminaison privés doit se trouver dans le même réseau virtuel que les services de dépendance suivants :

    • compte de stockage Azure qui assure le stockage par défaut de l’espace de travail
    • Azure Key Vault pour l’espace de travail
    • Azure Container Registry pour l’espace de travail.

    Par exemple, un réseau virtuel (« services ») contiendrait un point de terminaison privé pour les services de dépendance et l’espace de travail. Cette configuration permet à l’espace de travail de communiquer avec les services. Un autre réseau virtuel (« clients ») pourrait contenir uniquement un point de terminaison privé pour l’espace de travail et être utilisé uniquement pour la communication entre les ordinateurs de développement client et l’espace de travail.

Créer un espace de travail qui utilise un point de terminaison privé

Utilisez l’une des méthodes suivantes pour créer un espace de travail avec un point de terminaison privé. Chacune de ces méthodes nécessite un réseau virtuel existant :

Conseil

Si vous souhaitez créer un espace de travail, un point de terminaison privé et un réseau virtuel en même temps, consultez Utiliser un modèle Azure Resource Manager pour créer un espace de travail pour Azure Machine Learning.

S’APPLIQUE À :Extension ml Azure CLI v2 (actuelle)

Quand vous utilisez l’extension Azure CLI 2.0 pour le Machine Learning, un document YAML est utilisé pour configurer l’espace de travail. Voici un exemple de création d’espace de travail à partir d’une configuration YAML :

Conseil

Lors de l’utilisation d’une liaison privée, votre espace de travail ne peut pas utiliser le calcul Azure Container Registry Tasks pour la génération d’images. La propriété image_build_compute dans cette configuration spécifie un nom de cluster de calcul de processeur à utiliser pour générer l’environnement d’image Docker. Vous pouvez également spécifier si l’espace de travail de la liaison privée doit être accessible sur Internet en utilisant la propriété public_network_access.

Dans cet exemple, le calcul référencé par image_build_compute doit être créé avant la génération des images.

$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

Après avoir créé l’espace de travail, utilisez les commandes de l’interface CLI de mise en réseau Azure pour créer un point de terminaison de liaison privé pour l’espace de travail.

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>

Pour créer les entrées de zone DNS privée pour l’espace de travail, utilisez les commandes suivantes :

# 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

Ajouter un point de terminaison privé à un espace de travail

Utilisez l’une des méthodes suivantes pour ajouter un point de terminaison privé à un espace de travail existant :

Avertissement

Si des cibles de calcul existantes sont associées à cet espace de travail et qu’elles ne se trouvent pas derrière le même réseau virtuel dans lequel le point de terminaison privé est créé, elles ne fonctionneront pas.

S’APPLIQUE À :Extension ml Azure CLI v2 (actuelle)

Quand vous utilisez l’extension Azure CLI 2.0 pour le Machine Learning, utilisez les commandes d’interface CLI du réseau Azure afin de créer un point de terminaison de liaison privée pour l’espace de travail.

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>

Pour créer les entrées de zone DNS privée pour l’espace de travail, utilisez les commandes suivantes :

# 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'

Supprimer un point de terminaison privé

Vous pouvez supprimer un ou plusieurs points de terminaison privés pour un espace de travail. La suppression d’un point de terminaison privé a pour effet de supprimer l’espace de travail du réseau virtuel auquel le point de terminaison est associé. La suppression du point de terminaison privé peut empêcher l’espace de travail d’accéder à des ressources de ce réseau virtuel, ou aux ressources du réseau virtuel d’accéder à l’espace de travail. Par exemple, si le réseau virtuel n’autorise pas l’accès via l’Internet public.

Avertissement

La suppression des points de terminaison privés d’un espace de travail n’a pas pour effet de rendre celui-ci publiquement accessible. Pour rendre l’espace de travail publiquement accessible, suivez les étapes décrites sans la section Activer l’accès public.

Pour supprimer un point de terminaison privé, utilisez les informations suivantes :

S’APPLIQUE À :Extension ml Azure CLI v2 (actuelle)

Quand vous utilisez l’extension Azure CLI 2.0 pour le Machine Learning, utilisez la commande suivante pour supprimer le point de terminaison privé :

az network private-endpoint delete \
    --name <private-endpoint-name> \
    --resource-group <resource-group-name> \

Activer l’accès public

Dans certains cas, vous pouvez autoriser une personne à se connecter à votre espace de travail sécurisé sur un point de terminaison public, plutôt que par le biais du réseau virtuel. Vous pouvez également supprimer l’espace de travail du réseau virtuel et réactiver l’accès public.

Important

L’activation de l’accès public n’a pas pour effet de supprimer les points de terminaison privés existants. Toutes les communications entre les composants derrière le réseau virtuel auquel les points de terminaison privés se connectent restent sécurisées. Un accès public est permis uniquement à l’espace de travail, en plus de l’accès privé via des points de terminaison privés.

Avertissement

Lors de la connexion via le point de terminaison public, quand l'espace de travail utilise un point de terminaison privé pour communiquer avec d'autres ressources :

  • Certaines fonctionnalités de Studio ne peuvent pas accéder à vos données. Ce problème se produit quand les données sont stockées sur un service sécurisé derrière le réseau virtuel. Par exemple, un compte de stockage Azure. Pour résoudre ce problème, ajoutez l’adresse IP de votre appareil client au pare-feu du compte de stockage Azure.
  • L’utilisation de Jupyter, JupyterLab, RStudio et Posit Workbench (anciennement RStudio Workbench) sur une instance de calcul, y compris les notebooks en cours d’exécution, n’est pas prise en charge.

Pour activer l’accès public, procédez comme suit :

Conseil

Il existe deux propriétés possibles que vous pouvez configurer :

  • allow_public_access_when_behind_vnet - utilisée avec le SDK Python v1.
  • public_network_access - utilisée par l’interface CLI et le SDK Python v2. Chaque propriété remplace l’autre. Par exemple, la définition de public_network_access va remplacer les valeurs allow_public_access_when_behind_vnet précédentes.

Microsoft recommande d’utiliser public_network_access pour activer ou désactiver l’accès public à un espace de travail.

S’APPLIQUE À :Extension ml Azure CLI v2 (actuelle)

Quand vous utilisez l’extension Azure CLI 2.0 pour le Machine Learning, utilisez la commande az ml update pour activer public_network_access pour l’espace de travail :

az ml workspace update \
    --set public_network_access=Enabled \
    -n <workspace-name> \
    -g <resource-group-name>

Vous pouvez également activer l’accès au réseau public à l’aide d’un fichier YAML. Pour plus d’informations, consultez les informations de référence YAML d’espace de travail.

Activer l’accès public uniquement à partir de plages d’adresses IP Internet (préversion)

Vous pouvez utiliser des règles de réseau IP pour autoriser l’accès à votre espace de travail et à votre point de terminaison à partir de plages d’adresses IP Internet publiques spécifiques en créant des règles de réseau IP. Chaque espace de travail Azure Machine Learning prend en charge jusqu’à 200 règles. Ces règles accordent l’accès à des services Internet et des réseaux locaux spécifiques et bloquent le trafic Internet général.

Avertissement

  • Activez l’indicateur d’accès réseau public de votre point de terminaison si vous souhaitez autoriser l’accès à votre point de terminaison à partir de plages d’adresses IP Internet publiques spécifiques.
  • Lorsque vous activez cette fonctionnalité, cela a un impact sur tous les points de terminaison publics existants associés à votre espace de travail. Cela peut limiter l’accès aux points de terminaison nouveaux ou existants. Si vous accédez à des points de terminaison à partir d’une adresse IP non autorisée, vous obtenez une erreur 403.
  • Pour utiliser cette fonctionnalité avec un réseau virtuel managé Azure Machine Learning, consultez Réseau virtuel managé Azure Machine Learning.

S’APPLIQUE À :Extension ml Azure CLI v2 (actuelle)

Azure CLI ne prend pas en charge cela.

Restrictions pour les règles de réseau IP

Les restrictions suivantes s’appliquent aux plages d’adresses IP :

  • Les règles de réseau IP sont autorisées uniquement pour les adresses IP de l’internet public.

    Les plages d’adresses IP réservées ne sont pas autorisées dans les règles IP telles que les adresses privées commençant par 10, 172.16 à 172.31 et 192.168.

  • Vous devez fournir des plages d’adresses Internet autorisées à l’aide de la notation CIDR sous la forme 16.17.18.0/24 ou sous la forme d’adresses IP individuelles de type 16.17.18.19.

  • Seules les adresses IPv4 sont prises en charge dans la configuration des règles de pare-feu de stockage.

  • Lorsque cette fonctionnalité est activée, vous pouvez tester des points de terminaison publics à l’aide de n’importe quel outil client tel que Postman ou d’autres, mais l’outil de test de point de terminaison dans le portail n’est pas pris en charge.

Vous connecter à votre espace de travail de manière sécurisée

Pour vous connecter à un espace de travail sécurisé derrière un réseau virtuel, utilisez l’une des méthodes suivantes :

  • Passerelle VPN Azure – Connecte des réseaux locaux au réseau virtuel via une connexion privée. La connexion est établie via l’Internet public. Il existe deux types de passerelles VPN que vous pouvez utiliser :

    • Point à site : chaque ordinateur client utilise un client VPN pour se connecter au réseau virtuel.
    • Site à site : un périphérique VPN connecte le réseau virtuel à votre réseau local.
  • ExpressRoute – Connecte les réseaux locaux au cloud via une connexion privée. La connexion est établie à l’aide d’un fournisseur de connectivité.

  • Bastion Azure – Dans ce scénario, vous créez une machine virtuelle Azure (parfois appelée « jump box ») à l’intérieur du réseau virtuel. Vous vous connectez ensuite à la machine virtuelle à l’aide d’Azure Bastion. Bastion vous permet de vous connecter à la machine virtuelle à l’aide d’une session RDP ou SSH à partir de votre navigateur web local. Vous utilisez ensuite la jump box comme environnement de développement. Comme elle figure dans le réseau virtuel, elle peut accéder directement à l’espace de travail. Pour obtenir un exemple d’utilisation d’une machine virtuelle jumpbox, consultez Tutoriel : Créer un espace de travail sécurisé.

Important

Quand vous utilisez une passerelle VPN ou ExpressRoute, vous devez planifier le fonctionnement de la résolution de noms entre vos ressources locales et celles se trouvant dans le réseau virtuel. Pour plus d’informations, consultez Utiliser un serveur DNS personnalisé.

Si vous rencontrez des problèmes de connexion à l’espace de travail, consultez Résoudre les problèmes de connectivité sécurisée à l’espace de travail.

Plusieurs points de terminaison privés

Azure Machine Learning prend en charge plusieurs points de terminaison privés pour un espace de travail. Plusieurs points de terminaison privés sont souvent utilisés lorsque vous souhaitez conserver des environnements distincts. Scénarios possibles grâce à l’utilisation de plusieurs points de terminaison privés :

  • Environnements de développement client dans un réseau virtuel distinct.

  • Un cluster Azure Kubernetes Service (AKS) dans un réseau virtuel distinct.

  • Autres services Azure dans un réseau virtuel distinct. Par exemple, Azure Synapse et Azure Data Factory peuvent utiliser un réseau virtuel managé par Microsoft. Dans les deux cas, un point de terminaison privé pour l’espace de travail peut être ajouté au réseau virtuel managé utilisé par ces services. Pour plus d’informations sur l’utilisation d’un réseau virtuel managé avec ces services, consultez les articles suivants :

    Important

    La protection contre l’exfiltration des données de Synapse n’est pas prise en charge avec Azure Machine Learning.

Important

Chaque réseau virtuel qui contient un point de terminaison privé pour l’espace de travail doit également être en mesure d’accéder au compte de stockage Azure, à l’Azure Key Vault et à l’Azure Container Registry utilisés par l’espace de travail. Par exemple, vous pouvez créer un point de terminaison privé pour les services dans chaque réseau virtuel.

La procédure d’ajout de plusieurs points de terminaison privés est la même que celle décrite dans la section Ajouter un point de terminaison privé à un espace de travail.

Scénario : clients isolés

Si vous souhaitez isoler les clients de développement, afin qu’ils n’aient pas d’accès direct aux ressources de calcul utilisées par Azure Machine Learning, procédez comme suit :

Notes

Ces étapes partent du principe que vous disposez d’un espace de travail, d’un compte de stockage Azure, d’Azure Key Vault et d’Azure Container Registry. Chacun de ces services possède des points de terminaison privés dans un réseau virtuel existant.

  1. Créez un autre réseau virtuel pour les clients. Ce réseau virtuel peut contenir des machines virtuelles Azure qui jouent le rôle de vos clients, ou il peut contenir une passerelle VPN utilisée par les clients locaux pour se connecter au réseau virtuel.
  2. Ajoutez un nouveau point de terminaison privé pour le compte de stockage Azure, l’Azure Key Vault et l’Azure Container Registry utilisés par votre espace de travail. Ces points de terminaison privés doivent exister dans le réseau virtuel client.
  3. Si vous disposez d’un autre espace de stockage utilisé par votre espace de travail, ajoutez un nouveau point de terminaison privé pour ce stockage. Le point de terminaison privé doit exister dans le réseau virtuel du client et l’intégration de la zone DNS privée doit y être activée.
  4. Ajoutez un nouveau point de terminaison privé à votre espace de travail. Ce point de terminaison privé doit exister dans le réseau virtuel du client et l’intégration de la zone DNS privée doit y être activée.
  5. Suivez les étapes de l’article Utiliser Studio dans un réseau virtuel pour permettre à Studio d’accéder aux comptes de stockage.

Le schéma suivant illustre cette configuration. Le réseau virtuel de Charge de travail contient des calculs créés par l’espace de travail pour l’apprentissage et le déploiement. Le réseau virtuel Client contient des clients ou des connexions ExpressRoute/VPN clientes. Les deux réseaux virtuels contiennent des points de terminaison privés pour l’espace de travail, un compte de stockage Azure, Azure Key Vault et Azure Container Registry.

Diagram of isolated client VNet

Scénario : service Azure Kubernetes isolé

Si vous souhaitez créer un Azure Kubernetes Service isolé utilisé par l’espace de travail, procédez comme suit :

Notes

Ces étapes partent du principe que vous disposez d’un espace de travail, d’un compte de stockage Azure, d’Azure Key Vault et d’Azure Container Registry. Chacun de ces services possède des points de terminaison privés dans un réseau virtuel existant.

  1. Créez une instance Azure Kubernetes Service. Au cours de la création, AKS crée un réseau virtuel qui contient le cluster AKS.
  2. Ajoutez un nouveau point de terminaison privé pour le compte de stockage Azure, l’Azure Key Vault et l’Azure Container Registry utilisés par votre espace de travail. Ces points de terminaison privés doivent exister dans le réseau virtuel client.
  3. Si vous disposez d’un autre espace de stockage utilisé par votre espace de travail, ajoutez un nouveau point de terminaison privé pour ce stockage. Le point de terminaison privé doit exister dans le réseau virtuel du client et l’intégration de la zone DNS privée doit y être activée.
  4. Ajoutez un nouveau point de terminaison privé à votre espace de travail. Ce point de terminaison privé doit exister dans le réseau virtuel du client et l’intégration de la zone DNS privée doit y être activée.
  5. Attachez le cluster AKS à l’espace de travail Azure Machine Learning. Pour plus d’informations, consultez Créer et attacher un cluster Azure Kubernetes Service.

Diagram of isolated AKS VNet

Étapes suivantes