Configuración de reglas para acceder a un registro de contenedor de Azure detrás de un firewall

En este artículo se explica cómo configurar reglas en el firewall para permitir el acceso a un registro de contenedor de Azure. Por ejemplo, es posible que un dispositivo Azure IoT Edge que esté detrás de un firewall o de un servidor proxy necesite acceder a un registro de contenedor para extraer una imagen del contenedor. O bien, que un servidor bloqueado de una red local necesite tener acceso para enviar una imagen.

Si, por el contrario, desea configurar el acceso de red entrante a un registro de contenedor solo dentro de una red virtual de Azure, consulte Configurar Azure Private Link para un registro de contenedor de Azure.

Acerca de los puntos de conexión del registro

Para extraer imágenes u otros artefactos de un registro de contenedor de Azure (o para insertarlas en él), un cliente (por ejemplo, un demonio de Docker) debe interactuar a través de HTTPS con dos puntos de conexión distintos. En el caso de los clientes que acceden a un registro desde detrás de un firewall, debe configurar las reglas de acceso para ambos puntos de conexión. Ambos puntos de conexión se alcanzan a través del puerto 443.

  • Punto de conexión de la API de REST del registro: las operaciones de autenticación y administración del registro se administran a través del punto de conexión público de la API de REST del registro. Este punto de conexión es el nombre del servidor de inicio de sesión del registro. Ejemplo: myregistry.azurecr.io

    • Punto de conexión de la API REST de Registry para certificados: Azure Container Registry usa un certificado SSL comodín para todos los subdominios. Al conectarse a Azure Container Registry mediante SSL, el cliente debe poder descargar el certificado para el protocolo de enlace TLS. En estos casos, azurecr.io también debe ser accesible.
  • Punto de conexión de almacenamiento (datos) : Azure asigna almacenamiento de blob en cuentas de Azure Storage en nombre de cada registro para administrar los datos de imágenes de contenedor y otros artefactos. Cuando un cliente accede a capas de imagen en un registro de contenedor de Azure, realiza solicitudes mediante un punto de conexión de la cuenta de almacenamiento proporcionado por el registro.

Si el registro está replicado geográficamente, es posible que el cliente tenga que interactuar con los puntos de conexión de datos en una región específica o en varias regiones replicadas.

Permitir el acceso a los puntos de conexión de REST y de datos

  • Punto de conexión de REST: permite el acceso al nombre del servidor de inicio de sesión del registro completo, <registry-name>.azurecr.io, o un rango de direcciones IP asociado
  • Punto de conexión de almacenamiento (datos) : permite el acceso a todas las cuentas de almacenamiento blob de Azure usando el carácter comodín *.blob.core.windows.net, o un rango de direcciones IP asociado.

Nota

Azure Container Registry introduce puntos de conexión de datos dedicados, lo que le permite ajustar el ámbito de las reglas de Firewall de cliente para el almacenamiento del registro. Opcionalmente, puede habilitar puntos de conexión de datos en todas las regiones donde se encuentra o replica el registro, con el formato <registry-name>.<region>.data.azurecr.io.

Acerca del FQDN del registro

El registro tiene dos FQDN, la dirección URL de inicio de sesión y el punto de conexión de datos.

  • Tanto la dirección URL de inicio de sesión como el punto de conexión de datos son accesibles desde dentro de la red virtual, mediante IP privada habilitando un vínculo privado.
  • Un registro que no use puntos de conexión de datos tendría que acceder a los datos desde un punto de conexión del formulario *.blob.core.windows.net y no proporciona el aislamiento necesario al configurar las reglas de firewall.
  • Un registro con un vínculo privado habilitado obtiene automáticamente el punto de conexión de datos dedicado.
  • Se crea un punto de conexión de datos dedicado por región para un registro.
  • La dirección URL de inicio de sesión sigue siendo la misma independientemente de si el punto de conexión de datos está habilitado o deshabilitado.

Permitir el acceso por intervalo de direcciones IP

Si su organización tiene directivas para permitir el acceso solo a direcciones o intervalos de direcciones IP específicos, descargue Azure IP Ranges and Service Tags – Public Cloud (Intervalos de direcciones IP y etiquetas de servicio de Azure: nube pública).

