Configurer des règles pour accéder à un registre de conteneurs Azure derrière un pare-feuConfigure rules to access an Azure container registry behind a firewall

Cet article explique comment configurer des règles sur votre pare-feu pour autoriser l’accès à un registre de conteneurs Azure.This article explains how to configure rules on your firewall to allow access to an Azure container registry. Par exemple, un appareil Azure IoT Edge situé derrière un pare-feu ou un serveur proxy peut devoir accéder à un registre de conteneurs pour extraire une image de conteneur.For example, an Azure IoT Edge device behind a firewall or proxy server might need to access a container registry to pull a container image. Un serveur verrouillé sur un réseau local peut aussi devoir y accéder pour envoyer (push) une image.Or, a locked-down server in an on-premises network might need access to push an image.

Si, au lieu de cela, vous souhaitez configurer l’accès réseau entrant à un registre de conteneurs uniquement au sein d’un réseau virtuel Azure, consultez Configurer Azure Private Link pour un registre de conteneurs Azure.If instead you want to configure inbound network access to a container registry only within an Azure virtual network, see Configure Azure Private Link for an Azure container registry.

À propos des points de terminaison de registreAbout registry endpoints

Pour extraire ou envoyer (push) des images ou d’autres artefacts à un registre de conteneurs Azure, un client (démon Docker, par exemple) doit interagir sur HTTPS avec deux points de terminaison distincts.To pull or push images or other artifacts to an Azure container registry, a client such as a Docker daemon needs to interact over HTTPS with two distinct endpoints. Pour les clients qui accèdent à un registre derrière un pare-feu, vous devez configurer des règles d’accès pour les deux points de terminaison.For clients that access a registry from behind a firewall, you need to configure access rules for both endpoints. Les deux points de terminaison sont atteints sur le port 443.Both endpoints are reached over port 443.

  • Point de terminaison d'API REST de registre – Les opérations d'authentification et de gestion de registre sont gérées via le point de terminaison de l’API REST publique du registre.Registry REST API endpoint - Authentication and registry management operations are handled through the registry's public REST API endpoint. Ce point de terminaison correspond au nom du serveur de connexion du registre.This endpoint is the login server name of the registry. Exemple : myregistry.azurecr.ioExample: myregistry.azurecr.io

  • Point de terminaison (de données) de stockage – Azure alloue du stockage d’objets blob aux comptes de Stockage Azure pour le compte de chaque registre, afin de gérer les données d’images conteneur et d’autres artefacts.Storage (data) endpoint - Azure allocates blob storage in Azure Storage accounts on behalf of each registry to manage the data for container images and other artifacts. Lorsqu’un client accède à des couches d’image dans un registre de conteneurs Azure, il fait des requêtes à l’aide d’un point de terminaison de compte de stockage fourni par le registre.When a client accesses image layers in an Azure container registry, it makes requests using a storage account endpoint provided by the registry.

Si votre registre est géorépliqué, un client peut devoir interagir avec les points de terminaison de données dans une région spécifique ou dans plusieurs régions répliquées.If your registry is geo-replicated, a client might need to interact with the data endpoint in a specific region or in multiple replicated regions.

Autoriser l’accès à des points de terminaison REST et de donnéesAllow access to REST and data endpoints

  • Point de terminaison REST – Autorisez l’accès au nom complet du serveur de connexion au registre, <registry-name>.azurecr.io, ou à une plage d’adresses IP associée.REST endpoint - Allow access to the fully qualified registry login server name, <registry-name>.azurecr.io, or an associated IP address range
  • Point de terminaison (de données) de stockage – Autorisez l’accès à tous les comptes de stockage Blob Azure à l’aide du caractère générique *.blob.core.windows.net, ou d’une plage d’adresses IP associée.Storage (data) endpoint - Allow access to all Azure blob storage accounts using the wildcard *.blob.core.windows.net, or an associated IP address range.

Notes

Azure Container Registry introduit des points de terminaison de données dédiés, ce qui vous permet de définir précisément l’étendue des règles de pare-feu client pour votre stockage de registre.Azure Container Registry is introducing dedicated data endpoints, allowing you to tightly scope client firewall rules for your registry storage. Activez éventuellement des points de terminaison de données dans toutes les régions où le registre est localisé ou répliqué, en utilisant le formulaire <registry-name>.<region>.data.azurecr.io.Optionally enable data endpoints in all regions where the registry is located or replicated, using the form <registry-name>.<region>.data.azurecr.io.

Autoriser l’accès en fonction de la plage d’adresses IPAllow access by IP address range

