Configurer des règles de réseau IP public

Par défaut, un registre de conteneurs Azure accepte les connexions via Internet à partir d’hôtes sur n’importe quel réseau. Cet article explique comment configurer votre registre de conteneurs pour autoriser l’accès uniquement à partir d’IP publiques ou de plages d’adresses spécifiques. Les étapes équivalentes à l’aide de l’interface de ligne de commande Azure et du portail Azure sont fournies.

Les règles de réseau IP sont configurées sur le point de terminaison du registre public. Les règles de réseau IP ne s’appliquent pas aux points de terminaison privés configurés avec Azure Private Link.

La configuration des règles d’accès IP est disponible uniquement au niveau de service Premium de registre de conteneurs. Pour plus d’informations sur les niveaux de service et les limites de registre, consultez Niveaux de service Azure Container Registry.

Chaque registre prend en charge un maximum de 100 règles d’accès IP.

Important

Certaines fonctionnalités peuvent ne pas être disponibles ou nécessitent une configuration supplémentaire dans un registre de conteneurs qui restreint l’accès aux points de terminaison privés, aux sous-réseaux sélectionnés ou aux adresses IP.

  • Lorsque l’accès réseau public à un registre est désactivé, l’accès au registre par certains services approuvés, y compris Azure Security Center nécessite l’activation d’un paramètre réseau pour contourner les règles de réseau.
  • Une fois l’accès au réseau public désactivé, les instances de certains services Azure, notamment Azure DevOps Services, ne peuvent plus accéder au registre de conteneurs.
  • Les points de terminaison privés ne sont actuellement pas pris en charge avec les agents managés Azure DevOps. Vous devez utiliser un agent auto-hébergé avec une ligne de vue réseau vers le point de terminaison privé.
  • Si le registre dispose d’un point de terminaison privé approuvé et que l’accès au réseau public est désactivé, les référentiels et les étiquettes ne peuvent pas être listés en dehors du réseau virtuel à l’aide du Portail Azure, d’Azure CLI ou d’autres outils.

Accès à partir du réseau public sélectionné (CLI)

Changer l’accès réseau par défaut au registre

Pour limiter l’accès à un réseau public sélectionné, commencez par changer l’action par défaut de manière à refuser l’accès. Substituez le nom de votre registre dans la commande az acr update suivante :

az acr update --name myContainerRegistry --default-action Deny

Ajouter une règle de réseau au registre

Utilisez la commande az acr network-rule add pour ajouter à votre registre une règle de réseau qui autorise l’accès à partir d’une IP publique ou d’une plage. Par exemple, substituez le nom du registre de conteneurs et l’IP publique d’une machine virtuelle dans un réseau virtuel.

az acr network-rule add \
  --name mycontainerregistry \
  --ip-address <public-IP-address>

Notes

Après l’ajout d’une règle, il faut quelques minutes pour que la règle prenne effet.

Accès à partir du réseau public sélectionné (Portail)

  1. Dans le portail, accédez à votre registre de conteneurs.
  2. Sous Paramètres, sélectionnez Mise en réseau.
  3. Sous l’onglet Accès public, sélectionnez l’option permettant l’accès public à partir des réseaux sélectionnés.
  4. Sous Pare-feu, entrez une IP publique, telle que l’IP publique d’une machine virtuelle dans un réseau virtuel. Ou bien, entrez en notation CIDR une plage d’adresses qui contient l’adresse IP de la machine virtuelle.
  5. Sélectionnez Enregistrer.

Configurer la règle de pare-feu pour le registre de conteneurs

Notes

Après l’ajout d’une règle, il faut quelques minutes pour que la règle prenne effet.

Conseil

Activez éventuellement l’accès au registre à partir d’un ordinateur client local ou d’une plage d’adresses IP. Pour autoriser cet accès, vous avez besoin de l’adresse IPv4 publique de l’ordinateur. Vous pouvez trouver cette adresse en effectuant une recherche sur « quelle est mon adresse IP » dans un navigateur Internet. L’adresse IPv4 actuelle du client apparaît également de façon automatique lorsque vous configurez les paramètres de pare-feu sur la page Mise en réseau du portail.

Désactiver l’accès au réseau public

