

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración del registro centralizado a escala empresarial mediante Terraform
<a name="set-up-centralized-logging-at-enterprise-scale-by-using-terraform"></a>

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

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

El registro centralizado es vital para la infraestructura en la nube de una organización porque proporciona visibilidad de sus operaciones, seguridad y cumplimiento normativo. A medida que su organización amplía su AWS entorno a varias cuentas, una estrategia estructurada de administración de registros se vuelve fundamental para ejecutar las operaciones de seguridad, cumplir con los requisitos de auditoría y lograr la excelencia operativa.

Este patrón proporciona un marco seguro y escalable para centralizar los registros de múltiples servicios Cuentas de AWS y, de este modo, posibilitar la administración de registros a escala empresarial en despliegues complejos. AWS La solución se automatiza mediante Terraform, que es una herramienta de infraestructura como código (IaC) HashiCorp que garantiza despliegues consistentes y repetibles, y minimiza la configuración manual. Al combinar Amazon CloudWatch Logs, Amazon Data Firehose y Amazon Simple Storage Service (Amazon S3), puede implementar un proceso sólido de agregación y análisis de registros que ofrece:
+ Administración centralizada de registros en toda su organización en AWS Organizations
+ Recopilación de registros automatizada con controles de seguridad integrados
+ Procesamiento de registros escalable y almacenamiento duradero
+ Generación de informes de cumplimiento y registros de auditoría simplificados
+ Supervisión e información operativa en tiempo real

La solución recopila registros de los AWS Lambda contenedores de Amazon Elastic Kubernetes Service (Amazon EKS), las funciones y las instancias de bases de datos de Amazon Relational Database Service (Amazon RDS) mediante Logs. CloudWatch Reenvía automáticamente estos registros a una cuenta de registro dedicada mediante filtros de suscripción. CloudWatch Firehose administra el flujo de registro de alto rendimiento a Amazon S3 para un almacenamiento a largo plazo. Amazon Simple Queue Service (Amazon SQS) está configurado para recibir notificaciones de eventos de Amazon S3 al crear el objeto. Esto permite la integración con los servicios de análisis, tales como:
+ Amazon OpenSearch Service para búsqueda de registros, visualización y análisis en tiempo real
+ Amazon Athena para consultas basadas en SQL
+ Amazon EMR para procesamiento a gran escala
+ Lambda para una transformación personalizada
+ Amazon Quick Sight para paneles

Todos los datos se cifran mediante AWS Key Management Service (AWS KMS) y toda la infraestructura se implementa mediante Terraform para lograr una configuración uniforme en todos los entornos.

Este enfoque de registro centralizado permite a las organizaciones mejorar su postura de seguridad, mantener los requisitos de cumplimiento y optimizar la eficiencia operativa en toda su AWS infraestructura.

## Requisitos previos y limitaciones
<a name="set-up-centralized-logging-at-enterprise-scale-by-using-terraform-prereqs"></a>