Si votre organisation dispose de stratégies pour autoriser l’accès uniquement à des adresses IP ou à des plages d’adresses spécifiques, téléchargez Plages d’adresses IP et étiquettes des services Azure – Cloud public.If your organization has policies to allow access only to specific IP addresses or address ranges, download Azure IP Ranges and Service Tags – Public Cloud.

Afin de rechercher les plages d’adresses IP du point de terminaison ACR REST pour lesquelles vous devez autoriser l’accès, recherchez AzureContainerRegistry dans le fichier JSON.To find the ACR REST endpoint IP ranges for which you need to allow access, search for AzureContainerRegistry in the JSON file.

Important

Les plages d’adresses IP des services Azure peuvent changer et des mises à jour sont publiées chaque semaine.IP address ranges for Azure services can change, and updates are published weekly. Téléchargez régulièrement le fichier JSON et effectuez les mises à jour nécessaires dans vos règles d’accès.Download the JSON file regularly, and make necessary updates in your access rules. Si votre scénario implique la configuration de règles de groupe de sécurité réseau dans un réseau virtuel Azure ou si vous utilisez le Pare-feu Azure, utilisez plutôt l’étiquette de service AzureContainerRegistry.If your scenario involves configuring network security group rules in an Azure virtual network or you use Azure Firewall, use the AzureContainerRegistry service tag instead.

Adresses IP REST pour toutes les régionsREST IP addresses for all regions

