# Gestión de Acceso a Registros





La Gestión de Acceso a Registros (Registry Access Management - RAM) permite a los administradores controlar a qué registros de contenedores pueden acceder los desarrolladores a través de Docker Desktop. Este filtrado a nivel de DNS garantiza que los desarrolladores solo descarguen (pull) y suban (push) imágenes de registros aprobados, mejorando la seguridad de la cadena de suministro.

RAM funciona con todos los tipos de registros, incluidos los servicios en la nube, los registros locales (on-premises) y los espejos de registro (registry mirrors). Puedes permitir cualquier nombre de host o dominio, pero debes incluir los dominios de redirección (como `s3.amazonaws.com` para algunos registros) en tu lista de permitidos.

## Registros admitidos

La Gestión de Acceso a Registros funciona con cualquier registro de contenedores, incluidos:

- Docker Hub (permitido por defecto)
- Registros en la nube: Amazon ECR, Google Artifact Registry, Azure Container Registry
- Registros basados en Git: GitHub Container Registry, GitLab Container Registry
- Soluciones locales: Nexus, Artifactory, Harbor
- Espejos de registro: Incluidos los espejos de Docker Hub

## Requisitos previos

Antes de configurar la Gestión de Acceso a Registros, debes:

- [Imponer el inicio de sesión](/enterprise/security/enforce-sign-in/). La Gestión de Acceso a Registros solo entra en vigor cuando los usuarios han iniciado sesión en Docker Desktop con las credenciales de la organización.
- Utilizar [tokens de acceso personal (PATs)](/security/access-tokens/) para la autenticación (no se admiten los tokens de acceso de la organización).
- Tener una suscripción de Docker Business.

## Configurar los permisos de registro

Para configurar los permisos de registro:

1. Inicia sesión en [Docker Home](https://app.docker.com) y selecciona tu organización en el menú desplegable de cuentas en la esquina superior izquierda.
2. Selecciona **Admin Console** (Consola de administración) y luego **Registry access** (Acceso a registros).
3. Utiliza el **interruptor** (toggle) para habilitar el acceso a registros. Por defecto, Docker Hub está habilitado en la lista de registros.
4. Para agregar registros adicionales, selecciona **Add registry** (Agregar registro) y proporciona una dirección de registro (**Registry address**) y un apodo de registro (**Registry nickname**).
5. Selecciona **Create** (Crear). Puedes agregar hasta 100 registros.
6. Verifica que tu registro aparezca en la lista de registros y selecciona **Save changes** (Guardar cambios).
   >[!NOTE]
   >
   > Los cambios en las políticas pueden tardar hasta 24 horas en propagarse. Para aplicar los cambios de inmediato, pide a los desarrolladores que cierren sesión y vuelvan a iniciarla en Docker Desktop.

Si un desarrollador pertenece a múltiples organizaciones con diferentes políticas de RAM, solo se impone la política de la primera organización en el archivo de configuración.

> [!TIP]
>
> Las restricciones de RAM también se aplican a las instrucciones `ADD` de Dockerfile que recuperan contenido a través de una URL. Incluye los dominios de registro de confianza en tu lista de permitidos cuando utilices `ADD` con URLs.
>
> RAM está diseñado para registros de contenedores, no para URLs de propósito general como espejos de paquetes o servicios de almacenamiento. Agregar demasiados dominios puede causar errores o alcanzar los límites del sistema.

## Verificar que las restricciones estén funcionando

Una vez que los usuarios inician sesión en Docker Desktop con sus credenciales de organización, la Gestión de Acceso a Registros entra en vigor de inmediato.

Cuando los usuarios intentan descargar contenido de un registro bloqueado:

```console
$ docker pull registro-bloqueado.com/imagen:etiqueta
Error response from daemon: registry access to blocked-registry.com is not allowed
```

El acceso a los registros permitidos funciona con normalidad:

```console
$ docker pull registro-permitido.com/imagen:etiqueta
# La descarga tiene éxito
```

Las restricciones de registro se aplican a todas las operaciones de Docker, incluyendo descargas (pulls), subidas (pushes) y compilaciones que hagan referencia a registros externos.

## Límites del registro y restricciones de la plataforma

La Gestión de Acceso a Registros tiene los siguientes límites y comportamientos específicos de la plataforma:

- Tamaño máximo de la lista de permitidos: 100 registros o dominios por organización.
- Filtrado basado en DNS: Las restricciones funcionan a nivel de nombre de host, no de direcciones IP.
- Dominios de redirección requeridos: Debe incluir todos los dominios a los que se redirige un registro (puntos finales de CDN, servicios de almacenamiento).
- Contenedores de Windows: Las operaciones con imágenes de Windows no están restringidas por defecto. Activa **Use proxy for Windows Docker daemon** (Usar proxy para el daemon de Docker en Windows) en la configuración de Docker Desktop para aplicar las restricciones.
- Requisitos de WSL 2: Requiere la versión del kernel de Linux 5.4 o posterior, las restricciones se aplican a todas las distribuciones de WSL 2.

## Restricciones de compilación y despliegue

Los siguientes escenarios no están restringidos por la Gestión de Acceso a Registros:

- Docker buildx con el controlador de Kubernetes.
- Docker buildx con un controlador personalizado de Docker-container.
- Algunas descargas de imágenes de Docker Debug y Kubernetes (incluso si Docker Hub está bloqueado).
- Las imágenes almacenadas previamente en caché por espejos de registro aún pueden estar bloqueadas si el registro de origen está restringido.

## Consideraciones sobre la elusión de la seguridad

Los usuarios podrían eludir la Gestión de Acceso a Registros mediante:

- Proxies locales o manipulación de DNS.
- Cerrar sesión en Docker Desktop (a menos que se imponga el inicio de sesión).
- Modificaciones a nivel de red fuera del control de Docker Desktop.

Para maximizar la efectividad de la seguridad:

- [Impón el inicio de sesión](/enterprise/security/enforce-sign-in/) para evitar la elusión mediante el cierre de sesión.
- Implementa controles adicionales a nivel de red para una protección completa.
- Utiliza la Gestión de Acceso a Registros como parte de una estrategia de seguridad más amplia.

## Mejores prácticas para la lista de permitidos de registros

- Incluye todos los dominios del registro: Algunos registros redirigen a múltiples dominios. Para AWS ECR, incluye:

    ```text
    tu-cuenta.dkr.ecr.us-west-2.amazonaws.com
    amazonaws.com
    s3.amazonaws.com
    ```

- Mantén la lista de permitidos de forma regular:
    - Elimina periódicamente los registros no utilizados.
    - Agrega nuevos registros aprobados según sea necesario.
    - Actualiza los nombres de dominio que hayan cambiado.
    - Monitorea el uso de los registros a través de las analíticas de Docker Desktop.
- Prueba los cambios de configuración:
    - Verifica el acceso a los registros después de realizar actualizaciones en la lista de permitidos.
    - Comprueba que se incluyan todos los dominios de redirección necesarios.
    - Asegúrate de que los flujos de trabajo de desarrollo no se vean interrumpidos.
    - Combínalo con el [Aislamiento de Contenedores Mejorado](/enterprise/security/hardened-desktop/enhanced-container-isolation/) para una protección integral.