**Requisitos previos **
+ Una zona de aterrizaje para su organización que se crea mediante [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-with-control-tower.html)
+ [Generador de cuentas para Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-getting-started.html), implementado y configurado con las cuentas requeridas
+ [Terraform](https://developer.hashicorp.com/terraform/downloads) para aprovisionar la infraestructura
+ AWS Identity and Access Management Funciones y políticas [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html) para el acceso entre cuentas

Para obtener instrucciones sobre cómo configurar AWS Control Tower las cuentas AFT y de aplicación, consulta la sección [Epics](#set-up-centralized-logging-at-enterprise-scale-by-using-terraform-epics).

**Cuentas obligatorias**

Su organización AWS Organizations debe incluir estas cuentas:
+ **Cuenta de aplicación**: una o más cuentas de origen en las que Servicios de AWS (Amazon EKS, Lambda y Amazon RDS) ejecutan y generan registros
+ **Cuenta de archivo de registro**: una cuenta dedicada para el almacenamiento y la administración centralizados de registros

**Versiones de producto**
+ [AWS Control Tower versión 3.1](https://docs.aws.amazon.com/controltower/latest/userguide/2023-all.html#lz-3-1) o posterior
+ La [versión 0.15.0](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli) o posterior de Terraform

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

El siguiente diagrama ilustra una arquitectura de registro AWS centralizada que proporciona una solución escalable para recopilar, procesar y almacenar los registros de varias cuentas de aplicaciones en una cuenta dedicada de Log Archive. Esta arquitectura gestiona de forma eficiente los registros de Servicios de AWS Amazon RDS, Amazon EKS y Lambda, y los enruta mediante un proceso simplificado a los buckets regionales de S3 de la cuenta de Log Archive.

![\[Arquitectura de registro centralizado de AWS para recopilar registros de varias cuentas de aplicaciones.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/9fc71a10-65d6-437b-9128-cc27bda11af4/images/2e916040-0f11-4712-a8dd-31c95194ce5d.png)


El flujo de trabajo incluye cinco procesos:

1. **Proceso del flujo de registros**
   + El proceso de flujo de registros comienza en las cuentas de la aplicación, donde se Servicios de AWS generan varios tipos de registros, como registros generales, de errores, de auditoría, registros de consultas lentas de Amazon RDS, registros del plano de control de Amazon EKS y registros de ejecución de funciones y errores de Lambda.
   + CloudWatch sirve como punto de recopilación inicial. Recopila estos registros por grupo de registros dentro de cada cuenta de aplicación.
   + En CloudWatch, [los filtros de suscripción](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Subscriptions.html) determinan qué registros deben reenviarse a la cuenta central. Estos filtros le proporcionan un control pormenorizado del reenvío de los registros, de modo que puede especificar los patrones de registro exactos o flujos de registro completos para centralizarlos.

1. **Transferencia de registros entre cuentas**
   + Los registros se mueven a la cuenta de Log Archive. CloudWatch Los filtros de suscripción facilitan la transferencia entre cuentas y preservan el contexto regional.
   + La arquitectura establece varios flujos paralelos para gestionar diferentes orígenes de registro de manera eficiente, a fin de garantizar un rendimiento y una escalabilidad óptimos.

1. **Procesamiento de registros en la cuenta de archivo de registros**
   + En la cuenta de archivo de registros, Firehose procesa los flujos de registro entrantes.
   + Cada región mantiene flujos de entrega de Firehose dedicados que pueden transformar, convertir o enriquecer los registros según sea necesario.
   + Estos flujos de Firehose envían los registros procesados a los buckets de S3 de la cuenta de archivo de registros, que se encuentra en la misma región que las cuentas de la aplicación de origen (región A en el diagrama) para mantener los requisitos de soberanía de datos.

1. **Notificaciones y flujos de trabajo adicionales**
   + Cuando los registros llegan a sus buckets de S3 de destino, la arquitectura implementa un sistema de notificaciones mediante Amazon SQS.
   + Las colas de SQS regionales permiten el procesamiento asíncrono y pueden activar flujos de trabajo, análisis o sistemas de alertas adicionales según los registros almacenados.

1. **AWS KMS por seguridad**

   La arquitectura incorpora medidas AWS KMS de seguridad. AWS KMS proporciona claves de cifrado para los cubos S3. Esto garantiza que todos los registros almacenados mantengan el cifrado en reposo y, al mismo tiempo, que el cifrado sea regional para cumplir con los requisitos de residencia de datos.

## Tools (Herramientas)
<a name="set-up-centralized-logging-at-enterprise-scale-by-using-terraform-tools"></a>

**Servicios de AWS**
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) es un servicio de monitoreo y observabilidad que recopila datos operativos y de monitoreo en forma de registros, métricas y eventos. Proporciona una vista unificada de AWS los recursos, las aplicaciones y los servicios que se ejecutan en AWS y en los servidores locales.
+ CloudWatch Los [filtros de suscripción a los registros](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html) son expresiones que coinciden con un patrón en los eventos de registro entrantes y envían los eventos de registro coincidentes al AWS recurso especificado para su posterior procesamiento o análisis.
+ [AWS Control Tower Account Factory For Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html) establece una canalización de Terraform para ayudarlo a aprovisionar y personalizar las cuentas. AWS Control Tower AFT proporciona un aprovisionamiento de cuentas basado en Terraform y, al mismo tiempo, le permite administrar sus cuentas con. AWS Control Tower
+ [Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) ofrece datos de streaming en tiempo real a destinos como Amazon S3, Amazon Redshift y Amazon Service. OpenSearch Se escala automáticamente para adaptarse al rendimiento de los datos y no es necesaria ninguna administración continua.
+ [Amazon Elastic Kubernetes Service (Amazon EKS)](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) es un servicio administrado de orquestación de contenedores que facilita la implementación, administración y escalado de aplicaciones en contenedores con Kubernetes. Administra de manera automática la disponibilidad y la escalabilidad de los nodos del plano de control de Kubernetes.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) crea y controla las claves de cifrado para cifrar sus datos. AWS KMS se integra con otros Servicios de AWS para ayudarle a proteger los datos que almacena con estos servicios.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) es un servicio informático sin servidor que permite ejecutar código sin aprovisionar ni administrar servidores. Escala de manera automática las aplicaciones mediante la ejecución de código en respuesta a cada desencadenador y solo cobra por el tiempo de procesamiento que se utilice.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) es un servicio administrado de base de datos relaciona que facilita la configuración, la operación y la escala de una base de datos relacional en la nube. Proporciona una capacidad rentable y redimensionable, además de que automatiza las tareas de administración que consumen mucho tiempo.
+ [Amazon Simple Queue Service (Amazon SQS)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) es un servicio de colas de mensajes que le permite desacoplar y escalar microservicios, sistemas distribuidos y aplicaciones sin servidor. Elimina la complejidad de administrar y operar el middleware orientado a los mensajes.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) es un servicio de almacenamiento de objetos basado en la nube que ofrece escalabilidad, disponibilidad de datos, seguridad y rendimiento. Puede almacenar y recuperar cualquier cantidad de datos desde cualquier parte de la web.

**Otras herramientas**
+ [Terraform](https://www.terraform.io/) es una herramienta de infraestructura como código (IaC) HashiCorp que le ayuda a crear y administrar recursos locales y en la nube.

**Código**

El código de este patrón está disponible en el repositorio de registro GitHub [centralizado](https://github.com/aws-samples/sample-centralised-logging-at-enterprise-scale-using-terraform).

## Prácticas recomendadas
<a name="set-up-centralized-logging-at-enterprise-scale-by-using-terraform-best-practices"></a>
+ Utilice [varios Cuentas de AWS en una sola organización en AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts.html). Esta práctica permite una administración centralizada y un registro estandarizado en las cuentas.
+ Configure los [buckets de S3 con el control de versiones, las políticas de ciclo de vida y la replicación entre regiones](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html). Implemente el cifrado y el registro de acceso para garantizar la seguridad y el cumplimiento.
+ Implemente [estándares de registro comunes mediante el formato JSON](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData-discoverable-fields.html) con marcas de tiempo y campos estándares. Utilice una estructura de prefijos y una correlación coherentes IDs para facilitar el seguimiento y el análisis.
+ Habilite [los controles de seguridad con AWS KMS cifrado](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html) y acceso con privilegios mínimos. Mantenga la AWS CloudTrail supervisión y la rotación regular de las claves para mejorar la seguridad.
+ Configure [CloudWatch métricas y alertas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) para el seguimiento de las entregas. Supervise los costos y el rendimiento con notificaciones automáticas.
+ Configure las [políticas de retención de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) para satisfacer los requisitos de cumplimiento y habilite el registro de acceso al servidor de Amazon S3 para hacer un seguimiento de las solicitudes hechas a los buckets de S3. Conserve la documentación sobre las políticas de los buckets de S3 y las reglas del ciclo de vida. Haga revisiones periódicas de los registros de acceso, los permisos de los buckets y las configuraciones de almacenamiento para garantizar el cumplimiento y las [prácticas recomendadas de seguridad](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html).

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

### Configure cuentas AWS Control Tower de AFT y de aplicación
<a name="set-up-ctowerlong-aft-and-application-accounts"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure un AWS Control Tower entorno con AFT. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | Administrador de AWS | 
| Habilite el uso compartido de recursos para la organización. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | Administrador de AWS | 
| Verifique o aprovisione las cuentas de la aplicación. | Para aprovisionar cuentas nuevas de aplicación para su caso de uso, créelas mediante AFT. Para obtener más información, consulte [Aprovisionar una nueva cuenta con AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provision-account.html) en la AWS Control Tower documentación. | Administrador de AWS | 

### Configuración de archivos de configuración para cuentas de la aplicación
<a name="set-up-configuration-files-for-application-accounts"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Copie el contenido de la carpeta `Application_account` al repositorio `aft-account-customizations`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps ingeniero | 
| Revise y edite los parámetros de entrada para configurar la cuenta de la aplicación. | En este paso, debe configurar el archivo de configuración para crear recursos en las cuentas de la aplicación, incluidos los grupos de CloudWatch registros, los filtros de CloudWatch suscripción, las funciones y políticas de IAM y los detalles de configuración de las funciones de Amazon RDS, Amazon EKS y Lambda.En el repositorio `aft-account-customizations`, en la carpeta `Application_account`, configure los parámetros de entrada del archivo `terraform.tfvars` según los requisitos de su organización:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps ingeniero | 

### Definición de los archivos de configuración para la cuenta de archivo de registros
<a name="set-up-configuration-files-for-the-log-archive-account"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Copie el contenido de la carpeta `Log_archive_account` al repositorio `aft-account-customizations`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps ingeniero | 
| Revise y edite los parámetros de entrada para configurar la cuenta de archivo de registros. | En este paso, definirá el archivo de configuración para crear recursos en la cuenta de archivo de registros, tales como los flujos de entrega de Firehose, los buckets de S3, las colas de SQS y los roles y políticas de IAM.En la carpeta `Log_archive_account` del repositorio `aft-account-customizations`, configure los parámetros de entrada del archivo `terraform.tfvars` según los requisitos de su organización:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps ingeniero | 

### Ejecución de los comandos de Terraform para aprovisionar recursos
<a name="run-terraform-commands-to-provision-resources"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Opción 1: implemente los archivos de configuración de Terraform desde AFT. | En AFT, la canalización de AFT se activa después de introducir el código con los cambios de configuración en el GitHub `aft-account-customizations` repositorio. AFT detecta de manera automática los cambios e inicia el proceso de personalización de la cuenta.Después de hacer cambios en los archivos de Terraform (`terraform.tfvars`), confirme y envíe los cambios al repositorio `aft-account-customizations`:<pre>$ git add *<br />$ git commit -m "update message"<br />$ git push origin main</pre>Si utiliza una rama distinta (por ejemplo `dev`), sustituya `main` por el nombre de la rama. | DevOps ingeniero | 
| Opción 2: implemente el archivo de configuración de Terraform de manera manual. | Si no utiliza AFT o quiere implementar la solución de manera manual, puede utilizar los comandos siguientes de Terraform de las carpetas `Application_account` y `Log_archive_account`:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps ingeniero | 

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


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Verifique los filtros de suscripción. | Para verificar que los filtros de suscripción reenvían correctamente los registros de los grupos de registros de cuentas de la aplicación a la cuenta de archivo de registros, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps ingeniero | 
| Verifique los flujos de Firehose. | Para verificar que los flujos de Firehose en la cuenta de archivo de registros procesan los registros de la aplicación correctamente, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps ingeniero | 
| Valide los buckets de S3 centralizados. | Para verificar que los buckets de S3 centralizados reciben y organizan los registros correctamente, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps ingeniero | 
| Valide las colas de SQS. | Para verificar que las colas de SQS reciben notificaciones de archivos de registro nuevos, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps ingeniero | 

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


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Opción 1: retire los archivos de configuración de Terraform desde AFT. | Al eliminar los archivos de configuración de Terraform e introducir los cambios, AFT inicia de manera automática el proceso de eliminación de recursos.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps ingeniero | 
| Opción 2: limpie los recursos de Terraform de manera manual. | Si no utiliza AFT o quiere limpiar los recursos de manera manual, utilice los comandos siguientes de Terraform de las carpetas `Application_account` y `Log_archive_account`:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | DevOps ingeniero | 

## Resolución de problemas
<a name="set-up-centralized-logging-at-enterprise-scale-by-using-terraform-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| El destino CloudWatch de los registros no se creó o está inactivo. | Valide lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | 
| Se produjo un error en el filtro de suscripción o está bloqueado en estado pendiente. | Comprueba lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/set-up-centralized-logging-at-enterprise-scale-by-using-terraform.html) | 
| El flujo de entrega de Firehose no muestra registros de entrada. | Compruebe lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/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>
+ [Terraform infrastructure setup](https://developer.hashicorp.com/terraform/tutorials/aws-get-started) (documentación de Terraform)
+ [Implemente AWS Control Tower Account Factory para Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-getting-started.html) (AWS Control Tower documentación)
+ [Tutorial de IAM: delegue el acceso mediante el Cuentas de AWS uso de funciones de IAM (](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html)) IAMdocumentation