{
  "name": "AzureContainerRegistry",
  "id": "AzureContainerRegistry",
  "properties": {
    "changeNumber": 10,
    "region": "",
    "platform": "Azure",
    "systemService": "AzureContainerRegistry",
    "addressPrefixes": [
      "13.66.140.72/29",
    [...]

Adresses IP REST pour une région spécifiqueREST IP addresses for a specific region

Recherchez la région spécifique, par exemple AzureContainerRegistry.AustraliaEast.Search for the specific region, such as AzureContainerRegistry.AustraliaEast.

{
  "name": "AzureContainerRegistry.AustraliaEast",
  "id": "AzureContainerRegistry.AustraliaEast",
  "properties": {
    "changeNumber": 1,
    "region": "australiaeast",
    "platform": "Azure",
    "systemService": "AzureContainerRegistry",
    "addressPrefixes": [
      "13.70.72.136/29",
    [...]

Adresses IP de stockage pour toutes les régionsStorage IP addresses for all regions

{
  "name": "Storage",
  "id": "Storage",
  "properties": {
    "changeNumber": 19,
    "region": "",
    "platform": "Azure",
    "systemService": "AzureStorage",
    "addressPrefixes": [
      "13.65.107.32/28",
    [...]

Adresses IP de stockage pour des régions spécifiquesStorage IP addresses for specific regions

Recherchez la région spécifique, par exemple Storage.AustraliaCentral.Search for the specific region, such as Storage.AustraliaCentral.

{
  "name": "Storage.AustraliaCentral",
  "id": "Storage.AustraliaCentral",
  "properties": {
    "changeNumber": 1,
    "region": "australiacentral",
    "platform": "Azure",
    "systemService": "AzureStorage",
    "addressPrefixes": [
      "52.239.216.0/23"
    [...]

Autoriser l’accès par balise de serviceAllow access by service tag

Dans un réseau virtuel Azure, utilisez les règles de sécurité réseau pour filtrer le trafic d’une ressource, telle qu’une machine virtuelle, vers un registre de conteneurs.In an Azure virtual network, use network security rules to filter traffic from a resource such as a virtual machine to a container registry. Pour simplifier la création des règles de réseau Azure, utilisez l’étiquette de service AzureContainerRegistry.To simplify the creation of the Azure network rules, use the AzureContainerRegistry service tag. Une balise de service représente un groupe de préfixes d’adresses IP permettant d'accéder à un service Azure globalement ou par région Azure.A service tag represents a group of IP address prefixes to access an Azure service globally or per Azure region. La balise est automatiquement mise à jour lorsque les adresses changent.The tag is automatically updated when addresses change.

Par exemple, créez une règle de groupe de sécurité réseau sortante avec la destination AzureContainerRegistry pour autoriser le trafic vers un registre de conteneurs Azure.For example, create an outbound network security group rule with destination AzureContainerRegistry to allow traffic to an Azure container registry. Pour autoriser l’accès à la balise de service uniquement dans une région spécifique, indiquez la région au format suivant : AzureContainerRegistry.[nom de la région].To allow access to the service tag only in a specific region, specify the region in the following format: AzureContainerRegistry.[region name].

Activer des points de terminaison de données dédiésEnable dedicated data endpoints

Avertissement

Si vous avez précédemment configuré l’accès du pare-feu client aux points de terminaison *.blob.core.windows.net existants, le basculement vers des points de terminaison de données dédiés aura un impact sur la connectivité client, entraînant des échecs de tirage.If you previously configured client firewall access to the existing *.blob.core.windows.net endpoints, switching to dedicated data endpoints will impact client connectivity, causing pull failures. Pour vous assurer que les clients disposent d’un accès cohérent, ajoutez les nouvelles règles de point de terminaison de données aux règles de pare-feu du client.To ensure clients have consistent access, add the new data endpoint rules to the client firewall rules. Lorsque vous avez terminé, activez des points de terminaison de données dédiés pour vos registres à l’aide d’Azure CLI ou d’autres outils.Once completed, enable dedicated data endpoints for your registries using the Azure CLI or other tools.

Les points de terminaison de données dédiés sont une fonctionnalité facultative du niveau de service Premium du registre de conteneurs.Dedicated data endpoints is an optional feature of the Premium container registry service tier. Pour plus d’informations sur les niveaux de service et les limites de registre, consultez Niveaux de service Azure Container Registry.For information about registry service tiers and limits, see Azure Container Registry service tiers.

Vous pouvez activer des points de terminaison de données dédiés à l’aide du portail Azure ou d’Azure CLI.You can enable dedicated data endpoints using the Azure portal or the Azure CLI. Les points de terminaison de données suivent un modèle régional, <registry-name>.<region>.data.azurecr.io.The data endpoints follow a regional pattern, <registry-name>.<region>.data.azurecr.io. Dans un registre géo-répliqué, l’activation de points de terminaison de données active des points de terminaison dans toutes les régions de réplica.In a geo-replicated registry, enabling data endpoints enables endpoints in all replica regions.

PortailPortal

Pour activer des points de terminaison de données à l’aide du portail :To enable data endpoints using the portal:

  1. Accédez à votre registre de conteneurs.Navigate to your container registry.
  2. Sélectionnez Mise en réseau > Accès public.Select Networking > Public access.
  3. Activez la case à cocher Activer le point de terminaison de données dédié.Select the Enable dedicated data endpoint checkbox.
  4. Sélectionnez Enregistrer.Select Save.

Le ou les points de terminaison de données s’affichent dans le portail.The data endpoint or endpoints appear in the portal.

Points de terminaison de données dédiés dans le portail

Azure CLIAzure CLI

Pour activer des points de terminaison de données à l’aide d’Azure CLI, utilisez Azure CLI version 2.4.0 ou ultérieure.To enable data endpoints using the Azure CLI, use Azure CLI version 2.4.0 or higher. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.If you need to install or upgrade, see Install Azure CLI.

La commande az acr update active des points de terminaison de données dédiés sur un registre myregistry.The following az acr update command enables dedicated data endpoints on a registry myregistry.

az acr update --name myregistry --data-endpoint-enabled

Pour afficher les points de terminaison de données, utilisez la commande az acr show-endpoints :To view the data endpoints, use the az acr show-endpoints command:

az acr show-endpoints --name myregistry

La sortie à des objectifs de démonstration montre deux points de terminaison régionauxOutput for demonstration purposes shows two regional endpoints

{
    "loginServer": "myregistry.azurecr.io",
    "dataEndpoints": [
        {
            "region": "eastus",
            "endpoint": "myregistry.eastus.data.azurecr.io",
        },
        {
            "region": "westus",
            "endpoint": "myregistry.westus.data.azurecr.io",
        }
    ]
}

Une fois que vous avez configuré des points de terminaison de données dédiés pour votre registre, vous pouvez activer des règles d’accès du pare-feu client pour les points de terminaison de données.After you set up dedicated data endpoints for your registry, you can enable client firewall access rules for the data endpoints. Activez des règles d’accès de point de terminaison de données pour toutes les régions de registre requises.Enable data endpoint access rules for all required registry regions.

Configurer les règles de pare-feu client pour MCRConfigure client firewall rules for MCR

Si vous devez accéder à Microsoft Container Registry (MCR) derrière un pare-feu, consultez les instructions de configuration des règles de pare-feu du client MCR.If you need to access Microsoft Container Registry (MCR) from behind a firewall, see the guidance to configure MCR client firewall rules. MCR est le registre principal pour toutes les images Docker publiées par Microsoft, comme les images de Windows Server.MCR is the primary registry for all Microsoft-published docker images, such as Windows Server images.

Étapes suivantesNext steps