ECR: almacenamiento y extracción de imágenes de contenedor
Envíe imágenes de Docker a Amazon ECR, aplique políticas de ciclo de vida para eliminar imágenes antiguas y extraiga imágenes de forma segura en tareas de ECS
ECR: almacenamiento y extracción de imágenes de contenedor es una lección gratuita de Cloud & IT Cert Prep en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cloud & IT Cert Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
¿Qué es Amazon ECR?
Amazon Elastic Container Registry (ECR) es un registro de imágenes de contenedor totalmente administrado y compatible con Docker. Almacena, gestiona e implementa imágenes de contenedor de forma segura dentro de AWS. ECR elimina la necesidad de operar su propia infraestructura de registro y se integra de forma nativa con ECS, EKS, Lambda (imágenes de contenedor) y CodeBuild. Las imágenes almacenadas en ECR se replican para ofrecer alta disponibilidad y se pueden analizar automáticamente en busca de vulnerabilidades de seguridad.
Repositorios de ECR privados frente a públicos
ECR admite dos tipos de repositorios: los repositorios privados de Amazon ECR requieren autenticación de AWS para extraer imágenes, por lo que son ideales para imágenes de aplicaciones propietarias. El acceso se controla mediante políticas de IAM y políticas de recursos del repositorio. Los repositorios públicos de la ECR Public Gallery (public.ecr.aws) permiten extraer imágenes sin autenticación desde cualquier lugar de Internet, por lo que son ideales para imágenes base de código abierto, herramientas públicas e imágenes proporcionadas por AWS (imágenes base de Lambda e imágenes de AMI optimizadas para ECS). Los repositorios públicos ofrecen una cuota gratuita de extracción, con límites de frecuencia para las solicitudes no autenticadas.
# Create a private ECR repository
aws ecr create-repository \
--repository-name 'myapp/backend' \
--image-scanning-configuration scanOnPush=true \
--image-tag-mutability IMMUTABLEAutenticación de Docker en ECR
Para insertar o extraer imágenes privadas de ECR, Docker debe autenticarse mediante credenciales de AWS. Use aws ecr get-login-password para obtener un token de autenticación temporal y páselo mediante una tubería a docker login. El token es válido durante 12 horas. En las canalizaciones de CI/CD, actualice el token antes de cada inserción. Los agentes de tareas de ECS, Lambda y los nodos de trabajo de EKS se autentican automáticamente en ECR mediante su rol de IAM; no es necesario iniciar sesión manualmente para extraer imágenes durante el tiempo de ejecución en entornos de AWS.
# Authenticate Docker CLI to ECR
aws ecr get-login-password --region us-east-1 | \
docker login \
--username AWS \
--password-stdin \
123456789012.dkr.ecr.us-east-1.amazonaws.comInserción de imágenes en ECR
El flujo de trabajo estándar para insertar una imagen en ECR es el siguiente: (1) Compilar la imagen de Docker localmente; (2) Etiquetar la imagen con el URI del repositorio de ECR (formato: account.dkr.ecr.region.amazonaws.com/repo-name:tag); (3) Insertar la imagen etiquetada. ECR almacena cada capa de imagen por separado y deduplica las capas comunes entre imágenes, lo que reduce los costes de almacenamiento. El uso de etiquetas inmutables impide sobrescribir una etiqueta y garantiza que las versiones de imágenes implementadas sean estables y auditables.
# Build, tag, and push
docker build -t myapp/backend .
docker tag myapp/backend \
123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp/backend:v1.2.3
docker push \
123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp/backend:v1.2.3Mutabilidad de las etiquetas de imagen
Las etiquetas IMMUTABLE impiden sobrescribir una etiqueta con una imagen diferente. Cuando la mutabilidad de las etiquetas es IMMUTABLE, la inserción de una imagen nueva en una etiqueta existente falla; debe utilizar una etiqueta nueva. Esta es una práctica recomendada para producción: garantiza que :v1.2.3 siempre haga referencia exactamente al mismo resumen de imagen, lo que permite realizar reversiones fiables y auditorías. Use etiquetas MUTABLE únicamente para ramas de desarrollo o la etiqueta de conveniencia :latest en entornos que no sean de producción.
Análisis de imágenes en busca de vulnerabilidades
Habilite scan on push para analizar automáticamente las imágenes en busca de CVE conocidos cuando se insertan. ECR utiliza la integración con Amazon Inspector (análisis mejorado) o el análisis básico integrado, basado en el analizador de código abierto Clair. El análisis mejorado proporciona un análisis continuo (no solo al insertar la imagen) y cubre los paquetes del sistema operativo y los paquetes específicos de lenguajes (Node.js, Python y Java). Revise los resultados del análisis en la consola de ECR o mediante notificaciones de EventBridge dirigidas a su equipo de seguridad.
# Enable enhanced scanning for a registry
aws ecr put-registry-scanning-configuration \
--scan-type ENHANCED \
--rules '[{"repositoryFilters": [{"filter": "*", "filterType": "WILDCARD"}], "scanFrequency": "CONTINUOUS_SCAN"}]'Políticas de ciclo de vida para gestionar los costes de las imágenes
ECR cobra por el almacenamiento por GB al mes. Sin una gestión adecuada, las imágenes antiguas se acumulan indefinidamente y aumentan los costes. Las políticas de ciclo de vida caducan y eliminan automáticamente las imágenes según determinadas reglas; por ejemplo, conservar solo las 10 últimas versiones etiquetadas o eliminar las imágenes sin etiqueta que tengan más de 7 días. Las políticas de ciclo de vida se ejecutan diariamente. Esto es especialmente importante en las canalizaciones de CI/CD que insertan imágenes nuevas con cada confirmación, ya que pueden acumular cientos de imágenes por semana.
aws ecr put-lifecycle-policy \
--repository-name 'myapp/backend' \
--lifecycle-policy-text '{
"rules": [
{
"rulePriority": 1,
"description": "Keep last 10 tagged images",
"selection": {"tagStatus": "tagged", "tagPrefixList": ["v"], "countType": "imageCountMoreThan", "countNumber": 10},
"action": {"type": "expire"}
},
{
"rulePriority": 2,
"description": "Delete untagged images after 7 days",
"selection": {"tagStatus": "untagged", "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 7},
"action": {"type": "expire"}
}
]
}'Acceso a imágenes entre cuentas
Para extraer imágenes de un repositorio de ECR de la cuenta A desde ECS/EKS/Lambda en la cuenta B, configure una política del repositorio (política basada en recursos) en el repositorio de ECR de la cuenta A, de modo que conceda al principal de IAM de la cuenta B permiso para llamar a ecr:GetDownloadUrlForLayer, ecr:BatchGetImage y ecr:BatchCheckLayerAvailability. Esto elimina la necesidad de copiar imágenes entre cuentas y permite una gestión centralizada de imágenes con un consumo distribuido.
Replicación de ECR para implementaciones multirregión
La replicación de ECR copia automáticamente las imágenes del registro principal a registros de otras regiones de AWS (y, opcionalmente, de otras cuentas). Cuando las tareas de ECS de otra región extraen una imagen, lo hacen desde el registro regional local, lo que reduce los costes de transferencia de datos y la latencia de extracción de imágenes. Configure las reglas de replicación en el nivel del registro, especificando qué repositorios se replicarán y las regiones y cuentas de destino. La replicación es asíncrona y se realiza casi en tiempo real.
aws ecr put-replication-configuration \
--replication-configuration '{
"rules": [{
"destinations": [
{"region": "eu-west-1", "registryId": "123456789012"},
{"region": "ap-southeast-1", "registryId": "123456789012"}
],
"repositoryFilters": [{"filter": "prod/*", "filterType": "PREFIX_MATCH"}]
}]
}'Cifrado de ECR
ECR cifra las imágenes en reposo mediante cifrado del lado del servidor. De forma predeterminada, utiliza una clave administrada por AWS (AWS_MANAGED_KEY). Para obtener un mayor control y capacidad de auditoría, configure una clave de KMS administrada por el cliente (CMK). Con una CMK, usted controla la rotación de claves, puede revocar el acceso deshabilitando la clave y auditar todas las operaciones de descifrado en CloudTrail. Habilite el cifrado de KMS cuando el cumplimiento normativo (PCI-DSS, HIPAA, FedRAMP) requiera claves de cifrado controladas por el cliente.
Uso de ECR con ECS en canalizaciones de CI/CD
Una canalización completa de CI/CD para ECS con ECR funciona así: (1) el desarrollador inserta el código en Git; (2) CodeBuild compila la imagen de Docker y la inserta en ECR con una etiqueta basada en el SHA de la confirmación; (3) CodePipeline actualiza la definición de tarea de ECS con el nuevo URI de imagen; (4) ECS realiza una actualización gradual del servicio y extrae la nueva imagen de ECR. Las tareas de ECS utilizan el Task Execution Role para autenticarse automáticamente en ECR; no es necesario gestionar credenciales en la canalización para extraer imágenes durante el tiempo de ejecución.
Comprobación rápida
Compruebe su comprensión de los conceptos de AWS Solutions Architect (SAA-C03) de esta lección.
Resumen de la lección
En esta lección ha aprendido que los repositorios privados de ECR almacenan imágenes de contenedor con acceso controlado mediante IAM, etiquetas inmutables para garantizar la estabilidad en producción y análisis automático de vulnerabilidades con Inspector. Las políticas de ciclo de vida caducan automáticamente las imágenes antiguas y sin etiqueta para controlar los costes de almacenamiento en entornos activos de CI/CD. La replicación de ECR copia imágenes a otras regiones y cuentas para realizar implementaciones multirregión con una menor latencia de extracción. A continuación, exploraremos el escalado automático de servicios de ECS y la integración con el equilibrio de carga.
Preguntas frecuentes
¿La lección «ECR: almacenamiento y extracción de imágenes de contenedor» es gratis?
Sí — el texto completo de «ECR: almacenamiento y extracción de imágenes de contenedor» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cloud & IT Cert Prep, actualiza a CoddyKit PRO. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.
¿Qué aprenderé en «ECR: almacenamiento y extracción de imágenes de contenedor»?
Envíe imágenes de Docker a Amazon ECR, aplique políticas de ciclo de vida para eliminar imágenes antiguas y extraiga imágenes de forma segura en tareas de ECS Practicas Cloud & IT Cert Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cloud & IT Cert Prep?
No se requiere experiencia previa. Cloud & IT Cert Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «ECR: almacenamiento y extracción de imágenes de contenedor»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cloud & IT Cert Prep?
Sí. Cada lección de Cloud & IT Cert Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Clústeres de ECS, definiciones de tareas y servicios
- Tipo de lanzamiento EC2 frente a Fargate
- ECR: almacenamiento y extracción de imágenes de contenedor
- Auto Scaling y balanceo de carga de servicios de ECS