Para buscar los intervalos IP del punto de conexión de REST de ACR, busque AzureContainerRegistry en el archivo JSON.

Importante

Los intervalos de direcciones IP de los servicios de Azure pueden cambiar. Estos cambios se publican semanalmente. Descargue el archivo JSON con regularidad y realice las modificaciones necesarias en las reglas de acceso. Si su escenario implica configurar reglas de grupo de seguridad de red en una red virtual de Azure o usa Azure Firewall, use la etiqueta de servicio AzureContainerRegistry en su lugar.

Direcciones IP de REST para todas las regiones

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

Direcciones IP de REST para una región específica

Busque la región específica, como AzureContainerRegistry.AustraliaEast.

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

Direcciones IP de almacenamiento para todas las regiones

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

Direcciones IP de almacenamiento para regiones específicas

Busque la región específica, como Storage.AustraliaCentral.

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

Permitir el acceso por etiqueta de servicio

En una red virtual de Azure, use las reglas de seguridad de red para filtrar el tráfico de un recurso (por ejemplo, una máquina virtual) a un registro de contenedor. Para simplificar la creación de las reglas de red de Azure, use la etiqueta de servicio AzureContainerRegistry. Una etiqueta de servicio constituye un grupo de prefijos de dirección IP para tener acceso a un servicio de Azure de manera global o por región de Azure. La etiqueta se actualiza automáticamente cuando las direcciones cambian.

Por ejemplo, cree una regla de grupo de seguridad de red saliente con el destino AzureContainerRegistry para permitir el tráfico a un registro de contenedor de Azure. Para permitir el acceso a la etiqueta de servicio únicamente en una región específica, especifique la región con el siguiente formato: AzureContainerRegistry.[nombre de la región].

Habilitar puntos de conexión de datos dedicados

Advertencia

Si ha configurado previamente el acceso de firewall de cliente a los puntos de conexión de *.blob.core.windows.net existentes, el cambio a puntos de conexión de datos dedicados afectará la conectividad del cliente, lo que producirá errores de extracción. Para asegurarse de que los clientes tienen un acceso coherente, agregue las nuevas reglas de punto de conexión de datos a las reglas de firewall de cliente. Una vez completados, habilite los puntos de conexión de datos dedicados para los registros mediante el CLI de Azure u otras herramientas.

Los puntos de conexión de datos dedicados son una característica opcional del nivel de servicio del registro de contenedor Premium. Para obtener información sobre los límites y los niveles de servicio de los registros, consulte Niveles de servicio de Azure Container Registry.

Puede habilitar puntos de conexión de datos dedicados mediante el Azure Portal o el CLI de Azure. Los puntos de conexión de datos siguen un patrón regional, <registry-name>.<region>.data.azurecr.io. En un registro con replicación geográfica, la habilitación de puntos de conexión de datos permite puntos de conexión en todas las regiones de réplica.

Portal

Para habilitar los puntos de conexión de datos mediante el portal:

  1. Vaya al registro de contenedor.
  2. Seleccione Redes>de acceso público.
  3. Active la casilla Habilitar punto de conexión de datos dedicado.
  4. Seleccione Guardar.

Los puntos de conexión de datos o puntos de conexión aparecen en el portal.

Puntos de conexión de datos dedicados en el portal

Azure CLI

Para habilitar los puntos de conexión de datos mediante el CLI de Azure, use CLI de Azure versión 2.4.0 o posterior. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.

El siguiente comando az acr update permite puntos de conexión de datos dedicados en un registro myregistry.

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

Para ver los puntos de conexión de datos, use el comando az acr show-endpoints:

az acr show-endpoints --name myregistry

La salida con fines de demostración muestra dos puntos de conexión regionales

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

Después de configurar los puntos de conexión de datos dedicados para el registro, puede habilitar las reglas de acceso de firewall de cliente para los puntos de conexión de datos. Habilite las reglas de acceso de punto de conexión de datos para todas las regiones del registro necesarias.

Configuración de las reglas de firewall de cliente para MCR

Si necesita obtener acceso a Microsoft Container Registry (MCR) desde detrás de un firewall, consulte las instrucciones para configurar las reglas de firewall de cliente de MCR. MCR es el registro principal para todas las imágenes de Docker publicadas por Microsoft, como las imágenes de Windows Server.

Pasos siguientes