

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
<a name="set-up-centralized-logging-at-enterprise-scale-by-using-terraform"></a>

*Aarti Rajput, Yashwant Patel e Nishtha Yadav, Amazon Web Services*

## Resumo
<a name="set-up-centralized-logging-at-enterprise-scale-by-using-terraform-summary"></a>

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
<a name="set-up-centralized-logging-at-enterprise-scale-by-using-terraform-prereqs"></a>

**Pré-requisitos **
+ Uma zona de pouso para sua organização que é criada usando o [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-with-control-tower.html)
+ [Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-getting-started.html), implantado e configurado com as contas necessárias
+ [Terraform](https://developer.hashicorp.com/terraform/downloads) para provisionar a infraestrutura
+ AWS Identity and Access Management Funções e políticas [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html) para acesso entre contas

Para obter instruções sobre como configurar AWS Control Tower contas AFT e Application, consulte a [seção Epics](#set-up-centralized-logging-at-enterprise-scale-by-using-terraform-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](https://docs.aws.amazon.com/controltower/latest/userguide/2023-all.html#lz-3-1) ou posterior
+ [Terraform versão 0.15.0](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli) ou versões posteriores

## Arquitetura
<a name="set-up-centralized-logging-at-enterprise-scale-by-using-terraform-architecture"></a>

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.

![\[Arquitetura de registro em log centralizado da AWS para coletar logs de várias contas de aplicações.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/9fc71a10-65d6-437b-9128-cc27bda11af4/images/2e916040-0f11-4712-a8dd-31c95194ce5d.png)


O fluxo de trabalho inclui cinco processos:

1. **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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Subscriptions.html) 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.

1. **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.

1. **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.

1. **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.

1. **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
<a name="set-up-centralized-logging-at-enterprise-scale-by-using-terraform-tools"></a>

**Serviços da AWS**
+  CloudWatchA [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) é 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html) 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)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html) 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](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) 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)](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) é 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)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) 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](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) é 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)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) é 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)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) é 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)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é 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](https://www.terraform.io/) é 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](https://github.com/aws-samples/sample-centralised-logging-at-enterprise-scale-using-terraform).

## Práticas recomendadas
<a name="set-up-centralized-logging-at-enterprise-scale-by-using-terraform-best-practices"></a>
+ Use [vários Contas da AWS em uma única organização em AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts.html). 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html). 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData-discoverable-fields.html) 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html) 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) para rastreamento de entrega. Monitore os custos e a performance com notificações automatizadas.
+ Configure as [políticas de retenção do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html).

## Épicos
<a name="set-up-centralized-logging-at-enterprise-scale-by-using-terraform-epics"></a>

### Contas de configuração AWS Control Tower, AFT e de aplicativos
<a name="set-up-ctowerlong-aft-and-application-accounts"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure um AWS Control Tower ambiente com o AFT. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | Administrador da AWS | 
| Habilite o compartilhamento de recursos na organização. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | 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](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provision-account.html) na AWS Control Tower documentação. | Administrador da AWS | 

### Definir arquivos de configuração para contas de aplicações
<a name="set-up-configuration-files-for-application-accounts"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Copie o conteúdo da pasta `Application_account` para o repositório `aft-account-customizations`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | 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 `aft-account-customizations`, na pasta `Application_account`, configure os parâmetros de entrada no arquivo `terraform.tfvars` com base nos requisitos da sua organização:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps engenheiro | 

### Definir arquivos de configuração para a conta de arquivamento de logs
<a name="set-up-configuration-files-for-the-log-archive-account"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Copie o conteúdo da pasta `Log_archive_account` para o repositório `aft-account-customizations`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | 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 `Log_archive_account` do seu repositório `aft-account-customizations`, configure os parâmetros de entrada no arquivo `terraform.tfvars` com base nos requisitos da sua organização:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps engenheiro | 

### Executar comandos do Terraform para provisionar recursos
<a name="run-terraform-commands-to-provision-resources"></a>


| 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 `aft-account-customizations` repositório. O AFT detecta automaticamente as alterações e inicia o processo de personalização da conta.Depois de fazer alterações nos arquivos do Terraform (`terraform.tfvars`), confirme e envie suas alterações para o seu repositório `aft-account-customizations`:<pre>$ git add *<br />$ git commit -m "update message"<br />$ git push origin main</pre>Se você estiver usando uma ramificação diferente (como `dev`), substitua `main` pelo nome da ramificação. | 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 `Application_account` e `Log_archive_account`:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps engenheiro | 

### Validar recursos
<a name="validate-resources"></a>


| 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:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | 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:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps engenheiro | 
| Valide os buckets do S3 centralizados. | Para verificar se os buckets do S3 centralizados recebem e organizam os logs adequadamente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps engenheiro | 
| Valide as filas do SQS. | Para verificar se as filas do SQS recebem notificações de novos arquivos de log:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps engenheiro | 

### Limpar os recursos
<a name="clean-up-resources"></a>


| 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.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | 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 `Application_account` e `Log_archive_account`:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps engenheiro | 

## Solução de problemas
<a name="set-up-centralized-logging-at-enterprise-scale-by-using-terraform-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| O destino dos CloudWatch registros não foi criado ou está inativo. | Valide o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | 
| O filtro de assinatura falhou ou está travado no status pendente. | Verifique o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | 
| O fluxo de entrega do Firehose não mostra registros de entrada. | Verifique o seguinte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | 

## Recursos relacionados
<a name="set-up-centralized-logging-at-enterprise-scale-by-using-terraform-resources"></a>
+ [Configuração da infraestrutura do Terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started) (documentação do Terraform)
+ [Implante o AWS Control Tower Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-getting-started.html) (AWS Control Tower documentação)
+ [Tutorial do IAM: delegue o acesso Contas da AWS usando funções do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html) () IAMdocumentation