

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.

# Fundamentos de la nube
<a name="cloudfoundations-pattern-list"></a>

**Topics**
+ [Automatice la creación de cuentas mediante el acelerador de zonas de aterrizaje en AWS](automate-account-creation-lza.md)
+ [Inventario automático de AWS los recursos en varias cuentas y regiones](automate-aws-resource-inventory.md)
+ [Construye una AWS landing zone que incluya MongoDB Atlas](build-aws-landing-zone-that-includes-mongodb-atlas.md)
+ [Configure los registros de flujo de VPC para la centralización en Cuentas de AWS](configure-vpc-flow-logs-for-centralization-across-aws-accounts.md)
+ [Administre los conjuntos de AWS permisos de forma dinámica mediante Terraform](manage-aws-permission-sets-dynamically-by-using-terraform.md)
+ [Etiquete automáticamente las conexiones de puerta de enlace de tránsito con AWS Organizations](tag-transit-gateway-attachments-automatically-using-aws-organizations.md)
+ [Más patrones](cloudfoundations-more-patterns-pattern-list.md)

# Automatice la creación de cuentas mediante el acelerador de zonas de aterrizaje en AWS
<a name="automate-account-creation-lza"></a>

*Justin Kuskowski, Joe Behrens y Nathan Scott, Amazon Web Services*

## Resumen
<a name="automate-account-creation-lza-summary"></a>

Este patrón explica cómo utilizar el [acelerador de zonas de aterrizaje en](https://aws.amazon.com/solutions/implementations/landing-zone-accelerator-on-aws/) una AWS solución para implementar automáticamente una nueva Cuenta de AWS cuando un usuario autorizado envía una solicitud. Se utiliza AWS Step Functions para organizar una serie de funciones. AWS Lambda Las funciones de Lambda añaden la información de la cuenta a un repositorio de Git, inician una AWS CodePipeline canalización y validan que se aprovisionen AWS los recursos necesarios. Cuando se completa el proceso, el usuario recibe una notificación de que se ha creado la cuenta.

Si lo desea, puede integrar grupos de ID de Microsoft Entra y asignar conjuntos de AWS IAM Identity Center permisos durante el proceso de creación de la cuenta. Si su organización utiliza Microsoft Entra ID como fuente de identidad, esta característica opcional lo ayudará a administrar y configurar automáticamente el acceso a la nueva cuenta.

## Requisitos previos y limitaciones
<a name="automate-account-creation-lza-prereqs"></a>

**Requisitos previos **
+ Acceso a la cuenta de administración en AWS Organizations
+ AWS Cloud Development Kit (AWS CDK) [versión 2.118.0 o posterior, [instalada y configurada](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install)](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_configure)
+ La versión 3.9 o posterior de Python [instalada](https://www.python.org/downloads/)
+ AWS Command Line Interface [(AWS CLI) versión 2.13.19 o posterior, instalada](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
+ La versión 24.0.6 o posterior de Docker [instalada](https://docs.docker.com/get-started/get-docker/)
+ Landing Zone Accelerator es AWS una solución, [implementada](https://docs.aws.amazon.com/solutions/latest/landing-zone-accelerator-on-aws/deploy-the-solution.html) en la cuenta de administración
+ (Opcional) Microsoft Entra ID e IAM Identity Center, [integrados](https://docs.aws.amazon.com/singlesignon/latest/userguide/idp-microsoft-entra.html)

**Limitaciones**

El flujo de trabajo de creación de cuentas admite ejecuciones secuenciales para implementar una sola Cuenta de AWS. Esta limitación garantiza que el flujo de trabajo de creación de cuentas se haya completado correctamente sin tener que competir por los recursos durante una ejecución paralela.

## Arquitectura
<a name="automate-account-creation-lza-architecture"></a>

**Arquitectura de destino**

La siguiente imagen muestra la arquitectura de alto nivel que automatiza la creación de una nueva Cuenta de AWS mediante el Landing Zone Accelerator activado. AWS AWS Step Functions organiza la automatización. Cada tarea del flujo de trabajo de Step Functions la realizan una o más AWS Lambda funciones.

![\[Flujo de trabajo para la automatización de la creación de una nueva cuenta mediante el acelerador de zonas de aterrizaje en AWS.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/d31abfaa-6854-4923-b896-3b817de9f4d9/images/dfd6503d-a4ed-43df-82d4-082f8153d473.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. El usuario solicita una cuenta mediante la ejecución de un script de Python o mediante Amazon API Gateway.

1. El flujo de trabajo del Orquestador de creación de cuentas comienza en AWS Step Functions.

1. El flujo de trabajo actualiza el archivo `account-config.yaml` en el repositorio de código fuente. También inicia el acelerador de zonas de aterrizaje en la AWS tubería y comprueba el estado de la tubería. Esta canalización crea y configura la nueva cuenta. Para más información sobre cómo funciona, consulte [Descripción general de la arquitectura](https://docs.aws.amazon.com/solutions/latest/landing-zone-accelerator-on-aws/architecture-overview.html) del Acelerador de zonas de aterrizaje en AWS.

1. (Opcional) Cuando se completa la canalización, el flujo de trabajo comprueba si el grupo existe en Microsoft Entra ID. Si el grupo no existe en Microsoft Entra ID, el flujo de trabajo lo agrega a Microsoft Entra ID.

1. El flujo de trabajo lleva a cabo pasos adicionales que la AWS solución Landing Zone Accelerator on no puede realizar. Los pasos predeterminados incluyen:
   + Crear un [alias de cuenta](https://docs.aws.amazon.com/IAM/latest/UserGuide/console-account-alias.html) en AWS Identity and Access Management (IAM)
   + Adjuntar [etiquetas](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tagging.html) a la cuenta en AWS Organizations
   + Creación de parámetros en el [almacén de parámetros de AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) en función de las etiquetas asignadas a la cuenta

1. (Opcional) El flujo de trabajo asigna uno o más [conjuntos de permisos](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) al grupo de Microsoft Entra ID que especificó anteriormente. Los conjuntos de permisos permiten a los usuarios del grupo acceder a la nueva cuenta y realizar las acciones que usted configure.

1. Una AWS Lambda función ejecuta pruebas de control de calidad y de validación. Valida la creación de recursos, comprueba que se hayan creado las etiquetas y confirma que se hayan implementado los recursos de seguridad.

1. El flujo de trabajo presenta la cuenta y utiliza Amazon Simple Email Service (Amazon SES) para notificar al usuario que el proceso se ha completado correctamente.

Para más información sobre el flujo de trabajo de Step Functions, consulte el *diagrama de flujo de trabajo de Step Functions* en la sección [Información adicional](#automate-account-creation-lza-additional) de este patrón.

**Aplicaciones de Microsoft Entra ID**

Si decide realizar la integración con Microsoft Entra ID, tendrá que crear las dos aplicaciones siguientes al implementar este patrón:
+ Una aplicación que esté vinculada a IAM Identity Center y que garantiza que los grupos de Microsoft Entra ID estén disponibles en IAM Identity Center. En este ejemplo, esta aplicación de Microsoft Entra ID se denomina `LZA2`.
+ Aplicación que permite que una función Lambda se comunique con el Microsoft Entra ID y llame a [Microsoft](https://learn.microsoft.com/en-us/graph/identity-network-access-overview) Graph. APIs En este patrón, esta aplicación se denomina `create_aws_account`.

Estas aplicaciones recopilan datos que se utilizan para sincronizar el grupo de Microsoft Entra ID y asignar conjuntos de permisos.

## Tools (Herramientas)
<a name="automate-account-creation-lza-tools"></a>

**Servicios de AWS**
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) le ayuda a crear, publicar, mantener, supervisar y proteger REST, HTTP y WebSocket APIs a cualquier escala. En este patrón, se utiliza API Gateway para comprobar la disponibilidad de Cuenta de AWS los nombres, iniciar el AWS Step Functions flujo de trabajo y comprobar el estado de la ejecución de Step Functions.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)es un marco de desarrollo de software que le ayuda a definir y aprovisionar Nube de AWS la infraestructura en código.
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)le ayuda a configurar y administrar un entorno de AWS múltiples cuentas, siguiendo las mejores prácticas prescriptivas.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) es un servicio de bus de eventos sin servidor que le ayuda a conectar sus aplicaciones con datos en tiempo real de diversas fuentes. Por ejemplo, AWS Lambda funciones, puntos finales de invocación HTTP que utilizan destinos de API o buses de eventos en otros. Cuentas de AWS Esta solución utiliza una [EventBridge regla](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html) que inicia una función Lambda si el estado del flujo de trabajo de Step Functions cambia a `Failed``Timed-out`, o. `Aborted`
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)le ayuda a gestionar de forma centralizada el acceso mediante el inicio de sesión único (SSO) a todas sus aplicaciones y a las de la nube. Cuentas de AWS 
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) le ayuda a crear y controlar claves criptográficas para proteger sus datos. En este patrón, AWS KMS las claves se utilizan para cifrar datos, como los datos almacenados en Amazon Simple Storage Service (Amazon S3), las variables de entorno de Lambda y los datos en Step Functions.
+ [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.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)es un servicio de administración de cuentas que le ayuda a consolidar múltiples cuentas Cuentas de AWS en una organización que usted crea y administra de forma centralizada.
+ [Amazon Simple Email Service (Amazon SES)](https://docs.aws.amazon.com/ses/latest/dg/Welcome.html) facilita poder enviar y recibir correos electrónicos a través de los dominios y direcciones de correo electrónico propios. Cuando haya creado correctamente una cuenta nueva, recibirá una notificación a través de Amazon SES.
+ [Amazon Simple Notification Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) le permite coordinar y administrar el intercambio de mensajes entre publicadores y clientes, incluidos los servidores web y las direcciones de correo electrónico. Si se produce un error durante el proceso de creación de la cuenta, Amazon SNS envía una notificación a las direcciones de email que configure.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)es un servicio de organización sin servidor que le ayuda a combinar AWS Lambda funciones y otras Servicios de AWS para crear aplicaciones esenciales para la empresa.
+ [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) proporciona un almacenamiento jerárquico y seguro para la gestión de los datos de configuración y la gestión de secretos.

**Otras herramientas**
+ [awscurl](https://pypi.org/project/awscurl/0.6/) automatiza el proceso de firma de las solicitudes de AWS API y le ayuda a realizar solicitudes como un comando curl estándar.
+ [Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/fundamentals/whatis), anteriormente conocido como *Azure Active Directory*, es un servicio de administración de identidades y acceso basado en la nube.
+ [Microsoft Graph](https://learn.microsoft.com/en-us/graph/graph-explorer/graph-explorer-overview) lo APIs ayuda a acceder a los datos y la inteligencia en los servicios en la nube de Microsoft, como Microsoft Entra y Microsoft 365.

**Repositorio de código**

El código de este patrón está disponible en el GitHub [lza-account-creation-workflow](https://github.com/aws-samples/lza-account-creation-workflow)repositorio.

El directorio [lambda\$1layer](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer) contiene las siguientes capas, a las que se hace referencia en más de una función de Lambda:
+ [account\$1creation\$1helper](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer/account_creation_helper): esta capa incluye los módulos para asumir funciones y comprobar su progreso. AWS Service Catalog
+ [boto3](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer/boto3): esta capa incluye el [AWS SDK para Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)módulo para garantizar que tenga la última versión. AWS Lambda 
+ [identity\$1center\$1helper](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer/identity_center_helper): esta capa admite llamadas a IAM Identity Center.

El directorio [lambda\$1src](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src) contiene las siguientes funciones de Lambda:
+ [AccountTagToSsmParameter](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/event/AccountTagToSsmParameter)— Esta función utiliza las etiquetas adjuntas a la cuenta para crear parámetros AWS Organizations en el almacén de parámetros. Cada parámetro comienza con el prefijo `/account/tags/`..
+ [AttachPermissionSet](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/AttachPermissionSet)— Esta función añade un conjunto de permisos a un grupo del IAM Identity Center.
+ [Azure ADGroup Sync](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/AzureADGroupSync): esta función sincroniza el grupo de ID de Microsoft Entra de destino con el Centro de identidades de IAM.
+ [CheckForRunningProcesses](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/CheckForRunningProcesses)— Esta función comprueba si la `AWSAccelerator-Pipeline` canalización se está ejecutando actualmente. Si la canalización está en ejecución, la función retrasa el AWS Step Functions flujo de trabajo.
+ [CreateAccount](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/CreateAccount)— Esta función utiliza AWS Service Catalog y AWS Control Tower para crear lo nuevo Cuenta de AWS.
+ [CreateAdditionalResources](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/CreateAdditionalResources)— Esta función crea los AWS recursos que Landing Zone Accelerator no administra AWS CloudFormation, como el alias y las AWS Service Catalog etiquetas de la cuenta.
+ [GetAccountStatus](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/GetAccountStatus)— Esta función busca el producto aprovisionado AWS Service Catalog para determinar si el proceso de creación de la cuenta se ha completado.
+ [GetExecutionStatus](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/api/GetExecutionStatus)— Esta función recupera el estado de una ejecución en ejecución o completada AWS Step Functions .
+ [NameAvailability](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/api/NameAvailability)— Esta función comprueba si ya existe un Cuenta de AWS nombre en AWS Organizations.
+ [ReturnResponse](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/ReturnResponse)— Si la creación de la cuenta se realizó correctamente, esta función devuelve el ID de la nueva cuenta. Si la creación de la cuenta no se realizó correctamente, devuelve un mensaje de error.
+ [RunStepFunction](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/api/RunStepFunction)— Esta función ejecuta el AWS Step Functions flujo de trabajo que crea la cuenta.
+ [SendEmailWithSES](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/SendEmailWithSES): esta función envía correos electrónicos a los usuarios que esperan que finalice la creación de la cuenta.
+ [Validar el ADGroup SyncTo inicio](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/ValidateAdGroupSyncToSSO) de sesión único: esta función comprueba si los grupos de ID de Microsoft Entra especificados están sincronizados con IAM Identity Center.
+ [ValidateResources](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/ValidateResources)— Esta función valida que todas las AWS Control Tower personalizaciones se hayan ejecutado correctamente.

## Prácticas recomendadas
<a name="automate-account-creation-lza-best-practices"></a>

Se recomiendan las siguientes convenciones de nomenclatura para AWS CDK: 
+ Inicie todos los parámetros con un prefijo `p`.
+ Inicie todas las condiciones con un prefijo `c`.
+ Inicie todos los recursos con un prefijo `r`.
+ Inicie todos los resultados con un prefijo `o`.

## Epics
<a name="automate-account-creation-lza-epics"></a>

### Implementación de los roles de IAM para la validación y el etiquetado
<a name="deploy-the-iam-roles-for-validation-and-tagging"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Prepara el acelerador de la zona de aterrizaje para personalizarlo. AWS  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Prepárese para implementar el rol `lza-account-creation-validation`. | Ahora puede personalizar la solución para implementar el rol de IAM `lza-account-creation-validation` en todas las cuentas, excepto en la cuenta de administración. Este rol proporciona a la función de Lambda `ValidateResources` acceso de solo lectura a las nuevas cuentas.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Prepárese para implementar el rol `account-tagging-to-ssm-parameter-role`. | Ahora puede personalizar la solución para implementar el rol de IAM `account-tagging-to-ssm-parameter-role` en todas las cuentas, excepto en la cuenta de administración. Esta función se utiliza para crear los parámetros en AWS Systems Manager Parameter Store.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Prepárese para implementar el rol `config-log-validation-role`. | Ahora puede personalizar la solución para implementar el rol de IAM `config-log-validation-role` en la cuenta de archivo de registros. Esta función permite a la función `ValidateResources` Lambda acceder al bucket de Amazon S3 para acceder a las reglas de registro y acceso AWS Config .[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 

### (Opcional) Obtenga datos de Microsoft Entra ID
<a name="optional-get-data-from-microsoft-entra-id"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Cree una aplicación que permita que una función de Lambda se comunique con Microsoft Entra ID. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | ID de Microsoft Entra | 
| Recupere los valores de la aplicación `create_aws_account`. | A continuación, recupere los valores que necesita para la aplicación `create_aws_account`.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | ID de Microsoft Entra | 
| Cree la aplicación que integra Microsoft Entra ID con IAM Identity Center. | En el centro de administración de Microsoft Entra ID, registre la aplicación `LZA2`. Para obtener instrucciones, consulte [Registro de una aplicación](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app) en la documentación de Microsoft. | ID de Microsoft Entra | 
| Recupere los valores de la aplicación `LZA2`. | A continuación, recupere los valores que necesita para la aplicación `LZA2`.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | ID de Microsoft Entra | 
| Cree un secreto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 

### Implementar la solución
<a name="deploy-the-solution"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clone el código fuente. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | DevOps ingeniero | 
| Actualice el archivo `deploy-config.yaml`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Implemente la solución en su AWS entorno. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html)Esta solución utiliza un bucket de Amazon S3 para almacenar el código fuente de esta solución. Puede usar el script [upload\$1to\$1source\$1bucket.py](https://github.com/aws-samples/gen-ai-trivia/blob/main/scripts/upload_to_source_bucket.py) para crear un archivo del código fuente y cargar una versión actualizada. | AWS DevOps | 

### Opción 1: Creación de una cuenta con Python
<a name="option-1-create-an-account-using-python"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Identifique qué argumentos usar. | Elija los argumentos que desee utilizar al ejecutar el script de Python que inicia el flujo de trabajo de Step Functions. Para obtener una lista completa de argumentos, consulte la sección [Información adicional](#automate-account-creation-lza-additional) de este patrón. | AWS DevOps, Python | 
| Inicie el script de Python. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | DevOps ingeniero, Python | 

### Opción 2: Creación de una cuenta con API Gateway y awscurl
<a name="option-2-create-an-account-using-api-gateway-and-awscurl"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure las variables para awscurl. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Compruebe la disponibilidad de del nombre. | Introduzca el siguiente comando para comprobar que el nombre esté disponible para la Cuenta de AWS. Sustituya `<AWS_ACCOUNT_NAME>` por el nombre de la cuenta de destino:<pre>awscurl --service execute-api \<br />    --region ${AWS_REGION} \<br />    --access_key ${AWS_ACCESS_KEY_ID} \<br />    --secret_key ${AWS_SECRET_ACCESS_KEY} \<br />    --security_token ${AWS_SESSION_TOKEN} \<br />    -X POST ${API_GATEWAY_ENDPOINT}check_name?account_name=<AWS_ACCOUNT_NAME></pre> | AWS DevOps | 
| Ejecute el flujo de trabajo de creación de cuentas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 

### (Opcional) Eliminación de la solución
<a name="optional-clean-up-the-solution"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Elimine objetos de los buckets de Amazon S3. | Elimine cualquier objeto de los siguientes buckets de Amazon S3:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Elimine la CloudFormation pila. | Ingresa el siguiente comando para eliminar la CloudFormation pila:<pre>aws cloudformation delete-stack \<br />  --stack-name lza-account-creation-workflow-application<br />aws cloudformation wait stack-delete-complete \<br />  --stack-name lza-account-creation-workflow-application</pre> | AWS DevOps | 
| Elimine la canalización. | Escriba el comando siguiente para eliminar la canalización `lza-account-creation-workflow-pipeline`:<pre>cdk destroy lza-account-creation-workflow-pipeline --force</pre> | AWS DevOps | 

## Recursos relacionados
<a name="automate-account-creation-lza-resources"></a>
+ [Landing Zone Accelerator activado AWS](https://aws.amazon.com/solutions/implementations/landing-zone-accelerator-on-aws/) (biblioteca de AWS soluciones)
+ [Solución de AWS CDK problemas comunes](https://docs.aws.amazon.com/cdk/v2/guide/troubleshooting.html) (AWS CDK documentación)

## Información adicional
<a name="automate-account-creation-lza-additional"></a>

**Diagrama del flujo de trabajo de Step Functions**

En la siguiente imagen se muestran los estados del flujo de trabajo de Step Functions.

![\[Estados en el flujo de trabajo de Step Functions.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/d31abfaa-6854-4923-b896-3b817de9f4d9/images/d93aa7bf-1144-4f25-9488-aacc534a7813.png)


**Argumentos**

Puede usar los siguientes argumentos al ejecutar el script de Python que inicia el flujo de trabajo de Step Functions.

Se requieren los siguientes argumentos:
+ `account-name (-a)`(cadena): el nombre del nuevo Cuenta de AWS.
+ `support-dl (-s)` (cadena): dirección de correo electrónico que recibe la notificación cuando se completa el proceso de creación de la cuenta.
+ `managed-org-unit (-m)` (cadena): [unidad organizativa (UO)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#organizationalunit) administrada que contendrá la nueva cuenta.

Los siguientes argumentos son opcionales:
+ `ad-integration (-ad)` (diccionario de cadenas): grupo de Microsoft Entra ID y conjunto de permisos asignado. A continuación, se muestra un ejemplo de cómo utilizar este argumento:

  ```
  --ad-integration "{\"<PermissionSetName>\": \"<EntraIdGroupName>\"}"
  ```
+ `account-email (-e)`****(cadena): la dirección de correo electrónico del usuario raíz del nuevo Cuenta de AWS.
**nota**  
Si no se utiliza este argumento, se generará una dirección de correo electrónico mediante los valores `rootEmailPrefix` y `rootEmailDomain` a partir del archivo `configs/deploy-config.yaml`. Si no se proporciona una dirección de correo electrónico, se generará una dirección de correo electrónico con el siguiente formato: `rootEmailPrefix+accountName@rootEmailDomain`.
+ `region (-r)`(string): el Región de AWS lugar donde se implementó el flujo de trabajo de Step Functions. El valor predeterminado es `us-east-1`.
+ `force-update (-f)`(cadena booleana): introdúzcala `true` AWS Service Catalog para forzar la actualización del producto aprovisionado.
+ `bypass-creation (-b)` (cadena booleana): introduzca `true` para evitar añadir la cuenta al archivo `accounts-config.yaml` y evitar que se ejecute la canalización `AWSAccelerator-Pipeline`. Este argumento se suele utilizar para probar el proceso del flujo de trabajo de creación de cuentas o para ejecutar el resto de los pasos de Step Functions si se produce un error en la canalización `Landing Zone Accelerator`.
+ `tags (-t)`(cadena): etiquetas adicionales que desee añadir a. Cuenta de AWS De forma predeterminada, se añaden las siguientes etiquetas: `account-name`, `support-dl` y `purpose`. A continuación, se muestra un ejemplo de cómo utilizar este argumento:

  ```
  --tags TEST1=VALUE1 TEST2=VALUE2
  ```

# Inventario automático de AWS los recursos en varias cuentas y regiones
<a name="automate-aws-resource-inventory"></a>

*Matej Macek, Amazon Web Services*

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

Este patrón describe un enfoque automatizado para mantener un inventario integral de AWS recursos en varias cuentas y Regiones de AWS. Está diseñado para ayudar a los ingenieros de infraestructura y seguridad a mejorar sus prácticas de administración de recursos. Se utiliza AWS Config para realizar un seguimiento de los cambios en los recursos, Amazon Athena para realizar consultas y Amazon Quick Sight para paneles interactivos. Para implementar esta solución, debe implementar una pila. AWS CloudFormation 

Esta solución es similar a la presentada en [Visualización de AWS Config datos con Amazon Athena y Amazon Quick](https://aws.amazon.com/blogs/mt/visualizing-aws-config-data-using-amazon-athena-and-amazon-quicksight/) Sight AWS (entrada del blog). Este patrón amplía esa solución para abordar los siguientes requisitos comunes y ofrecer los siguientes beneficios clave:
+ **Fundamentado en la conformidad**: este enfoque puede ayudarlo a cumplir requisitos normativos como [PCI DSS](https://www.pcisecuritystandards.org/), [NIST SP 800-53](https://csrc.nist.gov/pubs/sp/800/53/r5/upd1/final), [ISO/IEC 27001](https://www.iso.org/standard/27001), [HIPAA](https://www.hhs.gov/programs/hipaa/index.html) y [GDPR](https://gdpr.eu/), entre otros, que exigen inventarios precisos de recursos.
+ **Marco de personalización**: proporciona una base para crear paneles de Quick Sight para varios AWS recursos, de modo que pueda personalizar la solución según sus requisitos específicos.
+ **Mejoras impulsadas por los usuarios**: este enfoque incorpora comentarios de casos de uso reales y responde a las solicitudes de una solución más completa.

Los equipos de infraestructura, seguridad y finanzas suelen enfrentarse a desafíos de visibilidad y colaboración en entornos dinámicos que cuentan con varias cuentas o regiones. Esta solución está diseñada para abordar esos desafíos y reducir significativamente el tiempo y el esfuerzo necesarios para crear y mantener un inventario de recursos. El resultado es una visión centralizada de los recursos que lo ayuda a mejorar las decisiones de asignación de recursos, identificar y mitigar los riesgos, optimizar los costos y mejorar la visibilidad y la colaboración en general. Este enfoque cierra la brecha entre las soluciones conceptuales y las necesidades de implementación reales para fines operativos, de seguridad y de conformidad.

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

**Requisitos previos **
+ La siguiente Cuentas de AWS activa:
  + *Cuenta de administración*: cuenta centralizada para facturar, crear cuentas y controlar el acceso en toda la organización
  + *Cuenta de auditoría*: centro unificado para la supervisión de la seguridad, controles de conformidad y notificaciones de desviaciones
  + *Cuenta de archivo de registros*: cuenta centralizada para almacenar y analizar los datos recopilados
+ En la cuenta de auditoría, un AWS Config [agregador](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html) que recopila y agrega datos de configuración de las cuentas y regiones de destino
+ En la cuenta de archivo de registros, configure lo siguiente:
  + Un depósito de Amazon Simple Storage Service (Amazon [S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) en el que se almacenan los datos del agregador AWS Config 
  + Una [suscripción](https://docs.aws.amazon.com/quicksight/latest/user/signing-up.html) a Amazon Quick
  + Una [conexión autorizada](https://docs.aws.amazon.com/quicksight/latest/user/athena.html) entre Quick Sight y Amazon Athena
  + [Permisos](https://docs.aws.amazon.com/athena/latest/ug/s3-permissions.html) para acceder al bucket de Amazon S3 mediante una consulta de Athena
+ AWS Command Line Interface [(AWS CLI), [instalado](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) y configurado](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ Permisos para implementar una CloudFormation pila que aprovisione los siguientes recursos:
  + Una AWS Lambda función
  + Una configuración de notificaciones de Amazon S3
  + Base de datos, tablas y vistas de Athena
  + Conjuntos de datos y fuentes de datos de Quick Sight
+ Permisos para ejecutar automatizaciones en AWS Systems Manager
+ Permisos para acceder a Quick

**Limitaciones**
+ La solución se basa en AWS Config. AWS Config por lo general, registra los cambios de configuración de los recursos inmediatamente después de que se detecta un cambio o con la frecuencia que usted especifique. Aunque el sistema hace todo lo posible porque sea así, a veces puede tardar más tiempo.
+ Esta solución solo rastrea [los tipos de recursos AWS Config compatibles](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html).
+ La solución no realiza un seguimiento del inventario de recursos de otros proveedores de nube o en entornos en las instalaciones.
+ Algunos Servicios de AWS no están disponibles en todos Regiones de AWS. Para conocer la disponibilidad regional, consulta la página [de límites y cuotas del servicio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) en la AWS documentación y elige el enlace correspondiente al servicio.

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

El siguiente diagrama muestra un proceso simplificado para recopilar, organizar, analizar y visualizar los datos de configuración y conformidad de varias cuentas de una organización. AWS 

![\[Recopilación y visualización de los datos de configuración y conformidad en toda la organización.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/67a9667a-da19-4dcb-a2fe-62bc94a0541b/images/c9245de1-ac85-4a9e-a0c0-dbcc27a8bb5d.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. De forma periódica, el AWS Config agregador recopila datos de configuración y conformidad sobre los recursos de las cuentas y regiones de destino y, a continuación, entrega los datos al depósito de Amazon S3 de la cuenta de archivo de registros.

1. Al añadir nuevos AWS Config datos al bucket de Amazon S3, se invoca una AWS Lambda función.

1. La función de Lambda divide los datos configurando claves con valores que corresponden a la región y la fecha de cada archivo de la instantánea. Esto ayuda a consultar y procesar de AWS Glue manera eficiente los datos de configuración y conformidad.

1. Amazon Athena utiliza un AWS Glue [esquema](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html) para ejecutar consultas SQL en los datos almacenados en el bucket de Amazon S3. Utiliza los metadatos del esquema AWS Glue para comprender la estructura de los datos.

1. Las [vistas](https://docs.aws.amazon.com/athena/latest/ug/views.html) de Athena definen y extraen los conjuntos de datos de destino.

1. [Los paneles de](https://docs.aws.amazon.com/quicksight/latest/user/using-dashboards.html) Quick Sight le ayudan a visualizar y analizar los conjuntos de datos.

## Tools (Herramientas)
<a name="automate-aws-resource-inventory-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 CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)le ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y gestionarlos a lo largo de su ciclo de vida en Cuentas de AWS todo el mundo. Regiones de AWS
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)proporciona una vista detallada de los recursos que tiene Cuenta de AWS y de cómo están configurados. Le ayuda a identificar cómo se relacionan los recursos entre sí y cómo han cambiado sus configuraciones a lo largo del tiempo. Un AWS Config [agregador](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html) recopila datos AWS Config de configuración y conformidad de varias Cuentas de AWS regiones.
+ [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 utiliza un [catálogo de AWS Glue datos](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro) y un [registro de esquemas](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html).
+ [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.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)es un servicio de administración de cuentas que le ayuda a consolidar múltiples cuentas Cuentas de AWS en una organización que puede crear y administrar de forma centralizada.
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksuite/latest/userguide/quick-bi.html) es un servicio de inteligencia empresarial (BI) que le ayuda a transformar los datos sin procesar en información significativa mediante visualizaciones, paneles e informes interactivos. Quick Sight es un componente fundamental de Amazon Quick.
+ [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.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) lo ayuda a administrar las aplicaciones y la infraestructura que se ejecutan en la Nube de AWS. Simplifica la administración de aplicaciones y recursos, reduce el tiempo necesario para detectar y resolver problemas operativos y le ayuda a administrar sus AWS recursos de forma segura y a escala. [AWS Systems Manager La automatización](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) simplifica las tareas habituales de mantenimiento, implementación y corrección para muchas personas. Servicios de AWS

**Repositorio de código**

La AWS CloudFormation plantilla para este patrón está disponible en el repositorio de [AWS Config visualización](https://github.com/aws-samples/aws-management-and-governance-samples/blob/master/AWSConfig/AWS-Config-Visualization/README.md) GitHub . Esta CloudFormation plantilla implementa un manual de AWS Systems Manager automatización que se configura AWS Config para su uso con Amazon Athena. Esta automatización se prepara AWS Glue para conectarse con el bucket de Amazon S3 designado, crea vistas en Amazon Athena y configura Quick Sight para la visualización del panel.

## Prácticas recomendadas
<a name="automate-aws-resource-inventory-best-practices"></a>
+ Le recomendamos que siga las prácticas recomendadas que se indican en la sección AWS Control Tower sobre [AWS cómo configurar y administrar un AWS entorno seguro y con múltiples cuentas,](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-aws-environment/welcome.html) siguiendo la guía prescriptiva.
+ Le recomendamos que cree un AWS Config agregador que recopile los datos de configuración y conformidad de toda la organización. AWS Para obtener más información, consulte [Agregación de datos multirregional y multicuenta](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html) en la documentación. AWS Config 
+ [Antes de implementar esta solución, le recomendamos que revise la información de precios actual de [Amazon S3 [AWS Config](https://aws.amazon.com/config/pricing/)](https://aws.amazon.com/s3/pricing/), [Athena](https://aws.amazon.com/athena/pricing/) y Quick.](https://aws.amazon.com/quicksight/pricing/)

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

### Implemente la pila CloudFormation
<a name="deploy-the-cfnshort-stack"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Descarga la CloudFormation plantilla. | Descarga la plantilla [Config- QuickSight CloudFormation -Visualization-SSM-Automation.yaml](https://github.com/aws-samples/aws-management-and-governance-samples/blob/master/AWSConfig/AWS-Config-Visualization/cft/Config-QuickSight-Visualization-SSM-Automation.yaml). | Administrador de AWS, administrador de la nube, DevOps ingeniero | 
| Modifique la CloudFormation plantilla. | Complete este paso solo si está utilizando [AWS Control Tower](https://aws.amazon.com/controltower/)y AWS Config está gestionado por AWS Control Tower. Debe modificar la CloudFormation plantilla.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | DevOps ingeniero, administrador de AWS | 
| Crea una CloudFormation pila. | Sigue las instrucciones de [Crear una pila desde la CloudFormation consola](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Tenga en cuenta lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrador de AWS, administrador de la nube, DevOps ingeniero | 

### Ejecución de la automatización en Systems Manager
<a name="run-the-automation-in-sys"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Encuentre su nombre de usuario rápido. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrador de AWS, administrador de la nube, DevOps ingeniero | 
| Busque el nombre del canal de entrega y el nombre del bucket de Amazon S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrador de AWS, administrador de la nube, DevOps ingeniero | 
| Ejecute la automatización en Systems Manager. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrador de AWS, administrador de la nube, DevOps ingeniero | 

### Visualice los datos en Quick Sight
<a name="visualize-data-in-qsight"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Actualice los datos. | Para programar las actualizaciones de los conjuntos de datos de acuerdo con sus requisitos específicos, siga las instrucciones de la sección [Actualización de datos de SPICE](https://docs.aws.amazon.com/quicksight/latest/user/refreshing-imported-data.html). | Administrador, DevOps ingeniero y administrador de la nube de AWS | 
| Cree un análisis de . | Para crear un panel en Quick Sight que le ayude a visualizar los recursos, siga las instrucciones que se indican en Cómo [iniciar un análisis en Quick Sight](https://docs.aws.amazon.com/quicksuite/latest/userguide/creating-an-analysis.html). | Administrador de Quick Suite | 
| Cree un panel de control. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrador de Quick Suite | 

### (Opcional) Limpieza
<a name="optional-clean-up"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Elimine los recursos creados por la automatización de Systems Manager. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrador de AWS, administrador de la nube, DevOps ingeniero | 
| Elimine la CloudFormation pila. | Para eliminar los recursos de la `Config-QuickSight-Visualization-SSM-Automation` pila, sigue las instrucciones de [Eliminar una pila de la CloudFormation consola](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html). | Administrador de AWS, administrador de la nube, DevOps ingeniero | 

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


| Problema | Solución | 
| --- | --- | 
| Amazon Quick está intentando conectarse a esa región `us-east-1` Región de AWS, pero no está permitida la creación de recursos en esa región. | Una política de control de servicios restringe tu suscripción a Amazon Quick en esta región. En la política de control de servicios, especifique el objetivo manualmente Región de AWS. Sustituya `<REGION_ID>` por el identificador de región correspondiente:<pre>https://<REGION_ID>.quicksight.aws.amazon.com/sn/start/dashboards</pre>A continuación, se muestra un ejemplo:<pre>https://eu-central-1.quicksight.aws.amazon.com/sn/start/dashboards</pre> | 
| En Amazon Athena, aparece el siguiente mensaje:`Before you run your first query, you need to set up a query result location in Amazon S3.` | Asegúrese de haber preparado un bucket de Amazon S3 en el que almacenará los resultados de las consultas de Amazon Athena. A continuación, siga las instrucciones de [Especificación de una ubicación de resultados de consulta mediante la consola de Athena](https://docs.aws.amazon.com/athena/latest/ug/query-results-specify-location-console.html). | 

## Recursos relacionados
<a name="automate-aws-resource-inventory-resources"></a>

**AWS documentación**
+ [AWS Config documentación](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)
+ [Documentación de Amazon Quick](https://docs.aws.amazon.com/quicksuite/latest/userguide/what-is.html)

**AWS entrada de blog**
+ [Automatice la visualización de AWS Config datos con AWS Systems Manager](https://aws.amazon.com/blogs/mt/automate-aws-config-data-visualization-with-aws-systems-manager/)
+ [Cómo registrar periódicamente los cambios en la configuración de los recursos con AWS Config](https://aws.amazon.com/blogs/mt/how-to-record-resource-configuration-changes-periodically-with-aws-config/)

**Otros recursos**
+ [Centro de aprendizaje comunitario Amazon Quick](https://community.amazonquicksight.com/c/learning-center/10/none)
+ [Galería de la comunidad Amazon Quick](https://community.amazonquicksight.com/c/gallery/44)

# Construye una AWS landing zone que incluya MongoDB Atlas
<a name="build-aws-landing-zone-that-includes-mongodb-atlas"></a>

*Igor Alekseev, Amazon Web Services*

*Anuj Panchal, MongoDB*

## Resumen
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-summary"></a>

Este patrón describe cómo construir una zona de AWS landing que esté integrada con un clúster de MongoDB Atlas. La infraestructura se implementa automáticamente mediante un script de Terraform. 

Un AWS entorno multicuenta bien estructurado, denominado [landing zone](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-migration/aws-landing-zone.html), ofrece escalabilidad y seguridad, especialmente para las empresas. Sirve de base para la rápida implementación de cargas de trabajo y aplicaciones, y permite garantizar la confianza en la seguridad y la infraestructura. La creación de una zona de aterrizaje requiere una cuidadosa consideración de los factores técnicos y empresariales, incluida la estructura de la cuenta, las redes, la seguridad y la gestión del acceso. Estas consideraciones deben coincidir con los objetivos empresariales y de crecimiento futuro de su organización.

Los casos de uso de este patrón incluyen lo siguiente.
+ **Plataformas SaaS y PaaS empresariales: las** aplicaciones de software como servicio (SaaS) multiusuario y las plataformas de plataforma como servicio (PaaS) que se ejecutan AWS pueden utilizar esta configuración para ayudar a proporcionar un acceso seguro y privado a MongoDB Atlas sin exponer los datos a través de la Internet pública.
+ **Sectores altamente regulados: las** cargas de trabajo bancarias, de servicios financieros, sanitarias y gubernamentales que requieren el estricto cumplimiento de normas como la Ley de Portabilidad y Responsabilidad de los Seguros Médicos (HIPAA), el Estándar de Seguridad de Datos de la Industria de Tarjetas de Pago (PCI DSS), los Controles de Sistemas y Organizaciones (2) y el Reglamento General de Protección de Datos (GDPRSOC2) se benefician de:
  + La conectividad privada y cifrada mediante AWS PrivateLink
  + Una alta disponibilidad de conjuntos de réplicas de MongoDB en multi-AZ
+ ** AI/ML Cargas de trabajo seguras: las** canalizaciones de entrenamiento o inferencia en Amazon Bedrock, SageMaker Amazon AI o modelos de IA personalizados pueden recuperar y almacenar datos de forma segura en MongoDB Atlas over. PrivateLink
+ **Recuperación ante desastres y continuidad empresarial**: el diseño de multi-AZ garantiza que ningún error en las zonas de disponibilidad interrumpa las cargas de trabajo. Una réplica de Atlas distribuida en todas las zonas de disponibilidad garantiza la conmutación por error automática. Esto es fundamental para servicios permanentes, como las aplicaciones de tecnología financiera (fintech), la banca digital o la supervisión del sector sanitario.

## Requisitos previos y limitaciones
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-prereqs"></a>

**Requisitos previos **
+ El propietario de la organización tiene acceso a MongoDB Atlas para crear claves de API de Atlas. Para obtener información sobre este requisito, consulte [Administración del acceso a la organización](https://www.mongodb.com/docs/atlas/tutorial/manage-organizations/) en la documentación de MongoDB.
+ Una [Cuenta de AWS](https://aws.amazon.com/resources/create-account/) activa.
+ [Terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli), instalado y configurado.
+ Un clúster de MongoDB Atlas, creado con la versión 6.0 o posterior de MongoDB.
+ Conocimientos de MongoDB y MongoDB Atlas. Para obtener más información, consulte la [documentación de MongoDB Atlas](https://www.mongodb.com/docs/atlas/).

**Limitaciones**
+ Algunos no están disponibles en todos. Servicios de AWS Regiones de AWS Para obtener información sobre la disponibilidad en regiones, consulte [Servicios de AWS by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para ver los puntos de conexión específicos, consulte [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) y elija el enlace del servicio.

## Arquitectura
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-architecture"></a>

El siguiente diagrama de arquitectura de referencia ilustra la configuración de despliegue de una AWS landing zone que está integrada con un punto final privado de MongoDB Atlas. Esta arquitectura de referencia demuestra cómo establecer una zona de AWS aterrizaje segura, escalable y de alta disponibilidad integrada con MongoDB Atlas. Al combinar las AWS mejores prácticas, como el despliegue en zonas de disponibilidad múltiples, los controles de seguridad con privilegios mínimos y la conectividad privada, este diseño permite a las organizaciones proporcionar un entorno sólido para las aplicaciones modernas.

![\[Arquitectura Multi-AZ para AWS Landing Zone integrada con MongoDB Atlas.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/72d335b9-b5b1-4fe2-9972-65edbec60ab1/images/82a8cc98-6f22-4e28-a236-57a809930055.png)


Esta arquitectura se compone de lo siguiente:

**VPC**
+ Una nube privada virtual (VPC) que se extiende por las tres zonas de disponibilidad.
+ La VPC se subdivide en subredes alineadas con cada zona de disponibilidad. Estas subredes distribuyen las cargas de trabajo para lograr una alta disponibilidad.

**Acceso a Internet**
+ Una puerta de enlace de Internet proporciona conectividad saliente a Internet para los recursos que la necesitan, como los hosts de aplicaciones o de bastión.
+ Las subredes públicas pueden albergar puertas de enlace NAT, que permiten que las cargas de trabajo de las subredes privadas descarguen actualizaciones, parches y otros paquetes necesarios sin exponerlos directamente a la red pública de Internet.

**Subredes privadas y tablas de enrutamiento**
+ Los componentes de la aplicación, microservicios u otros recursos confidenciales suelen estar en subredes privadas.
+ Las tablas de enrutamiento dedicadas controlan los flujos de tráfico. Los enrutamientos dirigen el tráfico saliente desde las subredes privadas a las puertas de enlace NAT para conseguir un acceso seguro a Internet solo desde la salida.
+ Las solicitudes entrantes de Internet fluyen a través de equilibradores de carga elásticos o hosts bastión (si se utilizan) en subredes públicas; a continuación, se enrutan adecuadamente a los recursos de subredes privadas.

**Conectividad con MongoDB Atlas a través de PrivateLink**
+ La arquitectura utiliza PrivateLink (a través de un punto final de VPC) conectarse de forma segura a MongoDB Atlas sin exponer sus datos a la Internet pública.
+ Las solicitudes permanecen en la red troncal AWS . Los datos en tránsito se benefician del PrivateLink cifrado y nunca se enrutan a través de la Internet pública.
+ La VPC dedicada de MongoDB Atlas aloja sus nodos principal y secundario y proporciona un entorno seguro y aislado para su clúster de base de datos administrado.

**Multi-AZ deployment (Implementación Multi-AZ)**
+ Los componentes críticos de la infraestructura (como las puertas de enlace NAT y las subredes de aplicaciones) se distribuyen en, al menos, tres zonas de disponibilidad. Si una zona de disponibilidad sufre una interrupción, esta arquitectura garantiza que las cargas de trabajo de las zonas de disponibilidad restantes permanezcan operativas.
+ De forma predeterminada, MongoDB Atlas ofrece una alta disponibilidad a través de conjuntos de réplicas y garantiza que la capa de base de datos siga teniendo tolerancia a errores. La infraestructura crítica se distribuye en al menos tres zonas de disponibilidad para garantizar su resiliencia.

## Tools (Herramientas)
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-tools"></a>

**Servicios de AWS**
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) lo ayuda a reemplazar las credenciales codificadas en su código, incluidas contraseñas, con una llamada a la API para recuperar el secreto mediante programación.

**Otros productos y herramientas**
+ [MongoDB Atlas](https://www.mongodb.com/atlas) es una base de datos como servicio (DbaaS) completamente administrada para implementar y administrar bases de datos de MongoDB en la nube.
+ [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. En este patrón, se utiliza Terraform para ejecutar un script que facilite el despliegue de los recursos necesarios en AWS MongoDB Atlas.

**Repositorio de código**

El código de este patrón está disponible en el repositorio [Atlas AWS Landing Zone y en MongoDB](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone). GitHub 

## Epics
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-epics"></a>

### Finalización de las tareas de descubrimiento y evaluación
<a name="complete-discovery-and-assessment"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Identifique a las partes interesadas principales. | Identifique a todas las partes interesadas clave y a los miembros del equipo que participan en el proyecto de la zona de aterrizaje. Esto podría incluir roles como los siguientes:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-aws-landing-zone-that-includes-mongodb-atlas.html) | Líder de migración | 
| Cree un esquema estructural. | Cree un plano que describa la estructura deseada de su landing zone AWS y de la que dispone de MongoDB Atlas. | Líder de migración | 
| Cree un plan de arquitectura. | Trabaje con los arquitectos de las aplicaciones para analizar los requisitos y diseñar una arquitectura resiliente y tolerante a errores. Este patrón proporciona una plantilla de arquitectura inicial para su referencia. Puede personalizar esta plantilla para adaptarla a las necesidades de seguridad e infraestructura de su organización. | Arquitecto de la nube | 
| Planifique la configuración y la implementación. | Determine, con todas las partes interesadas, cómo se implementará la arquitectura, cómo se implementarán las medidas de seguridad y cualquier otro aspecto para garantizar que todo se alinea con los intereses de la organización y del equipo solicitante. | Líder de migración, ingeniero y administrador de bases de datos DevOps  | 

### Configuración del entorno de MongoDB Atlas
<a name="set-up-the-mongodb-atlas-environment"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Clonar el repositorio. | Clona el código del [GitHub repositorio](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone) ejecutando el comando:<pre>git clone https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone</pre> | Desarrollador de aplicaciones, DevOps ingeniero | 
| Obtenga el ID de su organización de Atlas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-aws-landing-zone-that-includes-mongodb-atlas.html) | Administrador de base de datos | 
| Genere claves de API a nivel de organización de Atlas. | Para generar las claves de API a nivel de organización en Atlas, siga las instrucciones de la [documentación de MongoDB](https://www.mongodb.com/docs/atlas/configure-api-access/#grant-programmatic-access-to-an-organization). | Administrador de base de datos | 
| Crea un secreto en AWS Secrets Manager. | Guarde las claves de la API de MongoDB Atlas generadas en el paso anterior como un secreto clave-valor en Secrets Manager. Para obtener instrucciones, consulte la [documentación de Secretes Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). | DevOps ingeniero | 
| Seleccione la capa del clúster de Atlas. | Siga las instrucciones de la [documentación de MongoDB](https://www.mongodb.com/docs/atlas/sizing-tier-selection/) para seleccionar la capa del clúster de Atlas correcta. | Administrador de base de datos | 

### Configure los AWS entornos
<a name="set-up-the-aws-environments"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Modifique el script de Terraform. | En tu copia local del GitHub repositorio, actualiza el nombre secreto en el [modules/mongodb-atlas/mainarchivo.tf](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/3748350730ec2ac7ab64662d536b67b4840c667c/modules/mongodb-atlas/main.tf#L12) (línea 12) para que Terraform pueda recuperar las credenciales de Secrets Manager durante el despliegue. | DevOps ingeniero | 
| Cree un identificador de clave de AWS acceso y una clave secreta. | Para crear tu identificador de clave de AWS acceso y tu clave secreta, sigue las instrucciones del artículo de AWS Re:post [¿Cómo se crea una clave de AWS acceso](https://repost.aws/knowledge-center/create-access-key)?Se recomienda asignar políticas con los privilegios mínimos necesarios, pero en este caso, seleccione la política de `AdministratorAccess`.Tras crear la clave de acceso, consulte las [prácticas recomendadas de seguridad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) para obtener información sobre las prácticas recomendadas para gestionar las claves de acceso. | DevOps ingeniero | 
| Asigne las direcciones IP elásticas- | Asigne al menos dos direcciones IP elásticas IDs. Para obtener instrucciones, consulte la [documentación de Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithEIPs.html). | DevOps ingeniero | 
| Cree un bucket de S3. | Cree un bucket de S3 para almacenar el estado de su implementación de Terraform siguiendo las instrucciones de la [documentación de Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)). | DevOps ingeniero | 
| Actualice el bucket de S3 para su almacenamiento. | Actualice la información del bucket de S3 en su versión local de [environments/development/main.tf](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/83e0b52cc4a8c12b24b54edeecbae496880d3615/environments/development/main.tf#L16) para que coincida con el nombre y la región del bucket que creó en el paso anterior y especifique un key prefijo. Por ejemplo:<pre>terraform {<br />       ...<br />  backend "s3" {<br />    bucket = "startup-name-product-terraform"<br />    key    = "network/dev"<br />    region = "ap-southeast-1"<br />  }<br />}</pre>En este ejemplo, puede configurar Terraform para que use la clave de prefijo `network/dev` para organizar el archivo de estado de Terraform. Puede cambiar el valor a `prod` o `staging` para que coincida con el entorno que desea crear. Para obtener información acerca del uso de varios entornos, consulte el último paso de esta sección.Para obtener más información sobre los prefijos de claves de Amazon S3, consulte [Organizar objetos con prefijos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) en la documentación de Amazon S3. | DevOps ingeniero | 
| Establezca las variables de Terraform. | La zona de aterrizaje de muestra define los valores de las variables de entrada mediante los [archivos de definición de variables de Terraform](https://www.terraform.io/docs/language/values/variables.html#variable-definitions-tfvars-files).El archivo de variables se encuentra en [environments/development/variables.tf.](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/environments/development/variables.tf) Puede establecer los valores de las variables en el archivo [environments/development/terraform.tfvars.](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/environments/development/terraform.tfvars) Configure estas variables como se describe en el [archivo Léame](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/README.md#terraform-variables) del repositorio. GitHub  | DevOps ingeniero | 
| Configure las variables de entorno. | Si planea ejecutar el script de Terraform en su máquina local, configure las siguientes variables de entorno:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/build-aws-landing-zone-that-includes-mongodb-atlas.html)Para obtener más información sobre la configuración de variables de entorno, consulte la [documentación de AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html#envvars-set). | DevOps ingeniero | 
| Compruebe las configuraciones de VPC. | Para seguir las prácticas recomendadas por AWS, configure los ajustes de la VPC y la subred CIDRs, las puertas de enlace NAT, las rutas y las tablas de rutas en el script Terraform para satisfacer las necesidades de su organización. Para obtener información específica, consulta el [archivo Léame](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/README.md#vpc-configurations) del repositorio. GitHub  | DevOps ingeniero | 
| Etiquetar recursos de . | Puede etiquetar sus AWS recursos para supervisarlos cuando se desplieguen mediante el script Terraform. Para ver ejemplos, consulta el [archivo Léame](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/README.md#resource-taggings) del GitHub repositorio. Para obtener información sobre la supervisión de los recursos mediante etiquetas de coste, uso, etc., consulte [Activar etiquetas de asignación de costes definidas por](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/activating-tags.html) el usuario en la AWS Billing documentación. | DevOps ingeniero | 
| Utilice varios entornos. | El GitHub repositorio proporciona una carpeta de `development` entorno. También puede añadir sus propios entornos en la carpeta de entornos.Para añadir un entorno, copie la carpeta `development` en una nueva carpeta (por ejemplo, `prod` o `staging`) situada en `environments`. A continuación, puede actualizar el archivo `terraform.tfvars` con el nuevo valor. | DevOps ingeniero | 

### Implementación de la zona de aterrizaje
<a name="deploy-the-landing-zone"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Inicialice el directorio de trabajo de Terraform. | Para iniciar el directorio de trabajo y descargar los paquetes necesarios, ejecute el comando:<pre>terraform init</pre> | DevOps ingeniero | 
| Cree un plan de ejecución. | Para crear un plan de ejecución y visualizar los cambios que Terraform realizará en su infraestructura, ejecute el comando:<pre>terraform plan</pre> | DevOps ingeniero | 
| Implemente los cambios. | Para implementar los cambios en su infraestructura tal como se describe en el código, ejecute el comando:<pre>terraform apply</pre> | DevOps ingeniero | 
| Valide la implementación. | Valide los componentes que Terraform creó o modificó en su infraestructura.Para probar la configuración, aprovisione un recurso informático (por ejemplo, una EC2 instancia o AWS Lambda función de Amazon) en la VPC o adjunto a ella. | DevOps ingeniero, desarrollador de aplicaciones | 

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


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Elimine recursos. | Cuando haya terminado las pruebas, ejecute el siguiente comando para eliminar los recursos que Terraform haya implementado en su infraestructura:<pre>terraform destroy</pre> | DevOps ingeniero | 

## Recursos relacionados
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-resources"></a>

**Detectar y evaluar**
+ [Consejos administrativos para la configuración de la landing zone](https://docs.aws.amazon.com/controltower/latest/userguide/tips-for-admin-setup.html) (AWS Control Tower documentación)
+ [Expectativas para la configuración de la zona de aterrizaje](https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-configure.html) (AWS Control Tower documentación)
+ [Mejores prácticas para las actualizaciones de las zonas de landing zone](https://docs.aws.amazon.com/controltower/latest/userguide/lz-update-best-practices.html) (AWS Control Tower documentación)

**Configuración del Atlas y los entornos de MongoDB AWS **
+ [Obtener MongoDB Atlas](https://aws.amazon.com/marketplace/pp/prodview-pp445qepfdy34) (AWS Marketplace)
+ [Memoria](https://docs.atlas.mongodb.com/sizing-tier-selection/#memory) (documentación de MongoDB Atlas)
+ [Ejemplo de dimensionamiento con conjuntos de datos de muestra de Atlas](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#example--the-service-sample-data-sets) (documentación de MongoDB Atlas)
+ [Ejemplo de dimensionamiento para aplicaciones móviles](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#example--mobile-app) (documentación de MongoDB Atlas)
+ [Tráfico de red](https://docs.atlas.mongodb.com/sizing-tier-selection/#network-traffic) (documentación de MongoDB Atlas)
+ [Escalado automático de clústeres](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#cluster-auto-scaling) (documentación de MongoDB Atlas)
+ [Plantilla de dimensionamiento de Atlas](https://www.mongodb.com/docs/atlas/sizing-tier-selection/) (documentación de MongoDB Atlas)
+ [Configurar un emparejamiento de red](https://docs.atlas.mongodb.com/security-vpc-peering/) (documentación de MongoDB Atlas)
+ [Puntos de conexión privados en Atlas](https://docs.atlas.mongodb.com/security-private-endpoint/) (documentación de MongoDB Atlas)
+ [Cifrado en el nivel de campo del cliente](https://docs.mongodb.com/manual/core/security-client-side-encryption) (documentación de la base de datos de MongoDB)
+ [Cifrado automático](https://docs.mongodb.com/manual/core/security-automatic-client-side-encryption) (documentación de la base de datos de MongoDB)
+ [Selección de un nivel de clúster](https://www.mongodb.com/docs/atlas/manage-clusters/#select-cluster-tier) (documentación de MongoDB Atlas)

**Implementación de la zona de aterrizaje**
+ [Terraform en AWS](https://docs.aws.amazon.com/whitepapers/latest/cicd_for_5g_networks_on_aws/terraform.html) (*documento técnico sobre CI/CD para redes 5G en AWS*)
+ [MongoDB Atlas con Terraform](https://www.mongodb.com/developer/products/atlas/mongodb-atlas-with-terraform/) (documentación de MongoDB)

# Configure los registros de flujo de VPC para la centralización en Cuentas de AWS
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts"></a>

*Benjamin Morris y Aman Kaur Gandhi, Amazon Web Services*

## Resumen
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-summary"></a>

En una nube privada AWS virtual (VPC), la función de registros de flujo de la VPC puede proporcionar datos útiles para la resolución de problemas operativos y de seguridad. Sin embargo, existen limitaciones en cuanto al uso de los registros de VPC Flow en entornos multicuenta. En concreto, no se admiten los registros de flujos entre cuentas de Amazon CloudWatch Logs. En su lugar, puede centralizar los registros configurando un bucket de Amazon Simple Storage Service (Amazon S3) con la política de bucket adecuada.

**nota**  
En este patrón se detallan los requisitos para enviar los registros de flujo a una ubicación centralizada. Sin embargo, si también desea que los registros estén disponibles localmente en las cuentas de los miembros, puede crear varios registros de flujo para cada VPC. Los usuarios que no tengan acceso a la cuenta de archivo de registros pueden ver los registros de tráfico para solucionar los problemas que tengan. Como alternativa, puede configurar un registro de flujo único para cada VPC que envíe registros a CloudWatch Logs. A continuación, puede usar un filtro de suscripción a Amazon Data Firehose para reenviar los registros a un bucket de S3. Para obtener más información, consulte la sección [Recursos relacionados](#configure-vpc-flow-logs-for-centralization-across-aws-accounts-resources).

## Requisitos previos y limitaciones
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-prereqs"></a>

**Requisitos previos**
+ Una activa Cuenta de AWS
+ Una AWS Organizations organización con una cuenta que se usa para centralizar los registros (por ejemplo, Log Archive)

**Limitaciones**

Si utilizas la clave administrada AWS Key Management Service (AWS KMS) `aws/s3` para cifrar tu depósito central, no recibirá los registros de otra cuenta. En su lugar, verá un código de error 400 `Unsuccessful` con un mensaje como `"LogDestination: <bucketName> is undeliverable"` para el `ResourceId` indicado. Esto se debe a que las claves AWS administradas de una cuenta no se pueden compartir entre cuentas. La solución consiste en utilizar el cifrado gestionado de Amazon S3 (SSE-S3) o una clave gestionada por el AWS KMS cliente que pueda compartir con las cuentas de los miembros.

## Arquitectura
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-architecture"></a>

**Arquitectura de destino**

En el siguiente diagrama se implementan dos registros de flujo para cada VPC. Una de ellas envía los registros a un grupo de CloudWatch registros local. El otro envía los registros a un bucket de S3 en una cuenta de registro centralizada. La política de bucket permite al servicio de entrega de registros escribir registros en el bucket.

**nota**  
A partir de noviembre de 2023, AWS ahora es compatible con la [clave de condición aws: SourceOrg ID](https://aws.amazon.com/about-aws/whats-new/2023/11/organization-wide-iam-condition-keys-restrict-aws-service-to-service-requests/). Esta condición le permite denegar la escritura en el depósito centralizado a cuentas ajenas a su AWS Organizations organización.

![\[Desde cada VPC, un registro de flujo envía registros CloudWatch y otro lo envía al bucket de S3.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/718c29f4-a035-47ab-9c58-bd7d5c1ca77e/images/0b502d82-a6ce-4832-b854-99181d2ed834.png)


**Automatización y escala**

Cada VPC está configurada para enviar registros al bucket de S3 en la cuenta de registro central. Use una de las siguientes soluciones de automatización para asegurarse de que los registros de flujo estén configurados correctamente:
+ [CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)
+ [AWS Control Tower Generador de cuentas para Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/taf-account-provisioning.html)
+ [Una AWS Config regla con corrección](https://aws.amazon.com/blogs/mt/how-to-enable-vpc-flow-logs-automatically-using-aws-config-rules/)

## Tools (Herramientas)
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-tools"></a>

**Herramientas**
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) le ayuda a centralizar los registros de todos sus sistemas y aplicaciones Servicios de AWS para que pueda supervisarlos y archivarlos de forma segura.
+ [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.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) le ayuda a lanzar AWS recursos en una red virtual que haya definido. Esa red virtual es similar a la red tradicional que utiliza en su propio centro de datos, con los beneficios de usar la infraestructura escalable de AWS. Este patrón utiliza la característica [Registros de flujo de la VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) para capturar información acerca del tráfico IP entrante y saliente de las interfaces de red de en su VPC.

## Prácticas recomendadas
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-best-practices"></a>

El uso de la infraestructura como código (IaC) puede simplificar en gran medida el proceso de implementación de los registros de VPC Flow. Al resumir las definiciones de implementación de la VPC para incluir una construcción de recursos de registro de flujo, se implementará VPCs automáticamente con los registros de flujo. Esto se demuestra en la siguiente sección.

**Registros de flujo centralizados**

Ejemplo de sintaxis para agregar registros de flujo centralizados a un módulo de VPC en HashiCorp Terraform: este código crea un registro de flujo que envía registros desde una VPC a un bucket S3 centralizado. Tenga en cuenta que este patrón no incluye la creación del bucket de S3. Para ver las instrucciones de política de bucket recomendadas, consulte la sección de [Información adicional](#configure-vpc-flow-logs-for-centralization-across-aws-accounts-additional).

```
variable "vpc_id" { type = string }
locals { custom_log_format_v5 = "$${version} $${account-id} $${interface-id} $${srcaddr} $${dstaddr} $${srcport} $${dstport} $${protocol} $${packets} $${bytes} $${start} $${end} $${action} $${log-status} $${vpc-id} $${subnet-id} $${instance-id} $${tcp-flags} $${type} $${pkt-srcaddr} $${pkt-dstaddr} $${region} $${az-id} $${sublocation-type} $${sublocation-id} $${pkt-src-aws-service} $${pkt-dst-aws-service} $${flow-direction} $${traffic-path}" }
resource "aws_flow_log" "centralized_flow_log" {
  log_destination      = "arn:aws:s3:::centralized-vpc-flow-logs-<log_archive_account_id>" # Optionally, a prefix can be added after the ARN.
  log_destination_type = "s3"
  traffic_type         = "ALL"
  vpc_id               = var.vpc_id
  log_format           = local.custom_log_format_v5 # If you want fields from VPC Flow Logs v3+, you will need to create a custom log format.
}
```

Para obtener más información sobre el formato de registro personalizado, consulte la [documentación de Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-log-records.html#flow-logs-custom).

**Registros de flujo locales**

Ejemplo de sintaxis para agregar registros de flujo locales a un módulo de VPC en Terraform con los permisos necesarios: este código crea un registro de flujo que envía registros desde una VPC a un grupo de registros local. CloudWatch 

```
data "aws_region" "current" {}
variable "vpc_id" { type = string }
resource "aws_iam_role" "local_flow_log_role" {
  name = "flow-logs-policy-${var.vpc_id}"
  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [{
      "Effect": "Allow",
      "Principal": {"Service": "vpc-flow-logs.amazonaws.com"},
      "Action": "sts:AssumeRole"
  }]
}
EOF
}
resource "aws_iam_role_policy" "logs_permissions" {
  name = "flow-logs-policy-${var.vpc_id}"
  role = aws_iam_role.local_flow_log_role.id
  policy = <<EOF
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [{
      "Action": ["logs:CreateLog*", "logs:PutLogEvents", "logs:DescribeLog*", "logs:DeleteLogDelivery"],
      "Effect": "Allow",
      "Resource": "arn:aws:logs:${data.aws_region.current.name}:*:log-group:vpc-flow-logs*"
  }]
}
EOF
}
resource "aws_cloudwatch_log_group" "local_flow_logs" {
  name              = "vpc-flow-logs/${var.vpc_id}"
  retention_in_days = 30
}
resource "aws_flow_log" "local_flow_log" {
  iam_role_arn    = aws_iam_role.local_flow_log_role.arn
  log_destination = aws_cloudwatch_log_group.local_flow_logs.arn
  traffic_type    = "ALL"
  vpc_id          = var.vpc_id
}
```

## Epics
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-epics"></a>

### Implemente la infraestructura de registros de VPC Flow
<a name="deploy-vpc-flow-logs-infrastructure"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Determine la estrategia de cifrado y cree la política para el bucket de S3 central. | El depósito central no admite la AWS KMS `aws/s3` clave, por lo que debes usar SSE-S3 o una clave administrada por el cliente. AWS KMS Si usas una AWS KMS clave, la política de claves debe permitir que las cuentas de los miembros usen la clave. | Conformidad | 
| Cree el bucket de registro de flujo central. | Cree el bucket central al que se enviarán los registros de flujo y aplique la estrategia de cifrado que eligió en el paso anterior. Debe estar en un archivo de registro o en una cuenta con un propósito similar.Consulte la política de bucket en la sección de [Información adicional](#configure-vpc-flow-logs-for-centralization-across-aws-accounts-additional) y aplíquela a su bucket central después de actualizar los marcadores de posición con los valores específicos de su entorno. | AWS general | 
| Configure los registros de VPC Flow para enviar los registros al bucket de registros de flujo central. | Agregue registros de flujo a cada VPC de la que desee recopilar datos. La forma más escalable de hacerlo es utilizar herramientas de IaC como AFT o AWS Cloud Development Kit (AWS CDK). Por ejemplo, puede crear un módulo Terraform que despliegue una VPC junto con un registro de flujo. Si es necesario, añada los registros de flujo manualmente. | Administrador de red | 
| Configure los registros de flujo de VPC para enviarlos a los registros locales CloudWatch . | (Opcional) Si quieres que los registros de flujo estén visibles en las cuentas en las que se generan los registros, crea otro registro de flujo para enviar datos a los CloudWatch registros de la cuenta local. Como alternativa, puede enviar los datos a un bucket de S3 específico de la cuenta en la cuenta local. | AWS general | 

## Recursos relacionados
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-resources"></a>
+ [Cómo facilitar el análisis de datos y cumplir los requisitos de seguridad mediante el uso de datos de registro de flujo centralizados](https://aws.amazon.com/blogs/security/how-to-facilitate-data-analysis-and-fulfill-security-requirements-by-using-centralized-flow-log-data/) (entrada AWS del blog)
+ [Cómo habilitar automáticamente los registros de flujo de VPC mediante AWS Config reglas](https://aws.amazon.com/blogs/mt/how-to-enable-vpc-flow-logs-automatically-using-aws-config-rules/) (AWS entrada del blog)

## Información adicional
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-additional"></a>

**Política de bucket**

Este ejemplo de política de bucket se puede aplicar a su bucket central de S3 para los registros de flujo después de añadir valores en los nombres de los marcadores de posición.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AWSLogDeliveryWrite",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::<BUCKET_NAME>/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control",
                    "aws:SourceOrgID": "<ORG_ID>"
                }
            }
        },
        {
            "Sid": "AWSLogDeliveryCheck",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::<BUCKET_NAME>",
            "Condition": {
                "StringEquals": {
                    "aws:SourceOrgID": "<ORG_ID>"
                }
            }
        },
        {
            "Sid": "DenyUnencryptedTraffic",
            "Effect": "Deny",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::<BUCKET_NAME>/*",
                "arn:aws:s3:::<BUCKET_NAME>"
            ],
            "Condition": {
                "Bool": {
                    "aws:SecureTransport": "false"
                }
            }
        }
    ]
}
```

# Administre los conjuntos de AWS permisos de forma dinámica mediante Terraform
<a name="manage-aws-permission-sets-dynamically-by-using-terraform"></a>

*Vinicius Elias y Marcos Vinicius Pinto Jordao, Amazon Web Services*

## Resumen
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-summary"></a>

AWS IAM Identity Center mejora AWS Identity and Access Management (IAM) al proporcionar un centro centralizado para administrar el acceso de inicio de sesión único a las aplicaciones en la nube Cuentas de AWS y las aplicaciones en la nube. Sin embargo, la administración manual de los [conjuntos de permisos](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) de IAM Identity Center puede resultar cada vez más compleja y propensa a errores a medida que su organización crece. Esta complejidad puede provocar posibles brechas de seguridad y sobrecarga administrativa.

Esta solución le permite administrar los conjuntos de permisos mediante la infraestructura como código (IaC) con una canalización de integración y entrega continuas (CI/CD) creada con Servicios de AWS nativos. Permite una integración perfecta del mecanismo de asignación de conjuntos de permisos con los eventos AWS Control Tower del ciclo de vida o con un entorno de [Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html). Este enfoque proporciona configuraciones de identidad dinámicas tanto para las nuevas como para las existentes Cuentas de AWS.

 EventBridge Las reglas de Amazon supervisan Cuenta de AWS la creación y las actualizaciones, lo que ayuda a que las configuraciones de identidad permanezcan sincronizadas con la estructura de la organización. Tras crear o actualizar las cuentas en AWS Control Tower o en AFT, se activa la canalización. Evalúa un conjunto de archivos JSON con definiciones de conjuntos de permisos y reglas de asignación. Luego, la canalización aplica y sincroniza la configuración en todas las cuentas.

A continuación, se enumeran las ventajas de este enfoque:
+ **Coherencia**: elimina las desviaciones de configuración manual en toda AWS la organización
+ **Auditabilidad**: mantiene un historial completo de todos los cambios en la administración de identidades.
+ **Escalabilidad**: aplica automáticamente las configuraciones a medida que su AWS entorno crece
+ **Seguridad**: reduce los errores humanos en la asignación de permisos.
+ **Conformidad**: facilita el cumplimiento de los requisitos reglamentarios mediante cambios documentados y reglas de asignación.

## Requisitos previos y limitaciones
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-prereqs"></a>
+ Un entorno de múltiples cuentas con AWS Control Tower y AWS Organizations configuración. Opcionalmente, puede usar AFT con AWS Control Tower.
+ Un administrador delegado del IAM Identity Center Cuenta de AWS para recibir la solución. Para obtener más información, consulte [Delegated administration](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html) en la documentación de IAM Identity Center.
+ Un repositorio del sistema de control de versiones (VCS) para gestionar el código principal. [Para ver un ejemplo, consulte el repositorio de la GitHub solución.](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline/tree/main/samples/basic)
+  AWS Recursos necesarios para la administración del backend de Terraform, como un bucket de Amazon Simple Storage Service (Amazon S3) y una tabla de Amazon DynamoDB.

**Limitaciones**
+ La canalización utiliza recursos AWS nativos y Terraform de código abierto. La canalización no está preparada para hacer llamadas a ecosistemas de terceros.
+ Algunos Servicios de AWS no están disponibles en todos Regiones de AWS. Para obtener información sobre la disponibilidad en regiones, consulte [AWS Services by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para ver los puntos de conexión específicos, consulte [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) y elija el enlace del servicio.

## Arquitectura
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-architecture"></a>

En el siguiente diagrama se muestran los componentes y el flujo de trabajo de este patrón.

![\[Componentes y flujo de trabajo para administrar los conjuntos de permisos de AWS mediante Terraform.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/69dc79c7-b4cd-4ad0-b0d2-d58cf0c7adaa/images/649e299c-1142-405a-8982-4a6b2e595d53.png)


**AWS Control Tower los eventos fluyen**

La solución comienza con la integración de los eventos que provienen de AFT AWS Control Tower o de AFT. La elección entre un servicio u otro se lleva a cabo en el momento de la implementación mediante la definición de variables. Independientemente del método utilizado, la canalización se activa cada vez que se crea o actualiza una cuenta. La canalización reconcilia las políticas almacenadas en el repositorio de administración de conjuntos de permisos.

Los siguientes son los eventos AWS Control Tower del ciclo de vida:
+ `CreateManagedAccount`: cuando se crea una cuenta nueva.
+ `UpdateManagedAccount`: cuando se actualiza una cuenta existente.

**Enrutamiento de eventos**

EventBridge sirve como servicio central de procesamiento de eventos, capturando los eventos generados en la AWS Control Tower cuenta. Cuando se producen eventos, los dirige de EventBridge forma inteligente a un bus de eventos centralizado en la cuenta de la solución. AWS Control Tower los eventos del ciclo de vida siguen patrones de enrutamiento distintos. Si se define AFT como la fuente del evento, la cuenta de administración de AFT gestiona los eventos en lugar de la AWS Control Tower cuenta. Esta arquitectura basada en eventos permite respuestas automatizadas a los cambios organizativos sin intervención manual.

**Proceso de integración de AFT**

Cuando los eventos AWS Control Tower del ciclo de vida llegan a la cuenta de administración de la AFT, activan automáticamente varios procesos posteriores que son intrínsecos a la AFT. Una vez que se completa el flujo de trabajo de personalización de la cuenta de AFT, publica un mensaje en el tema dedicado de Amazon Simple Notification Service (Amazon SNS) `aft-notifications`. Ese tema activa la `aft-new-account-forward-event` AWS Lambda función que implementa esta solución. La función de Lambda envía el evento al bus de eventos de la cuenta de la solución, donde se utiliza para iniciar la canalización.

**Canalización de infraestructura como código**

La canalización de soluciones funciona como un mecanismo de implementación totalmente automatizado. El AWS CodePipeline servicio monitorea continuamente el repositorio para detectar cambios. Al detectar nuevas confirmaciones, inicia automáticamente el flujo de trabajo de implementación e inicia un proceso secuencial que incluye las fases de validación y ejecución. El sistema ejecuta `plan` las operaciones de Terraform para identificar los cambios propuestos, seguidas de los `apply` comandos de Terraform para implementar esos cambios en el AWS entorno. En particular, la canalización se ejecuta sin ninguna puerta de aprobación manual. Este enfoque permite implementar rápidamente los cambios en la infraestructura y, al mismo tiempo, mantener la auditabilidad mediante los registros de la canalización y los archivos de estado de Terraform.

La canalización se aprovecha AWS CodeBuild para ejecutar las operaciones de Terraform en un entorno controlado con los permisos adecuados. Mediante este enfoque de IaC, la canalización puede efectuar operaciones integrales de administración de permisos, tales como las siguientes:
+ Creación de conjuntos de permisos nuevos.
+ Actualización de conjuntos de permisos existentes.
+ Eliminación de conjuntos de permisos innecesarios.
+ Gestione la asignación de estos permisos entre las cuentas y los grupos de las AWS organizaciones.

Para mantener la coherencia de la infraestructura y evitar cambios conflictivos, la solución implementa el sistema de administración de estados del backend de Terraform mediante un bucket de Amazon S3 y una tabla dedicada de Amazon DynamoDB. Este enfoque proporciona una ubicación de almacenamiento persistente para los archivos de estado de Terraform y mecanismos de bloqueo de estado para evitar modificaciones simultáneas en los mismos recursos.

El código principal de Terraform usa el módulo oficial de AWS `permission-sets` Terraform. Este módulo puede administrar dinámicamente los conjuntos de permisos en IAM Identity Center basándose en plantillas de conjuntos de permisos.

**Administración de control de origen**

Las plantillas del conjunto de permisos (archivos JSON) residen en un sistema de control de versiones externo, por ejemplo GitHub, que proporciona un repositorio centralizado para las configuraciones de administración de identidades. Este enfoque establece una fuente única de información fiable para las definiciones de conjuntos de permisos y, al mismo tiempo, permite el desarrollo colaborativo mediante prácticas estándar de revisión del código. Los usuarios autorizados pueden confirmar cambios en estas plantillas siguiendo los procesos de administración de cambios organizativos. Estas confirmaciones son el principal desencadenante de la canalización de implementación automatizada, que inicia el proceso de actualización de la infraestructura.

Para ver un ejemplo de cómo configurar los conjuntos de permisos mediante el archivo JSON en el repositorio, consulte [Información adicional](#manage-aws-permission-sets-dynamically-by-using-terraform-additional).

## Tools (Herramientas)
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-tools"></a>

**Servicios de AWS**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) es un servicio de compilación completamente administrado que le permite compilar código fuente, poner en marcha pruebas unitarias y producir artefactos listos para implementar.
+ [AWS CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html)permite que AWS los recursos y servicios, por ejemplo CodePipeline, se conecten a repositorios de código externos, por ejemplo. GitHub
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) permite diseñar y configurar rápidamente las diferentes etapas de un proceso de lanzamiento de software y automatizar los pasos necesarios para lanzar los cambios en el software de manera continua.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) es una herramienta de código abierto que le ayuda a interactuar Servicios de AWS mediante comandos en el shell de la línea de comandos.
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)le ayuda a configurar y administrar un entorno de AWS múltiples cuentas, siguiendo las mejores prácticas prescriptivas.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) es un servicio de base de datos de NoSQL completamente administrado que ofrece un rendimiento rápido, predecible y escalable.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) es un servicio de bus de eventos sin servidor que le ayuda a conectar sus aplicaciones con datos en tiempo real de diversas fuentes. Por ejemplo, AWS Lambda funciones, puntos de enlace de invocación HTTP que utilizan destinos de API o buses de eventos en otros. Cuentas de AWS
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)le ayuda a gestionar de forma centralizada el acceso mediante el inicio de sesión único (SSO) a todas sus aplicaciones y a las de la nube. Cuentas de AWS 
+ [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.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)es un servicio de administración de cuentas que le ayuda a consolidar múltiples cuentas Cuentas de AWS en una organización que puede crear y administrar de forma centralizada.
+ [Amazon Simple Notification Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) le permite coordinar y administrar el intercambio de mensajes entre publicadores y clientes, incluidos los servidores web y las direcciones de correo electrónico. Permite las notificaciones push para los eventos de administración de cuentas, lo que garantiza que las partes pertinentes estén informadas de los cambios o acciones importantes que se produzcan en el sistema.
+ [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.

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

**Repositorio de código**

[El código de este patrón está disponible en la organización AWS Samples y en el repositorio GitHub -sets-pipeline. sample-terraform-aws-permission](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline)

## Prácticas recomendadas
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-best-practices"></a>
+ Fije siempre las versiones de los módulos y proveedores de Terraform que se utilizan para ejecutar el código en producción.
+ Utilice una herramienta de análisis de código estático, como [Checkov](https://www.checkov.io/), para analizar el código y, a continuación, resolver los problemas de seguridad.
+ Siga el principio de privilegio mínimo y conceda los permisos mínimos necesarios para llevar a cabo una tarea. Para obtener más información, consulte [Otorgar privilegio mínimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) y [Prácticas recomendadas de seguridad](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la documentación de IAM.

## Epics
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-epics"></a>

### Creación de los requisitos previos (opcional)
<a name="create-the-prerequisites-optional"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear los recursos del backend de Terraform. | Si aún no ha creado sus AWS recursos de backend de Terraform, siga estos pasos para crear un bucket de Amazon S3 (`s3-tf-backend-{ACCOUNT_ID}`) y una tabla de DynamoDB (). `ddb-tf-backend`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)<pre>aws s3api create-bucket --bucket s3-tf-backend-{ACCOUNT_ID}<br />aws s3api put-bucket-versioning --bucket s3-tf-backend-{ACCOUNT_ID} --versioning-configuration Status=Enabled<br />aws dynamodb create-table --table-name ddb-tf-backend --attribute-definitions AttributeName=LockID,AttributeType=S --key-schema AttributeName=LockID,KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1</pre> | Administrador de AWS | 
| Cree un rol multicuenta. | Debe proporcionar una función de IAM multicuenta en la configuración del proveedor de `event-source-account` Terraform AWS . Si aún no ha creado este rol, siga estos pasos para crearlo:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)<pre>aws iam create-role \<br />    --role-name CrossAccountRole \<br />    --assume-role-policy-document '{<br />        "Version": "2012-10-17",		 	 	 <br />        "Statement": [<br />            {<br />                "Effect": "Allow",<br />                "Principal": {<br />                    "AWS": "arn:aws:iam::{ACCOUNT_ID}:root"<br />                },<br />                "Action": "sts:AssumeRole"<br />            }<br />        ]<br />    }'</pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)<pre>aws iam attach-role-policy \<br />    --role-name CrossAccountRole \<br />    --policy-arn arn:aws:iam::aws:policy/AdministratorAccess</pre>En este ejemplo, se utiliza la política de IAM AWS gestionada. [AdministratorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html) Si lo prefiere, puede utilizar una política más específica. | Administrador de AWS | 

### Preparación del repositorio de conjuntos de permisos
<a name="prepare-the-permission-set-repository"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear un repositorio dedicado. | En esta tarea se presupone que está utilizando GitHub. Cree un repositorio dedicado para almacenar el código principal de Terraform y los archivos JSON de la plantilla del conjunto de permisos. | DevOps ingeniero | 
| Preparar el código del conjunto de permisos. | Para obtener información sobre cómo estructurar los siguientes archivos, consulte el [código de ejemplo](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline/tree/main/samples/basic) en el repositorio de soluciones:├── main.tf├── outputs.tf├── providers.jinja└── templatesCopie el contenido, conserve los valores de `providers.jinja` y haga los ajustes necesarios en los demás archivos. Por ejemplo, agregue archivos de plantillas de conjuntos de permisos a `templates` o fije la versión del módulo `aws-ia/permission-sets/aws` en el archivo `main.tf`. | DevOps ingeniero | 
| Confirmar los cambios. | Confirme e inserte los cambios en el repositorio que creó anteriormente. Guarde el nombre del repositorio y su GitHub organización, por ejemplo,`myorg/aws-ps-pipeline`. | DevOps ingeniero | 

### Preparación del código de implementación
<a name="prepare-the-deployment-code"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Descargar el contenido. | Descargue (clone) el contenido del [repositorio](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline) de soluciones. | DevOps ingeniero | 
| Completar las variables. | Cree un archivo `terraform.tfvars` y agregue las siguientes variables necesarias:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)<pre>repository_name                 = "myorg/aws-ps-pipeline"<br />branch_name                     = "main"<br />vcs_provider                    = "github"<br />account_lifecycle_events_source = "CT"</pre>Para obtener información sobre opciones de variables adicionales, consulta el archivo [variables.tf](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline/blob/main/variables.tf) en el repositorio de este patrón. GitHub  | DevOps ingeniero | 
| Ajustar la configuración del backend de Terraform. | En el archivo `backend.tf`, sustituya los marcadores de posición por sus propios valores. Use el AWS Control Tower inicio Región de AWS y proporcione los nombres del bucket de Amazon S3 y la tabla de DynamoDB creados anteriormente.<pre>terraform {<br />  required_version = ">=1.6"<br />  backend "s3" {<br />    region         = "{region}"<br />    bucket         = "{bucket_name}"<br />    key            = "terraform.tfstate"<br />    dynamodb_table = "{table_name}"<br />    encrypt        = "true"<br />  }<br />}</pre>Si lo prefiere, puede usar su propia configuración de backend de Terraform. | DevOps ingeniero | 
| Ajustar la configuración del proveedor de Terraform. | En el archivo `providers.tf`, sustituya los marcadores de posición por su propia información. Utilice la región de AWS Control Tower origen y proporcione el ARN del rol de IAM multicuenta creado anteriormente para el proveedor. `event-source-account`<pre>provider "aws" {<br />  region = "{region}"<br />}<br /><br />provider "aws" {<br />  alias  = "event-source-account"<br />  region = "{region}"<br />  assume_role {<br />    role_arn = "{role_arn}"<br />  }<br />}<br /></pre> | DevOps ingeniero | 

### Implementación manual de la solución
<a name="deploy-the-solution-manually"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Seleccione el Cuenta de AWS. | Le recomendamos implementar la solución en la cuenta de administrador delegado de IAM Identity Center. Sin embargo, también puede implementarlo en la cuenta AWS Organizations de administración.Para iniciar sesión en la cuenta seleccionada en la misma región que la instancia de IAM Identity Center, utilice la AWS CLI. Asegúrese de que el rol de IAM que está utilizando tiene permiso para asumir el rol que se especificó para el proveedor `event-source-account` en los pasos anteriores. Además, este rol debe tener acceso a los AWS recursos que se utilizan en la configuración del backend de Terraform. | Administrador de AWS | 
| Ejecutar Terraform manualmente. | Para inicializar, planificar y aplicar las configuraciones, ejecute los siguientes comandos de Terraform en el orden que aparecen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | DevOps ingeniero | 
| Compruebe los resultados de la implementación. | En la cuenta de administrador delegado de IAM Identity Center, compruebe que se haya creado la canalización de `aws-ps-pipeline`. Compruebe también que haya una AWS CodeConnections conexión con el estado **Pendiente**. | AWS DevOps | 
| Finalice la CodeConnections configuración. | Para finalizar la CodeConnections configuración, siga los siguientes pasos:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)La canalización ahora debería tener acceso al repositorio de conjuntos de permisos.Para obtener instrucciones detalladas, consulte [Update a pending connection](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html) en la documentación de la consola de herramientas para desarrolladores.  | AWS DevOps | 

### Elección de un flujo de ejecución de canalizaciones para probar la solución
<a name="choose-a-pipeline-execution-flow-to-test-the-solution"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Ejecute la canalización mediante AWS Control Tower las actualizaciones de AFT. | Una vez creada o modificada una cuenta mediante AWS Control Tower AFT (según el tipo de eventos del ciclo de vida que elijas), se inicia la canalización. | Administrador de AWS | 
| Cambiar el código para ejecutar la canalización. | Tras cambiar el código y confirmarlo en la rama `main`, se inicia la canalización. | AWS DevOps | 
| Ejecutar la canalización manualmente. | Para iniciar la canalización manualmente, utilice la función [de cambio de versión](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-rerun-manually.html) de AWS CodePipeline. | AWS DevOps | 

## Resolución de problemas
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| Acceso denegado | Compruebe que cuente con los permisos necesarios para implementar la solución. | 
| CodeConnections problemas | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | 
| Problemas de ejecución de las canalizaciones | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | 
| Problemas de implementación de los conjuntos de permisos | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | 

## Recursos relacionados
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-resources"></a>

**Servicio de AWS documentación**
+ [AWS IAM Identity Center Guía del usuario](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)
+ [Administre Cuentas de AWS con conjuntos de permisos](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) (documentación del IAM Identity Center)

**Otros recursos**
+ [AWS Módulo de conjuntos de permisos](https://registry.terraform.io/modules/aws-ia/permission-sets/aws/latest) (Terraform)

## Información adicional
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-additional"></a>

**Archivo JSON con un ejemplo de conjunto de permisos**

En el siguiente ejemplo se muestra cómo configurar un conjunto de permisos mediante el archivo JSON del repositorio:

```
{
  "Name": "ps-billing", // Permission set identifier
  "Comment": "Sample permission set for billing access", // Comment to document the purpose of the permission set
  "Description": "Billing access in AWS", // Detailed description
  "SessionDuration": "PT4H", // Session duration = 4 hours (ISO 8601 format)
  "ManagedPolicies": [ // List of AWS IAM managed policies
    "arn:aws:iam::aws:policy/job-function/Billing",
    "arn:aws:iam::aws:policy/job-function/SupportUser",
    "arn:aws:iam::aws:policy/AWSSupportAccess",
    "arn:aws:iam::aws:policy/job-function/ViewOnlyAccess"
  ],
  "CustomerPolicies": [], // References to IAM policies previously created
  "CustomPolicy": {}, // Inline IAM policy defined directly in the permission set
  "PermissionBoundary": {  // AWS or customer managed IAM policy to be used as boundary
    "ManagedPolicy": "",
    "CustomerPolicy": ""
  },
  "Assignments": [ // Define the assignment rules
    {
      "all_accounts": true, // Apply to ALL active AWS accounts in organization
      "principal": "G_BILLING_USERS", // Group/user name in Identity Center
      "type": "GROUP", // Can be "GROUP" or "USER"
      "account_id": [], // List of AWS account ID (empty since all_accounts=true)
      "account_ou": [], // List of AWS Organizational Unit IDs with target AWS accounts
      "account_tag": [] // List of tags (key:value) to match AWS Organization accounts tags
    }
  ]
}
```

Para obtener más información, consulte el esquema JSON en la documentación del [módulo AWS Permission Sets](https://registry.terraform.io/modules/aws-ia/permission-sets/aws/latest#json-file-templates) del sitio web de Terraform.

**Consejos**
+ Puede usar los [bloques de importación](https://developer.hashicorp.com/terraform/language/import) de Terraform para importar un conjunto de permisos existente a la solución.
+ Puede usar AFT para implementar la canalización del conjunto de AWS permisos en una cuenta delegada. Para obtener más información, consulte [AFT Blueprints](https://awslabs.github.io/aft-blueprints/index.html).

# Etiquete automáticamente las conexiones de puerta de enlace de tránsito con AWS Organizations
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations"></a>

*Richard Milner-Watts, Haris Bin Ayub y John Capps, Amazon Web Services*

## Resumen
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-summary"></a>

En Amazon Web Services (AWS), se puede utilizar [AWS Resource Access Manager](https://aws.amazon.com/ram/)para compartir a [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/)través de Cuenta de AWS fronteras. Sin embargo, cuando crea conexiones de puerta de enlace de tránsito más allá de los límites de la cuenta, los archivos adjuntos se crean sin una etiqueta de nombre. Esto puede hacer que la identificación de los archivos adjuntos lleve mucho tiempo. 

Esta solución proporciona un mecanismo automatizado para recopilar información sobre cada conexión de puerta de enlace de tránsito para las cuentas de una organización administrada por [AWS Organizations](https://aws.amazon.com/organizations/). El proceso incluye buscar el rango de [enrutamiento entre dominios sin clase](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) (CIDR) en la tabla de enrutamiento de puerta de enlace de tránsito. Luego, la solución aplica una etiqueta con el nombre en forma de `<CIDR-range>-<AccountName>` a la conexión de la cuenta que contiene la puerta de enlace de tránsito.

Esta solución se puede utilizar junto con una solución como el [Serverless Transit Network Orchestrator](https://aws.amazon.com/solutions/implementations/serverless-transit-network-orchestrator/) de la biblioteca de AWS soluciones. El orquestador de redes de tránsito sin servidor permite la creación automatizada de conexiones de puerta de enlace de tránsito a escala.

## Requisitos previos y limitaciones
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-prereqs"></a>

**Requisitos previos **
+ Un activo Cuenta de AWS
+ Una AWS Organizations organización que contiene todas las cuentas relacionadas
+ Acceda a la cuenta de administración de la organización, ubicada en la raíz de la organización, para crear el rol necesario AWS Identity and Access Management (IAM)
+ Una cuenta de miembro de una red compartida que contiene una o más puertas de enlace de tránsito que se comparten con la organización y tienen archivos adjuntos

## Arquitectura
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-architecture"></a>

La siguiente captura de pantalla Consola de administración de AWS muestra ejemplos de archivos adjuntos de Transit Gateway sin etiqueta de nombre asociada y dos archivos adjuntos de Transit Gateway con etiquetas de nombre generados por esta solución. La estructura de la etiqueta de nombre generada es `<CIDR-range>-<AccountName>`.

![\[La consola muestra los archivos adjuntos sin etiquetas de nombre y dos archivos adjuntos con etiquetas de nombre.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/4b10dfec-43be-4337-9945-c64df921934a/images/7e7d4a47-f07a-4708-8022-a1d22855bb5d.png)


 

Esta solución se utiliza [AWS CloudFormation](https://aws.amazon.com/cloudformation/)para implementar un [AWS Step Functions](https://aws.amazon.com/step-functions/)flujo de trabajo que gestiona la creación de etiquetas de nombre de Transit Gateway en todas las configuraciones Regiones de AWS. El flujo de trabajo invoca las funciones de [AWS Lambda](https://aws.amazon.com/lambda/), que hacen las tareas subyacentes.

Una vez que la solución haya obtenido los nombres de las cuentas AWS Organizations, la máquina de estados Step Functions recibirá todos los archivos adjuntos de Transit Gateway IDs. La región las procesa en paralelo. Este procesamiento incluye la búsqueda del rango de CIDR para cada archivo adjunto. El rango CIDR se obtiene buscando en las tablas de enrutamiento de puerta de enlace de tránsito de la región un identificador de la conexión de puerta de enlace de tránsito coincidente. Si toda la información requerida está disponible, la solución aplica una etiqueta con el nombre al archivo adjunto. La solución no sobrescribirá ninguna etiqueta de nombre existente.

La solución se ejecuta según un cronograma controlado por un EventBridge evento de [Amazon](https://aws.amazon.com/eventbridge/). El evento inicia la solución todos los días a las 6:00 UTC.

**Pila de tecnología de destino**
+ Amazon EventBridge
+ AWS Lambda
+ AWS Organizations
+ AWS Transit Gateway
+ Amazon Virtual Private Cloud (Amazon VPC)
+ AWS X-Ray

**Arquitectura de destino**

La arquitectura de la solución y el flujo de trabajo se muestran en el siguiente diagrama.

![\[Proceso de nueve pasos para cuentas compartidas de administración de redes y organizaciones.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/4b10dfec-43be-4337-9945-c64df921934a/images/873cc89f-c6e3-43cd-94ed-59b6ea2b8d49.png)


1. El evento programado inicia la regla.

1. La EventBridge regla inicia la máquina de estados Step Functions.

1. La máquina de estados invoca la función de Lambda `tgw-tagger-organizations-account-query`.

1. La función de Lambda `tgw-tagger-organizations-account-query` asume la función en la cuenta de administración de la organización.

1. La función `tgw-tagger-organizations-account-query` Lambda llama a la API de Organizations para devolver Cuenta de AWS los metadatos.

1. La máquina de estados invoca la función de Lambda `tgw-tagger-attachment-query`.

1. Para cada región, en paralelo, la máquina de estados invoca la función de Lambda `tgw-tagger-rtb-query` para leer el rango CIDR de cada adjunto.

1. Para cada región, en paralelo, la máquina de estados invoca la función de Lambda para `tgw-tagger-attachment-tagger`** **

1. Las etiquetas de nombre se crean para las conexiones de puerta de enlace de tránsito en la cuenta Shared Networking.

**Automatizar y escalar**

La solución procesa cada región en paralelo para reducir la duración total de la ejecución.

## Tools (Herramientas)
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-tools"></a>

**Servicios de AWS**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)proporciona una forma de modelar un conjunto de recursos relacionados AWS y de terceros, aprovisionarlos de forma rápida y coherente y gestionarlos a lo largo de sus ciclos de vida, tratando la infraestructura como código.
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) le CloudWatch ayuda a supervisar las métricas de sus recursos de AWS y las aplicaciones en las que se ejecuta AWS en tiempo real.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) es un servicio de bus de eventos sin servidor que puede utilizar para conectar sus aplicaciones con datos de diversas fuentes. EventBridge recibe un evento, un indicador de un cambio en el entorno, y aplica una regla para enrutar el evento a un objetivo. Las reglas hacen coincidir los eventos con los objetivos o bien en función de la estructura del evento, llamado un patrón de evento, o bien de una programación.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) es un servicio de computación que permite ejecutar código sin aprovisionar ni administrar servidores. Lambda ejecuta su código solo cuando es necesario y escala de manera automática, desde unas pocas solicitudes por día hasta miles por segundo. Solo paga por el tiempo de proceso que consume. No se aplican cargos cuando su código no se está ejecutando.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)le ayuda a administrar y gobernar su entorno de forma centralizada a medida que crece y escala sus AWS recursos. Con Organizations, puede crear recursos nuevos Cuentas de AWS y asignarlos mediante programación, agrupar cuentas para organizar sus flujos de trabajo, aplicar políticas a cuentas o grupos para la gobernanza y simplificar la facturación mediante el uso de un único método de pago para todas sus cuentas.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)es un servicio de flujo de trabajo visual de bajo código que se utiliza para organizar Servicios de AWS, automatizar los procesos empresariales y crear aplicaciones sin servidor. Los flujos de trabajo gestionan los errores, los reintentos, la paralelización, las integraciones de servicios y la observabilidad para que los desarrolladores puedan centrarse en una lógica empresarial de mayor valor.
+ [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/)conecta VPCs y conecta redes locales a través de un hub central. Esto simplifica su red y pone fin a las complejas relaciones de interconexión. Actúa como un router en la nube, de modo que cada nueva conexión se realiza solo una vez.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) es un servicio para lanzar AWS recursos en una red virtual aislada de forma lógica que usted defina.
+ [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) recopila datos sobre las solicitudes que atiende la aplicación y proporciona herramientas que puede utilizar para consultar, filtrar y obtener información sobre dichos datos para identificar problemas y oportunidades de optimización.

**Código**

El código fuente de esta solución está disponible en el GitHub repositorio [Transit Gateway Attachment Tagger](https://github.com/aws-samples/tgw-attachment-tagger). El repositorio incluye los siguientes archivos:
+ `tgw-attachment-tagger-main-stack.yaml` crea todos los recursos necesarios para respaldar esta solución en la cuenta Shared Networking.
+ `tgw-attachment-tagger-organizations-stack.yaml`**** crea un rol en la cuenta de administración de la organización.

## Epics
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-epics"></a>

### Implemente el conjunto principal de soluciones
<a name="deploy-the-main-solution-stack"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Reúna la información necesaria sobre los requisitos previos. | Para configurar el acceso entre cuentas desde la función Lambda a AWS Organizations la API, necesita el ID de cuenta de la cuenta de administración de la organización.****El orden en el que se crean las dos CloudFormation pilas es importante. Primero debe implementar los recursos en la cuenta de red compartida. El rol en la cuenta Shared Networking ya debe existir antes de implementar los recursos en la cuenta de administración de la organización. Para obtener más información, consulte la [Documentación de AWS](https://docs.amazonaws.cn/en_us/IAM/latest/UserGuide/id_roles_create_for-user.html). | DevOps ingeniero | 
| Inicie la CloudFormation plantilla para la pila de soluciones principal. | La plantilla de la pila de soluciones principal implementará las funciones de IAM, el flujo de trabajo de Step Functions, las funciones de Lambda y el evento de Amazon CloudWatch .Abra la cuenta Consola de administración de AWS de red compartida y, a continuación, abra la consola: &CFN.  Cree la pila con la plantilla `tgw-attachment-tagger-main-stack.yaml` y los siguientes valores:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/tag-transit-gateway-attachments-automatically-using-aws-organizations.html)[Para obtener más información sobre cómo lanzar una CloudFormation pila, consulte la documentación.AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) | DevOps ingeniero | 
| Compruebe que la solución se haya lanzado correctamente. | Espere a que la CloudFormation pila alcance el estado **CREATE\$1COMPLETE**. Este proceso no debería tardar más de un minuto.Abra la consola Step Functions y compruebe que se ha creado una nueva máquina de estados con el nombre **tgw-attachment-tagger-state-machine**. | DevOps ingeniero | 

### Implemente el paquete de AWS Organizations
<a name="deploy-the-aws-organizations-stack"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Reúna la información necesaria sobre los requisitos previos. | Para configurar el acceso entre cuentas desde la función de Lambda a la API de AWS Organizations, necesita el ID de cuenta de la cuenta Shared Networking. | DevOps ingeniero | 
| Inicie la CloudFormation plantilla para la pila Organizations | En la plantilla de AWS Organizations stack, se implementará el rol de IAM en la cuenta de gestión de la organización. Acceda a la consola de AWS de la cuenta de administración de la organización y, a continuación, abra la CloudFormation consola.  Cree la pila con la plantilla `tgw-attachment-tagger-organizations-stack.yaml` y los siguientes valores:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/tag-transit-gateway-attachments-automatically-using-aws-organizations.html)Para las demás opciones de creación de pilas, usa los valores predeterminados. | DevOps ingeniero | 
| Compruebe que la solución se haya lanzado correctamente. | Espere a que la CloudFormation pila alcance el estado **CREATE\$1COMPLETE**. Este proceso no debería tardar más de un minuto.**Abra la consola AWS Identity and Access Management (IAM) y compruebe que se ha creado un nuevo rol con el nombre -query-role. tgw-attachment-tagger-organization** | DevOps ingeniero | 

### Verificación de la solución
<a name="verify-the-solution"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Ejecuta la máquina de estado. | Abra la consola Step Functions de la cuenta Shared Networking y elija **Equipos de estado** en el panel de navegación.Seleccione el estado machine **tgw-attachment-tagger-state-machine** y elija **Iniciar ejecución**.  Como la solución no utiliza la entrada de esta máquina de estados, puede utilizar el valor predeterminado.<pre>{<br />    "Comment": "Insert your JSON here"<br />}</pre>Seleccione **Iniciar ejecución**. | DevOps ingeniero | 
| Vigile la máquina de estados hasta su finalización. | En la nueva página que se abre, puede ver cómo funciona la máquina de estados. La duración dependerá de la cantidad de conexiones de puerta de enlace de tránsito que se procesen.En esta página, puede examinar cada paso de la máquina de estados. Puede ver las distintas tareas de la máquina de estados y seguir los enlaces a los CloudWatch registros de las funciones de Lambda. Para las tareas que se ejecutan en paralelo dentro del mapa, puede usar la lista desplegable del **Índice** para ver las implementaciones específicas de cada región. | DevOps ingeniero | 
| Compruebe las etiquetas de conexión de puerta de enlace de tránsito. | Abra la consola de VPC de la cuenta Shared Networking y elija **Conexiones de puerta de enlace de tránsito**.  En la consola, se proporciona una etiqueta de nombre para los archivos adjuntos que cumplen los criterios (el archivo adjunto se propaga a una tabla de enrutamiento de puerta de enlace de tránsito y el propietario del recurso es miembro de la organización). | DevOps ingeniero | 
| Verifique el inicio CloudWatch del evento. | Espere a que se inicie el CloudWatch evento. Está programado para las 06:00 UTC. Abra la consola Step Functions de la cuenta Shared Networking y elija **State machines** (Máquinas de estado) en el panel de navegación.Seleccione el estado machine **tgw-attachment-tagger-state-machine.** Compruebe que la solución se haya ejecutado a las 06:00 UTC. | DevOps ingeniero | 

## Recursos relacionados
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-resources"></a>
+ [AWS Organizations](https://aws.amazon.com/organizations/)
+ [AWS Resource Access Manager](https://aws.amazon.com/ram/)
+ [Orquestador de redes de tránsito sin servidor](https://aws.amazon.com/solutions/implementations/serverless-transit-network-orchestrator/)
+ [Creación de roles de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html)
+ [Crear una pila en la AWS CloudFormation consola](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)

# Más patrones
<a name="cloudfoundations-more-patterns-pattern-list"></a>

**Topics**
+ [Automatice las asignaciones de CIDR, IPAM y IPv4 CIDR de Amazon VPC para nuevos mediante AFT Cuentas de AWS](automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.md)
+ [Control de los conjuntos de permisos para varias cuentas mediante Account Factory for Terraform](govern-permission-sets-aft.md)
+ [AWS Service Catalog Aprovisione productos en función de AWS CloudFormation plantillas mediante GitHub acciones](provision-aws-service-catalog-products-using-github-actions.md)
+ [Aprovisionamiento de roles de IAM con privilegio mínimo mediante la implementación de una solución de máquina expendedora de roles](provision-least-privilege-iam-roles-by-deploying-a-role-vending-machine-solution.md)