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á.
Crie um relatório consolidado das descobertas de segurança da Prowler a partir de vários Contas da AWS
Criado por Mike Virgilio (AWS), Andrea Di Fabio (AWS) e Jay Durga (AWS)
Resumo
O Prowler
Embora existam muitos métodos para implantar e utilizar o Prowler para uma avaliação, essa solução foi projetada para implantação rápida, análise completa de todas as contas na organização ou contas de destino definidas e relatórios acessíveis das descobertas de segurança. Nessa solução, quando a Prowler conclui a avaliação de segurança de todas as contas da organização, ela consolida os resultados. Ele também filtra todas as mensagens de erro esperadas, como erros relacionados a restrições que impedem o Prowler de escanear buckets do Amazon Simple Storage Service (Amazon S3) em contas provisionadas por meio do AWS Control Tower. Os resultados filtrados e consolidados são relatados em um modelo do Microsoft Excel incluído nesse padrão. Você pode usar esse relatório para identificar possíveis melhorias nos controles de segurança em sua organização.
Essa solução foi projetada com o seguinte em mente:
Os AWS CloudFormation modelos reduzem o esforço necessário para implantar os AWS recursos nesse padrão.
Você pode ajustar os parâmetros nos CloudFormation modelos e no script prowler_scan.sh no momento da implantação para personalizar os modelos para seu ambiente.
As velocidades de avaliação e emissão de relatórios do Prowler são otimizadas por meio do processamento paralelo de Contas da AWS resultados agregados, relatórios consolidados com correções recomendadas e visualizações geradas automaticamente.
O usuário não precisa monitorar o progresso da verificação. Quando a avaliação for concluída, o usuário é notificado por meio de um tópico do Amazon Simple Notification Service (Amazon SNS) para que ele possa recuperar o relatório.
O modelo de relatório ajuda você a ler e avaliar somente os resultados relevantes para toda a organização.
Pré-requisitos e limitações
Pré-requisitos
E Conta da AWS para hospedar serviços e ferramentas de segurança, gerenciados como uma conta membro de uma organização em AWS Organizations. Nesse padrão, essa conta é chamada de conta de segurança.
Na conta de segurança, você deve ter uma sub-rede privada com acesso de saída à Internet. Para obter instruções, consulte VPC com servidores em sub-redes privadas e NAT na documentação da Amazon Virtual Private Cloud (Amazon VPC). Você pode estabelecer acesso à Internet usando um gateway NAT provisionado em uma sub-rede pública.
Acesso à conta AWS Organizations de gerenciamento ou a uma conta que tenha delegado permissões de administrador para CloudFormation. Para obter instruções, consulte Registrar um administrador delegado na CloudFormation documentação.
Habilite o acesso confiável entre AWS Organizations CloudFormation e. Para obter instruções, consulte Habilitar acesso confiável com AWS Organizations na CloudFormation documentação.
Limitações
O alvo Contas da AWS deve ser gerenciado como uma organização em AWS Organizations. Se você não estiver usando AWS Organizations, você pode atualizar o CloudFormation modelo IAM- ProwlerExecRole .yaml e o script prowler_scan.sh para seu ambiente. Em vez disso, você fornece uma lista Conta da AWS IDs e regiões nas quais deseja executar o script.
O CloudFormation modelo foi projetado para implantar a instância Amazon Elastic Compute Cloud (Amazon EC2) em uma sub-rede privada com acesso de saída à Internet. O AWS Systems Manager Agente (Agente SSM) requer acesso de saída para alcançar o ponto final do AWS Systems Manager serviço, e você precisa de acesso de saída para clonar o repositório de código e instalar dependências. Se quiser usar uma sub-rede pública, você deve modificar o modelo prowler-resources.yaml para associar um endereço IP elástico à instância. EC2
Versões do produto
Prowler versão 4.0 ou posterior
Arquitetura

O diagrama mostra o seguinte processo:
Usando o Gerenciador de Sessões, um recurso do AWS Systems Manager, o usuário se autentica na EC2 instância e executa o script prowler_scan.sh. Esse script de shell executa as etapas de 2 a 8.
A EC2 instância assume a função do
ProwlerEC2Role
IAM, que concede permissões para acessar o bucket do S3 e assumir as funçõesProwlerExecRole
do IAM nas outras contas da organização.A EC2 instância assume a função
ProwlerExecRole
do IAM na conta de gerenciamento da organização e gera uma lista das contas na organização.A EC2 instância assume a função do
ProwlerExecRole
IAM nas contas dos membros da organização (chamadas de contas de carga de trabalho no diagrama de arquitetura) e realiza uma avaliação de segurança em cada conta. As descobertas são armazenadas como arquivos CSV e HTML na EC2 instância.nota
Os arquivos HTML são uma saída da avaliação do Prowler. Devido à natureza do HTML, eles não são concatenados, processados ou usados diretamente nesse padrão. No entanto, eles podem ser úteis para a análise de relatórios de contas individuais.
A EC2 instância processa todos os arquivos CSV para remover erros conhecidos e esperados e consolida as descobertas restantes em um único arquivo CSV.
A EC2 instância empacota os resultados individuais da conta e os resultados agregados em um arquivo zip.
A EC2 instância carrega o arquivo zip no bucket do S3.
Uma EventBridge regra detecta o upload do arquivo e usa um tópico do Amazon SNS para enviar um e-mail ao usuário notificando-o de que a avaliação foi concluída.
O usuário baixa o arquivo zip do bucket do S3. O usuário importa os resultados para o modelo do Excel e revisa os resultados.
Ferramentas
Serviços da AWS
O Amazon Elastic Compute Cloud (Amazon EC2) fornece capacidade de computação escalável no. Nuvem AWS Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
EventBridgeA Amazon é um serviço de ônibus de eventos sem servidor que ajuda você a conectar seus aplicativos com dados em tempo real de várias fontes. Por exemplo, AWS Lambda funções, endpoints de invocação HTTP usando destinos de API ou barramentos de eventos em outros. Contas da AWS
AWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.
AWS Organizationsé um serviço de gerenciamento de contas que ajuda você a consolidar várias Contas da AWS em uma organização que você cria e gerencia centralmente.
O Amazon Simple Notification Service (Amazon SNS) ajuda você a coordenar e gerenciar a troca de mensagens entre publicadores e clientes, incluindo servidores web e endereços de e-mail.
O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
O AWS Systems Manager ajuda você a gerenciar suas aplicações e infraestrutura em execução na Nuvem AWS. Ele simplifica o gerenciamento de aplicativos e recursos, reduz o tempo para detectar e resolver problemas operacionais e ajuda você a gerenciar seus AWS recursos com segurança em grande escala. Esse padrão usa o Session Manager, um recurso do Systems Manager.
Outras ferramentas
O Prowler
é uma ferramenta de linha de comando de código aberto que ajuda você a avaliar, auditar e monitorar suas contas quanto à adesão às melhores práticas de segurança e a outras AWS estruturas e padrões de segurança.
Repositório de código
O código desse padrão está disponível na Avaliação de Segurança de GitHub Várias Contas por meio do repositório Prowler
prowler_scan.sh — Esse script bash é usado para iniciar uma avaliação de segurança múltipla do Prowler, Contas da AWS em paralelo. Conforme definido em Prowler-resources.yaml CloudFormationtemplate, esse script é implantado automaticamente na pasta na instância.
usr/local/prowler
EC2Prowler-resources.yaml — Você usa esse CloudFormation modelo para criar uma pilha na conta de segurança na organização. Esse modelo implanta todos os recursos necessários para essa conta a fim de oferecer suporte à solução. Essa pilha deve ser implantada antes do modelo IAM- ProwlerExecRole .yaml. Não recomendamos que você implante esses recursos em uma conta que hospeda workloads críticas de produção.
nota
Se essa pilha for excluída e reimplantada, você deverá reconstruir o conjunto de
ProwlerExecRole
pilhas para reconstruir as dependências entre contas entre as funções do IAM.IAM- ProwlerExecRole .yaml — Você usa esse CloudFormation modelo para criar um conjunto de pilhas que implanta a função
ProwlerExecRole
do IAM em todas as contas da organização, incluindo a conta de gerenciamento.prowler-report-template.xlsm — Você usa esse modelo do Excel para processar as descobertas do Prowler. As tabelas dinâmicas no relatório fornecem recursos de pesquisa, gráficos e descobertas consolidadas.
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Clone o repositório de códigos. |
| AWS DevOps |
Consulte os modelos. |
| AWS DevOps |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Provisione recursos na conta de segurança. | Usando o modelo prowler-resources.yaml, você cria uma CloudFormation pilha que implanta todos os recursos necessários na conta de segurança. Para obter instruções, consulte Criação de uma pilha na CloudFormation documentação. Observe o seguinte ao implantar esse modelo:
| AWS DevOps |
Provisione o perfil do IAM nas contas dos membros. | Na conta AWS Organizations de gerenciamento ou em uma conta com permissões de administrador delegado para CloudFormation, use o modelo IAM- ProwlerExecRole .yaml para criar um CloudFormation conjunto de pilhas. O conjunto de pilhas implanta o perfil
| AWS DevOps |
Provisione o perfil do IAM na conta de gerenciamento. | Usando o modelo IAM- ProwlerExecRole .yaml, você cria uma CloudFormation pilha que implanta a função do
| AWS DevOps |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Execute a verificação. |
| Administrador da AWS |
Recupere as descobertas de Prowler. |
| AWS geral |
Pare a EC2 instância. | Para evitar o faturamento enquanto a instância estiver ociosa, interrompa a EC2 instância que executa o Prowler. Para obter instruções, consulte Pare e inicie suas instâncias na EC2 documentação da Amazon. | AWS DevOps |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Importe as descobertas. |
| AWS geral |
Finalize o relatório. |
| AWS geral |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Atualize o Prowler. | Se você deseja atualizar o Prowler para a versão mais recente, faça o seguinte:
| AWS geral |
Atualize o script prowler_scan.sh. | Se você quiser atualizar o script prowler_scan.sh para a versão mais recente no repositório, faça o seguinte:
notaVocê pode receber avisos relacionados a qualquer arquivo gerado localmente que não esteja no GitHub repositório, como encontrar relatórios. Você pode ignorá-los, desde que o prowler_scan.sh mostre que as alterações armazenadas localmente foram mescladas novamente. | AWS geral |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Exclua todos os recursos implantados. | Você pode deixar os recursos implantados nas contas. Se você desligar a EC2 instância quando ela não estiver em uso e mantiver o bucket do S3 vazio, isso reduzirá os custos de manutenção dos recursos para futuras verificações. Para desprovisionar todos os recursos, faça o seguinte:
| AWS DevOps |
Solução de problemas
Problema | Solução |
---|---|
Não é possível se conectar à EC2 instância usando o Gerenciador de Sessões. | O SSM Agent deve conseguir se comunicar com o endpoint do Session Manager. Faça o seguinte:
|
Ao implantar o conjunto de pilhas, o CloudFormation console solicita que você faça isso. | Isso indica que o acesso confiável não foi habilitado entre AWS Organizations CloudFormation e. É necessário o acesso confiável para implantar o conjunto de pilhas gerenciadas pelo serviço. Escolha o botão para habilitar o acesso confiável. Para obter mais informações, consulte Habilitar acesso confiável na CloudFormation documentação. |
Recursos relacionados
AWS documentação
Implementando controles de segurança em AWS (AWS orientação prescritiva)
Outros recursos
Ladrão (2
) GitHub
Mais informações
Removendo erros de forma programática
Se os resultados contiverem erros Access Denied
, você deverá removê-los das descobertas. Esses erros geralmente ocorrem devido a permissões de influência externa que impedem o Prowler de avaliar um recurso específico. Por exemplo, algumas verificações falham ao revisar os buckets do S3 provisionados por meio de. AWS Control Tower Você pode extrair programaticamente esses resultados e salvar os resultados filtrados como um novo arquivo.
Os comandos a seguir removem as linhas que contêm uma única sequência de texto (um padrão) e, em seguida, enviam os resultados para um novo arquivo.
Para Linux ou macOS (Grep)
grep -v -i "Access Denied getting bucket" myoutput.csv > myoutput_modified.csv
Para Windows (PowerShell)
Select-String -Path myoutput.csv -Pattern 'Access Denied getting bucket' -NotMatch > myoutput_modified.csv
Os comandos a seguir removem as linhas que correspondem a mais de uma sequência de texto e, em seguida, enviam os resultados para um novo arquivo.
Para Linux ou macOS (usa um tubo de escape entre as strings de caracteres)
grep -v -i 'Access Denied getting bucket\|Access Denied Trying to Get' myoutput.csv > myoutput_modified.csv
Para Windows (usa uma vírgula entre strings)
Select-String -Path myoutput.csv -Pattern 'Access Denied getting bucket', 'Access Denied Trying to Get' -NotMatch > myoutput_modified.csv
Exemplos de relatório
A imagem a seguir é um exemplo da planilha de Descobertas no relatório de descobertas consolidadas da Prowler.

A imagem a seguir é um exemplo da planilha de Aprovação no relatório de descobertas consolidadas do Prowler. (Por padrão, os resultados de aprovação são excluídos da saída.)

A imagem a seguir é um exemplo da planilha de Severidade do relatório de descobertas consolidadas do Prowler.
