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á.
Configuração do registro em log centralizado em escala empresarial usando o Terraform
Aarti Rajput, Yashwant Patel e Nishtha Yadav, Amazon Web Services
Resumo
O registro em log centralizado é vital para a infraestrutura de nuvem de uma organização, pois fornece visibilidade de suas operações, segurança e conformidade. À medida que sua organização expande seu AWS ambiente em várias contas, uma estratégia estruturada de gerenciamento de registros se torna fundamental para executar operações de segurança, atender aos requisitos de auditoria e alcançar a excelência operacional.
Esse padrão fornece uma estrutura escalável e segura para centralizar registros de vários serviços Contas da AWS e, a fim de permitir o gerenciamento de registros em escala empresarial em implantações complexas. AWS A solução é automatizada usando o Terraform, que é uma ferramenta de infraestrutura como código (IaC) HashiCorp que garante implantações consistentes e reproduzíveis e minimiza a configuração manual. Ao combinar o Amazon CloudWatch Logs, o Amazon Data Firehose e o Amazon Simple Storage Service (Amazon S3), você pode implementar um pipeline robusto de agregação e análise de logs que fornece:
Gerenciamento centralizado de registros em toda a sua organização em AWS Organizations
Coleta automatizada de logs com controles de segurança integrados
Processamento de logs escalável e armazenamento durável
Relatórios de conformidade e trilhas de auditoria simplificados
Monitoramento e insights operacionais em tempo real
A solução coleta registros de contêineres e funções do Amazon Elastic Kubernetes Service (Amazon EKS AWS Lambda ), funções e instâncias de banco de dados do Amazon Relational Database Service (Amazon RDS) por meio de registros. CloudWatch Ele encaminha automaticamente esses registros para uma conta de registro dedicada usando filtros de CloudWatch assinatura. O Firehose gerencia o pipeline de fluxo de logs de throughput ao Amazon S3 para armazenamento em longo prazo. O Amazon Simple Queue Service (Amazon SQS) é configurado para receber notificações de eventos do Amazon S3 na criação de objetos. Isso permite a integração com serviços de analytics, incluindo:
Amazon OpenSearch Service para pesquisa de registros, visualização e análise em tempo real
Amazon Athena para consultas baseadas em SQL
Amazon EMR para processamento em grande escala
Lambda para transformação personalizada
Amazon Quick Sight para painéis
Todos os dados são criptografados usando AWS Key Management Service (AWS KMS), e toda a infraestrutura é implantada usando o Terraform para uma configuração consistente em todos os ambientes.
Essa abordagem de registro centralizado permite que as organizações melhorem sua postura de segurança, mantenham os requisitos de conformidade e otimizem a eficiência operacional em toda a AWS infraestrutura.
Pré-requisitos e limitações
Pré-requisitos
Uma zona de pouso para sua organização que é criada usando o AWS Control Tower
Account Factory for Terraform (AFT), implantado e configurado com as contas necessárias
Terraform
para provisionar a infraestrutura AWS Identity and Access Management Funções e políticas (IAM) para acesso entre contas
Para obter instruções sobre como configurar AWS Control Tower contas AFT e Application, consulte a seção Epics.
Contas obrigatórias
Sua organização AWS Organizations deve incluir as seguintes contas:
Conta de aplicativo — Uma ou mais contas de origem nas quais Serviços da AWS (Amazon EKS, Lambda e Amazon RDS) são executadas e geram registros
Conta de arquivamento de logs: uma conta dedicada para armazenamento e gerenciamento centralizados de logs
Versões do produto
AWS Control Tower versão 3.1 ou posterior
Terraform versão 0.15.0
ou versões posteriores
Arquitetura
O diagrama a seguir ilustra uma arquitetura de registro AWS centralizada que fornece uma solução escalável para coletar, processar e armazenar registros de várias contas de aplicativos em uma conta dedicada do Log Archive. Essa arquitetura gerencia com eficiência os registros de Serviços da AWS, incluindo Amazon RDS, Amazon EKS e Lambda, e os encaminha por meio de um processo simplificado para os buckets regionais do S3 na conta do Log Archive.

O fluxo de trabalho inclui cinco processos:
Processo de fluxo de logs
O processo de fluxo de registros começa nas contas do aplicativo, onde são Serviços da AWS gerados vários tipos de registros, como registros gerais, de erros, de auditoria, de consultas lentas do Amazon RDS, registros do plano de controle do Amazon EKS e registros de execução de funções e erros do Lambda.
CloudWatch serve como ponto de coleta inicial. Ele reúne esses logs no nível do grupo de logs em cada conta de aplicação.
Em CloudWatch, os filtros de assinatura determinam quais registros devem ser encaminhados para a conta central. Esses filtros oferecem controle granular sobre o encaminhamento de logs, para que você possa especificar padrões de log exatos ou fluxos de log completos para centralização.
Transferência de logs entre contas
Os registros são movidos para a conta do Log Archive. CloudWatch os filtros de assinatura facilitam a transferência entre contas e preservam o contexto regional.
A arquitetura estabelece vários fluxos paralelos para lidar com diferentes fontes de log de forma eficiente, a fim de garantir performance e escalabilidade ideais.
Processamento de logs na conta de arquivamento de logs
Na conta de arquivamento de logs, o Firehose processa os fluxos de logs recebidos.
Cada região mantém fluxos de entrega dedicados do Firehose que podem transformar, converter ou enriquecer os logs conforme necessário.
Esses fluxos do Firehose entregam os logs processados aos buckets do S3 na conta de arquivamento de logs, que está localizada na mesma região das contas de aplicações de origem (Região A no diagrama) para manter os requisitos de soberania de dados.
Notificações e fluxos de trabalho adicionais
Quando os logs chegam aos buckets do S3 de destino, a arquitetura implementa um sistema de notificações usando o Amazon SQS.
As filas regionais de SQS permitem o processamento assíncrono e podem acionar fluxos de trabalho adicionais, analytics ou sistemas de alertas com base nos logs armazenados.
AWS KMS para segurança
A arquitetura é incorporada AWS KMS para fins de segurança. AWS KMS fornece chaves de criptografia para os buckets do S3. Isso garante que todos os logs armazenados mantenham a criptografia em repouso, assegurando a criptografia regional para atender aos requisitos de residência de dados.
Ferramentas
Serviços da AWS
CloudWatchA Amazon é um serviço de monitoramento e observabilidade que coleta dados operacionais e de monitoramento na forma de registros, métricas e eventos. Ele fornece uma visão unificada dos AWS recursos, aplicativos e serviços que são executados na AWS e em servidores locais.
CloudWatch Os filtros de assinatura de registros são expressões que correspondem a um padrão nos eventos de registro recebidos e entregam eventos de registro correspondentes ao AWS recurso especificado para processamento ou análise adicionais.
AWS Control Tower O Account Factory For Terraform (AFT) configura um pipeline do Terraform para ajudá-lo a provisionar e personalizar contas em. AWS Control Tower O AFT fornece provisionamento de contas baseado em Terraform, permitindo que você administre suas contas com. AWS Control Tower
O Amazon Data Firehose fornece dados de streaming em tempo real para destinos como Amazon S3, Amazon Redshift e Amazon Service. OpenSearch Ele faz o dimensionamento automático para corresponder ao throughput de seus dados, e não requer administração contínua.
O Amazon Elastic Kubernetes Service (Amazon EKS) é um serviço gerenciado de orquestração de contêineres que facilita a implantação, o gerenciamento e o dimensionamento de aplicações em contêineres usando o Kubernetes. Ele gerencia automaticamente a disponibilidade e a escalabilidade dos nós do ambiente de gerenciamento do Kubernetes.
AWS Key Management Service (AWS KMS) cria e controla chaves de criptografia para criptografar seus dados. AWS KMS se integra a outros Serviços da AWS para ajudá-lo a proteger os dados que você armazena com esses serviços.
O AWS Lambda é um serviço de computação com tecnologia sem servidor que permite executar código sem provisionar nem gerenciar servidores. Ele dimensiona automaticamente as aplicações executando o código em resposta a cada gatilho e cobra apenas pelo tempo de computação usado.
O Amazon Relational Database Service (Amazon RDS) é um serviço de banco de dados relacional gerenciado que facilita a configuração, a operação e o dimensionamento de um banco de dados relacional na nuvem. Ele fornece recursos econômicos e redimensionáveis enquanto automatiza tarefas administrativas demoradas.
O Amazon Simple Queue Service (Amazon SQS) é um serviço de enfileiramento de mensagens que permite desacoplar e dimensionar microsserviços, sistemas distribuídos e aplicações com tecnologia sem servidor. Ele elimina a complexidade de gerenciar e operar o middleware orientado a mensagens.
O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que oferece escalabilidade, disponibilidade de dados, segurança e performance. Ele pode armazenar e recuperar qualquer quantidade de dados, de qualquer lugar na web.
Outras ferramentas
O Terraform
é uma ferramenta de infraestrutura como código (IaC) HashiCorp que ajuda você a criar e gerenciar recursos na nuvem e no local.
Código
O código desse padrão está disponível no repositório de registro GitHub centralizado
Práticas recomendadas
Use vários Contas da AWS em uma única organização em AWS Organizations. Essa prática permite o gerenciamento centralizado e o registro em log padronizado em todas as contas.
Configure buckets do S3 com versionamento, políticas de ciclo de vida e replicação entre regiões. Implemente registro em log de acessos e criptografia para fins de segurança e conformidade.
Implemente padrões de registro em log comuns usando o formato JSON com campos e carimbos de data/hora padrão. Use uma estrutura de prefixo e correlação consistentes IDs para facilitar o rastreamento e a análise.
Habilite controles de segurança com AWS KMS criptografia e acesso com privilégios mínimos. Mantenha o AWS CloudTrail monitoramento e a rotação regular de chaves para aumentar a segurança.
Configure CloudWatch métricas e alertas para rastreamento de entrega. Monitore os custos e a performance com notificações automatizadas.
Configure as políticas de retenção do Amazon S3 para atender aos requisitos de conformidade e habilite o registro em log de acesso ao servidor do Amazon S3 para rastrear todas as solicitações feitas aos buckets do S3. Mantenha a documentação das regras de ciclo de vida e políticas de bucket do S3. Realize avaliações periódicas dos logs de acesso, permissões de buckets e configurações de armazenamento para ajudar a garantir a conformidade e as práticas recomendadas de segurança.
Épicos
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Configure um AWS Control Tower ambiente com o AFT. |
| Administrador da AWS |
Habilite o compartilhamento de recursos na organização. |
| Administrador da AWS |
Verifique ou provisione contas de aplicações. | Para provisionar novas contas de aplicações para seu caso de uso, crie-as por meio do AFT. Para obter mais informações, consulte Provisionar uma nova conta com o AFT na AWS Control Tower documentação. | Administrador da AWS |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Copie o conteúdo da pasta |
| DevOps engenheiro |
Analise e edite os parâmetros de entrada para configurar a conta de aplicação. | Nesta etapa, você configura o arquivo de configuração para criar recursos em contas de aplicativos, incluindo grupos de CloudWatch log, filtros de CloudWatch assinatura, funções e políticas do IAM e detalhes de configuração das funções Amazon RDS, Amazon EKS e Lambda. No seu repositório
| DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Copie o conteúdo da pasta |
| DevOps engenheiro |
Analise e edite os parâmetros de entrada para configurar a conta de arquivamento de logs. | Nesta etapa, você define o arquivo de configuração para criar recursos na conta de arquivamento de logs, incluindo fluxos de entrega do Firehose, buckets do S3, filas do SQS e políticas e perfis do IAM. Na pasta
| DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Opção 1: implante os arquivos de configuração do Terraform pelo AFT. | No AFT, o pipeline do AFT é acionado depois que você envia o código com as alterações de configuração para o GitHub Depois de fazer alterações nos arquivos do Terraform (
notaSe você estiver usando uma ramificação diferente (como | DevOps engenheiro |
Opção 2: implante o arquivo de configuração do Terraform manualmente. | Se você não estiver usando o AFT ou se quiser implantar a solução manualmente, poderá usar os seguintes comandos do Terraform nas pastas
| DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Verifique os filtros de assinatura. | Para verificar se os filtros de assinatura encaminham os logs corretamente dos grupos de logs da conta de aplicação para a conta de arquivamento de logs:
| DevOps engenheiro |
Verifique os fluxos do Firehose. | Para verificar se os fluxos do Firehose na conta de arquivamento de logs processam os logs de aplicações corretamente:
| DevOps engenheiro |
Valide os buckets do S3 centralizados. | Para verificar se os buckets do S3 centralizados recebem e organizam os logs adequadamente:
| DevOps engenheiro |
Valide as filas do SQS. | Para verificar se as filas do SQS recebem notificações de novos arquivos de log:
| DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Opção 1: desative o arquivo de configuração do Terraform do AFT. | Quando você remove os arquivos de configuração do Terraform e envia as alterações, o AFT inicia automaticamente o processo de remoção de recursos.
| DevOps engenheiro |
Opção 2: limpe os recursos do Terraform manualmente. | Se você não estiver usando o AFT ou se quiser limpar os recursos manualmente, use os seguintes comandos do Terraform nas pastas
| DevOps engenheiro |
Solução de problemas
| Problema | Solução |
|---|---|
O destino dos CloudWatch registros não foi criado ou está inativo. | Valide o seguinte:
|
O filtro de assinatura falhou ou está travado no status pendente. | Verifique o seguinte:
|
O fluxo de entrega do Firehose não mostra registros de entrada. | Verifique o seguinte:
|
Recursos relacionados
Configuração da infraestrutura do Terraform
(documentação do Terraform) Implante o AWS Control Tower Account Factory for Terraform (AFT) (AWS Control Tower documentação)
Tutorial do IAM: delegue o acesso Contas da AWS usando funções do IAM () IAMdocumentation