

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Fondements du cloud
<a name="cloudfoundations-pattern-list"></a>

**Topics**
+ [Automatisez la création de comptes en utilisant l'accélérateur Landing Zone sur AWS](automate-account-creation-lza.md)
+ [Inventaire automatique AWS des ressources sur plusieurs comptes et régions](automate-aws-resource-inventory.md)
+ [Créez une zone AWS d'atterrissage qui inclut MongoDB Atlas](build-aws-landing-zone-that-includes-mongodb-atlas.md)
+ [Configurez les journaux de flux VPC pour les centraliser sur Comptes AWS](configure-vpc-flow-logs-for-centralization-across-aws-accounts.md)
+ [Gérez les ensembles AWS d'autorisations de manière dynamique à l'aide de Terraform](manage-aws-permission-sets-dynamically-by-using-terraform.md)
+ [Marquez automatiquement les pièces jointes à Transit Gateway à l'aide d'AWS Organizations](tag-transit-gateway-attachments-automatically-using-aws-organizations.md)
+ [Plus de modèles](cloudfoundations-more-patterns-pattern-list.md)

# Automatisez la création de comptes en utilisant l'accélérateur Landing Zone sur AWS
<a name="automate-account-creation-lza"></a>

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

## Résumé
<a name="automate-account-creation-lza-summary"></a>

Ce modèle explique comment utiliser la AWS solution [Landing Zone Accelerator](https://aws.amazon.com/solutions/implementations/landing-zone-accelerator-on-aws/) pour déployer automatiquement une nouvelle solution Compte AWS lorsqu'un utilisateur autorisé soumet une demande. Il permet AWS Step Functions d'orchestrer un certain nombre de AWS Lambda fonctions. Les fonctions Lambda ajoutent les informations du compte à un référentiel Git, initient un AWS CodePipeline pipeline et valident le provisionnement AWS des ressources nécessaires. Lorsque le processus est terminé, l'utilisateur reçoit une notification indiquant que le compte a été créé.

Vous pouvez éventuellement intégrer des groupes d'identifiants Microsoft Entra et attribuer des ensembles AWS IAM Identity Center d'autorisations lors du processus de création de compte. Si votre organisation utilise l'identifiant Microsoft Entra comme source d'identité, cette fonctionnalité facultative vous permet de gérer et de configurer automatiquement l'accès au nouveau compte.

## Conditions préalables et limitations
<a name="automate-account-creation-lza-prereqs"></a>

**Conditions préalables**
+ Accès au compte de gestion dans AWS Organizations
+ AWS Cloud Development Kit (AWS CDK) [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_install)
+ Python version 3.9 ou ultérieure, [installée](https://www.python.org/downloads/)
+ AWS Command Line Interface [(AWS CLI) version 2.13.19 ou ultérieure, installée](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
+ [Docker version 24.0.6 ou ultérieure, installé](https://docs.docker.com/get-started/get-docker/)
+ Landing Zone Accelerator sur AWS solution, [déployé](https://docs.aws.amazon.com/solutions/latest/landing-zone-accelerator-on-aws/deploy-the-solution.html) dans le compte de gestion
+ [(Facultatif) Microsoft Entra ID et IAM Identity Center, intégrés](https://docs.aws.amazon.com/singlesignon/latest/userguide/idp-microsoft-entra.html)

**Limites**

Le flux de travail de création de compte prend en charge les exécutions séquentielles pour déployer un compte unique Compte AWS. Cette limitation garantit que le processus de création de compte s'est terminé avec succès sans avoir à se disputer les ressources lors d'une exécution parallèle.

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

**Architecture cible**

L'image suivante montre l'architecture de haut niveau permettant d'automatiser la création d'une nouvelle zone à l'aide Compte AWS de l'accélérateur de zone d'atterrissage activé AWS. AWS Step Functions orchestre l'automatisation. Chaque tâche du flux de travail Step Functions est exécutée par une ou plusieurs AWS Lambda fonctions.

![\[Flux de travail permettant d'automatiser la création d'un nouveau compte à l'aide de l'accélérateur Landing Zone sur AWS.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/d31abfaa-6854-4923-b896-3b817de9f4d9/images/dfd6503d-a4ed-43df-82d4-082f8153d473.png)


Le schéma suivant illustre le flux de travail suivant :

1. L'utilisateur demande un compte en exécutant un script Python ou en utilisant Amazon API Gateway.

1. Le flux de travail Account Creation Orchestrator démarre dans. AWS Step Functions

1. Le flux de travail met à jour le `account-config.yaml` fichier dans le référentiel de code source. Il lance également l'accélérateur de zone d'atterrissage sur le AWS pipeline et vérifie l'état du pipeline. Ce pipeline crée et configure le nouveau compte. Pour plus d'informations sur son fonctionnement, consultez la [présentation de l'architecture](https://docs.aws.amazon.com/solutions/latest/landing-zone-accelerator-on-aws/architecture-overview.html) de l'accélérateur de zone d'atterrissage activé AWS.

1. (Facultatif) Lorsque le pipeline est terminé, le flux de travail vérifie si le groupe existe dans Microsoft Entra ID. Si le groupe n'existe pas dans l'identifiant Microsoft Entra, le flux de travail l'ajoute à l'identifiant Microsoft Entra.

1. Le flux de travail exécute des étapes supplémentaires que la AWS solution Landing Zone Accelerator ne peut pas effectuer. Les étapes par défaut sont les suivantes :
   + Création d'un [alias de compte](https://docs.aws.amazon.com/IAM/latest/UserGuide/console-account-alias.html) dans Gestion des identités et des accès AWS (IAM)
   + Attacher des [tags](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tagging.html) au compte dans AWS Organizations
   + Création de paramètres dans [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) en fonction des balises attribuées au compte

1. (Facultatif) Le flux de travail attribue un ou plusieurs [ensembles d'autorisations](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) au groupe Microsoft Entra ID que vous avez précédemment spécifié. Les ensembles d'autorisations permettent aux utilisateurs du groupe d'accéder au nouveau compte et d'effectuer les actions que vous configurez.

1. Une AWS Lambda fonction exécute des tests d'assurance qualité et de validation. Il valide la création des ressources, vérifie que les balises ont été créées et que les ressources de sécurité ont été déployées.

1. Le flux de travail libère le compte et utilise Amazon Simple Email Service (Amazon SES) pour informer l'utilisateur que le processus s'est terminé avec succès.

Pour plus d'informations sur le flux de travail Step Functions, voir le *diagramme de flux de travail Step Functions* dans la section [Informations supplémentaires](#automate-account-creation-lza-additional) de ce modèle.

**Applications Microsoft Entra ID**

Si vous choisissez d'intégrer Microsoft Entra ID, vous créez les deux applications suivantes lorsque vous déployez ce modèle :
+ Application liée à IAM Identity Center et garantissant que les groupes d'identifiants Microsoft Entra sont disponibles dans IAM Identity Center. Dans cet exemple, cette application Microsoft Entra ID est nommée`LZA2`.
+ Application qui permet à une fonction Lambda de communiquer avec l'identifiant Microsoft Entra et d'appeler le [Microsoft](https://learn.microsoft.com/en-us/graph/identity-network-access-overview) Graph. APIs Dans ce modèle, cette application est nommée`create_aws_account`.

Ces applications collectent des données qui sont utilisées pour synchroniser le groupe d'identifiants Microsoft Entra et attribuer des ensembles d'autorisations.

## Outils
<a name="automate-account-creation-lza-tools"></a>

**Services AWS**
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) vous aide à créer, publier, gérer, surveiller et sécuriser REST, HTTP, et ce, WebSocket APIs à n'importe quelle échelle. Dans ce modèle, vous utilisez API Gateway pour vérifier la disponibilité des Compte AWS noms, lancer le AWS Step Functions flux de travail et vérifier le statut de l'exécution de Step Functions.
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)est un framework de développement logiciel qui vous aide à définir et à provisionner AWS Cloud l'infrastructure dans le code.
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)vous aide à configurer et à gérer un environnement AWS multi-comptes, conformément aux meilleures pratiques prescriptives.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) est un service de bus d'événements sans serveur qui vous permet de connecter vos applications à des données en temps réel provenant de diverses sources. Par exemple, des AWS Lambda fonctions, des points de terminaison d'invocation HTTP utilisant des destinations d'API ou des bus d'événements dans d'autres. Comptes AWS Cette solution utilise une [EventBridge règle](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html) qui lance une fonction Lambda si l'état du flux de travail Step Functions passe à `Failed``Timed-out`, ou. `Aborted`
+ [Gestion des identités et des accès AWS (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)vous permet de gérer de manière centralisée l'accès par authentification unique (SSO) à toutes vos applications Comptes AWS et à celles du cloud.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) vous aide à créer et à contrôler des clés cryptographiques afin de protéger vos données. Dans ce modèle, AWS KMS les clés sont utilisées pour chiffrer les données, telles que les données stockées dans Amazon Simple Storage Service (Amazon S3), les variables d'environnement Lambda et les données dans Step Functions.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) est un service de calcul qui vous aide à exécuter du code sans avoir à allouer ni à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)est un service de gestion de comptes qui vous aide à Comptes AWS en regrouper plusieurs au sein d'une organisation que vous créez et gérez de manière centralisée.
+ [Amazon Simple Email Service (Amazon SES)](https://docs.aws.amazon.com/ses/latest/dg/Welcome.html) vous permet d'envoyer et de recevoir des e-mails en utilisant vos propres adresses e-mail et domaines. Une fois qu'un nouveau compte a été créé avec succès, vous recevez une notification via Amazon SES.
+ [Amazon Simple Notification Service (Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) vous aide à coordonner et à gérer l'échange de messages entre les éditeurs et les clients, y compris les serveurs Web et les adresses e-mail. Si une erreur se produit lors du processus de création du compte, Amazon SNS envoie une notification aux adresses e-mail que vous configurez.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)est un service d'orchestration sans serveur qui vous aide à combiner des AWS Lambda fonctions et d'autres fonctions Services AWS pour créer des applications critiques pour l'entreprise.
+ [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) fournit un stockage hiérarchique sécurisé pour la gestion des données de configuration et la gestion des secrets.

**Autres outils**
+ [awscurl](https://pypi.org/project/awscurl/0.6/) automatise le processus de signature des demandes d' AWS API et vous aide à effectuer des demandes sous la forme d'une commande curl standard.
+ [Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/fundamentals/whatis), anciennement connu sous le nom d'*Azure Active Directory*, est un service de gestion des identités et des accès basé sur le cloud.
+ [Microsoft Graph APIs vous permet](https://learn.microsoft.com/en-us/graph/graph-explorer/graph-explorer-overview) d'accéder aux données et aux informations dans les services cloud de Microsoft, tels que Microsoft Entra et Microsoft 365.

**Référentiel de code**

Le code de ce modèle est disponible dans le GitHub [lza-account-creation-workflow](https://github.com/aws-samples/lza-account-creation-workflow)référentiel.

Le répertoire [lambda\$1layer](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer) contient les couches suivantes, qui sont référencées dans plusieurs fonctions Lambda :
+ [account\$1creation\$1helper](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer/account_creation_helper) — Cette couche inclut les modules permettant d'assumer des rôles et de suivre la progression. AWS Service Catalog
+ [boto3](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer/boto3) — Cette couche inclut le [AWS SDK pour Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)module pour s'assurer qu'il AWS Lambda dispose de la dernière version.
+ [identity\$1center\$1helper](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_layer/identity_center_helper) — Cette couche prend en charge les appels à IAM Identity Center.

Le répertoire [lambda\$1src contient](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src) les fonctions Lambda suivantes :
+ [AccountTagToSsmParameter](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/event/AccountTagToSsmParameter)— Cette fonction utilise les balises associées au compte afin AWS Organizations de créer des paramètres dans Parameter Store. Chaque paramètre commence par un `/account/tags/` préfixe.
+ [AttachPermissionSet](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/AttachPermissionSet)— Cette fonction ajoute un ensemble d'autorisations à un groupe IAM Identity Center.
+ [Azure ADGroup Sync](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/AzureADGroupSync) — Cette fonction synchronise le groupe d'identifiants Microsoft Entra cible avec IAM Identity Center.
+ [CheckForRunningProcesses](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/CheckForRunningProcesses)— Cette fonction vérifie si le `AWSAccelerator-Pipeline` pipeline est en cours d'exécution. Si le pipeline est en cours d'exécution, la fonction retarde le AWS Step Functions flux de travail.
+ [CreateAccount](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/CreateAccount)— Cette fonction utilise AWS Service Catalog et AWS Control Tower pour créer le nouveau Compte AWS.
+ [CreateAdditionalResources](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/CreateAdditionalResources)— Cette fonction crée les AWS ressources qui ne sont pas gérées par Landing Zone Accelerator AWS CloudFormation, telles que l'alias et les AWS Service Catalog tags du compte.
+ [GetAccountStatus](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/GetAccountStatus)— Cette fonction recherche le produit approvisionné afin de AWS Service Catalog déterminer si le processus de création de compte est terminé.
+ [GetExecutionStatus](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/api/GetExecutionStatus)— Cette fonction récupère le statut d'une AWS Step Functions exécution en cours ou terminée.
+ [NameAvailability](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/api/NameAvailability)— Cette fonction vérifie si un Compte AWS nom existe déjà dans AWS Organizations.
+ [ReturnResponse](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/ReturnResponse)— Si la création du compte est réussie, cette fonction renvoie l'identifiant du nouveau compte. Si la création du compte échoue, un message d'erreur s'affiche.
+ [RunStepFunction](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/api/RunStepFunction)— Cette fonction exécute le AWS Step Functions flux de travail qui crée le compte.
+ [SendEmailWithSES](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/SendEmailWithSES) — Cette fonction envoie des e-mails aux utilisateurs qui attendent la fin de la création du compte.
+ [ADGroupSyncToValider l'authentification](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/ValidateAdGroupSyncToSSO) unique : cette fonction vérifie si les groupes d'identifiants Microsoft Entra spécifiés sont synchronisés avec IAM Identity Center.
+ [ValidateResources](https://github.com/aws-samples/lza-account-creation-workflow/tree/main/app/lambda_src/stepfunction/ValidateResources)— Cette fonction vérifie que toutes les AWS Control Tower personnalisations ont été exécutées avec succès.

## Bonnes pratiques
<a name="automate-account-creation-lza-best-practices"></a>

Nous recommandons les conventions de dénomination suivantes pour AWS CDK : 
+ Commencez tous les paramètres par un `p` préfixe.
+ Commencez toutes les conditions par un `c` préfixe.
+ Commencez toutes les ressources par un `r` préfixe.
+ Démarrez toutes les sorties par un `o` préfixe.

## Épopées
<a name="automate-account-creation-lza-epics"></a>

### Déployer les rôles IAM pour la validation et le balisage
<a name="deploy-the-iam-roles-for-validation-and-tagging"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Préparez l'accélérateur de zone d'atterrissage à AWS des fins de personnalisation. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Préparez-vous à déployer le `lza-account-creation-validation` rôle. | À présent, vous pouvez personnaliser la solution pour déployer le rôle `lza-account-creation-validation` IAM dans tous les comptes autres que le compte de gestion. Ce rôle fournit à la fonction `ValidateResources` Lambda un accès en lecture seule aux nouveaux comptes.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Préparez-vous à déployer le `account-tagging-to-ssm-parameter-role` rôle. | À présent, vous pouvez personnaliser la solution pour déployer le rôle `account-tagging-to-ssm-parameter-role` IAM dans tous les comptes autres que le compte de gestion. Ce rôle est utilisé pour créer les paramètres dans AWS Systems Manager Parameter Store.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Préparez-vous à déployer le `config-log-validation-role` rôle. | À présent, vous pouvez personnaliser la solution pour déployer le rôle `config-log-validation-role` IAM dans le compte d'archivage des journaux. Ce rôle permet à la fonction `ValidateResources` Lambda d'accéder au compartiment Amazon S3 pour les règles de journalisation et d'accès AWS Config .[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 

### (Facultatif) Obtenir des données à partir de l'identifiant Microsoft Entra
<a name="optional-get-data-from-microsoft-entra-id"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez l'application qui permet à une fonction Lambda de communiquer avec l'identifiant Microsoft Entra. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | Identifiant Microsoft Entra | 
| Récupérez les valeurs de l'`create_aws_account`application. | À présent, vous pouvez récupérer les valeurs dont vous avez besoin pour l'`create_aws_account`application.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | Identifiant Microsoft Entra | 
| Créez l'application qui intègre Microsoft Entra ID à IAM Identity Center. | Dans le centre d'administration Microsoft Entra ID, enregistrez l'`LZA2`application. Pour obtenir des instructions, voir [Enregistrer une application](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app) dans la documentation Microsoft. | Identifiant Microsoft Entra | 
| Récupérez les valeurs de l'`LZA2`application. | À présent, vous pouvez récupérer les valeurs dont vous avez besoin pour l'`LZA2`application.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | Identifiant Microsoft Entra | 
| Créez un secret. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 

### Déploiement de la solution
<a name="deploy-the-solution"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Clonez le code source. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | DevOps ingénieur | 
| Mettez à jour le `deploy-config.yaml` fichier. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Déployez la solution dans votre AWS environnement. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html)Cette solution utilise un compartiment Amazon S3 pour stocker le code source de cette solution. Vous pouvez utiliser le script [upload\$1to\$1source\$1bucket.py](https://github.com/aws-samples/gen-ai-trivia/blob/main/scripts/upload_to_source_bucket.py) pour créer une archive du code source et télécharger une version mise à jour. | AWS DevOps | 

### Option 1 — Création d'un compte en Python
<a name="option-1-create-an-account-using-python"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Identifiez les arguments à utiliser. | Choisissez les arguments à utiliser lorsque vous exécutez le script Python qui lance le flux de travail Step Functions. Pour une liste complète des arguments, consultez la section [Informations supplémentaires](#automate-account-creation-lza-additional) de ce modèle. | AWS DevOps, Python | 
| Lancez le script Python. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | DevOps ingénieur, Python | 

### Option 2 — Créez un compte à l'aide d'API Gateway et d'awscurl
<a name="option-2-create-an-account-using-api-gateway-and-awscurl"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez les variables pour awscurl. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Vérifiez la disponibilité des noms. | Entrez la commande suivante pour vérifier que le nom est disponible pour Compte AWS. Remplacez `<AWS_ACCOUNT_NAME>` par le nom du compte cible :<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 | 
| Exécutez le flux de travail de création de compte. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 

### (Facultatif) Nettoyez la solution
<a name="optional-clean-up-the-solution"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Supprimez des objets des compartiments Amazon S3. | Supprimez tous les objets des compartiments Amazon S3 suivants :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-account-creation-lza.html) | AWS DevOps | 
| Supprimez la CloudFormation pile. | Entrez la commande suivante pour supprimer la CloudFormation pile :<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 | 
| Supprimez le pipeline. | Entrez la commande suivante pour supprimer le `lza-account-creation-workflow-pipeline` pipeline :<pre>cdk destroy lza-account-creation-workflow-pipeline --force</pre> | AWS DevOps | 

## Ressources connexes
<a name="automate-account-creation-lza-resources"></a>
+ [Accélérateur de zone d'atterrissage activé AWS](https://aws.amazon.com/solutions/implementations/landing-zone-accelerator-on-aws/) (bibliothèque de AWS solutions)
+ [Résolution des AWS CDK problèmes courants](https://docs.aws.amazon.com/cdk/v2/guide/troubleshooting.html) (AWS CDK documentation)

## Informations supplémentaires
<a name="automate-account-creation-lza-additional"></a>

**Schéma de flux de travail Step Functions**

L'image suivante montre les états du flux de travail Step Functions.

![\[États dans le flux de travail Step Functions.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/d31abfaa-6854-4923-b896-3b817de9f4d9/images/d93aa7bf-1144-4f25-9488-aacc534a7813.png)


**Arguments**

Voici les arguments que vous pouvez utiliser lorsque vous exécutez le script Python qui lance le flux de travail Step Functions.

Les arguments suivants sont obligatoires :
+ `account-name (-a)`(string) — Le nom du nouveau Compte AWS.
+ `support-dl (-s)`(chaîne) — Adresse e-mail qui reçoit la notification lorsque le processus de création du compte est terminé.
+ `managed-org-unit (-m)`(string) — [Unité organisationnelle (UO)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#organizationalunit) gérée qui contiendra le nouveau compte.

Les arguments suivants sont facultatifs :
+ `ad-integration (-ad)`(dictionnaire de chaînes) — Le groupe d'identifiants Microsoft Entra et l'ensemble d'autorisations attribuées. Voici un exemple d'utilisation de cet argument :

  ```
  --ad-integration "{\"<PermissionSetName>\": \"<EntraIdGroupName>\"}"
  ```
+ `account-email (-e)`****(string) — Adresse e-mail de l'utilisateur root du nouveau Compte AWS.
**Note**  
Si cet argument n'est pas utilisé, une adresse e-mail sera générée en utilisant les valeurs `rootEmailPrefix` et `rootEmailDomain` à partir du `configs/deploy-config.yaml` fichier. Si aucune adresse e-mail n'est fournie, une adresse e-mail est générée en utilisant le format suivant :`rootEmailPrefix+accountName@rootEmailDomain`.
+ `region (-r)`(string) — L' Région AWS endroit où le flux de travail Step Functions a été déployé. La valeur par défaut est `us-east-1`.
+ `force-update (-f)`(chaîne booléenne) — Entrez `true` pour forcer la mise AWS Service Catalog à jour du produit approvisionné.
+ `bypass-creation (-b)`(chaîne booléenne) — Entrez `true` pour éviter d'ajouter le compte au `accounts-config.yaml` fichier et d'exécuter le `AWSAccelerator-Pipeline` pipeline. Cet argument est généralement utilisé pour tester le processus de création de compte ou pour exécuter le reste des étapes de Step Functions en cas d'erreur dans le `Landing Zone Accelerator` pipeline.
+ `tags (-t)`(string) — Balises supplémentaires que vous souhaitez ajouter au Compte AWS. Par défaut, les balises suivantes sont ajoutées : `account-name``support-dl`, et`purpose`. Voici un exemple d'utilisation de cet argument :

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

# Inventaire automatique AWS des ressources sur plusieurs comptes et régions
<a name="automate-aws-resource-inventory"></a>

*Matej Macek, Amazon Web Services*

## Résumé
<a name="automate-aws-resource-inventory-summary"></a>

Ce modèle décrit une approche automatisée pour maintenir un inventaire complet des AWS ressources sur plusieurs comptes et Régions AWS. Il est conçu pour aider les ingénieurs en infrastructure et en sécurité à améliorer leurs pratiques de gestion des ressources. Il est utilisé AWS Config pour suivre l'évolution des ressources, Amazon Athena pour les requêtes et Amazon Quick Sight pour les tableaux de bord interactifs. Vous implémentez cette solution en déployant une AWS CloudFormation pile.

Cette solution est similaire à celle présentée dans [Visualisation des AWS Config données à l'aide d'Amazon Athena et d'Amazon Quick](https://aws.amazon.com/blogs/mt/visualizing-aws-config-data-using-amazon-athena-and-amazon-quicksight/) Sight AWS (article de blog). Ce modèle développe cette solution pour répondre aux exigences courantes suivantes et offrir les principaux avantages suivants :
+ **Axée sur la conformité** [— Cette approche peut vous aider à répondre aux exigences réglementaires telles que les normes [PCI DSS](https://www.pcisecuritystandards.org/), [NIST SP 800-53](https://csrc.nist.gov/pubs/sp/800/53/r5/upd1/final), [ISO/IEC 27001, HIPAA, GDPR](https://www.iso.org/standard/27001)[et d'autres qui imposent des inventaires d'actifs précis](https://www.hhs.gov/programs/hipaa/index.html).](https://gdpr.eu/)
+ **Cadre de personnalisation** : il fournit une base pour créer des tableaux de bord Quick Sight pour diverses AWS ressources, afin que vous puissiez personnaliser la solution en fonction de vos besoins spécifiques.
+ **Améliorations axées sur l'utilisateur** : cette approche intègre les commentaires issus de cas d'utilisation réels et répond aux demandes de solution plus complète.

Les équipes chargées de l'infrastructure, de la sécurité et des finances sont souvent confrontées à des problèmes de visibilité et de collaboration dans des environnements dynamiques, multicomptes ou multirégionaux. Cette solution est conçue pour relever ces défis et réduire considérablement le temps et les efforts nécessaires à la création et à la maintenance d'un inventaire des ressources. Le résultat est une vue centralisée des ressources qui vous aide à améliorer les décisions d'allocation des ressources, à identifier et à atténuer les risques, à optimiser les coûts et à améliorer la visibilité globale et la collaboration. Cette approche comble le fossé entre les solutions conceptuelles et les besoins de mise en œuvre réels à des fins de sécurité, de conformité et d'exploitation.

## Conditions préalables et limitations
<a name="automate-aws-resource-inventory-prereqs"></a>

**Conditions préalables**
+ Les actifs suivants Comptes AWS :
  + *Compte de gestion : compte* centralisé pour la facturation, la création de comptes et le contrôle des accès dans l'ensemble de l'organisation
  + *Compte d'audit* : plateforme centralisée pour la surveillance de la sécurité, les contrôles de conformité et les notifications de dérive
  + *Compte d'archivage des journaux* — Un compte centralisé pour le stockage et l'analyse des données collectées
+ Dans le compte d'audit, un AWS Config [agrégateur](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html) qui collecte et agrège les données de configuration de vos comptes cibles et de vos régions
+ Dans le compte d'archivage du journal, configurez les éléments suivants :
  + Un bucket Amazon Simple Storage Service (Amazon [S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) dans lequel vous stockez les données de l'agrégateur AWS Config 
  + Un [abonnement](https://docs.aws.amazon.com/quicksight/latest/user/signing-up.html) Amazon Quick
  + Une [connexion autorisée](https://docs.aws.amazon.com/quicksight/latest/user/athena.html) entre Quick Sight et Amazon Athena
  + [Autorisations](https://docs.aws.amazon.com/athena/latest/ug/s3-permissions.html) d'accès au compartiment Amazon S3 via une requête Athena
+ AWS Command Line Interface (AWS CLI), [installé](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) et [configuré](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ Autorisations permettant de déployer une CloudFormation pile qui fournit les ressources suivantes :
  + Une AWS Lambda fonction
  + Une configuration de notification Amazon S3
  + Base de données, tables et vues Athena
  + Ensembles de données et sources de données Quick Sight
+ Autorisations pour exécuter des automatisations dans AWS Systems Manager
+ Autorisations d'accès à Quick

**Limites**
+ La solution repose sur AWS Config. AWS Config enregistre généralement les modifications de configuration de vos ressources juste après la détection d'une modification, ou à la fréquence que vous spécifiez. Cependant, cela se fait dans la mesure du possible et peut parfois prendre plus de temps.
+ Cette solution suit uniquement les [types de ressources AWS Config compatibles](https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html).
+ La solution ne suit pas l'inventaire des ressources chez les autres fournisseurs de cloud ou dans les environnements sur site.
+ Certains Services AWS ne sont pas disponibles du tout Régions AWS. Pour connaître la disponibilité des régions, consultez la page [Points de terminaison et quotas du service](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) dans la AWS documentation, puis choisissez le lien vers le service.

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

Le schéma suivant montre un processus rationalisé de collecte, d'organisation, d'analyse et de visualisation des données de configuration et de conformité sur plusieurs comptes d'une AWS organisation.

![\[Collecte et visualisation des données de configuration et de conformité au sein d'une organisation.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/67a9667a-da19-4dcb-a2fe-62bc94a0541b/images/c9245de1-ac85-4a9e-a0c0-dbcc27a8bb5d.png)


Le schéma suivant illustre le flux de travail suivant :

1. De façon périodique, l' AWS Config agrégateur collecte des données de configuration et de conformité concernant les ressources des comptes cibles et des régions, puis transmet les données au compartiment Amazon S3 dans le compte d'archivage des journaux.

1. L'ajout de nouvelles AWS Config données au compartiment Amazon S3 appelle une AWS Lambda fonction.

1. La fonction Lambda partitionne les données en configurant des clés avec des valeurs correspondant à la région et à la date de chaque fichier de capture instantanée. Cela permet d'interroger et de traiter AWS Glue efficacement les données de configuration et de conformité.

1. Amazon Athena utilise un AWS Glue [schéma](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html) pour exécuter des requêtes SQL sur les données stockées dans le compartiment Amazon S3. Il utilise les métadonnées du schéma AWS Glue pour comprendre la structure des données.

1. Les [vues](https://docs.aws.amazon.com/athena/latest/ug/views.html) d'Athena définissent et extraient les ensembles de données cibles.

1. [Les tableaux de bord](https://docs.aws.amazon.com/quicksight/latest/user/using-dashboards.html) de Quick Sight vous aident à visualiser et à analyser les ensembles de données.

## Outils
<a name="automate-aws-resource-inventory-tools"></a>

**Services AWS**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) est un service de requête interactif qui vous permet d'analyser les données directement dans Amazon S3 à l'aide du SQL standard.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)vous aide à configurer les AWS ressources, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie à travers Comptes AWS et Régions AWS.
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)fournit une vue détaillée des ressources de votre ordinateur Compte AWS et de la façon dont elles sont configurées. Il vous aide à identifier la façon dont les ressources sont liées les unes aux autres et comment leurs configurations ont évolué au fil du temps. Un AWS Config [agrégateur](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html) collecte des données AWS Config de configuration et de conformité provenant de plusieurs Comptes AWS régions.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)est un service d'extraction, de transformation et de chargement (ETL) entièrement géré. Il vous aide à classer, nettoyer, enrichir et déplacer les données de manière fiable entre les magasins de données et les flux de données. Ce modèle utilise un [catalogue de AWS Glue données](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro) et un [registre de schémas](https://docs.aws.amazon.com/glue/latest/dg/schema-registry.html).
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) est un service de calcul qui vous aide à exécuter du code sans avoir à allouer ni à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)est un service de gestion de comptes qui vous aide à Comptes AWS en regrouper plusieurs au sein d'une organisation que vous créez et gérez de manière centralisée.
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksuite/latest/userguide/quick-bi.html) est un service de business intelligence (BI) qui vous aide à transformer les données brutes en informations pertinentes grâce à des visualisations, des tableaux de bord et des rapports interactifs. Quick Sight est un composant essentiel d'Amazon Quick.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)vous aide à gérer vos applications et votre infrastructure exécutées dans le AWS Cloud. Il simplifie la gestion des applications et des ressources, réduit le délai de détection et de résolution des problèmes opérationnels et vous aide à gérer vos AWS ressources en toute sécurité à grande échelle. [AWS Systems Manager L'automatisation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) simplifie les tâches courantes de maintenance, de déploiement et de correction pour de nombreuses personnes Services AWS.

**Référentiel de code**

Le AWS CloudFormation modèle de ce modèle est disponible dans le GitHub référentiel [AWS Config de visualisation](https://github.com/aws-samples/aws-management-and-governance-samples/blob/master/AWSConfig/AWS-Config-Visualization/README.md). Ce CloudFormation modèle déploie un runbook AWS Systems Manager d'automatisation configuré AWS Config pour être utilisé avec Amazon Athena. Cette automatisation prépare la connexion AWS Glue au compartiment Amazon S3 désigné, crée des vues dans Amazon Athena et configure Quick Sight pour la visualisation du tableau de bord.

## Bonnes pratiques
<a name="automate-aws-resource-inventory-best-practices"></a>
+ Nous vous recommandons de suivre les meilleures pratiques décrites dans la [section Configuration et gestion d'un AWS environnement multi-comptes sécurisé, conformément aux](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-aws-environment/welcome.html) directives AWS Control Tower AWS prescriptives.
+ Nous vous recommandons de créer un AWS Config agrégateur qui collecte les données de configuration et de conformité pour l'ensemble de l' AWS organisation. Pour plus d'informations, consultez la section [Agrégation de données multicomptes et multirégions](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html) dans la AWS Config documentation.
+ [Avant de déployer cette solution, nous vous recommandons de consulter les informations tarifaires actuelles pour [Amazon S3 [AWS Config](https://aws.amazon.com/config/pricing/)](https://aws.amazon.com/s3/pricing/), [Athena](https://aws.amazon.com/athena/pricing/) et Quick.](https://aws.amazon.com/quicksight/pricing/)

## Épopées
<a name="automate-aws-resource-inventory-epics"></a>

### Déployez la CloudFormation pile
<a name="deploy-the-cfnshort-stack"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Téléchargez le CloudFormation modèle. | Téléchargez le modèle [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). | Administrateur AWS, administrateur cloud, DevOps ingénieur | 
| Modifiez le CloudFormation modèle. | Effectuez cette étape uniquement si vous utilisez [AWS Control Tower](https://aws.amazon.com/controltower/)et AWS Config êtes géré par AWS Control Tower. Vous devez modifier le CloudFormation modèle.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | DevOps ingénieur, administrateur AWS | 
| Créez une CloudFormation pile. | Suivez les instructions de la [section Créer une pile depuis la CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). Notez ce qui suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrateur AWS, administrateur cloud, DevOps ingénieur | 

### Exécutez l'automatisation dans Systems Manager
<a name="run-the-automation-in-sys"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Trouvez votre nom d'utilisateur Quick. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrateur AWS, administrateur cloud, DevOps ingénieur | 
| Trouvez le nom du canal de diffusion et le nom du compartiment Amazon S3. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrateur AWS, administrateur cloud, DevOps ingénieur | 
| Exécutez l'automatisation dans Systems Manager. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrateur AWS, administrateur cloud, DevOps ingénieur | 

### Visualisez les données dans Quick Sight
<a name="visualize-data-in-qsight"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Actualisez les données. | Pour planifier des actualisations de jeux de données en fonction de vos besoins spécifiques, suivez les instructions de la section [Actualisation des données SPICE](https://docs.aws.amazon.com/quicksight/latest/user/refreshing-imported-data.html). | Administrateur AWS, DevOps ingénieur, administrateur cloud | 
| Créez une analyse . | Pour créer un tableau de bord dans Quick Sight qui vous aide à visualiser les ressources, suivez les instructions de la section [Lancer une analyse dans Quick Sight](https://docs.aws.amazon.com/quicksuite/latest/userguide/creating-an-analysis.html). | Administrateur de Quick Suite | 
| Créez un tableau de bord. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrateur de Quick Suite | 

### (Facultatif) Nettoyer
<a name="optional-clean-up"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Supprimez les ressources créées par l'automatisation de Systems Manager. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/automate-aws-resource-inventory.html) | Administrateur AWS, administrateur cloud, DevOps ingénieur | 
| Supprimez la CloudFormation pile. | Pour supprimer les ressources de la `Config-QuickSight-Visualization-SSM-Automation` pile, suivez les instructions de la [section Supprimer une pile de la CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html). | Administrateur AWS, administrateur cloud, DevOps ingénieur | 

## Résolution des problèmes
<a name="automate-aws-resource-inventory-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Amazon Quick essaie de se connecter à `us-east-1` Région AWS, mais la création de ressources dans cette région n'est pas autorisée. | Une politique de contrôle des services restreint votre abonnement à Amazon Quick dans cette région. Dans la politique de contrôle des services, spécifiez manuellement la cible Région AWS. Remplacez `<REGION_ID>` par l'identifiant de région approprié :<pre>https://<REGION_ID>.quicksight.aws.amazon.com/sn/start/dashboards</pre>Voici un exemple :<pre>https://eu-central-1.quicksight.aws.amazon.com/sn/start/dashboards</pre> | 
| Dans Amazon Athena, le message suivant s'affiche :`Before you run your first query, you need to set up a query result location in Amazon S3.` | Assurez-vous d'avoir préparé un compartiment Amazon S3 dans lequel vous stockerez les résultats des requêtes provenant d'Amazon Athena. Suivez ensuite les instructions de la section [Spécifier l'emplacement des résultats d'une requête à l'aide de la console Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/query-results-specify-location-console.html). | 

## Ressources connexes
<a name="automate-aws-resource-inventory-resources"></a>

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

**AWS article de blog**
+ [Automatisez la visualisation des AWS Config données avec AWS Systems Manager](https://aws.amazon.com/blogs/mt/automate-aws-config-data-visualization-with-aws-systems-manager/)
+ [Comment enregistrer régulièrement les modifications de configuration des ressources avec AWS Config](https://aws.amazon.com/blogs/mt/how-to-record-resource-configuration-changes-periodically-with-aws-config/)

**Autres ressources**
+ [Centre de formation communautaire Amazon Quick](https://community.amazonquicksight.com/c/learning-center/10/none)
+ [Galerie de la communauté Amazon Quick](https://community.amazonquicksight.com/c/gallery/44)

# Créez une zone AWS d'atterrissage qui inclut MongoDB Atlas
<a name="build-aws-landing-zone-that-includes-mongodb-atlas"></a>

*Igor Alekseev, Amazon Web Services*

*Anuj Panchal, MongoDB*

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

Ce modèle décrit comment créer une zone AWS d'atterrissage intégrée à un cluster MongoDB Atlas. L'infrastructure est automatiquement déployée à l'aide d'un script Terraform. 

Un AWS environnement multi-comptes bien structuré, appelé [zone d'atterrissage](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-migration/aws-landing-zone.html), offre évolutivité et sécurité, en particulier pour les entreprises. Il sert de base au déploiement rapide des charges de travail et des applications, et contribue à garantir la confiance dans la sécurité et l'infrastructure. La création d'une zone d'atterrissage nécessite un examen attentif des facteurs techniques et commerciaux, notamment la structure du compte, le réseau, la sécurité et la gestion des accès. Ces considérations doivent être alignées sur la croissance future et les objectifs commerciaux de votre organisation.

Les cas d'utilisation de ce modèle sont les suivants.
+ **Plateformes SaaS et PaaS d'entreprise :** les applications logicielles en tant que service (SaaS) mutualisées et les plateformes de plate-forme en tant que service (PaaS) qui s'exécutent AWS peuvent utiliser cette configuration pour fournir un accès privé et sécurisé à MongoDB Atlas sans exposer les données sur Internet public.
+ **Secteurs hautement réglementés** : les charges de travail des banques, des services financiers, des soins de santé et des administrations qui nécessitent un strict respect de normes telles que la Health Insurance Portability and Accountability Act (HIPAA), la norme de sécurité des données du secteur des cartes de paiement (PCI DSS), le System and Organization Controls 2 (SOC2) et le règlement général sur la protection des données (RGPD) bénéficient de :
  + Connectivité privée cryptée via AWS PrivateLink
  + Haute disponibilité multi-AZ des ensembles de répliques MongoDB
+ ** AI/ML Charges de travail sécurisées** : les pipelines de formation ou d'inférence d'Amazon Bedrock, d'Amazon SageMaker AI ou de modèles d'IA personnalisés peuvent récupérer et stocker des données en toute sécurité dans MongoDB Atlas over. PrivateLink
+ **Reprise après sinistre et continuité des activités : la** conception multi-AZ garantit qu'aucune défaillance d'une seule zone de disponibilité ne perturbe les charges de travail. Une réplique d'Atlas répartie sur plusieurs zones de disponibilité garantit un basculement automatique. Cela est essentiel pour les services permanents tels que les applications de technologie financière (fintech), les services bancaires numériques ou le suivi des soins de santé.

## Conditions préalables et limitations
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-prereqs"></a>

**Conditions préalables**
+ Accès du propriétaire de l'organisation à MongoDB Atlas afin que vous puissiez créer des clés d'API Atlas. Pour plus d'informations sur cette exigence, consultez la section [Gérer l'accès à l'organisation](https://www.mongodb.com/docs/atlas/tutorial/manage-organizations/) dans la documentation de MongoDB.
+ Un actif [Compte AWS](https://aws.amazon.com/resources/create-account/).
+ [Terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli), installé et configuré.
+ Un cluster MongoDB Atlas, créé avec MongoDB version 6.0 ou ultérieure.
+ Connaissance de MongoDB et de MongoDB Atlas. Pour plus d'informations, consultez la documentation de l'[Atlas MongoDB](https://www.mongodb.com/docs/atlas/).

**Limites**
+ Certains Services AWS ne sont pas disponibles du tout Régions AWS. Pour connaître la disponibilité par région, voir [Services AWS par région](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Pour des points de terminaison spécifiques, consultez [Points de terminaison de service et quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), puis choisissez le lien correspondant au service.

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

Le schéma d'architecture de référence suivant illustre la configuration de déploiement pour une zone d' AWS atterrissage intégrée à un point de terminaison privé MongoDB Atlas. Cette architecture de référence montre comment établir une zone d' AWS atterrissage sécurisée, évolutive et hautement disponible intégrée à MongoDB Atlas. En combinant les AWS meilleures pratiques telles que le déploiement multi-AZ, les contrôles de sécurité basés sur le moindre privilège et la connectivité privée, cette conception permet aux entreprises de fournir un environnement robuste pour les applications modernes.

![\[Architecture multi-AZ pour la zone de landing zone AWS intégrée à MongoDB Atlas.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/72d335b9-b5b1-4fe2-9972-65edbec60ab1/images/82a8cc98-6f22-4e28-a236-57a809930055.png)


Cette architecture comprend les éléments suivants :

**VPC**
+ Un seul cloud privé virtuel (VPC) couvre trois zones de disponibilité.
+ Le VPC est subdivisé en sous-réseaux alignés sur chaque zone de disponibilité. Ces sous-réseaux distribuent les charges de travail pour une haute disponibilité.

**Accès à Internet**
+ Une passerelle Internet fournit une connectivité Internet sortante aux ressources qui en ont besoin, telles que les hôtes d'applications ou de bastions.
+ Les sous-réseaux publics peuvent héberger des passerelles NAT, qui permettent aux charges de travail des sous-réseaux privés de télécharger des mises à jour, des correctifs et d'autres packages requis sans les exposer directement à l'Internet public.

**Sous-réseaux privés et tables de routage**
+ Les composants d'application, les microservices ou les autres ressources sensibles résident généralement dans des sous-réseaux privés.
+ Des tables de routage dédiées contrôlent les flux de trafic. Achemine le trafic sortant direct des sous-réseaux privés vers les passerelles NAT pour un accès Internet sécurisé réservé aux sorties.
+ Les demandes entrantes provenant d'Internet transitent par des équilibreurs de charge élastiques ou des hôtes bastions (s'ils sont utilisés) dans des sous-réseaux publics, puis sont acheminées de manière appropriée vers les ressources de sous-réseaux privés.

**Connectivité MongoDB Atlas via PrivateLink**
+ L'architecture permet PrivateLink (via un point de terminaison VPC) de se connecter en toute sécurité à MongoDB Atlas sans exposer vos données à l'Internet public.
+ Les demandes restent sur le AWS réseau principal. Les données en transit bénéficient du PrivateLink chiffrement et ne sont jamais acheminées via l'Internet public.
+ Le VPC dédié MongoDB Atlas héberge vos nœuds principaux et secondaires et fournit un environnement sécurisé et isolé pour votre cluster de bases de données géré.

**déploiement multi-AZ**
+ Les composants d'infrastructure critiques (tels que les passerelles NAT et les sous-réseaux d'applications) sont répartis sur au moins trois zones de disponibilité. En cas de panne d'une zone de disponibilité, cette architecture garantit que les charges de travail des zones de disponibilité restantes restent opérationnelles.
+ Par défaut, MongoDB Atlas offre une haute disponibilité grâce à des ensembles de répliques et garantit que votre couche de base de données reste tolérante aux pannes. Les infrastructures critiques sont réparties sur au moins trois zones de disponibilité pour garantir leur résilience.

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

**Services AWS**
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)vous permet de remplacer les informations d'identification codées en dur dans votre code, y compris les mots de passe, par un appel d'API pour récupérer le secret par programmation.

**Autres produits et outils**
+ [MongoDB Atlas](https://www.mongodb.com/atlas) est une base de données en tant que service (DBaaS) entièrement gérée pour le déploiement et la gestion des bases de données MongoDB dans le cloud.
+ [Terraform](https://www.terraform.io/) est un outil d'infrastructure en tant que code (IaC) HashiCorp qui vous aide à créer et à gérer des ressources cloud et sur site. Dans ce modèle, vous utilisez Terraform pour exécuter un script afin de faciliter le déploiement des ressources requises sur AWS MongoDB Atlas.

**Référentiel de code**

Le code de ce modèle est disponible dans le référentiel [AWS MongoDB Atlas Landing Zone](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone) GitHub .

## Épopées
<a name="build-aws-landing-zone-that-includes-mongodb-atlas-epics"></a>

### Découverte et évaluation complètes
<a name="complete-discovery-and-assessment"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Identifiez les principales parties prenantes. | Identifiez toutes les parties prenantes clés et les membres de l'équipe impliqués dans votre projet de zone d'atterrissage. Cela peut inclure des rôles tels que :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-aws-landing-zone-that-includes-mongodb-atlas.html) | Responsable de la migration | 
| Créez un plan structurel. | Créez un plan qui décrit la structure souhaitée pour votre zone d'atterrissage AWS et celle compatible avec MongoDB Atlas. | Responsable de la migration | 
| Créez un plan d'architecture. | Collaborez avec vos architectes d'applications pour analyser les exigences et concevoir une architecture résiliente et tolérante aux pannes. Ce modèle fournit un modèle d'architecture de démarrage à titre de référence. Vous pouvez personnaliser ce modèle pour répondre aux besoins de sécurité et d'infrastructure de votre organisation. | Architecte du cloud | 
| Planifiez la configuration et le déploiement. | Déterminez, avec toutes les parties prenantes, comment l'architecture sera déployée, comment les mesures de sécurité seront mises en œuvre et tout autre aspect garantissant l'alignement avec les intérêts de l'organisation et de l'équipe demandeuse. | Responsable de la migration, DevOps ingénieur, DBA | 

### Configuration de l'environnement MongoDB Atlas
<a name="set-up-the-mongodb-atlas-environment"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Pour cloner le référentiel. | Clonez le code depuis le [GitHub dépôt](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone) en exécutant la commande suivante :<pre>git clone https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone</pre> | Développeur d'applications, DevOps ingénieur | 
| Obtenez l'identifiant de votre organisation Atlas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-aws-landing-zone-that-includes-mongodb-atlas.html) | DBA | 
| Générez des clés d'API au niveau de l'organisation Atlas. | [Pour générer les clés d'API au niveau de votre organisation dans Atlas, suivez les instructions de la documentation MongoDB.](https://www.mongodb.com/docs/atlas/configure-api-access/#grant-programmatic-access-to-an-organization) | DBA | 
| Créez un secret dans AWS Secrets Manager. | Stockez les clés d'API MongoDB Atlas générées à l'étape précédente sous forme de code secret clé-valeur dans Secrets Manager. Pour obtenir des instructions, consultez la [documentation de Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). | DevOps ingénieur | 
| Sélectionnez le niveau du cluster Atlas. | Pour sélectionner le niveau de cluster Atlas approprié, suivez les instructions de la documentation [MongoDB](https://www.mongodb.com/docs/atlas/sizing-tier-selection/). | DBA | 

### Configuration des AWS environnements
<a name="set-up-the-aws-environments"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Modifiez le script Terraform. | Dans votre copie locale du GitHub référentiel, mettez à jour le nom du secret dans le fichier [modules/mongodb-atlas/main.tf](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/3748350730ec2ac7ab64662d536b67b4840c667c/modules/mongodb-atlas/main.tf#L12) (ligne 12), afin que Terraform puisse récupérer les informations d'identification auprès de Secrets Manager lors du déploiement. | DevOps ingénieur | 
| Créez un identifiant de clé d' AWS accès et une clé secrète. | Pour créer votre identifiant de clé d' AWS accès et votre clé secrète, suivez les instructions de l'article AWS Re:Post [How do I create an AWS access](https://repost.aws/knowledge-center/create-access-key) key ?Il est recommandé d'attribuer des politiques avec le moins de privilèges nécessaires, mais dans ce cas, sélectionnez la `AdministratorAccess` stratégie.Après avoir créé votre clé d'accès, consultez les [meilleures pratiques de sécurité dans IAM pour en](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) savoir plus sur les meilleures pratiques en matière de gestion des clés d'accès. | DevOps ingénieur | 
| Allouez des adresses IP élastiques. | Allouez au moins deux adresses IP élastiques IDs. Pour obtenir des instructions, consultez la [documentation Amazon Virtual Private Cloud (Amazon VPC).](https://docs.aws.amazon.com/vpc/latest/userguide/WorkWithEIPs.html) | DevOps ingénieur | 
| Créez un compartiment S3. | Créez un compartiment S3 pour stocker l'état de votre déploiement Terraform en suivant les instructions de la documentation [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | DevOps ingénieur | 
| Mettez à jour le compartiment S3 pour le stockage. | Mettez à jour les informations du compartiment S3 dans votre version locale de [environments/development/main.tf](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/83e0b52cc4a8c12b24b54edeecbae496880d3615/environments/development/main.tf#L16) pour qu'elles correspondent au nom et à la région du compartiment que vous avez créé à l'étape précédente, et spécifiez un préfixe de clé. Par exemple :<pre>terraform {<br />       ...<br />  backend "s3" {<br />    bucket = "startup-name-product-terraform"<br />    key    = "network/dev"<br />    region = "ap-southeast-1"<br />  }<br />}</pre>Pour cet exemple, vous pouvez configurer Terraform pour utiliser le `network/dev` préfixe key pour organiser le fichier d'état Terraform. Vous pouvez modifier la valeur en `prod` fonction `staging` de l'environnement que vous souhaitez créer. Pour plus d'informations sur l'utilisation de plusieurs environnements, consultez la dernière étape de cette section.Pour plus d'informations sur les préfixes clés Amazon S3, consultez la section [Organisation des objets à l'aide de préfixes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) dans la documentation Amazon S3. | DevOps ingénieur | 
| Définissez les variables Terraform. | L'exemple de zone d'atterrissage définit les valeurs des variables d'entrée à l'aide de fichiers de [définition de variables Terraform](https://www.terraform.io/docs/language/values/variables.html#variable-definitions-tfvars-files).Le fichier de variables se trouve dans le fichier [environments/development/variables.tf.](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/environments/development/variables.tf) Vous pouvez définir les valeurs des variables dans le [environments/development/terraformfichier .tfvars.](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/environments/development/terraform.tfvars) Configurez ces variables comme décrit dans le [fichier Readme](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/README.md#terraform-variables) du GitHub référentiel. | DevOps ingénieur | 
| Configurez les variables d'environnement. | Si vous envisagez d'exécuter le script Terraform sur votre machine locale, configurez les variables d'environnement suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/build-aws-landing-zone-that-includes-mongodb-atlas.html)Pour plus d'informations sur la configuration des variables d'environnement, consultez la [documentation AWS Command Line Interface (AWS CLI).](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html#envvars-set) | DevOps ingénieur | 
| Vérifiez les configurations VPC. | Pour suivre les meilleures pratiques recommandées par AWS, configurez les paramètres du VPC et du sous-réseau CIDRs, des passerelles NAT, des routes et des tables de routage dans le script Terraform afin de répondre aux besoins de votre organisation. Pour plus de détails, consultez le [fichier Readme](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/README.md#vpc-configurations) du GitHub référentiel. | DevOps ingénieur | 
| Baliser des ressources . | Vous pouvez étiqueter vos AWS ressources pour les surveiller lorsqu'elles sont déployées par le script Terraform. Pour des exemples, consultez le [fichier Readme](https://github.com/mongodb-partners/AWS-MongoDB-Atlas-Landing-Zone/blob/main/README.md#resource-taggings) du GitHub référentiel. Pour plus d'informations sur la surveillance des ressources par le biais de balises de coût, d'utilisation, etc., consultez la section [Activation des balises de répartition des coûts définies par](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/activating-tags.html) l'utilisateur dans la AWS Billing documentation. | DevOps ingénieur | 
| Utilisez plusieurs environnements. | Le GitHub référentiel fournit un dossier d'`development`environnement. Vous pouvez également ajouter vos propres environnements dans le dossier d'environnement.Pour ajouter un environnement, copiez le `development` dossier dans un nouveau dossier (par exemple, `prod` ou`staging`) situé sous`environments`. Vous pouvez ensuite mettre à jour le `terraform.tfvars` fichier avec la nouvelle valeur. | DevOps ingénieur | 

### Déployez la zone d'atterrissage
<a name="deploy-the-landing-zone"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Initialisez le répertoire de travail Terraform. | Pour initialiser le répertoire de travail et télécharger les packages nécessaires, exécutez la commande suivante :<pre>terraform init</pre> | DevOps ingénieur | 
| Créez un plan d'exécution. | Pour créer un plan d'exécution et visualiser les modifications que Terraform apportera à votre infrastructure, exécutez la commande :<pre>terraform plan</pre> | DevOps ingénieur | 
| Déployez les modifications. | Pour implémenter les modifications apportées à votre infrastructure comme décrit dans le code, exécutez la commande suivante :<pre>terraform apply</pre> | DevOps ingénieur | 
| Validez le déploiement. | Validez les composants créés ou modifiés par Terraform dans votre infrastructure.Pour tester la configuration, provisionnez une ressource de calcul (par exemple, une EC2 instance ou une AWS Lambda fonction Amazon) dans le VPC ou attachée à celui-ci. | DevOps ingénieur, développeur d'applications | 

### Supprimer des ressources
<a name="remove-resources"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Nettoyer. | Lorsque vous avez terminé les tests, exécutez la commande suivante pour détruire les ressources déployées par Terraform dans votre infrastructure :<pre>terraform destroy</pre> | DevOps ingénieur | 

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

**Découverte et évaluation**
+ [Conseils administratifs pour la configuration de la zone d'atterrissage](https://docs.aws.amazon.com/controltower/latest/userguide/tips-for-admin-setup.html) (AWS Control Tower documentation)
+ [Attentes relatives à la configuration de la zone d'atterrissage](https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-configure.html) (AWS Control Tower documentation)
+ [Bonnes pratiques pour les mises à jour des zones d'atterrissage](https://docs.aws.amazon.com/controltower/latest/userguide/lz-update-best-practices.html) (AWS Control Tower documentation)

**Configuration de l'atlas et des environnements MongoDB AWS **
+ [Obtenir MongoDB Atlas](https://aws.amazon.com/marketplace/pp/prodview-pp445qepfdy34) ()AWS Marketplace
+ [Mémoire](https://docs.atlas.mongodb.com/sizing-tier-selection/#memory) (documentation de l'Atlas MongoDB)
+ [Exemple de dimensionnement avec des exemples de jeux de données Atlas](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#example--the-service-sample-data-sets) (documentation MongoDB Atlas)
+ [Exemple de dimensionnement pour les applications mobiles](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#example--mobile-app) (documentation MongoDB Atlas)
+ [Trafic réseau](https://docs.atlas.mongodb.com/sizing-tier-selection/#network-traffic) (documentation MongoDB Atlas)
+ [auto-scaling du cluster (documentation](https://www.mongodb.com/docs/atlas/sizing-tier-selection/#cluster-auto-scaling) MongoDB Atlas)
+ [Modèle de dimensionnement de l'atlas](https://www.mongodb.com/docs/atlas/sizing-tier-selection/) (documentation MongoDB Atlas)
+ [Configurer une connexion d'appairage réseau](https://docs.atlas.mongodb.com/security-vpc-peering/) (documentation MongoDB Atlas)
+ [Points de terminaison privés dans Atlas](https://docs.atlas.mongodb.com/security-private-endpoint/) (documentation MongoDB Atlas)
+ [Chiffrement au niveau des champs côté client](https://docs.mongodb.com/manual/core/security-client-side-encryption) (documentation de la base de données MongoDB)
+ [Chiffrement automatique](https://docs.mongodb.com/manual/core/security-automatic-client-side-encryption) (documentation de la base de données MongoDB)
+ [Sélection d'un niveau de cluster](https://www.mongodb.com/docs/atlas/manage-clusters/#select-cluster-tier) (documentation MongoDB Atlas)

**Déploiement de la zone d'atterrissage**
+ [Terraform activé AWS](https://docs.aws.amazon.com/whitepapers/latest/cicd_for_5g_networks_on_aws/terraform.html) (*CI/CD pour les réseaux 5G* sur livre blanc) AWS
+ [Atlas MongoDB avec Terraform](https://www.mongodb.com/developer/products/atlas/mongodb-atlas-with-terraform/) (documentation MongoDB)

# Configurez les journaux de flux VPC pour les centraliser sur Comptes AWS
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts"></a>

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

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

Dans un cloud privé AWS virtuel (VPC), la fonctionnalité VPC Flow Logs peut fournir des données utiles pour le dépannage opérationnel et de sécurité. Cependant, l'utilisation des journaux de flux VPC dans un environnement multi-comptes est limitée. Plus précisément, les journaux de flux entre comptes d'Amazon CloudWatch Logs ne sont pas pris en charge. Vous pouvez plutôt centraliser les journaux en configurant un compartiment Amazon Simple Storage Service (Amazon S3) avec la politique de compartiment appropriée.

**Note**  
Ce modèle décrit les exigences relatives à l'envoi de journaux de flux vers un emplacement centralisé. Toutefois, si vous souhaitez également que les journaux soient disponibles localement dans les comptes membres, vous pouvez créer plusieurs journaux de flux pour chaque VPC. Les utilisateurs qui n'ont pas accès au compte Log Archive peuvent consulter les journaux de trafic pour résoudre les problèmes. Vous pouvez également configurer un journal de flux unique pour chaque VPC qui envoie des journaux à CloudWatch Logs. Vous pouvez ensuite utiliser un filtre d'abonnement Amazon Data Firehose pour transférer les journaux vers un compartiment S3. Pour plus d'informations, consultez la section [Ressources connexes](#configure-vpc-flow-logs-for-centralization-across-aws-accounts-resources).

## Conditions préalables et limitations
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-prereqs"></a>

**Prérequis**
+ Un actif Compte AWS
+ Une AWS Organizations organisation dotée d'un compte utilisé pour centraliser les journaux (par exemple, Log Archive)

**Limites**

Si vous utilisez la clé gérée AWS Key Management Service (AWS KMS) `aws/s3` pour chiffrer votre compartiment central, celui-ci ne recevra pas les journaux d'un autre compte. Au lieu de cela, vous verrez un code `Unsuccessful` d'erreur 400 avec un message tel que `"LogDestination: <bucketName> is undeliverable"` pour votre compte`ResourceId`. Cela est dû au fait que les clés AWS gérées d'un compte ne peuvent pas être partagées entre les comptes. La solution consiste à utiliser le chiffrement géré par Amazon S3 (SSE-S3) ou une clé gérée par AWS KMS le client que vous pouvez partager avec les comptes membres.

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

**Architecture cible**

Dans le schéma suivant, deux journaux de flux sont déployés pour chaque VPC. L'un d'eux envoie des journaux à un groupe de CloudWatch journaux local. L'autre envoie les journaux vers un compartiment S3 dans un compte de journalisation centralisé. La politique de compartiment autorise le service de livraison de journaux à écrire des journaux dans le compartiment.

**Note**  
Depuis novembre 2023, prend AWS désormais en charge la [clé de condition aws : SourceOrg ID](https://aws.amazon.com/about-aws/whats-new/2023/11/organization-wide-iam-condition-keys-restrict-aws-service-to-service-requests/). Cette condition vous permet de refuser d'écrire dans le compartiment centralisé pour les comptes extérieurs à votre AWS Organizations organisation.

![\[À partir de chaque VPC, un journal de flux envoie des journaux au compartiment S3 CloudWatch et un autre envoie des journaux au compartiment S3.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/718c29f4-a035-47ab-9c58-bd7d5c1ca77e/images/0b502d82-a6ce-4832-b854-99181d2ed834.png)


**Automatisation et mise à l'échelle**

Chaque VPC est configuré pour envoyer des journaux au compartiment S3 du compte de journalisation central. Utilisez l'une des solutions d'automatisation suivantes pour vous assurer que les journaux de flux sont correctement configurés :
+ [CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)
+ [AWS Control Tower Account Factory pour Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/taf-account-provisioning.html)
+ [Une AWS Config règle assortie de mesures correctives](https://aws.amazon.com/blogs/mt/how-to-enable-vpc-flow-logs-automatically-using-aws-config-rules/)

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

**Outils**
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) vous aide à centraliser les journaux de tous vos systèmes et applications, Services AWS afin que vous puissiez les surveiller et les archiver en toute sécurité.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) vous aide à lancer AWS des ressources dans un réseau virtuel que vous avez défini. Ce réseau virtuel ressemble à un réseau traditionnel que vous pourriez exécuter dans votre propre centre de données et présente l'avantage d'utiliser l'infrastructure évolutive d' AWS. Ce modèle utilise la fonctionnalité [VPC Flow Logs](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) pour capturer des informations sur le trafic IP à destination et en provenance des interfaces réseau de votre VPC.

## Bonnes pratiques
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-best-practices"></a>

L'utilisation de l'infrastructure en tant que code (IaC) peut considérablement simplifier le processus de déploiement des journaux de flux VPC. Si vous extrayez les définitions de déploiement de votre VPC pour inclure une structure de ressources de journal de flux, VPCs vous serez automatiquement déployé avec les journaux de flux. Cela est démontré dans la section suivante.

**Journaux de flux centralisés**

Exemple de syntaxe pour ajouter des journaux de flux centralisés à un module VPC dans HashiCorp Terraform : ce code crée un journal de flux qui envoie des journaux d'un VPC à un compartiment S3 centralisé. Notez que ce modèle ne couvre pas la création du compartiment S3. Pour les déclarations de politique relatives aux compartiments recommandées, consultez la section [Informations supplémentaires](#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.
}
```

Pour plus d'informations sur le format de journal personnalisé, consultez la [documentation Amazon VPC.](https://docs.aws.amazon.com/vpc/latest/userguide/flow-log-records.html#flow-logs-custom)

**Journaux de flux locaux**

Exemple de syntaxe pour ajouter des journaux de flux locaux à un module VPC dans Terraform avec les autorisations requises : ce code crée un journal de flux qui envoie des journaux d'un VPC à un groupe de journaux 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
}
```

## Épopées
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-epics"></a>

### Déployer une infrastructure de journaux de flux VPC
<a name="deploy-vpc-flow-logs-infrastructure"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Déterminez la stratégie de chiffrement et créez la politique pour le compartiment S3 central. | Le compartiment central ne prend pas en charge la AWS KMS `aws/s3` clé. Vous devez donc utiliser SSE-S3 ou une clé gérée par AWS KMS le client. Si vous utilisez une AWS KMS clé, la politique en matière de clés doit autoriser les comptes membres à utiliser la clé. | Conformité d’ | 
| Créez le compartiment à journaux de flux central. | Créez le compartiment central auquel les journaux de flux seront envoyés et appliquez la stratégie de chiffrement que vous avez choisie à l'étape précédente. Cela doit se trouver dans une archive de journaux ou dans un compte à usage similaire.Obtenez la politique de compartiment dans la section [Informations supplémentaires](#configure-vpc-flow-logs-for-centralization-across-aws-accounts-additional) et appliquez-la à votre compartiment central après avoir mis à jour les espaces réservés avec les valeurs spécifiques à votre environnement. | AWS général | 
| Configurez les journaux de flux VPC pour envoyer les journaux au bucket de journaux de flux central. | Ajoutez des journaux de flux à chaque VPC à partir duquel vous souhaitez collecter des données. Le moyen le plus évolutif de le faire est d'utiliser des outils IaC tels que AFT ou AWS Cloud Development Kit (AWS CDK). Par exemple, vous pouvez créer un module Terraform qui déploie un VPC à côté d'un journal de flux. Si nécessaire, vous ajoutez les journaux de flux manuellement. | Administrateur réseau | 
| Configurez les journaux de flux VPC à envoyer aux journaux locaux CloudWatch . | (Facultatif) Si vous souhaitez que les journaux de flux soient visibles dans les comptes sur lesquels ils sont générés, créez un autre journal de flux pour envoyer des données aux CloudWatch journaux du compte local. Vous pouvez également envoyer les données vers un compartiment S3 spécifique au compte dans le compte local. | AWS général | 

## Ressources connexes
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-resources"></a>
+ [Comment faciliter l'analyse des données et répondre aux exigences de sécurité en utilisant des données de journal de flux centralisées](https://aws.amazon.com/blogs/security/how-to-facilitate-data-analysis-and-fulfill-security-requirements-by-using-centralized-flow-log-data/) (article de AWS blog)
+ [Comment activer automatiquement les journaux de flux VPC à l'aide de AWS Config règles](https://aws.amazon.com/blogs/mt/how-to-enable-vpc-flow-logs-automatically-using-aws-config-rules/) (AWS article de blog)

## Informations supplémentaires
<a name="configure-vpc-flow-logs-for-centralization-across-aws-accounts-additional"></a>

**Politique relative aux compartiments**

Cet exemple de politique de compartiment peut être appliqué à votre compartiment S3 central pour les journaux de flux, après avoir ajouté des valeurs pour les noms d'espaces réservés.

```
{
    "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"
                }
            }
        }
    ]
}
```

# Gérez les ensembles AWS d'autorisations de manière dynamique à l'aide de Terraform
<a name="manage-aws-permission-sets-dynamically-by-using-terraform"></a>

*Vinicius Elias et Marcos Vinicius Pinto Jordão, Amazon Web Services*

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

AWS IAM Identity Center améliore Gestion des identités et des accès AWS (IAM) en fournissant un hub centralisé pour la gestion de l'accès par authentification unique aux applications cloud Comptes AWS et aux applications cloud. Cependant, la gestion manuelle des [ensembles d'autorisations](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) IAM Identity Center peut devenir de plus en plus complexe et source d'erreurs au fur et à mesure que votre entreprise grandit. Cette complexité peut entraîner des failles de sécurité potentielles et des frais administratifs.

Cette solution vous permet de gérer les ensembles d'autorisations via l'infrastructure en tant que code (IaC) à l'aide d'un pipeline d'intégration continue et de livraison continue (CI/CD) construit en mode natif. Services AWS Il permet une intégration fluide du mécanisme d'attribution des ensembles d'autorisations aux événements AWS Control Tower du cycle de vie ou à un environnement [Account Factory for Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html). Cette approche fournit des configurations d'identité dynamiques pour les nouvelles et les existantes Comptes AWS.

 EventBridge Les règles d'Amazon surveillent les Compte AWS créations et les mises à jour, ce qui permet à vos configurations d'identité de rester synchronisées avec votre structure organisationnelle. Après avoir créé ou mis à jour des comptes dans AWS Control Tower ou AFT, le pipeline est déclenché. Il évalue un ensemble de fichiers JSON avec des définitions d'ensembles d'autorisations et des règles d'attribution. Ensuite, le pipeline applique et synchronise les paramètres sur tous les comptes.

Cette approche présente les avantages suivants :
+ **Cohérence** — Élimine la dérive manuelle des configurations au sein de votre AWS organisation
+ **Auditabilité** : conserve un historique complet de toutes les modifications apportées à la gestion des identités
+ **Évolutivité** — Applique automatiquement les configurations à mesure que votre AWS environnement se développe
+ **Sécurité** — Réduit les erreurs humaines lors de l'attribution des autorisations
+ **Conformité** — Facilite le respect des exigences réglementaires grâce à des modifications documentées et à des règles d'attribution

## Conditions préalables et limitations
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-prereqs"></a>
+ Un environnement multi-comptes avec AWS Control Tower et AWS Organizations configuré. Vous pouvez éventuellement utiliser AFT avec AWS Control Tower.
+ Un administrateur délégué du IAM Identity Center est Compte AWS chargé de recevoir la solution. Pour plus d'informations, consultez la section [Administration déléguée](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html) dans la documentation d'IAM Identity Center.
+ Un référentiel de système de contrôle de version (VCS) pour gérer le code principal. Pour un exemple, consultez le GitHub [référentiel](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline/tree/main/samples/basic) de la solution.
+  AWS Ressources nécessaires à la gestion du backend Terraform, telles qu'un bucket Amazon Simple Storage Service (Amazon S3) et une table Amazon DynamoDB.

**Limites**
+ Le pipeline utilise des ressources AWS natives et l'open source Terraform. Le pipeline n'est pas prêt à faire appel à des écosystèmes tiers.
+ Certains Services AWS ne sont pas disponibles du tout Régions AWS. Pour connaître la disponibilité par région, consultez la section [AWS Services par région](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Pour des points de terminaison spécifiques, consultez [Points de terminaison de service et quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html), puis choisissez le lien correspondant au service.

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

Le schéma suivant montre les composants et le flux de travail de ce modèle.

![\[Composants et flux de travail pour gérer les ensembles d'autorisations AWS à l'aide de Terraform.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/69dc79c7-b4cd-4ad0-b0d2-d58cf0c7adaa/images/649e299c-1142-405a-8982-4a6b2e595d53.png)


**AWS Control Tower flux d'événements**

La solution commence par l'intégration des événements provenant de l'un ou de l'autre AWS Control Tower ou de l'AFT. Le choix entre l'un ou l'autre service est effectué au moment de la mise en œuvre par le biais d'une définition de variable. Quelle que soit la méthode utilisée, le pipeline est déclenché chaque fois qu'un compte est créé ou mis à jour. Le pipeline réconcilie les politiques stockées dans le référentiel de gestion des ensembles d'autorisations.

Les événements du AWS Control Tower cycle de vie sont les suivants :
+ `CreateManagedAccount`— Lorsqu'un nouveau compte est créé
+ `UpdateManagedAccount`— Lorsqu'un compte existant est mis à jour

**Routage des événements**

EventBridge sert de service central de traitement des événements, capturant les événements générés dans le AWS Control Tower compte. Lorsque des événements se produisent, ils EventBridge sont acheminés de manière intelligente vers un bus d'événements centralisé dans le compte de solution. AWS Control Tower les événements du cycle de vie suivent des modèles de routage distincts. Si AFT est défini comme source d'événements, le compte de gestion AFT gère les événements à la place du AWS Control Tower compte. Cette architecture axée sur les événements permet de répondre automatiquement aux changements organisationnels sans intervention manuelle.

**Processus d'intégration AFT**

Lorsque les événements AWS Control Tower du cycle de vie atteignent le compte de gestion de l'AFT, ils déclenchent automatiquement plusieurs processus en aval intrinsèques à l'AFT. Une fois le processus de personnalisation du compte AFT terminé, celui-ci publie un message dans la rubrique dédiée `aft-notifications` Amazon Simple Notification Service (Amazon SNS). Cette rubrique déclenche la `aft-new-account-forward-event` AWS Lambda fonction implémentée par cette solution. La fonction Lambda envoie l'événement au bus d'événements du compte de solution, où il est utilisé pour démarrer le pipeline.

**L'infrastructure en tant que pipeline de code**

Le pipeline de solutions fonctionne comme un mécanisme de déploiement entièrement automatisé. Le AWS CodePipeline service surveille en permanence les modifications apportées au référentiel. Lors de la détection de nouveaux validations, il lance automatiquement le flux de travail de déploiement et lance un processus séquentiel comprenant des phases de validation et d'exécution. Le système exécute des `plan` opérations Terraform pour identifier les modifications proposées, suivies de `apply` commandes Terraform pour implémenter ces modifications dans l'environnement. AWS Notamment, le pipeline fonctionne sans aucune porte d'approbation manuelle. Cette approche permet un déploiement rapide des modifications de l'infrastructure tout en maintenant l'auditabilité grâce aux journaux de pipeline et aux fichiers d'état Terraform.

Le pipeline s'appuie sur AWS CodeBuild l'exécution des opérations Terraform dans un environnement contrôlé avec les autorisations appropriées. Grâce à cette approche IaC, le pipeline peut effectuer des opérations complètes de gestion des autorisations, notamment :
+ Créez de nouveaux ensembles d'autorisations.
+ Mettez à jour les ensembles d'autorisations existants.
+ Supprimez les ensembles d'autorisations inutiles.
+ Gérez l'attribution de ces autorisations entre les comptes et les groupes au sein des AWS organisations.

Pour maintenir la cohérence de l'infrastructure et éviter les modifications contradictoires, la solution implémente le système de gestion de l'état du backend Terraform à l'aide d'un bucket Amazon S3 et d'une table Amazon DynamoDB dédiée. Cette approche fournit un emplacement de stockage permanent pour les fichiers d'état Terraform et des mécanismes de verrouillage d'état pour empêcher les modifications simultanées des mêmes ressources.

Le code principal de Terraform utilise le module AWS `permission-sets` Terraform officiel. Ce module permet de gérer dynamiquement les ensembles d'autorisations dans IAM Identity Center, sur la base de modèles d'ensembles d'autorisations.

**Gestion du contrôle à la source**

Les modèles d'ensembles d'autorisations (fichiers JSON) résident dans un système de contrôle de version externe GitHub, tel que celui qui fournit un référentiel centralisé pour les configurations de gestion des identités. Cette approche établit une source unique de vérité pour les définitions des ensembles d'autorisations, tout en permettant un développement collaboratif grâce à des pratiques de révision de code standard. Les utilisateurs autorisés peuvent apporter des modifications à ces modèles conformément aux processus de gestion des changements organisationnels. Ces validations constituent le principal déclencheur du pipeline de déploiement automatisé, initiant le processus de mise à jour de l'infrastructure.

Pour un exemple de configuration des ensembles d'autorisations à l'aide du fichier JSON du référentiel, voir [Informations supplémentaires](#manage-aws-permission-sets-dynamically-by-using-terraform-additional).

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

**Services AWS**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)est un service de génération entièrement géré qui vous aide à compiler le code source, à exécuter des tests unitaires et à produire des artefacts prêts à être déployés.
+ [AWS CodeConnections](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html)permet aux AWS ressources et aux services CodePipeline, tels que la connexion à des référentiels de code externes, tels que GitHub.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)vous permet de modéliser et de configurer rapidement les différentes étapes d'une version logicielle et d'automatiser les étapes nécessaires à la publication continue des modifications logicielles.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) est un outil open source qui vous permet d'interagir Services AWS par le biais de commandes dans votre interface de ligne de commande.
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)vous aide à configurer et à gérer un environnement AWS multi-comptes, conformément aux meilleures pratiques prescriptives.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) est un service de base de données NoSQL entièrement géré, offrant des performances rapides, prévisibles et évolutives.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) est un service de bus d'événements sans serveur qui vous permet de connecter vos applications à des données en temps réel provenant de diverses sources. Par exemple, des AWS Lambda fonctions, des points de terminaison d'invocation HTTP utilisant des destinations d'API ou des bus d'événements dans d'autres. Comptes AWS
+ [Gestion des identités et des accès AWS (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)vous permet de gérer de manière centralisée l'accès par authentification unique (SSO) à toutes vos applications Comptes AWS et à celles du cloud.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) est un service de calcul qui vous aide à exécuter du code sans avoir à allouer ni à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)est un service de gestion de comptes qui vous aide à Comptes AWS en regrouper plusieurs au sein d'une organisation que vous créez et gérez de manière centralisée.
+ [Amazon Simple Notification Service (Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) vous aide à coordonner et à gérer l'échange de messages entre les éditeurs et les clients, y compris les serveurs Web et les adresses e-mail. Il active les notifications push pour les événements de gestion des comptes, garantissant ainsi que les parties concernées sont informées des modifications ou actions importantes au sein du système.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.

**Autres outils**
+ [Terraform](https://www.terraform.io/) est un outil d'infrastructure en tant que code (IaC) HashiCorp qui vous aide à créer et à gérer des ressources cloud et sur site.

**Référentiel de code**

Le code de ce modèle est disponible dans l'organisation AWS Samples ou GitHub dans le référentiel [sample-terraform-aws-permission-sets-pipeline](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline).

## Bonnes pratiques
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-best-practices"></a>
+ Identifiez toujours les versions des modules et fournisseurs Terraform utilisés pour exécuter le code en production.
+ Utilisez un outil d'analyse de code statique, tel que [Checkov](https://www.checkov.io/), pour scanner votre code puis résoudre les problèmes de sécurité.
+ Respectez le principe du moindre privilège et accordez les autorisations minimales requises pour effectuer une tâche. Pour plus d'informations, consultez les sections [Accorder le moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) et [Bonnes pratiques en matière de sécurité](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) dans la documentation IAM.

## Épopées
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-epics"></a>

### Créez les prérequis (facultatif)
<a name="create-the-prerequisites-optional"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez des ressources de backend Terraform. | Si vous n'avez pas encore créé vos AWS ressources de backend Terraform, suivez les étapes suivantes pour créer un compartiment Amazon S3 (`s3-tf-backend-{ACCOUNT_ID}`) et une table DynamoDB (). `ddb-tf-backend`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/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> | Administrateur AWS | 
| Créez un rôle multicompte. | Vous devez fournir un rôle IAM entre comptes dans la configuration du fournisseur `event-source-account` Terraform AWS . Si vous n'avez pas encore créé ce rôle, procédez comme suit pour le créer :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/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/fr_fr/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>Cet exemple utilise la politique [AdministratorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html)IAM AWS gérée. Si vous préférez, vous pouvez utiliser une politique plus spécifique. | Administrateur AWS | 

### Préparer le référentiel des ensembles d'autorisations
<a name="prepare-the-permission-set-repository"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Créez un référentiel dédié. | Cette tâche suppose que vous utilisez GitHub. Créez un référentiel dédié pour stocker le code principal de Terraform et les fichiers JSON du modèle d'ensemble d'autorisations. | DevOps ingénieur | 
| Préparez le code du jeu d'autorisations. | Pour plus d'informations sur la manière dont vous pouvez structurer les fichiers suivants, consultez l'[exemple de code](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline/tree/main/samples/basic) dans le référentiel de solutions :─ main.tf─ outputs.tf─ providers.jinja3\$1─ modèlesCopiez le contenu, conservez les `providers.jinja` valeurs et apportez les modifications nécessaires aux autres fichiers. Par exemple, ajoutez des fichiers modèles d'ensembles d'autorisations `templates` ou épinglez la version du `aws-ia/permission-sets/aws` module dans le `main.tf` fichier. | DevOps ingénieur | 
| Validez vos modifications. | Validez et envoyez les modifications au référentiel que vous avez créé précédemment. Enregistrez le nom du référentiel et son GitHub organisation, par exemple`myorg/aws-ps-pipeline`. | DevOps ingénieur | 

### Préparez le code de déploiement
<a name="prepare-the-deployment-code"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Téléchargez le contenu. | Téléchargez (clonez) le contenu depuis le [référentiel](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline) de solutions. | DevOps ingénieur | 
| Renseignez les variables. | Créez un `terraform.tfvars` fichier et ajoutez les variables nécessaires suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/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>Pour plus d'informations sur les options de variables supplémentaires, consultez le fichier [variables.tf](https://github.com/aws-samples/sample-terraform-aws-permission-sets-pipeline/blob/main/variables.tf) dans le référentiel de ce modèle. GitHub  | DevOps ingénieur | 
| Ajustez la configuration du backend Terraform. | Dans le `backend.tf` fichier, remplacez les espaces réservés par vos propres valeurs. Utilisez la page d' AWS Control Tower accueil Région AWS et indiquez les noms du bucket Amazon S3 et de la table DynamoDB créés précédemment.<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 vous préférez, vous pouvez utiliser votre propre configuration de backend Terraform. | DevOps ingénieur | 
| Ajustez la configuration du fournisseur Terraform. | Dans le `providers.tf` fichier, remplacez les espaces réservés par vos propres informations. Utilisez la région d' AWS Control Tower origine et fournissez l'ARN du rôle IAM entre comptes créé précédemment pour le `event-source-account` fournisseur.<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 ingénieur | 

### Déployez la solution manuellement
<a name="deploy-the-solution-manually"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Sélectionnez le Compte AWS. | Nous vous recommandons de déployer la solution dans le compte d'administrateur délégué d'IAM Identity Center. Toutefois, vous pouvez également le déployer dans le compte AWS Organizations de gestion.Pour vous connecter au compte sélectionné dans la même région que l'instance IAM Identity Center, utilisez le AWS CLI. Assurez-vous que le rôle IAM que vous utilisez est autorisé à assumer le rôle spécifié pour le `event-source-account` fournisseur dans les étapes précédentes. De plus, ce rôle doit avoir accès aux AWS ressources utilisées dans la configuration du backend Terraform. | Administrateur AWS | 
| Exécutez Terraform manuellement. | Pour initialiser, planifier et appliquer les configurations, exécutez les commandes Terraform suivantes dans l'ordre indiqué :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | DevOps ingénieur | 
| Vérifiez les résultats du déploiement. | Dans le compte d'administrateur délégué d'IAM Identity Center, vérifiez que le `aws-ps-pipeline` pipeline a été créé. Vérifiez également qu'il existe une AWS CodeConnections connexion avec le statut **En attente**. | AWS DevOps | 
| Terminez la CodeConnections configuration. | Pour terminer la CodeConnections configuration, procédez comme suit :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html)Le pipeline devrait désormais avoir accès au référentiel des ensembles d'autorisations.Pour obtenir des instructions détaillées, voir [Mettre à jour une connexion en attente](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html) dans la documentation de la console Developer Tools.  | AWS DevOps | 

### Choisissez un flux d'exécution du pipeline pour tester la solution
<a name="choose-a-pipeline-execution-flow-to-test-the-solution"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Exécutez le pipeline par AWS Control Tower ou les mises à jour AFT. | Une fois qu'un compte est créé ou modifié en utilisant AWS Control Tower ou AFT (selon le type d'événements du cycle de vie que vous avez choisi), le pipeline démarre. | Administrateur AWS | 
| Exécutez le pipeline en modifiant le code. | Après avoir modifié le code et l'avoir validé dans la `main` branche, le pipeline démarre. | AWS DevOps | 
| Exécutez le pipeline manuellement. | Pour démarrer le pipeline manuellement, utilisez la fonction [de modification de version](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-rerun-manually.html) dans AWS CodePipeline. | AWS DevOps | 

## Résolution des problèmes
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| Accès refusé | Vérifiez que vous disposez des autorisations requises pour déployer la solution. | 
| CodeConnections problèmes | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | 
| Problèmes d'exécution du pipeline | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | 
| Problèmes de déploiement des ensembles d'autorisations | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/manage-aws-permission-sets-dynamically-by-using-terraform.html) | 

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

**Service AWS documentation**
+ [AWS IAM Identity Center Guide de l'utilisateur](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)
+ [Gestion Comptes AWS à l'aide d'ensembles d'autorisations](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) (documentation IAM Identity Center)

**Autres ressources**
+ [AWS Module d'ensembles d'autorisations](https://registry.terraform.io/modules/aws-ia/permission-sets/aws/latest) (Terraform)

## Informations supplémentaires
<a name="manage-aws-permission-sets-dynamically-by-using-terraform-additional"></a>

**Fichier JSON avec un exemple d'ensemble d'autorisations**

L'exemple suivant montre comment configurer un ensemble d'autorisations à l'aide du fichier JSON du référentiel :

```
{
  "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
    }
  ]
}
```

Pour plus d'informations, consultez le schéma JSON dans la documentation du [module AWS Permission Sets](https://registry.terraform.io/modules/aws-ia/permission-sets/aws/latest#json-file-templates) sur le site Web de Terraform.

**Astuces**
+ Vous pouvez utiliser les [blocs d'importation](https://developer.hashicorp.com/terraform/language/import) Terraform pour importer un ensemble d'autorisations existant dans la solution.
+ Vous pouvez utiliser AFT pour implémenter le pipeline AWS d'ensembles d'autorisations dans un compte délégué. Pour plus d'informations, consultez [AFT Blueprints](https://awslabs.github.io/aft-blueprints/index.html).

# Marquez automatiquement les pièces jointes à Transit Gateway à l'aide d'AWS Organizations
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations"></a>

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

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

Sur Amazon Web Services (AWS), vous pouvez utiliser [AWS Resource Access Manager](https://aws.amazon.com/ram/)pour partager Compte AWS au-delà des [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/)frontières. Cependant, lorsque vous créez des pièces jointes Transit Gateway au-delà des limites du compte, elles sont créées sans étiquette Name. Cela peut rendre l'identification des pièces jointes fastidieuse. 

Cette solution fournit un mécanisme automatisé pour recueillir des informations sur chaque pièce jointe à Transit Gateway pour les comptes d'une organisation gérée par [AWS Organizations](https://aws.amazon.com/organizations/). Le processus consiste à rechercher la plage de [routage interdomaines sans classe](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) (CIDR) à partir de la table de routage Transit Gateway. La solution applique ensuite une étiquette de nom sous la forme de `<CIDR-range>-<AccountName>` à la pièce jointe du compte qui contient la passerelle de transit.

Cette solution peut être utilisée conjointement avec une solution telle que le [Serverless Transit Network Orchestrator](https://aws.amazon.com/solutions/implementations/serverless-transit-network-orchestrator/) de la bibliothèque de AWS solutions. Serverless Transit Network Orchestrator permet la création automatique de pièces jointes Transit Gateway Gateway à grande échelle.

## Conditions préalables et limitations
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-prereqs"></a>

**Conditions préalables**
+ Un actif Compte AWS
+ Une AWS Organizations organisation qui contient tous les comptes associés
+ Accès au compte de gestion de l'organisation, sous la racine de l'organisation, pour créer le rôle Gestion des identités et des accès AWS (IAM) requis
+ Un compte de membre du réseau partagé contenant une ou plusieurs passerelles de transport partagées avec l'organisation et comportant des pièces jointes

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

La capture d'écran suivante AWS Management Console montre des exemples de pièces jointes Transit Gateway sans étiquette de nom associée et de deux pièces jointes Transit Gateway avec des balises de nom générées par cette solution. La structure de la balise Name générée est`<CIDR-range>-<AccountName>`.

![\[Console affichant les pièces jointes sans étiquette de nom et deux pièces jointes avec balises de nom.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/4b10dfec-43be-4337-9945-c64df921934a/images/7e7d4a47-f07a-4708-8022-a1d22855bb5d.png)


 

Cette solution permet [AWS CloudFormation](https://aws.amazon.com/cloudformation/)de déployer un [AWS Step Functions](https://aws.amazon.com/step-functions/)flux de travail qui gère la création de balises Transit Gateway Name sur toutes les configurations Régions AWS. Le flux de travail invoque [AWS Lambda](https://aws.amazon.com/lambda/)des fonctions qui exécutent les tâches sous-jacentes.

Une fois que la solution a obtenu les noms des comptes AWS Organizations, la machine d'état Step Functions obtient toutes les pièces jointes Transit Gateway IDs. Elles sont traitées en parallèle par Region. Ce traitement inclut la recherche de la plage CIDR pour chaque pièce jointe. La plage CIDR est obtenue en recherchant dans les tables de routage de Transit Gateway de la région un ID de pièce jointe Transit Gateway correspondant. Si toutes les informations requises sont disponibles, la solution applique un tag Name à la pièce jointe. La solution ne remplacera aucune balise Name existante.

La solution s'exécute selon un calendrier contrôlé par un EventBridge événement [Amazon](https://aws.amazon.com/eventbridge/). L'événement initie la solution chaque jour à 6 h 00 UTC.

**Pile technologique cible**
+ Amazon EventBridge
+ AWS Lambda
+ AWS Organizations
+ AWS Transit Gateway
+ Amazon Virtual Private Cloud (Amazon VPC)
+ AWS X-Ray

**Architecture cible**

L'architecture de la solution et le flux de travail sont illustrés dans le schéma suivant.

![\[Processus en neuf étapes pour les réseaux partagés et les comptes de gestion de l'organisation.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/4b10dfec-43be-4337-9945-c64df921934a/images/873cc89f-c6e3-43cd-94ed-59b6ea2b8d49.png)


1. L'événement planifié initie la règle.

1. La EventBridge règle démarre la machine d'état Step Functions.

1. La machine à états invoque la fonction `tgw-tagger-organizations-account-query` Lambda.

1. La fonction `tgw-tagger-organizations-account-query` Lambda assume le rôle dans le compte de gestion de l'organisation.

1. La fonction `tgw-tagger-organizations-account-query` Lambda appelle l'API Organizations pour renvoyer Compte AWS des métadonnées.

1. La machine à états invoque la fonction `tgw-tagger-attachment-query` Lambda.

1. Pour chaque région, en parallèle, la machine à états invoque la fonction `tgw-tagger-rtb-query` Lambda pour lire la plage CIDR de chaque pièce jointe.

1. Pour chaque région, en parallèle, la machine à états invoque la fonction `tgw-tagger-attachment-tagger`**** Lambda.

1. Des étiquettes nominatives sont créées pour les pièces jointes Transit Gateway dans le compte Shared Networking.

**Automatisation et mise à l'échelle**

La solution traite chaque région en parallèle afin de réduire la durée totale de l'exécution.

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

**Services AWS**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)permet de modéliser un ensemble de ressources connexes AWS et tierces, de les approvisionner rapidement et de manière cohérente, et de les gérer tout au long de leur cycle de vie, en traitant l'infrastructure comme du code.
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) vous CloudWatch aide à surveiller les indicateurs de vos ressources AWS et des applications que vous exécutez AWS en temps réel.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) est un service de bus d'événements sans serveur que vous pouvez utiliser pour connecter vos applications à des données provenant de diverses sources. EventBridge reçoit un événement, un indicateur d'un changement d'environnement, et applique une règle pour acheminer l'événement vers une cible. Les règles associent les événements aux cibles en fonction de la structure de l'événement, appelée schéma d'événements, ou d'un calendrier.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)est un service de calcul qui prend en charge l'exécution de code sans provisionnement ni gestion de serveurs. Lambda exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, passant de quelques requêtes par jour à des milliers par seconde. Vous payez uniquement pour le temps de calcul consommé. Aucun frais n'est facturé si votre code n'est pas en cours d'exécution.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)vous permet de gérer et de gouverner votre environnement de manière centralisée à mesure que vous développez et faites évoluer vos AWS ressources. Organizations vous permet de créer de nouvelles ressources Comptes AWS et de les allouer par programmation, de regrouper des comptes pour organiser vos flux de travail, d'appliquer des politiques aux comptes ou aux groupes à des fins de gouvernance et de simplifier la facturation en utilisant un mode de paiement unique pour tous vos comptes.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)est un service de flux de travail visuel à faible code utilisé pour orchestrer Services AWS, automatiser les processus métier et créer des applications sans serveur. Les flux de travail gèrent les échecs, les nouvelles tentatives, la parallélisation, les intégrations de services et l'observabilité afin que les développeurs puissent se concentrer sur une logique métier à plus forte valeur ajoutée.
+ [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/)connecte VPCs et met en place des réseaux sur site via un hub central. Cela simplifie votre réseau et met fin aux relations de peering complexes. Il agit comme un routeur cloud, de sorte que chaque nouvelle connexion n'est établie qu'une seule fois.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) est un service permettant de lancer AWS des ressources dans un réseau virtuel logiquement isolé que vous définissez.
+ [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)collecte des données sur les demandes traitées par votre application et fournit des outils que vous pouvez utiliser pour afficher, filtrer et obtenir des informations sur ces données afin d'identifier les problèmes et les opportunités d'optimisation.

**Code**

Le code source de cette solution est disponible dans le GitHub référentiel [Transit Gateway Attachment Tagger](https://github.com/aws-samples/tgw-attachment-tagger). Le référentiel inclut les fichiers suivants :
+ `tgw-attachment-tagger-main-stack.yaml`crée toutes les ressources nécessaires à la prise en charge de cette solution dans le compte réseau partagé.
+ `tgw-attachment-tagger-organizations-stack.yaml`****crée un rôle dans le compte de gestion de l'organisation.

## Épopées
<a name="tag-transit-gateway-attachments-automatically-using-aws-organizations-epics"></a>

### Déployez la pile de solutions principale
<a name="deploy-the-main-solution-stack"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Rassemblez les informations préalables requises. | Pour configurer l'accès entre comptes depuis la fonction Lambda vers AWS Organizations l'API, vous avez besoin de l'ID de compte du compte de gestion de l'organisation.****L'ordre dans lequel les deux CloudFormation piles sont créées est important. Vous devez d'abord déployer des ressources dans le compte réseau partagé. Le rôle dans le compte de réseau partagé doit déjà exister avant de déployer des ressources dans le compte de gestion de l'organisation. Pour plus d’informations, consultez la [documentation AWS](https://docs.amazonaws.cn/en_us/IAM/latest/UserGuide/id_roles_create_for-user.html). | DevOps ingénieur | 
| Lancez le CloudFormation modèle pour la pile de solutions principale. | Le modèle de la pile de solutions principale déploiera les rôles IAM, le flux de travail Step Functions, les fonctions Lambda et l'événement Amazon CloudWatch .Ouvrez le compte AWS Management Console pour le réseau partagé, puis ouvrez la console : &CFN.  Créez la pile en utilisant le `tgw-attachment-tagger-main-stack.yaml` modèle et les valeurs suivantes :  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/tag-transit-gateway-attachments-automatically-using-aws-organizations.html)Pour plus d'informations sur le lancement d'une CloudFormation pile, consultez la [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html). | DevOps ingénieur | 
| Vérifiez que la solution a été lancée avec succès. | Attendez que la CloudFormation pile atteigne le statut **CREATE\$1COMPLETE**. Cela devrait prendre moins d'une minute.Ouvrez la console Step Functions et vérifiez qu'une nouvelle machine à états a été créée avec le nom **tgw-attachment-tagger-state-machine**. | DevOps ingénieur | 

### Déployez le stack AWS Organizations
<a name="deploy-the-aws-organizations-stack"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Rassemblez les informations préalables requises. | Pour configurer l'accès entre comptes depuis la fonction Lambda vers l'API AWS Organizations, vous avez besoin de l'ID de compte du compte réseau partagé. | DevOps ingénieur | 
| Lancez le CloudFormation modèle pour la pile Organizations | Le modèle de la pile AWS Organizations déploiera le rôle IAM dans le compte de gestion de l'organisation. Accédez à la console AWS pour le compte de gestion de l'organisation, puis ouvrez la CloudFormation console.  Créez la pile en utilisant le `tgw-attachment-tagger-organizations-stack.yaml` modèle et les valeurs suivantes :[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/tag-transit-gateway-attachments-automatically-using-aws-organizations.html)Pour les autres options de création de pile, utilisez les valeurs par défaut. | DevOps ingénieur | 
| Vérifiez que la solution a été lancée avec succès. | Attendez que la CloudFormation pile atteigne le statut **CREATE\$1COMPLETE**. Cela devrait prendre moins d'une minute.Ouvrez la console Gestion des identités et des accès AWS (IAM) et vérifiez qu'un nouveau rôle a été créé avec le nom **tgw-attachment-tagger-organization-query-role**. | DevOps ingénieur | 

### Vérifiez la solution
<a name="verify-the-solution"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Lancez la machine d'état. | Ouvrez la console Step Functions pour le compte Shared Networking et choisissez **State machines** dans le volet de navigation.Sélectionnez l'état machine **tgw-attachment-tagger-state-machine**, puis choisissez **Start Execution**.  Étant donné que l'entrée de cette machine à états n'est pas utilisée par la solution, vous pouvez utiliser la valeur par défaut.<pre>{<br />    "Comment": "Insert your JSON here"<br />}</pre>Choisissez **Démarrer une exécution**. | DevOps ingénieur | 
| Surveillez la machine à états jusqu'à ce qu'elle soit terminée. | Sur la nouvelle page qui s'ouvre, vous pouvez regarder la machine d'état fonctionner. La durée dépendra du nombre de pièces jointes Transit Gateway à traiter.Sur cette page, vous pouvez examiner chaque étape de la machine à états. Vous pouvez consulter les différentes tâches de la machine à états et suivre les liens vers les CloudWatch journaux des fonctions Lambda. Pour les tâches exécutées en parallèle sur la carte, vous pouvez utiliser la liste déroulante **Index** pour afficher les implémentations spécifiques à chaque région. | DevOps ingénieur | 
| Vérifiez les balises de pièce jointe de Transit Gateway. | Ouvrez la console VPC pour le compte réseau partagé et choisissez **Transit Gateway** Attachments.  Sur la console, un tag Name est fourni pour les pièces jointes répondant aux critères (la pièce jointe est propagée vers une table de routage Transit Gateway et le propriétaire de la ressource est membre de l'organisation). | DevOps ingénieur | 
| Vérifiez le déclenchement de l' CloudWatch événement. | Attendez que l' CloudWatch événement démarre. Cela est prévu pour 06h00 UTC. Ouvrez ensuite la console Step Functions pour le compte Shared Networking et choisissez **State machines** dans le volet de navigation.Sélectionnez l'état machine **tgw-attachment-tagger-state-machine.** Vérifiez que la solution a été exécutée à 6 h 00 UTC. | DevOps ingénieur | 

## Ressources connexes
<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/)
+ [Orchestrateur de réseau de transit sans serveur](https://aws.amazon.com/solutions/implementations/serverless-transit-network-orchestrator/)
+ [Création de rôles IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html)
+ [Création d'une pile sur la AWS CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)

# Plus de modèles
<a name="cloudfoundations-more-patterns-pattern-list"></a>

**Topics**
+ [Automatisez les allocations d'adresses IPv4 CIDR IPAM d'Amazon VPC pour les nouveaux utilisateurs en utilisant AFT Comptes AWS](automate-amazon-vpc-ipam-ipv4-cidr-allocations-for-new-aws-accounts-by-using-aft.md)
+ [Gérez les ensembles d'autorisations pour plusieurs comptes en utilisant Account Factory pour Terraform](govern-permission-sets-aft.md)
+ [Provisionner AWS Service Catalog des produits basés sur AWS CloudFormation des modèles à l'aide d' GitHub actions](provision-aws-service-catalog-products-using-github-actions.md)
+ [Fournissez des rôles IAM avec le moindre privilège en déployant une solution de distribution automatique de rôles](provision-least-privilege-iam-roles-by-deploying-a-role-vending-machine-solution.md)