Registro centralizado e barreiras de segurança de várias contas - 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á.

Registro centralizado e barreiras de segurança de várias contas

Criado por Ankush Verma (AWS) e Tracy (Pierce) Hickey (AWS)

Ambiente: produção

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

Serviços da AWS: AWS CloudFormation; AWS Config; Amazon; AWS; Amazon; CloudWatch AWS Lambda GuardDuty; CodePipeline Amazon Macie; AWS Security Hub; Amazon S3

Resumo

A abordagem coberta por esse padrão é adequada para clientes que têm várias contas da Amazon Web Services (AWS) na AWS Organizations e agora enfrentam desafios ao usar o AWS Control Tower, uma zona de pouso ou serviços de máquinas de venda automática de contas para configurar barreiras básicas em suas contas.

Esse padrão demonstra o uso de uma arquitetura simplificada de várias contas para configurar de maneira bem estruturada o registro centralizado e os controles de segurança padronizados. Com a ajuda dos CloudFormation modelos da AWS CodePipeline, da AWS e dos scripts de automação, essa configuração é implantada em todas as contas que pertencem a uma organização.

A arquitetura de várias contas inclui as seguintes contas:

  • Conta de registro centralizada — A conta na qual todos os registros de fluxo da nuvem privada virtual (VPC), registros CloudTrail da AWS, registros do AWS Config e todos os registros do CloudWatch Amazon Logs (usando assinaturas) de todas as outras contas são armazenados.

  • Conta de segurança principal: a conta que servirá como conta principal para os seguintes serviços de segurança que gerenciam várias contas.

    • Amazon GuardDuty

    • AWS Security Hub

    • Amazon Macie

    • Amazon Detective

  • Contas secundárias: as outras contas na organização. Essas contas armazenam todos os logs úteis na conta de registro em log centralizada. As contas secundárias ingressam na conta de segurança principais como membros dos serviços de segurança.

Depois de iniciar o CloudFormation modelo (anexado), ele provisiona três buckets do Amazon Simple Storage Service (Amazon S3) na conta de registro centralizada. Um bucket é usado para armazenar todos os registros relacionados à AWS (como registros do VPC Flow Logs e do AWS Config) de todas as contas. CloudTrail O segundo compartimento serve para armazenar os CloudFormation modelos de todas as contas. O terceiro bucket é para armazenar logs de acesso do Amazon S3.

Um CloudFormation modelo separado cria o pipeline que usa a AWS CodeCommit. Depois que o código atualizado é enviado ao CodeCommit repositório, ele se encarrega de lançar recursos e configurar serviços de segurança em todas as contas. Para obter mais informações sobre a estrutura dos arquivos que serão enviados para o CodeCommit repositório, consulte o arquivo README.md (anexado).

Pré-requisitos e limitações

Pré-requisitos

  • Um ID da organização do AWS Organizations, com todas as contas associadas à mesma organização.

  • Um endereço de e-mail ativo para receber notificações do Amazon Simple Notification Service (Amazon SNS).

  • Cotas confirmadas para buckets do Amazon Simple Storage Service (Amazon S3) em cada uma das contas. Por padrão, cada conta tem 100 buckets de S3. Se precisar de buckets adicionais, solicite um aumento de cota antes de implantar essa solução.

Limitações

Todas as contas devem fazer parte da mesma organização. Se não estiver usando o AWS Organizations, você deverá modificar determinadas políticas, como a política de bucket do S3, para permitir o acesso dos perfis do Identity and Access Management (IAM) da AWS para cada conta.

Nota: enquanto a solução está sendo implantada, você deve confirmar a assinatura do Amazon SNS. A mensagem de confirmação é enviada ao endereço de e-mail fornecido durante o processo de implantação. Isso iniciará algumas mensagens de alerta por e-mail para esse endereço de e-mail, porque esses alarmes são iniciados sempre que as políticas de perfil do IAM são criadas ou modificadas na conta. Durante o processo de implantação, você pode ignorar essas mensagens de alerta.

Arquitetura

Pilha de tecnologias de destino

  • CloudWatch Alarmes e registros da Amazon

  • CodeCommit Repositório AWS

  • AWS CodePipeline

  • AWS Config

  • Amazon Detective

  • Amazon GuardDuty

  • Funções e permissões do IAM

  • Amazon Macie

  • Buckets do S3

  • AWS Security Hub

  • Amazon SNS

Arquitetura de destino

Diagrama mostrando serviços nas três contas da AWS.
Diagramas mostrando detalhes dos serviços de registro em log e segurança.
  1. Outras contas registradas como contas secundárias da conta de segurança principal para os serviços de segurança

  2. Descobertas de segurança de todas as contas secundárias, incluindo a conta principal

Recursos

Os seguintes recursos são provisionados automaticamente quando o código atualizado é enviado para o CodeCommit repositório em cada conta e região da AWS.

CloudFormation pilha 1 — Registrando a pilha principal

- Pilha aninhada 1 — perfis do IAM e políticas padrão

- Pilha aninhada 2 — configuração do AWS Config na conta

- Pilha aninhada 3 — alarmes CloudWatch

            - SecurityGroupChangesAlarm

            - UnauthorizedAttemptAlarm

            - RootActivityAlarm

            - NetworkAclChangesAlarm

            - EU SOU UserManagementAlarm

            - EU SOU PolicyChangesAlarm

            - CloudTrailChangeAlarm

            - EU SOU CreateAccessKeyAlarm

      - Filtros métricos para criar métricas a partir de CloudTrail registros e usá-las para alarmes

      - Tópico do SNS

CloudFormation pilha 2 — Pilha de proteção principal

- Pilha aninhada 1 — função do Lambda AWS para configurar a política de senha da conta

- Pilha aninhada 2 — Regras básicas do AWS Config

      - CEI- SecurityGroupsMustRestrictSshTraffic

      - OpenSecurityGroupRuleCheck junto com a função Lambda para avaliação de regras de grupos de segurança

      - verifique-ec2- for-required-tag

      - check-for-unrestricted-ports

CloudFormation pilha 3 — exportação de CloudWatch registros

- Exportação de CloudWatch registros de grupos de registros para o Amazon S3 usando uma assinatura do Amazon Kinesis

Ferramentas

  • AWS CloudFormation — A AWS CloudFormation usa modelos para modelar e provisionar, de forma automatizada e segura, todos os recursos necessários para seus aplicativos em todas as regiões e contas da AWS.

  • Amazon CloudWatch — A Amazon CloudWatch monitora seus recursos da AWS e os aplicativos que você executa na AWS em tempo real. Você pode usar CloudWatch para coletar e monitorar métricas, que são variáveis que você pode medir para seus recursos e aplicativos.

  • AWS CodeCommit — A AWS CodeCommit é um serviço de controle de versão hospedado pela AWS. Você pode usar CodeCommit para armazenar e gerenciar ativos de forma privada (como documentos, código-fonte e arquivos binários) na nuvem.

  • AWS CodePipeline — CodePipeline A AWS é um serviço de entrega contínua que você pode usar para modelar, visualizar e automatizar as etapas necessárias para lançar seu software.

  • 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 Detective: o Amazon Detective facilita analisar, investigar e identificar rapidamente a causa raiz de descobertas de segurança ou atividades suspeitas. O Detective coleta automaticamente dados de log dos seus recursos da AWS. Ele usa machine learning, análises estatísticas e a teoria de grafos para ajudar você a realizar investigações de segurança eficazes com maior rapidez.

  • Amazon GuardDuty — GuardDuty A Amazon é um serviço contínuo de monitoramento de segurança que analisa e processa os registros de fluxo, registros de eventos CloudTrail de gerenciamento, registros de eventos de CloudTrail dados e registros do Sistema de Nomes de Domínio (DNS). Ele usa feeds de inteligência contra ameaças, como listas de endereços IP e domínios mal-intencionados, e machine learning para identificar atividades inesperadas, maliciosas e potencialmente não autorizadas no seu ambiente da AWS.

  • AWS Identity and Access Management: o AWS Identity and Access Management (IAM) é um serviço da web que ajuda você a controlar o acesso aos recursos da AWS com segurança. Você usa o IAM para controlar quem é autenticado (fez login) e autorizado (tem permissões) a usar os recursos.

  • Amazon Macie: o Amazon Macie automatiza a descoberta de dados sigilosos, como informações de identificação pessoal (PII) e dados financeiros, para você compreender melhor os dados armazenados por sua organização no Amazon S3.

  • Amazon S3: o Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos altamente escalável que pode ser usado para uma ampla variedade de soluções de armazenamento, incluindo sites, aplicativos móveis, backups e data lakes.

  • AWS Security Hub: o AWS Security Hub fornece uma visão abrangente do estado de segurança na AWS e ajuda você a verificar o ambiente de acordo com os padrões e as práticas recomendadas do setor de segurança.

  • Amazon SNS: o Amazon Simple Notification Service (Amazon SNS) é um serviço gerenciado que fornece entrega de mensagens de publicadores para assinantes (também conhecido como produtores e consumidores).

Épicos

TarefaDescriçãoHabilidades necessárias
Inicie o modelo CloudFormation ChildAccount_iam_role_all_accounts.yaml para criar a função do IAM na região us-east-1.

Para criar as permissões e perfis do IAM necessárias, você deve iniciar manualmente esse modelo em cada conta, uma por uma (conta centralizada de registro em log, conta de segurança principal e todas as outras contas da AWS na organização) na região us-east-1. O Childaccount_IAM_role_All_Accounts.yaml modelo está no /templates/initial_deployment_templates diretório do pacote. O perfil do IAM é usado ao fazer chamadas de API para provisionamento e configuração do restante da arquitetura. Certifique-se que o nome do perfil do IAM transmitido como parâmetro seja consistente em todas as contas.

Arquiteto de nuvem
Nos parâmetros do modelo, forneça o nome do perfil do IAM.

Forneça a função do IAM que CodeBuild, na conta de segurança principal, pode assumir em todas as outras contas secundárias. O nome de perfil padrão é security_execute_child_stack_role.

Arquiteto de nuvem
Nos parâmetros, forneça o ID da conta de segurança principal.

A conta de segurança principal é a conta em que é CodeBuild executada.

Arquiteto de nuvem
TarefaDescriçãoHabilidades necessárias
Na conta de registro centralizada, em us-east-1, inicie o modelo S3Buckets-Centralized- .yaml. LoggingAccount CloudFormation

Para criar os buckets do S3 na conta centralizada de registro em log, inicie o S3Buckets-Centralized-LoggingAccount.yaml. O modelo está no diretório /templates/initial_deployment_templates do pacote. Os buckets do S3 armazenarão todos os logs, modelos e logs de acesso do Amazon S3. Anote todos os nomes de buckets do S3 que você usará para modificar os arquivos de parâmetros nas etapas a seguir.

Arquiteto de nuvem
Nos parâmetros do modelo, forneça o nome do bucket do S3 para armazenamento de logs da AWS.

Digite um nome para o parâmetro S3 Bucket Name for Centralized Logging in Logging Account. Esse bucket atua como um local centralizado para armazenar registros da AWS, como registros de fluxo e CloudTrail registros, de todas as contas. Anote o nome do bucket e o nome do recurso da Amazon (ARN).

Arquiteto de nuvem
Fornecer o nome do bucket do S3 de destino para armazenar os logs de acesso.

Insira um nome de bucket do S3 para o parâmetro S3 Bucket Name for Access Logs in Logging Account. Esse bucket do S3 armazena logs de acesso para o Amazon S3.

Arquiteto de nuvem
Forneça o nome do bucket do S3 para armazenar modelos.

Insira um nome de bucket do S3 no parâmetro S3 Bucket Name for CloudFormation Template storage in Logging Account.

Arquiteto de nuvem
Forneça o ID da organização.

Para fornecer acesso aos buckets do S3 dentro da organização, insira o ID da organização no parâmetro Organization Id for Non-AMS accounts.

Arquiteto de nuvem
TarefaDescriçãoHabilidades necessárias
Inicie o modelo security-guard-rails-codepipeline -Centralized- SecurityAccount .yml. CloudFormation

Para implantar o pipeline de CI/CD, inicie manualmente o modelo security-guard-rails-codepipeline-Centralized-SecurityAccount.yml na conta de segurança principal em us-east-1. O modelo está no diretório /templates/initial_deployment_templates do pacote. Esse pipeline implantará toda a infraestrutura em todas as contas secundárias.

Arquiteto de nuvem
Forneça um nome para o bucket do S3 que armazenará modelos na conta centralizada de registro em log.

Insira o nome do bucket do S3 que você forneceu para o parâmetro S3 Bucket Name for the CloudFormation Template storage in Logging Account na Etapa 2.

Arquiteto de nuvem
Forneça o nome do perfil do IAM a ser usada nas contas secundárias.

Insira o nome que você forneceu para o parâmetro Name of the IAM role na Etapa 1.

Arquiteto de nuvem
Forneça um endereço de e-mail ativo para receber notificações de CodePipeline falha.

Insira o endereço de e-mail que você deseja usar para receber notificações de CodePipeline falha e outras notificações CloudWatch relacionadas a alarmes.

Arquiteto de nuvem
TarefaDescriçãoHabilidades necessárias
Modificar AccountList.json.

No arquivo Accountlist.json, que está no nível superior do pacote, adicionar o número da conta de segurança principal e os números da conta secundária. Observe que o campo ChildAccountList também inclui o número da conta de segurança principal. Veja o exemplo no arquivo deployment-instructions.md no pacote.

Arquiteto de nuvem
Modificar accounts.csv

No arquivo accounts.csv, que está no nível superior do pacote, adicione todas as contas secundárias junto com o e-mail registrado com as contas. Consultar o exemplo no arquivo deployment-instructions.md.

Arquiteto de nuvem
Modificar parameters.config.

No arquivo parameters.config, que está na pasta /templates, atualizar os seis parâmetros a seguir:

  • pNotifyEmail: o endereço de e-mail que você forneceu ao configurar o pipeline (consulte a Etapa 3)

  • pstackNameLogging: o nome da CloudFormation pilha para registro centralizado

  • pS3LogsBucket: o nome do bucket do S3 no qual os logs de todas as contas serão armazenados (consulte a Etapa 2)

  • pBucketName: o ARN do bucket do S3 usado para armazenar os logs

  • pTemplateBucketName: o nome dos buckets do S3 em que os modelos serão armazenados (consulte a Etapa 2)

  • pAllowedAccounts: IDs de conta para as contas principais e secundárias

Para os outros parâmetros, mantenha os valores padrão. Para obter um exemplo, consulte o arquivo deployment-instructions.md no arquivo.

Arquiteto de nuvem
TarefaDescriçãoHabilidades necessárias
Acesse o CodeCommit repositório que você criou na Etapa 3.

Na seção Saídas da CloudFormation pilha de infraestrutura de CI/CD (lançada na Etapa 3), anote o nome da URL do repositório. CodeCommit Crie acesso ao repositório para que os arquivos possam ser enviados a ele para que a infraestrutura seja implantada em todas as contas de destino. Para obter mais informações, consulte Configuração para a AWS CodeCommit.

Arquiteto de nuvem
Envie os arquivos para o CodeCommit repositório.

Instalar o Git na sua máquina. Em seguida, execute os comandos do Git para clonar o repositório vazio, copiar os arquivos do seu laptop para a pasta do repositório e enviar os artefatos para o repositório. Verifique os exemplos de comandos do Git no arquivo deployment-instructions.md do pacote. Para comandos básicos do Git, consulte a seção Recursos relacionados.

Arquiteto de nuvem
TarefaDescriçãoHabilidades necessárias
Confirme o status de CodePipeline CodeBuild e.

Depois de enviar os artefatos para o CodeCommit repositório, confirme se o CodePipeline pipeline que você criou na Etapa 3 foi iniciado. Em seguida, verifique os CodeBuild registros para confirmar o status ou os erros.

Arquiteto de nuvem

Recursos relacionados

Anexos

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