Éventuellement, désactivez le point de terminaison public sur le registre. La désactivation du point de terminaison public écrase toutes les configurations de pare-feu. Par exemple, vous souhaiterez peut-être désactiver l’accès public à un registre sécurisé dans un réseau virtuel à l’aide d’Azure Private Link.

Notes

Si le registre est configuré dans un réseau virtuel avec un point de terminaison de service, la désactivation de l'accès au point de terminaison public du registre désactive également l'accès au registre au sein du réseau virtuel.

Désactiver l’accès public (CLI)

Pour désactiver l’accès public à l’aide d’Azure CLI, exécutez az acr update et définissez --public-network-enabled avec false. L’argument public-network-enabled requiert Azure CLI 2.6.0 ou une version ultérieure.

az acr update --name myContainerRegistry --public-network-enabled false

Désactiver l’accès public (portail)

  1. Dans le portail, accédez à votre registre de conteneurs et sélectionnez Paramètres > Mise en réseau.
  2. Sous l’onglet Accès public, dans Autoriser l’accès au réseau public, sélectionnez Désactivé. Ensuite, sélectionnez Enregistrer.

Désactiver l’accès public

Restaurer l’accès au réseau public

Pour réactiver le point de terminaison public, mettez à jour les paramètres de mise en réseau pour autoriser l’accès public. L’activation du point de terminaison public écrase toutes les configurations de pare-feu.

Restaurer l’accès public (CLI)

Exécutez az acr update et définissez --public-network-enabled sur true.

Notes

L’argument public-network-enabled requiert Azure CLI 2.6.0 ou une version ultérieure.

az acr update --name myContainerRegistry --public-network-enabled true

Restaurer l’accès public (Portail)

  1. Dans le portail, accédez à votre registre de conteneurs et sélectionnez Paramètres > Mise en réseau.
  2. Sous l’onglet Accès public, dans Autoriser l’accès au réseau public, sélectionnez Tous les réseaux. Ensuite, sélectionnez Enregistrer.

Accès public à partir de tous les réseaux

Dépanner

Accès derrière un proxy HTTPS

Si une règle de réseau public est définie ou si l’accès public au registre est refusé, les tentatives de connexion au registre à partir d’un réseau public non autorisé échouent. L’accès client depuis derrière un proxy HTTPS échoue également si aucune règle d’accès n’est définie pour le proxy. Un message d'erreur semblable à Error response from daemon: login attempt failed with status: 403 Forbidden ou Looks like you don't have access to registry s'affiche.

Ces erreurs peuvent également se produire si vous utilisez un proxy HTTPS qui est autorisé par une règle d’accès réseau, mais que le proxy n’est pas correctement configuré dans l’environnement client. Vérifiez que votre client Docker et le démon Docker sont configurés pour le comportement du proxy. Pour plus d’informations, consultez proxy HTTP/HTTPS dans la documentation Docker.

Accès à partir d’Azure Pipelines

Si vous utilisez Azure Pipelines avec un registre de conteneurs Azure qui limite l’accès à des adresses IP spécifiques, il se peut que le pipeline ne puisse pas accéder au registre, car l’adresse IP sortante du pipeline n’est pas fixe. Par défaut, le pipeline exécute des travaux à l’aide d’un agent hébergé par Microsoft sur un pool de machines virtuelles avec un ensemble d’adresses IP qui varie.

Une solution de contournement consiste à remplacer l’agent hébergé par Microsoft utilisé pour exécuter le pipeline par un agent autohébergé. Avec un agent auto-hébergé s’exécutant sur une machine Windows ou Linux que vous gérez, vous contrôlez l’adresse IP sortante du pipeline et vous pouvez ajouter cette adresse à une règle d’accès IP au registre.

Accès à partir d’AKS

Si vous utilisez AKS (Azure Kubernetes Service) avec un registre de conteneurs Azure qui limite l’accès à des adresses IP spécifiques, vous ne pouvez pas configurer une adresse IP AKS fixe par défaut. L’adresse IP de sortie du cluster AKS est attribuée de façon aléatoire.

Pour permettre au cluster AKS d’accéder au registre, vous disposez des options suivantes :

Étapes suivantes