Monitore os repositórios do Amazon ECR para obter permissões curinga usando o AWS e o AWS Config CloudFormation - Recomendações da AWS

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 os repositórios do Amazon ECR para obter permissões curinga usando o AWS e o AWS Config CloudFormation

Criado por Vikrant Telkar (AWS), Sajid Momin (AWS) e Wassim Benhallam (AWS)

Resumo

O, Amazon Web Services (AWS) Nuvem, Amazon Elastic Container Registry (Amazon ECR) é um serviço gerenciado pelo registro de imagens de contêiner compatível com repositórios privados com permissões baseadas em recursos usando o AWS Identity and Access Management (IAM).

O IAM suporta o caractere curinga “*” tanto nos recursos quanto nos atributos de 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 usuários autenticados da AWS acessem um repositório Amazon ECR usando a permissão curinga ecr:* 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 repositórios do Amazon ECR que contêm a permissão curinga ecr:* nas declarações de política do repositório.   O padrão fornece etapas e um CloudFormation modelo da AWS para criar uma regra personalizada no AWS Config. Em seguida, uma função do AWS Lambda monitora suas declarações de política do repositório Amazon ECR em busca de permissões curinga ecr:*. 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 seguida, inicia um tópico do EventBridge Amazon Simple Notification Service (Amazon SNS). O tópico do SNS 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

 

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 do repositório Amazon ECR. 

AWS Config workflow with Lambda, Amazon ECR, EventBridge, SNS, and email notification components.

O diagrama mostra o seguinte fluxo de trabalho:

  1. O AWS Config inicia uma regra personalizada. 

  2. A regra personalizada invoca uma função do Lambda para avaliar a conformidade das declarações de política do repositório Amazon ECR. A função do Lambda então identifica declarações de política de repositório não compatíveis.

  3. A função do Lambda envia o estado de não conformidade atualizado para o AWS Config.

  4. O AWS Config envia um evento para. EventBridge

  5. EventBridge publica as notificações de não conformidade em um tópico do SNS.

  6. O Amazon SNS 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 do repositório Amazon ECR, mas todos os recursos que você deseja avaliar devem ser criados na mesma região.

Ferramentas

  • AWS CloudFormation — CloudFormation A AWS ajuda você a modelar e configurar seus recursos da AWS, 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 contas e regiões da AWS.

  • AWS Config: o AWS Config oferece uma exibição detalhada da configuração dos recursos da AWS em sua conta da 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 (Amazon ECR) é um serviço gerenciado de registro de imagem de contêiner, seguro, escalável e confiável. O Amazon ECR oferece suporte a repositórios privados com permissões baseadas em recursos usando o 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 serviços da AWS para destinos como funções do AWS Lambda, endpoints de invocação HTTP usando destinos de API ou barramentos de eventos em outras contas.

  • AWS Lambda: o AWS Lambda é um serviço de computação que permite a execução do 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 (Amazon SNS) é um serviço da Web que coordena e gerencia a entrega ou o envio de mensagens entre publicadores e clientes, incluindo servidores da 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

TarefaDescriçãoHabilidades necessárias
Crie a CloudFormation pilha da AWS.

Crie uma CloudFormation pilha da AWS executando o seguinte comando na AWS CLI:

$ aws cloudformation create-stack --stack-name=AWSConfigECR \ --template-body file://aws-config-cloudformation.template \ --parameters ParameterKey=<email>,ParameterValue=<myemail@example.com> \ --capabilities CAPABILITY_NAMED_IAM
AWS DevOps
TarefaDescriçãoHabilidades necessárias
Teste a regra personalizada do AWS Config.
  1. Faça login no Console de Gerenciamento da AWS, abra o console do AWS Config e escolha Recursos.

  2. Na página Inventário de recursos, você pode filtrar por categoria de recurso, tipo de recurso e status de conformidade.

  3. Um repositório Amazon ECR que contém ecr:* is NON-COMPLIANT? e um repositório Amazon ECR que não contémecr:* is COMPLIANT.

  4. O endereço de e-mail inscrito no tópico do SNS recebe notificações se um repositório do Amazon ECR contiver declarações de política não compatíveis.

AWS DevOps

Anexos

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip