Monitorar a atividade do usuário raiz do IAM - 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á.

Monitorar a atividade do usuário raiz do IAM

Criado por Mostefa Brougui (AWS)

Repositório de código: aws-iam-root-user -activity-monitor

Ambiente: PoC ou piloto

Tecnologias: segurança, identidade, conformidade; gerenciamento e governança

Workload: todas as outras workloads

Serviços da AWS: Amazon EventBridge; AWS Lambda; Amazon SNS; AWS Identity and Access Management

Resumo

Cada conta da Amazon Web Services (AWS) tem um usuário raiz. Como prática recomendada de segurança para o AWS Identity and Access Management (IAM), recomendamos usar o usuário raiz para concluir as tarefas que somente o usuário raiz pode executar. Para obter a lista completa, consulte Tarefas que exigem credenciais de usuário raiz no Guia de Referência do Gerenciamento de Conta Compartilhado da AWS. Como o usuário raiz tem acesso total a todos os seus recursos e informações de faturamento da AWS, recomendamos que você não use essa conta e a monitore em busca de qualquer atividade, o que possa indicar que as credenciais do usuário raiz foram comprometidas.

Ao usar esse padrão, você configura uma arquitetura orientada por eventos que monitora o usuário raiz do IAM. Esse padrão configura uma hub-and-spoke solução que monitora várias contas da AWS, as contas spoke, e centraliza o gerenciamento e os relatórios em uma única conta, a conta hub.

Quando as credenciais do usuário raiz do IAM são usadas, a Amazon CloudWatch e a AWS CloudTrail registram a atividade no log e na trilha, respectivamente. Na conta spoke, uma EventBridge regra da Amazon envia o evento para o ônibus central de eventos na conta do hub. Na conta do hub, uma EventBridge regra envia o evento para uma função do AWS Lambda. A função usa um tópico do Amazon Simple Notification Service (Amazon SNS) que notifica você sobre a atividade do usuário raiz.

Nesse padrão, você usa um CloudFormation modelo da AWS para implantar os serviços de monitoramento e tratamento de eventos nas contas spoke. Você usa um modelo do HashiCorp Terraform para implantar os serviços de gerenciamento de eventos e notificação na conta do hub.

Pré-requisitos e limitações

Pré-requisitos

  1. Permissões para implantar recursos da AWS em seu ambiente da AWS.

  2. Permissões para implantar conjuntos CloudFormation de pilhas. Para obter mais informações, consulte Pré-requisitos para operações de conjunto de pilhas (documentação). CloudFormation

  3. Terraform instalado e pronto para uso. Para obter mais informações, consulte Conceitos básicos – AWS (Documentação do Terraform).

  4. Uma trilha existente em cada relato do spoke. Para obter mais informações, consulte Conceitos básicos da AWS CloudTrail (CloudTrail documentação).

  5. A trilha está configurada para enviar eventos para o CloudWatch Logs. Para obter mais informações, consulte Envio de eventos para o CloudWatch Logs (CloudTrail documentação).

  6. Suas contas hub e spoke devem ser gerenciadas pela AWS Organizations.

Arquitetura

O diagrama a seguir ilustra os componentes básicos da implementação.

Um evento em uma conta spoke criando uma notificação por e-mail em uma conta hub
  1. Quando as credenciais do usuário raiz do IAM são usadas, CloudWatch CloudTrail registre a atividade no registro e na trilha, respectivamente.

  2. Na conta spoke, uma EventBridge regra envia o evento para o barramento central de eventos na conta do hub.

  3. Na conta do hub, uma EventBridge regra envia o evento para uma função Lambda.

  4. A função do Lambda usa um tópico do Amazon SNS que notifica você sobre a atividade do usuário raiz.

Ferramentas

Serviços da AWS

  • CloudFormationA AWS ajuda você a configurar recursos da AWS, provisioná-los de forma rápida e consistente e gerenciá-los durante todo o ciclo de vida em todas as contas e regiões da AWS.

  • CloudTrailA AWS ajuda você a auditar a governança, a conformidade e o risco operacional da sua conta da AWS.

  • O Amazon CloudWatch Logs ajuda você a centralizar os registros de todos os seus sistemas, aplicativos e serviços da AWS para que você possa monitorá-los e arquivá-los com segurança.

  • 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, funções do Lambda, endpoints de invocação HTTP usando destinos de API ou barramentos de eventos em outras contas da AWS.

  • O AWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus recursos da AWS, controlando quem está autenticado e autorizado a usá-los.

  • O AWS Lambda é um serviço de computação que ajuda você a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.

  • 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.

Outras ferramentas e serviços

  • O Terraform é um aplicativo CLI para provisionar e gerenciar a infraestrutura e os recursos da nuvem usando código, na forma de arquivos de configuração.

Repositório de código

O código-fonte e os modelos desse padrão estão disponíveis em um GitHub repositório. Esse padrão fornece dois modelos:

  • Um modelo do Terraform contendo os recursos que você implanta na conta do hub

  • Um CloudFormation modelo que você implanta como uma instância de conjunto de pilhas nas contas spoke

O repositório tem a estrutura geral a seguir.

.  |__README.md  |__spoke-stackset.yaml  |__hub.tf  |__root-activity-monitor-module      |__main.tf  # contains Terraform code to deploy resources in the Hub account      |__iam      # contains IAM policies JSON files          |__ lambda-assume-policy.json          # contains trust policy of the IAM role used by the Lambda function          |__ lambda-policy.json                 # contains the IAM policy attached to the IAM role used by the Lambda function      |__outputs  # contains Lambda function zip code

A seção Epics fornece step-by-step instruções para implantar os modelos.

Épicos

TarefaDescriçãoHabilidades necessárias

Clone o repositório de código de amostra.

  1. Abra o repositório do AWS IAM Root User Activity Monitor.

  2. Na guia Código, acima da lista de arquivos, escolha Código e copie o URL HTTPS.

  3. Em uma interface da linha de comando, altere seu diretório de trabalho para o local em que você deseja armazenar os arquivos de amostra.

  4. Digite o comando :

    git clone <repoURL>
AWS geral

Atualize o modelo do Terraform.

  1. Recupere o ID da organização. Para obter instruções, consulte Visualização de detalhes de uma organização na conta de gerenciamento (documentação do AWS Organizations).

  2. No repositório clonado, abra hub.tf.

  3. Atualize o seguinte com os valores adequados para seu ambiente:

    • OrganizationId: adicione o ID da sua organização.

    • SNSTopicName: adicione um nome para o tópico do Amazon SNS.

    • SNSSubscriptions: adicione o e-mail para o qual as notificações do Amazon SNS devem ser enviadas.

    • Region: adicione o código da região da AWS em que você está implantando os recursos. Por exemplo, eu-west-1.

    • Tags: adicione suas tags. Para obter mais informações, consulte Marcar recursos da AWS com tags (Referência geral da AWS).

  4. Salve e feche o arquivo hub.tf.

AWS geral

Implantar os recursos na conta do hub da AWS.

  1. Na interface de linha de comando do Terraform, navegue até a pasta raiz do repositório clonado e digite o comando a seguir.

    terraform init && terraform plan
  2. Revise a saída e confirme que você deseja criar os recursos descritos.

  3. Insira o comando da a seguir.

    terraform apply
  4. Quando solicitado, confirme a implantação inserindo yes.

AWS geral
TarefaDescriçãoHabilidades necessárias

Implante o CloudFormation modelo.

  1. Faça login no AWS Management Console e abra o CloudFormation console.

  2. No painel de navegação, escolha StackSets.

  3. Na parte superior da StackSetspágina, escolha Criar StackSet.

  4. Em Permissões, escolha Permissões gerenciadas pelo serviço. CloudFormation configura automaticamente as permissões necessárias para implantação nas contas de destino gerenciadas pelo AWS Organizations.

  5. Em Pré-requisito: prepare o modelo, escolha O modelo está pronto.

  6. Em Especificar modelo, escolha Fazer upload de um arquivo de modelo.

  7. Selecione Escolher arquivo e, em seguida, no repositório clonado, selecione spoke-stackset.yaml.

  8. Escolha Próximo.

  9. Na página Especificar StackSet detalhes, insira um nome para o conjunto de pilhas.

  10. Em Parâmetros, insira o ID da conta do hub e escolha Avançar.

  11. Na página Configurar StackSet opções, em Tags, adicione suas tags.

  12. Em Configuração de execução, escolha Inativo e, em seguida, escolha Avançar.

  13. Na página Definir opções de implantação, especifique as unidades organizacionais e as regiões nas quais você deseja implantar o conjunto de pilhas e escolha Avançar.

  14. Na página de revisão, selecione Eu reconheço que a AWS CloudFormation pode criar recursos do IAM e, em seguida, escolha Enviar. CloudFormation começa a implantar seu conjunto de pilhas.

Para obter mais informações e instruções, consulte Criar um conjunto de pilhas (CloudFormation documentação).

AWS geral
TarefaDescriçãoHabilidades necessárias

Use as credenciais do usuário raiz.

  1. Faça login em uma conta spoke ou na conta hub usando as credenciais do usuário raiz.

  2. Confirme se a conta de e-mail especificada recebe a notificação do Amazon SNS.

AWS geral

Recursos relacionados

Mais informações

GuardDutyA Amazon é um serviço contínuo de monitoramento de segurança que analisa e processa registros para identificar atividades inesperadas e potencialmente não autorizadas em seu ambiente da AWS. Como alternativa a essa solução, se você tiver ativado GuardDuty, ela poderá alertá-lo quando as credenciais do usuário raiz forem usadas. A GuardDuty descoberta éPolicy:IAMUser/RootCredentialUsage, e a severidade padrão é Baixa. Para obter mais informações, consulte Gerenciando GuardDuty as descobertas da Amazon.