As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Monitore ECR os repositórios da Amazon para obter permissões curinga usando AWS CloudFormation e Config AWS
Criado por Vikrant Telkar (AWS), Sajid Momin () e Wassim Benhallam (AWS) AWS
Ambiente: produção | Tecnologias: DevOps; Contêineres e microsserviços | AWSserviços: AWS CloudFormation; AWS Config; Amazon; ECR AmazonSNS; Lambda AWS |
Resumo
Na nuvem Amazon Web Services (AWS), o Amazon Elastic Container Registry (AmazonECR) é um serviço gerenciado de registro de imagens de contêineres que oferece suporte a repositórios privados com permissões baseadas em recursos usando AWS Identity and Access Management (). IAM
IAMsuporta o caractere curinga “*
” nos atributos de recurso e ação, o que facilita a escolha automática de vários itens correspondentes. Em seu ambiente de teste, você pode permitir que todos os AWS usuários autenticados acessem um ECR repositório da Amazon usando a permissão ecr:*
curinga em um elemento principal da declaração de política do seu repositório. A permissão curinga ecr:*
pode ser útil ao desenvolver e testar em contas de desenvolvimento que não conseguem acessar seus dados de produção.
No entanto, você deve garantir que a permissão curinga ecr:*
não seja usada em seus ambientes de produção, pois ela pode causar sérias vulnerabilidades de segurança. A abordagem desse padrão ajuda você a identificar ECR repositórios da Amazon que contêm a permissão ecr:*
curinga nas declarações de política do repositório. O padrão fornece etapas e um AWS CloudFormation modelo para criar uma regra personalizada no AWS Config. Em seguida, uma função AWS Lambda monitora suas declarações de política de ECR repositório da Amazon em busca ecr:*
de permissões curinga. Se encontrar declarações de política de repositório não compatíveis, o Lambda notifica o AWS Config para enviar um evento para a Amazon EventBridge e, em EventBridge seguida, inicia um tópico do Amazon Simple Notification Service (Amazon). SNS O SNS tópico notifica você por e-mail sobre as declarações de política de repositório não compatíveis.
Pré-requisitos e limitações
Pré-requisitos
Uma conta da AWS ativa.
AWSInterface de linha de comando (AWSCLI), instalada e configurada. Para obter mais informações sobre isso, consulte Instalação, atualização e desinstalação do AWS CLI na AWS CLI documentação.
Um ECR repositório existente da Amazon com uma declaração de política anexada, instalado e configurado em seu ambiente de teste. Para obter mais informações sobre isso, consulte Criação de um repositório privado e Definição de uma declaração de política de repositório na documentação da AmazonECR.
AWSConfig, configurado em sua região preferidaAWS. Para obter mais informações sobre isso, consulte Introdução ao AWS Config na documentação do ConfigAWS.
O arquivo
aws-config-cloudformation.template
(anexado), baixado na sua máquina local.
Limitações
A solução desse padrão é regional e seus recursos devem ser criados na mesma região.
Arquitetura
O diagrama a seguir mostra como o AWS Config avalia as declarações de política de repositórios ECR da Amazon.
O diagrama mostra o seguinte fluxo de trabalho:
AWSConfig inicia uma regra personalizada.
A regra personalizada invoca uma função Lambda para avaliar a conformidade das declarações de política do repositório da AmazonECR. A função do Lambda então identifica declarações de política de repositório não compatíveis.
A função Lambda envia o status de não conformidade para o Config. AWS
AWSConfig envia um evento para. EventBridge
EventBridge publica as notificações de não conformidade em um SNS tópico.
SNSA Amazon envia um alerta por e-mail para você ou para um usuário autorizado.
Automação e escala
A solução desse padrão pode monitorar qualquer número de declarações de política de ECR repositórios da Amazon, mas todos os recursos que você deseja avaliar devem ser criados na mesma região.
Ferramentas
AWS CloudFormation— AWS CloudFormation ajuda você a modelar e configurar seus AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los durante todo o ciclo de vida. Você pode usar um modelo para descrever seus recursos e as dependências deles, além de inicializá-los e configurá-los juntos como uma pilha, em vez de gerenciar recursos individualmente. Você pode gerenciar e provisionar pilhas em várias AWS contas e AWS regiões.
AWSConfig — O AWS Config fornece uma visão detalhada da configuração dos AWS recursos em sua conta. AWS Isso inclui como os recursos estão relacionados um com o outro e como eles foram configurados no passado, de modo que você possa ver como os relacionamentos e as configurações foram alterados ao longo do tempo.
Amazon ECR — O Amazon Elastic Container Registry (AmazonECR) é um serviço AWS gerenciado de registro de imagens de contêineres que é seguro, escalável e confiável. A Amazon ECR oferece suporte a repositórios privados com permissões baseadas em recursos usando. IAM
Amazon EventBridge — EventBridge A Amazon é um serviço de ônibus de eventos sem servidor que você pode usar para conectar seus aplicativos a dados de várias fontes. EventBridge fornece um fluxo de dados em tempo real de seus aplicativos, aplicativos de software como serviço (SaaS) e AWS serviços para alvos como funções AWS Lambda, endpoints de HTTP invocação usando API destinos ou barramentos de eventos em outras contas.
AWSLambda — O AWS Lambda é um serviço de computação que oferece suporte à execução de código sem provisionar ou gerenciar servidores. O Lambda executa o código somente quando necessário e dimensiona automaticamente, desde algumas solicitações por dia até milhares por segundo. Você paga apenas pelo tempo de computação consumido. Não haverá cobranças quando o código não estiver em execução.
Amazon SNS — O Amazon Simple Notification Service (AmazonSNS) coordena e gerencia a entrega ou o envio de mensagens entre editores e clientes, incluindo servidores web e endereços de e-mail. Os assinantes recebem todas as mensagens publicadas nos tópicos para os quais eles se inscrevem, e todos os assinantes em um tópico recebem as mesmas mensagens.
Código
O código desse padrão está disponível no arquivo aws-config-cloudformation.template
(anexado).
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie a AWS CloudFormation pilha. | Crie uma AWS CloudFormation pilha executando o seguinte comando em AWSCLI:
| AWS DevOps |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Teste a AWS regra personalizada Config. |
| AWS DevOps |
Anexos
Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip