

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.

# Automatice la evaluación de recursos de AWS
<a name="automate-aws-resource-assessment"></a>

*Naveen Suthar, Arun Bagal, Manish Garg y Sandeep Gawande, Amazon Web Services*

## Resumen
<a name="automate-aws-resource-assessment-summary"></a>

Este patrón describe un enfoque automatizado para configurar las capacidades de evaluación de recursos mediante [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html). Usando este patrón, los equipos de operaciones recopilan los detalles de auditoría de los recursos de forma automatizada y ven los detalles de todos los recursos implementados en una cuenta de AWS en un único panel. Esto resulta útil en los siguientes casos de uso:
+ Identificar las herramientas de infraestructura como código (IaC) y aislar los recursos creados por diferentes soluciones de IaC, como [HashiCorp Terraform](https://www.terraform.io/), [AWS CloudFormation, AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) CDK [y AWS Command Line Interface (AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html))
+ Obtener información de auditoría de recursos

Esta solución también ayuda al equipo directivo a obtener información sobre los recursos y las actividades de una cuenta de AWS desde un único panel. 


| 
| 
| Nota: [Amazon Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) es un servicio de pago. Antes de ejecutarlo para analizar los datos y crear un panel de control, consulta los [precios de Amazon Quick Sight](https://aws.amazon.com/quicksight/pricing/). | 
| --- |

## Requisitos previos y limitaciones
<a name="automate-aws-resource-assessment-prereqs"></a>

**Requisitos previos**
+ Una cuenta de AWS activa.
+ Roles y permisos de AWS Identity and Access Management (IAM) con acceso a recursos de aprovisionamiento
+ [Una [cuenta Amazon Quick](https://docs.aws.amazon.com/quicksight/latest/user/signing-up.html) creada con acceso a [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) y Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html)
+ Se ha instalado la versión 2.55.1 o posterior de AWS CDK 
+ Se ha instalado la versión 3.9 o posterior de [Python](https://www.python.org/downloads/release/python-390/)

**Limitaciones**
+ Esta solución se implementa en una única cuenta de AWS.
+ La solución no rastreará los eventos que ocurrieron antes de su implementación, a menos que AWS ya CloudTrail estuviera configurado y almacenando datos en un bucket de S3.

**Versiones de producto**
+ CDK de AWS, versión 2.55.1 o posterior
+ Python, versión 3.9 o posterior

## Arquitectura
<a name="automate-aws-resource-assessment-architecture"></a>

**Pila de tecnología de destino**
+ Amazon Athena
+ AWS CloudTrail
+ AWS Glue
+ AWS Lambda
+ Amazon Quick Suite
+ Amazon S3

**Arquitectura de destino**

El código de AWS CDK implementará todos los recursos necesarios para configurar las capacidades de evaluación de recursos en una cuenta de AWS. El siguiente diagrama muestra el proceso de envío de CloudTrail registros a AWS Glue, Amazon Athena y Quick Sight.

![\[Evaluación de recursos de AWS con AWS Glue, Amazon Athena y Amazon QuickSight en un proceso de seis pasos.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/a504774e-db7a-4c36-a22c-ce56d252fb58/images/8f2b549d-33a8-4cbf-86fd-33244716b668.png)


1. CloudTrail envía los registros a un depósito de S3 para su almacenamiento.

1. Una notificación de evento invoca una función de Lambda que procesa los registros y genera datos filtrados.

1. Los datos filtrados se almacenan en otro bucket de S3.

1. Se configura un rastreador de AWS Glue en los datos filtrados del bucket de S3 para crear un esquema en la tabla del catálogo de datos de AWS Glue.

1. Los datos filtrados están listos para que Amazon Athena los consulte.

1. Quick Sight accede a los datos consultados para su visualización.

**Automatización y escala**
+ Esta solución se puede escalar de una cuenta de AWS a varias cuentas de AWS si existe un registro que abarque a toda la organización en AWS CloudTrail Organizations. CloudTrail Al implementarla a nivel organizacional, también puede usar esta solución para obtener detalles de auditoría de recursos para todos los recursos necesarios.
+ Este patrón emplea recursos sin servidor de AWS para implementar la solución.

## Tools (Herramientas)
<a name="automate-aws-resource-assessment-tools"></a>

**Servicios de AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) es un servicio de consultas interactivo que facilita el análisis de datos en Amazon S3 con SQL estándar.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) es un marco de desarrollo de software que le ayuda a definir y aprovisionar la infraestructura en la nube de AWS en código.
+ [AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) le CloudFormation ayuda a configurar los recursos de AWS, aprovisionarlos de forma rápida y coherente y gestionarlos durante todo su ciclo de vida en todas las cuentas y regiones de AWS.
+ [AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) le CloudTrail ayuda a auditar la gobernanza, el cumplimiento y el riesgo operativo de su cuenta de AWS.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) es un servicio de extracción, transformación y carga (ETL) completamente administrado. Ayuda a clasificar, limpiar, enriquecer y mover datos de forma fiable entre almacenes de datos y flujos de datos. Este patrón emplea un rastreador de AWS Glue y una tabla del catálogo de datos de AWS Glue.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.
+ [Amazon Quick](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) es un servicio de inteligencia empresarial (BI) a escala de nube que le ayuda a visualizar, analizar y elaborar informes sobre sus datos en un único panel de control.
+ [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 lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

**Repositorio de código**

El código de este patrón está disponible en el GitHub [infrastructure-assessment-iac-automation](https://github.com/aws-samples/infrastructure-assessment-iac-automation)repositorio.

El repositorio de código contiene los siguientes archivos y carpetas:
+ Carpeta `lib` – los archivos Python de constructo de AWS CDK usados para crear los recursos de AWS
+ `src/lambda_code` – El código Python que se ejecuta en la función de Lambda
+ `requirements.txt` – La lista de todas las dependencias de Python que se deben instalar
+ `cdk.json` – El archivo de entrada que proporciona los valores necesarios para activar los recursos

## Prácticas recomendadas
<a name="automate-aws-resource-assessment-best-practices"></a>

Configure la supervisión y las alertas para las funciones de Lambda de AWS. Para obtener más información, consulte [Supervisión y solución de problemas de funciones de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-monitoring.html). Para obtener más información sobre las prácticas recomendadas generales en el uso de funciones de Lambda, consulte la [documentación de AWS](https://docs.aws.amazon.com/lambda/latest/dg/best-practices.html).

## Epics
<a name="automate-aws-resource-assessment-epics"></a>

### Configure su entorno
<a name="set-up-your-environment"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clone el repositorio en su máquina local. | Para clonar el repositorio, ejecute el comando `git clone https://github.com/aws-samples/infrastructure-assessment-iac-automation.git`. | AWS DevOps, DevOps ingeniero | 
| Configure el entorno virtual de Python e instale las dependencias necesarias. | Para configurar y activar el entorno virtual de Python, ejecute el siguiente comando.<pre>cd infrastructure-assessment-iac-automation<br />python3 -m venv .venv<br />source .venv/bin/activate</pre>Ejecute el comando `pip install -r requirements.txt` para configurar las dependencias necesarias. | AWS DevOps, DevOps ingeniero | 
| Configure el entorno de AWS CDK y sintetice el código de AWS CDK. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-aws-resource-assessment.html) | AWS DevOps, DevOps ingeniero | 

### Configuración de las credenciales de AWS en su máquina local
<a name="set-up-aws-credentials-on-your-local-machine"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Exporte las variables de cuenta y región en las que se implementará la pila. | Para proporcionar las credenciales de AWS para AWS CDK mediante variables de entorno, ejecute los siguientes comandos.<pre>export CDK_DEFAULT_ACCOUNT=<12 Digit AWS Account Number><br />export CDK_DEFAULT_REGION=<region></pre> | AWS DevOps, DevOps ingeniero | 
| Configure el perfil de AWS CLI. | Para configurar el perfil de AWS CLI para la cuenta, siga las instrucciones de la [documentación de AWS](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/keys-profiles-credentials.html). | AWS DevOps, DevOps ingeniero | 

### Configure e implemente la herramienta de evaluación de recursos
<a name="configure-and-deploy-the-resource-assessment-tool"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Implementar recursos en la cuenta. | Para implementar recursos en la cuenta de AWS mediante AWS CDK, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-aws-resource-assessment.html) | AWS DevOps | 
| Ejecute el rastreador de AWS Glue y cree la tabla del catálogo de datos. | El [rastreador de AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html) se usa para mantener el esquema de datos dinámico. La solución crea y actualiza las particiones en la [tabla del catálogo de datos de AWS Glue](https://docs.aws.amazon.com/athena/latest/ug/querying-glue-catalog.html), ejecutando el rastreador periódicamente según lo definido en el programador de rastreo de AWS Glue. Una vez que los datos estén disponibles en el bucket de S3 de salida, siga estos pasos para ejecutar el rastreador de AWS Glue y crear el esquema de la tabla del catálogo de datos para realizar las pruebas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-aws-resource-assessment.html)El código de AWS CDK configura el rastreador de AWS Glue para que se ejecute en un momento determinado, pero también puede ejecutarlo bajo demanda. | AWS DevOps, DevOps ingeniero | 
| Implemente la construcción Quick Sight. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-aws-resource-assessment.html) | AWS DevOps, DevOps ingeniero | 
| Cree el panel de control de Quick Sight. | Para crear el panel y el análisis de Quick Sight de ejemplo, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-aws-resource-assessment.html)Para obtener más información, consulte [Inicio de un análisis en Amazon Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/creating-an-analysis.html) y [Tipos visuales en Amazon Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/working-with-visual-types.html). | AWS DevOps, DevOps ingeniero | 

### Limpie todos los recursos de AWS de la solución
<a name="clean-up-all-aws-resources-in-the-solution"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Elimine los recursos de AWS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-aws-resource-assessment.html) | AWS DevOps, DevOps ingeniero | 

### Configure funciones adicionales además de la automatización de la herramienta de evaluación de recursos de AWS
<a name="set-up-additional-features-on-top-of-the-aws-resource-assessment-tool-automation"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Supervise y limpie los recursos creados manualmente. | (Opcional) Si su organización tiene requisitos de conformidad para crear recursos con las herramientas de IaC, puede satisfacerlos automatizando las herramientas de evaluación de recursos de AWS para obtener los recursos aprovisionados manualmente. También puede usar la herramienta para importar los recursos a una herramienta de IaC o volver a crearlos. Realice las siguientes tareas de alto nivel para supervisar los recursos aprovisionados de manera manual:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-aws-resource-assessment.html) | AWS DevOps, DevOps ingeniero | 

## Resolución de problemas
<a name="automate-aws-resource-assessment-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| AWS CDK devuelve errores. | Para obtener ayuda con los errores de AWS CDK, consulte [Solución de problemas comunes de AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/troubleshooting.html). | 

## Recursos relacionados
<a name="automate-aws-resource-assessment-resources"></a>
+ [Creación de funciones de Lambda con Python](https://docs.aws.amazon.com/lambda/latest/dg/lambda-python.html)
+ [Introducción a AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html)
+ [Utilización de AWS CDK en Python](https://docs.aws.amazon.com/cdk/v2/guide/work-with-cdk-python.html)
+ [Creando un CloudTrail registro](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [Comience con Amazon Quick Sight](https://aws.amazon.com/quicksight/getting-started/)

## Información adicional
<a name="automate-aws-resource-assessment-additional"></a>

**Cuentas múltiples**

Para configurar la credencial de AWS CLI para múltiples cuentas, use los perfiles de AWS. Para obtener más información, consulte la sección *Configurar varios perfiles* en [Configurar AWS CLI](https://aws.amazon.com/getting-started/guides/setup-environment/module-three/).

**Comandos de AWS CDK**

Cuando trabaje con AWS CDK, recuerde los siguientes comandos útiles:
+ Muestra todas las pilas de la aplicación

  ```
  cdk ls
  ```
+ Emite la plantilla de AWS CloudFormation sintetizada

  ```
  cdk synth
  ```
+ Implementa la pila en la cuenta y región de AWS predeterminadas

  ```
  cdk deploy
  ```
+ Compara la pila implementada con el estado actual

  ```
  cdk diff
  ```
+ Abre la documentación de AWS CDK

  ```
  cdk docs
  ```