ECR: Armazenamento e extração de imagens de contêiner
Envie imagens do Docker para o Amazon ECR, aplique políticas de ciclo de vida para remover imagens antigas e extraia imagens com segurança para as tarefas do ECS.
ECR: Armazenamento e extração de imagens de contêiner é uma aula grátis de Cloud & IT Cert Prep no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cloud & IT Cert Prep, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.
O que é o Amazon ECR?
O Amazon Elastic Container Registry (ECR) é um registro de imagens de contêineres totalmente gerenciado e compatível com Docker. Ele armazena, gerencia e implanta imagens de contêineres com segurança na AWS. O ECR elimina a necessidade de operar sua própria infraestrutura de registro e integra-se nativamente ao ECS, EKS, Lambda (imagens de contêiner) e CodeBuild. As imagens armazenadas no ECR são replicadas para alta disponibilidade e podem ser verificadas automaticamente em busca de vulnerabilidades de segurança.
Repositórios privados e públicos do ECR
O ECR oferece suporte a dois tipos de repositório: os repositórios privados no Amazon ECR exigem autenticação da AWS para obter imagens, sendo ideais para imagens de aplicações proprietárias. O acesso é controlado por políticas do IAM e políticas de recursos do repositório. Os repositórios públicos na ECR Public Gallery (public.ecr.aws) permitem obter imagens sem autenticação de qualquer lugar da internet, sendo ideais para imagens base de código aberto, ferramentas públicas e imagens fornecidas pela AWS (imagens base do Lambda e imagens AMI otimizadas para ECS). Os repositórios públicos têm uma cota gratuita de obtenção de imagens, com limites de taxa para solicitações não autenticadas.
# Create a private ECR repository
aws ecr create-repository \
--repository-name 'myapp/backend' \
--image-scanning-configuration scanOnPush=true \
--image-tag-mutability IMMUTABLEAutenticação do Docker no ECR
Para enviar ou obter imagens privadas do ECR, o Docker deve se autenticar usando credenciais da AWS. Use aws ecr get-login-password para obter um token temporário de autenticação e encaminhe-o para docker login. O token é válido por 12 horas. Em pipelines de CI/CD, atualize o token antes de cada envio. Os agentes de tarefas do ECS, o Lambda e os nós de trabalho do EKS autenticam-se automaticamente no ECR usando sua função do IAM; não é necessário fazer login manual para obter imagens durante a execução em ambientes da 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.comEnviando imagens para o ECR
O fluxo de trabalho padrão para enviar uma imagem ao ECR é: (1) Build da imagem Docker localmente; (2) marcar a imagem com o URI do repositório do ECR (formato: account.dkr.ecr.region.amazonaws.com/repo-name:tag); (3) enviar a imagem marcada. O ECR armazena cada camada da imagem separadamente e elimina duplicidades de camadas comuns entre imagens, reduzindo os custos de armazenamento. Usar etiquetas imutáveis impede que uma etiqueta seja substituída, garantindo que as versões implantadas das imagens sejam estáveis e auditáveis.
# 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.3Mutabilidade das etiquetas de imagens
As etiquetas IMMUTABLE impedem que uma etiqueta seja substituída por uma imagem diferente. Quando a mutabilidade das etiquetas é IMMUTABLE, o envio de uma nova imagem para uma etiqueta existente falha; é necessário usar uma nova etiqueta. Essa é uma prática recomendada para produção: ela garante que :v1.2.3 sempre se refira exatamente ao mesmo resumo da imagem, permitindo reversões e auditorias confiáveis. Use etiquetas MUTABLE somente para ramificações de desenvolvimento ou a etiqueta de conveniência :latest em ambientes que não sejam de produção.
Verificação de imagens em busca de vulnerabilidades
Habilite a verificação ao enviar para verificar automaticamente as imagens em busca de CVEs conhecidos quando elas forem enviadas. O ECR usa a integração com o Amazon Inspector (verificação aprimorada) ou a Verificação básica integrada, alimentada pelo verificador de código aberto Clair. A verificação aprimorada oferece verificação contínua, e não apenas durante o envio, e abrange pacotes do sistema operacional e pacotes específicos de linguagens (Node.js, Python, Java). Analise os resultados da verificação no console do ECR ou por meio de notificações do EventBridge para sua equipe de segurança.
# 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 gerenciar custos das imagens
O ECR cobra pelo armazenamento por GB por mês. Sem gerenciamento, imagens antigas se acumulam indefinidamente, aumentando os custos. As políticas de ciclo de vida expiram e excluem imagens automaticamente com base em regras: por exemplo, manter apenas as 10 versões marcadas mais recentes ou excluir imagens sem etiquetas com mais de 7 dias. As políticas de ciclo de vida são executadas diariamente. Isso é especialmente importante em pipelines de CI/CD que enviam novas imagens a cada confirmação, pois elas podem acumular centenas de imagens 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"}
}
]
}'Acesso a imagens entre contas
Para obter imagens de um repositório do ECR na Conta A a partir do ECS/EKS/Lambda na Conta B, configure uma política do repositório (política baseada em recursos) no repositório do ECR na Conta A, concedendo ao principal do IAM da Conta B permissão para chamar ecr:GetDownloadUrlForLayer, ecr:BatchGetImage e ecr:BatchCheckLayerAvailability. Isso elimina a necessidade de copiar imagens entre contas e permite o gerenciamento centralizado de imagens com consumo distribuído.
Replicação do ECR para implantações em várias regiões
A replicação do ECR copia automaticamente imagens do seu registro principal para registros em outras regiões da AWS e, opcionalmente, para outras contas. Quando as tarefas do ECS em outra região obtêm uma imagem, elas a obtêm do registro regional local, reduzindo os custos de transferência de dados e a latência de obtenção da imagem. Configure as regras de replicação no nível do registro, especificando quais repositórios replicar e quais regiões e contas de destino usar. A replicação é assíncrona e ocorre quase em tempo 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"}]
}]
}'Criptografia do ECR
O ECR criptografa as imagens em repouso usando criptografia no lado do servidor. Por padrão, ele usa uma chave gerenciada pela AWS (AWS_MANAGED_KEY). Para obter controle e capacidade de auditoria adicionais, configure uma chave KMS gerenciada pelo cliente (CMK). Com uma CMK, o senhor controla a rotação da chave, pode revogar o acesso desabilitando-a e pode auditar todas as operações de descriptografia no CloudTrail. Habilite a criptografia KMS quando a conformidade regulatória (PCI-DSS, HIPAA, FedRAMP) exigir chaves de criptografia controladas pelo cliente.
Usando o ECR com ECS em pipelines de CI/CD
Um pipeline completo de CI/CD para ECS com ECR: (1) o desenvolvedor envia o código para o Git; (2) o CodeBuild cria a imagem Docker e a envia para o ECR com uma etiqueta de SHA da confirmação; (3) o CodePipeline atualiza a definição da tarefa do ECS com o novo URI da imagem; (4) o ECS realiza uma atualização gradual do serviço, obtendo a nova imagem do ECR. As tarefas do ECS usam a função de execução da tarefa para se autenticar automaticamente no ECR; não é necessário gerenciar credenciais no pipeline para obter imagens durante a execução.
Verificação rápida
Teste sua compreensão dos conceitos do AWS Solutions Architect (SAA-C03) apresentados nesta lição.
Recapitulação da lição
Nesta lição, o senhor aprendeu que os repositórios privados do ECR armazenam imagens de contêineres com acesso controlado pelo IAM, etiquetas imutáveis para estabilidade em produção e verificação automática de vulnerabilidades com o Inspector; as Políticas de ciclo de vida expiram automaticamente imagens antigas e sem etiquetas para controlar os custos de armazenamento em ambientes ativos de CI/CD; e a Replicação do ECR copia imagens para outras regiões e contas em implantações multi-regionais, reduzindo a latência de obtenção. Em seguida, exploraremos o Auto Scaling de serviços do ECS e a integração com balanceamento de carga.
Perguntas Frequentes
A aula “ECR: Armazenamento e extração de imagens de contêiner” é grátis?
Sim — o texto completo de “ECR: Armazenamento e extração de imagens de contêiner” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cloud & IT Cert Prep, atualize para CoddyKit PRO. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.
O que vou aprender em “ECR: Armazenamento e extração de imagens de contêiner”?
Envie imagens do Docker para o Amazon ECR, aplique políticas de ciclo de vida para remover imagens antigas e extraia imagens com segurança para as tarefas do ECS. Você pratica Cloud & IT Cert Prep com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Cloud & IT Cert Prep?
Nenhuma experiência prévia é necessária. Cloud & IT Cert Prep no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “ECR: Armazenamento e extração de imagens de contêiner”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Cloud & IT Cert Prep?
Sim. Cada aula de Cloud & IT Cert Prep inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Clusters do ECS, definições de tarefas e serviços
- Tipo de execução EC2 versus Fargate
- ECR: Armazenamento e extração de imagens de contêiner
- Escalonamento automático e balanceamento de carga de serviços do ECS