Configuración de reglas de red de dirección IP pública

De manera predeterminada los registros de contenedor de aceptan las conexiones a través de Internet de hosts de cualquier red. En este artículo se muestra cómo configurar el registro de contenedor para permitir el acceso solo desde intervalos de direcciones o direcciones IP públicas específicas. Se proporcionan los pasos equivalentes si se usa mediante la CLI de Azure y Azure Portal.

Las reglas de red IP se configuran en el punto de conexión del registro público. Las reglas de red IP no se aplican a los puntos de conexión privados configurados con Private Link.

La configuración de reglas de acceso IP está disponible en el nivel de servicio de un registro de contenedor Premium. Para obtener información sobre los límites y niveles del servicio de registro, vea Niveles de Azure Container Registry.

Cada registro admite un máximo de 100 reglas de acceso de IP.

Importante

Algunas funcionalidades pueden no estar disponibles o requerir más configuración en un registro de contenedor que restringe el acceso a puntos de conexión privados, subredes seleccionadas o direcciones IP.

  • Cuando se deshabilita el acceso de red público a un registro, el acceso al registro por parte de determinados servicios de confianza, incluido Azure Security Center, requiere habilitar una configuración de red para omitir las reglas de red.
  • Una vez que se haya deshabilitado el acceso de red, las instancias de determinados servicios de Azure, como Azure DevOps Services, no tienen acceso actualmente al registro de contenedor.
  • Actualmente, los puntos de conexión privados no se admiten con agentes administrados de Azure DevOps. Tendrá que usar un agente autohospedado con línea de visión de red al punto de conexión privado.
  • Si el registro tiene un punto de conexión privado aprobado y el acceso de la red pública está deshabilitado, los repositorios y las etiquetas no se pueden enumerar fuera de la red virtual mediante Azure Portal, la CLI de Azure u otras herramientas.

Acceso desde una red pública seleccionada: CLI

Cambio del acceso de red predeterminado al registro

Para limitar el acceso a una red pública seleccionada, primero cambie la acción predeterminada para denegar el acceso. Sustituya el nombre del registro en el siguiente comando az acr update:

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

Incorporación de una regla de red al registro

Use el comando az acr network-rule add para agregar una regla de red al registro que permita el acceso desde una dirección IP pública o un intervalo. Por ejemplo, sustituya el nombre del registro de contenedor y la dirección IP pública de una máquina virtual de una red virtual.

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

Nota

Después de agregar una regla, esta tarda unos minutos en aplicarse.

Acceso desde una red pública seleccionada: portal

  1. En el portal, vaya al registro de contenedor.
  2. En Configuración, seleccione Redes.
  3. En la pestaña Acceso público, permita el acceso público desde Redes seleccionadas.
  4. En Firewall, escriba una dirección IP pública, como la dirección IP pública de una máquina virtual de una red virtual. O bien, escriba un rango de direcciones en notación CIDR que contenga la dirección IP de la máquina virtual.
  5. Seleccione Guardar.

Configurar una regla de firewall para el registro de contenedor

Nota

Después de agregar una regla, esta tarda unos minutos en aplicarse.

Sugerencia

De forma opcional, habilite el acceso al registro desde un equipo cliente local o un intervalo de direcciones IP. Para permitir este acceso, necesita la dirección IPv4 pública del equipo. Para encontrar esta dirección, busque "cuál es mi dirección IP" en un explorador de Internet. La dirección IPv4 del cliente actual también aparece automáticamente cuando se establece la configuración del firewall en la página Redes del portal.

Deshabilitación del acceso a una red pública

De forma opcional, deshabilite el punto de conexión público en el registro. Al deshabilitar el punto de conexión público, se invalidan todas las configuraciones del firewall. Por ejemplo, puede que quiera deshabilitar el acceso público a un registro protegido de una red virtual mediante Private Link.

Nota

Si el registro se configura en una red virtual con un punto de conexión de servicio, al deshabilitar el acceso al punto de conexión público del registro también se deshabilita el acceso al registro dentro de la red virtual.

Deshabilitación del acceso público: CLI

Para deshabilitar el acceso público mediante la CLI de Azure, ejecute az acr update y establezca --public-network-enabled en false. El argumento public-network-enabled requiere una versión 2.6.0 o posterior de la CLI de Azure.

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

Deshabilitación del acceso público: portal

  1. En el portal, vaya al registro de contenedor y seleccione Configuración > Redes.
  2. En la pestaña Acceso público, en Permitir el acceso de red público, seleccione Deshabilitado. Después, seleccione Guardar.

Deshabilitación del acceso público

Restauración del acceso a una red pública

Para volver a habilitar el punto de conexión público, actualice la configuración de redes para permitir el acceso público. Al habilitar el punto de conexión público, se invalidan todas las configuraciones del firewall.

Restauración del acceso público: CLI

Ejecute az acr update y establezca --public-network-enabled en true.

Nota

El argumento public-network-enabled requiere una versión 2.6.0 o posterior de la CLI de Azure.

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

Restauración del acceso público: portal

  1. En el portal, vaya al registro de contenedor y seleccione Configuración > Redes.
  2. En la pestaña Acceso público, en Permitir el acceso de red público, seleccione Todas las redes. Después, seleccione Guardar.

Acceso público desde todas las redes

Solución de problemas

Acceso detrás de un proxy HTTPS

Si se establece una regla de red pública o se deniega el acceso público al registro, se generará un error al intentar iniciar sesión en el registro desde una red pública no permitida. También se generará un error en el acceso del cliente detrás de un proxy HTTPS si no se establece una regla de acceso para el proxy. Verá un mensaje de error similar a Error response from daemon: login attempt failed with status: 403 Forbidden o Looks like you don't have access to registry.

Estos errores también pueden producirse si usa un proxy HTTPS permitido por una regla de acceso a la red, pero el proxy no está configurado correctamente en el entorno del cliente. Compruebe que tanto el cliente como el demonio de Docker estén configurados para el comportamiento del proxy. Para obtener más información, consulte el artículo sobre el proxy HTTP/HTTPS en la documentación de Docker.

Acceso desde Azure Pipelines

Si usa Azure Pipelines con un registro de contenedor de Azure que limite el acceso a direcciones IP concretas, es posible que la canalización no pueda acceder al registro, porque la dirección IP saliente de la canalización no es fija. De forma predeterminada, la canalización ejecuta trabajos mediante un agente hospedado por Microsoft en un grupo de máquinas virtuales con un conjunto de direcciones IP cambiante.

Una solución alternativa consiste en cambiar el agente que se usa para ejecutar la canalización de hospedado por Microsoft a auto-hospedado. Con un agente auto-hospedado que se ejecuta en una máquina Windows o Linux que administra, controla la dirección IP saliente de la canalización y puede agregar esta dirección en una regla de acceso IP del Registro.

Acceso desde AKS

Si usa Azure Kubernetes Service (AKS) con un registro de contenedor de Azure que limita el acceso a direcciones IP concretas, no puede configurar una dirección IP fija de AKS de forma predeterminada. La dirección IP de salida del clúster de AKS se asigna aleatoriamente.

Para permitir que el clúster de AKS acceda al Registro, tiene estas opciones:

Pasos siguientes