Gestión de Acceso a Imágenes
La Gestión de Acceso a Imágenes (Image Access Management) permite a los administradores controlar qué tipos de imágenes pueden descargar (pull) los desarrolladores desde Docker Hub. Esto evita que los desarrolladores utilicen accidentalmente imágenes de la comunidad no confiables que podrían representar riesgos de seguridad para tu organización.
Con la Gestión de Acceso a Imágenes, puedes restringir el acceso a:
- Imágenes Oficiales de Docker (Docker Official Images): Imágenes seleccionadas y mantenidas por Docker.
- Imágenes de Editores Verificados de Docker (Docker Verified Publisher Images): Imágenes de editores comerciales de confianza.
- Imágenes de la organización: Repositorios privados de tu organización.
- Imágenes de la comunidad: Imágenes públicas de desarrolladores individuales.
También puedes usar una lista de permitidos de repositorios (repository allowlist) para aprobar repositorios específicos que eludan todos los demás controles de acceso.
¿Quién debería usar la Gestión de Acceso a Imágenes?
La Gestión de Acceso a Imágenes ayuda a prevenir ataques a la cadena de suministro al garantizar que los desarrolladores solo utilicen imágenes de contenedores de confianza. Por ejemplo, un desarrollador que crea una nueva aplicación podría usar accidentalmente una imagen maliciosa de la comunidad como componente. La Gestión de Acceso a Imágenes evita esto al restringir el acceso a solo tipos de imágenes aprobados.
Los escenarios comunes de seguridad incluyen:
- Prevenir el uso de imágenes de la comunidad que no tengan mantenimiento o que sean maliciosas.
- Garantizar que los desarrolladores utilicen únicamente imágenes base oficiales y evaluadas.
- Controlar el acceso a imágenes comerciales de terceros.
- Mantener estándares de seguridad consistentes en todos los equipos de desarrollo.
Utiliza la lista de permitidos de repositorios cuando necesites:
- Otorgar acceso a imágenes específicas de la comunidad que hayan sido evaluadas.
- Permitir herramientas esenciales de terceros que no entren en las categorías oficiales.
- Proporcionar excepciones a las políticas generales de acceso a imágenes para requisitos comerciales específicos.
Requisitos previos
Antes de configurar la Gestión de Acceso a Imágenes, debes:
- Imponer el inicio de sesión. La Gestión de Acceso a Imágenes 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) para la autenticación (no se admiten los tokens de acceso de la organización).
- Tener una suscripción de Docker Business.
Configurar el acceso a imágenes
NoteLa Gestión de Acceso a Imágenes está desactivada por defecto para los miembros de la organización. Los propietarios de la organización siempre tienen acceso a todas las imágenes, independientemente de la configuración de la política.
Para configurar la Gestión de Acceso a Imágenes:
Inicia sesión en Docker Home y selecciona tu organización en el menú desplegable de cuentas en la esquina superior izquierda.
Selecciona Admin Console (Consola de administración) y luego Image access (Acceso a imágenes).
Utiliza el interruptor (toggle) para habilitar el acceso a imágenes.
Selecciona qué tipos de imágenes permitir:
- Organization images (Imágenes de la organización): Imágenes de tu organización (siempre permitidas por defecto). Pueden ser imágenes públicas o privadas creadas por miembros dentro de tu organización.
- Community images (Imágenes de la comunidad): Imágenes aportadas por varios usuarios que pueden plantear riesgos de seguridad. Esta categoría incluye imágenes de código abierto patrocinadas por Docker (Docker-Sponsored Open Source) y está desactivada por defecto.
- Docker Verified Publisher Images (Imágenes de editores verificados de Docker): Imágenes de socios de Docker en el programa Verified Publisher, calificadas para cadenas de suministro seguras.
- Docker Official Images (Imágenes oficiales de Docker): Repositorios seleccionados de Docker que proporcionan repositorios de SO, mejores prácticas para Dockerfiles, soluciones listas para usar y actualizaciones de seguridad oportunas.
- Repository allowlist (Lista de permitidos de repositorios): Una lista de repositorios específicos que deben permitirse. Se configura en el siguiente paso.
Si la Lista de permitidos de repositorios está habilitada en el paso anterior, puedes agregar o eliminar repositorios específicos en la lista de permitidos:
- Para agregar repositorios, en la sección Repository allowlist, selecciona Add repositories to allowlist (Agregar repositorios a la lista de permitidos) y sigue las instrucciones en pantalla.
- Para eliminar un repositorio, en la sección Repository allowlist, selecciona el icono de la papelera junto a él.
Los repositorios en la lista de permitidos son accesibles para todos los miembros de la organización, independientemente de las restricciones de tipo de imagen configuradas en los pasos anteriores.
Una vez aplicadas las restricciones, los miembros de la organización pueden ver la página de permisos en formato de solo lectura.
Verificar las restricciones de acceso
Después de configurar la Gestión de Acceso a Imágenes, comprueba que las restricciones funcionen correctamente.
Cuando los desarrolladores descargan tipos de imágenes permitidos:
$ docker pull nginx # Imagen oficial de Docker
# La descarga tiene éxito si las imágenes oficiales de Docker están permitidas
Cuando los desarrolladores descargan tipos de imágenes bloqueados:
$ docker pull algunusuario/imagen-personalizada # Imagen de la comunidad
Error response from daemon: image access denied: community images not allowed
Las restricciones de acceso a imágenes se aplican a todas las operaciones de Docker Hub, incluyendo descargas (pulls), compilaciones que utilicen instrucciones FROM y servicios de Docker Compose.
Mejores prácticas
- Comienza con la política más restrictiva y amplíala gradualmente en función de las necesidades comerciales legítimas:
- Comienza con las imágenes oficiales de Docker y las imágenes de la organización.
- Si es necesario, agrega imágenes de editores verificados de Docker para herramientas comerciales.
- Evalúa cuidadosamente las imágenes de la comunidad solo para casos de uso específicos y evaluados.
- Utiliza la lista de permitidos de repositorios con moderación. Solo agrega repositorios que hayan sido minuciosamente evaluados y aprobados a través del proceso de revisión de seguridad de tu organización.
- Monitorea los patrones de uso: Revisa qué imágenes intentan descargar los desarrolladores, identifica solicitudes legítimas de tipos de imágenes adicionales, audita regularmente las categorías de imágenes aprobadas para verificar su relevancia continua y utiliza las analíticas de Docker Desktop para monitorear los patrones de uso.
- Revisa periódicamente la lista de permitidos de repositorios: Audita periódicamente los repositorios en tu lista de permitidos para asegurarte de que sigan siendo necesarios y confiables, y elimina los que ya no se necesiten o no tengan mantenimiento.
Consideraciones sobre el alcance y la elusión
- La Gestión de Acceso a Imágenes solo controla el acceso a las imágenes de Docker Hub. Las imágenes de otros registros no se ven afectadas por estas políticas. Utiliza la Gestión de Acceso a Registros para controlar el acceso a otros registros.
- Los usuarios podrían eludir la Gestión de Acceso a Imágenes cerrando sesión en Docker Desktop (a menos que se imponga el inicio de sesión), utilizando imágenes de otros registros que no estén restringidos, o utilizando espejos (mirrors) o proxies de registro. Impón el inicio de sesión y combínalo con la Gestión de Acceso a Registros para un control integral.
- Las restricciones de imágenes se aplican a las instrucciones
FROMde Dockerfile, los servicios de Docker Compose que utilicen imágenes restringidas fallarán, y las compilaciones de múltiples etapas (multi-stage) pueden verse afectadas si las imágenes intermedias están restringidas.
Siguientes pasos
- Capas de controles de seguridad: La Gestión de Acceso a Imágenes funciona mejor con la Gestión de Acceso a Registros para controlar a qué registros pueden acceder los desarrolladores, el Aislamiento de Contenedores Mejorado para proteger los contenedores en el tiempo de ejecución y la Gestión de Ajustes para controlar la configuración de Docker Desktop.