

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.

# Provisionner des comptes avec AWS Control Tower Account Factory for Terraform (AFT)
<a name="taf-account-provisioning"></a>

AWS Control Tower Account Factory for Terraform (AFT) adopte un GitOps modèle qui automatise le processus de mise en service et de mise à jour des comptes dans AWS Control Tower. 

Avec AFT, vous créez un fichier Terraform de demande de compte, qui contient l'entrée qui appelle le flux de travail AFT. Une fois le provisionnement et la mise à jour des comptes terminés, le flux de travail AFT continue en exécutant le cadre de provisionnement des comptes AFT et les étapes de personnalisation des comptes. 

L'AFT n'a aucun impact sur les performances du flux de travail dans AWS Control Tower. Si vous créez un compte via AFT ou Account Factory, le même flux de travail principal se produit.

## Conditions préalables
<a name="aft-prerequisites"></a>

**Note**  
La mise à disposition d'un compte AFT doit cibler une unité organisationnelle (UO) AWSControl TowerBaseline activée dans AWS Control Tower. Pour plus de détails sur AWSControlTowerBaseline, voir :[Types de référence qui s'appliquent au niveau de l'UO](types-of-baselines.md#ou-baseline-types).

Lorsque vous débuterez avec AFT, vous allez créer les éléments suivants : 
+ Dans AWS Control Tower, créez l'unité d'organisation, puis le compte de gestion AFT, pour votre environnement AFT. Notez l'ID du compte, afin de pouvoir le saisir ultérieurement dans le `main.tf` fichier, lorsque vous déployez AFT avec le module Terraform. Vous pouvez consulter cet identifiant de compte sur la page de **détails d'AWS Control Tower Control**. Pour plus d'informations, consultez la documentation [Terraform](https://developer.hashicorp.com/terraform/tutorials/aws/aws-control-tower-aft). 
+ Un ou plusieurs `git` référentiels pour votre environnement AFT entièrement déployé. Pour plus d'informations, consultez la section [Étapes post-déploiement pour AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-post-deployment.html). 
+ Un environnement AFT entièrement déployé. Pour plus d'informations, consultez [Présentation d'AWS Control Tower Account Factory pour Terraform (AFT)](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html) et [Deploy AWS Control Tower Account Factory pour Terraform](https://docs.aws.amazon.com/controltower/latest/userguide/aft-getting-started.html) (AFT). Consultez également la documentation [Terraform](https://developer.hashicorp.com/terraform/tutorials/aws/aws-control-tower-aft). 

**Astuce**  
Vous pouvez créer le compte de gestion AFT depuis la console AWS Control Tower avec **Create account**. Pour plus d'informations, consultez la section [Méthodes de provisionnement](https://docs.aws.amazon.com//controltower/latest/userguide/methods-of-provisioning.html).  
De plus, vous pouvez éventuellement créer un dossier de modèles de comptes pour vous aider à définir vos comptes supplémentaires, dans le **aft-account-customizations**référentiel. 

Pour les comptes enregistrés via Auto Enroll :
+ La création de nouveaux comptes par le biais de l'AFT continue de fonctionner normalement.
+ L'importation d'un compte existant nécessite des étapes supplémentaires :
  + Enregistrez l'UO pour créer les produits provisionnés nécessaires avant de les importer.
  + Register OU émettra `CreateManagedAccount` des `UpdateManagedAccount` événements, permettant les personnalisations AFT.

Pour plus d'informations sur les Régions AWS domaines dans lesquels AFT impose des limites de déploiement, reportez-vous [Limitations et quotas dans AWS Control Tower](limits.md) aux sections et[Limites de contrôle](control-limitations.md).

La [documentation Terraform](https://developer.hashicorp.com/terraform/tutorials/aws/aws-control-tower-aft) contient un bon aperçu de la façon de configurer AWS Control Tower Account Factory pour Terraform (AFT).

# Présentation d'AWS Control Tower Account Factory pour Terraform (AFT)
<a name="aft-overview"></a>

 Account Factory for Terraform (AFT) met en place un pipeline Terraform pour vous aider à provisionner et à personnaliser des comptes dans AWS Control Tower. AFT vous offre l'avantage du provisionnement de comptes basé sur Terraform tout en vous permettant de gérer vos comptes avec AWS Control Tower. 

 Avec AFT, vous créez un *fichier Terraform de demande de compte* pour obtenir les informations qui déclenchent le flux de travail AFT pour le provisionnement du compte. Une fois la phase de provisionnement du compte terminée, AFT exécute automatiquement une série d'étapes avant le début de la phase de personnalisation du compte. Pour plus d'informations, consultez la section [Pipeline de provisionnement des comptes AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provisioning-framework.html). 

 AFT prend en charge Terraform Cloud, Terraform Enterprise et Terraform Community Edition. Avec AFT, vous pouvez lancer la création de comptes à l'aide d'un fichier d'entrée et d'une simple `git push` commande et personnaliser des comptes nouveaux ou existants. La création de compte inclut tous les avantages de gouvernance d'AWS Control Tower et les personnalisations de compte qui vous aident à respecter les procédures de sécurité standard et les directives de conformité de votre organisation. 

 AFT prend en charge le suivi des demandes de personnalisation des comptes. Chaque fois que vous soumettez une demande de personnalisation de compte, AFT génère un jeton de suivi unique qui passe par une machine d' AWS Step Functions état de personnalisation AFT, qui enregistre le jeton dans le cadre de son exécution. Vous pouvez ensuite utiliser les requêtes Amazon CloudWatch Logs Insights pour rechercher des plages d'horodatage et récupérer le jeton de demande. Par conséquent, vous pouvez voir les charges utiles qui accompagnent le jeton, ce qui vous permet de suivre la demande de personnalisation de votre compte tout au long du flux de travail AFT. Pour plus d'informations sur CloudWatch les journaux et les Step Functions, consultez les rubriques suivantes : 
+  [Qu'est-ce qu'Amazon CloudWatch Logs ?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) dans le *guide de l'utilisateur d'Amazon CloudWatch Logs* 
+  [Qu'est-ce que AWS Step Functions ?](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)dans le *Guide du développeur AWS Step Functions * 

AFT combine les capacités d'autres AWS services[Services relatifs aux composants](aft-components.md), notamment pour créer un framework, avec des pipelines qui déploient Terraform Infrastructure as Code (IaC). L'AFT vous permet de :
+ Soumettre des demandes de provisionnement et de mise à jour de comptes dans un modèle GitOps 
+ Stocker les métadonnées du compte et l'historique des audits
+ Appliquer des balises au niveau du compte
+ Ajoutez des personnalisations à tous les comptes, à un ensemble de comptes ou à des comptes individuels
+ Activer les options de fonctionnalités

AFT crée un compte distinct, appelé *compte de gestion AFT*, pour déployer les capacités AFT. Avant de configurer l'AFT, vous devez disposer d'une zone d'atterrissage AWS Control Tower existante. Le compte de gestion AFT n'est pas le même que le compte de gestion AWS Control Tower.

**L'AFT offre de la flexibilité**
+ **Flexibilité pour votre plateforme :** AFT prend en charge toutes les distributions Terraform pour le déploiement initial et le fonctionnement continu : Community Edition, Cloud et Enterprise.
+ **Flexibilité pour votre système de contrôle de version :** supports AWS CodeCommit AFT et sources de contrôle de version alternatives via AWS CodeConnections.

**AFT propose des options de fonctionnalités**

Vous pouvez activer plusieurs options de fonctionnalités, conformément aux meilleures pratiques :
+ Création d'un système au niveau de l'organisation CloudTrail pour la journalisation des événements liés aux données
+ Supprimer le VPC AWS par défaut pour les comptes
+ Inscription de comptes provisionnés dans le plan de AWS Support aux entreprises

**Note**  
Le pipeline AFT n'est pas destiné à être utilisé pour déployer des ressources, telles que des instances Amazon EC2, dont vos comptes ont besoin pour exécuter vos applications. Il est uniquement destiné au provisionnement et à la personnalisation automatisés des comptes AWS Control Tower.

## Vidéo de procédure
<a name="terraform-provisioning-video"></a>

Cette vidéo (7:33) explique comment déployer des comptes avec AWS Control Tower Account Factory for Terraform. Pour un visionnage de meilleure qualité, sélectionnez l'icône dans le coin inférieur droit de la vidéo pour l'afficher en plein écran. Le sous-titrage est disponible.

[![AWS Videos](http://img.youtube.com/vi/eDbNvHz02dk/0.jpg)](http://www.youtube.com/watch?v=eDbNvHz02dk)


# Architecture AFT
<a name="aft-architecture"></a>

## Ordre des opérations
<a name="aft-operation"></a>

 Vous gérez les opérations AFT dans le compte de gestion AFT. Pour un flux de travail complet de provisionnement de comptes, l'ordre des étapes de gauche à droite dans le diagramme est le suivant : 

1.  Les demandes de compte sont créées et soumises au pipeline. Vous pouvez créer et soumettre plusieurs demandes de compte à la fois. Account Factory traite les demandes dans le cadre d'une first-in-first-out commande. Pour plus d'informations, voir [Soumettre des demandes de comptes multiples](https://docs.aws.amazon.com/controltower/latest/userguide/aft-multiple-account-requests.html). 

1.  Chaque compte est approvisionné. Cette étape s'exécute dans le compte de gestion AWS Control Tower. 

1.  Les personnalisations globales s'exécutent dans les pipelines créés pour chaque compte vendeur. 

1.  Si des personnalisations sont spécifiées dans les demandes de provisionnement de compte initiales, elles s'exécutent uniquement sur les comptes ciblés. Si vous possédez un compte déjà provisionné, vous devez effectuer d'autres personnalisations manuellement dans le pipeline du compte. 

**AWS Control Tower Account Factory pour Terraform : flux de travail de provisionnement de comptes**

![\[Figure : Schéma du flux de travail AFT\]](http://docs.aws.amazon.com/fr_fr/controltower/latest/userguide/images/high-level-aft-diagram.png)


# Cost
<a name="aft-pricing"></a>

Il n'y a pas de frais supplémentaires pour l'AFT. Vous ne payez que pour les ressources déployées par AFT, les AWS services fournis par AFT et les ressources que vous déployez dans votre environnement AFT.

La configuration AFT par défaut inclut l'allocation de AWS PrivateLink points de terminaison, pour une protection et une sécurité accrues des données, ainsi qu'une passerelle NAT dont la prise en charge AWS CodeBuild est requise. Pour plus de détails sur la tarification de cette infrastructure, consultez la [AWS PrivateLink tarification](https://aws.amazon.com//privatelink/pricing/) et la tarification [Amazon VPC pour la passerelle NAT](https://aws.amazon.com//vpc/pricing/). Contactez le représentant de votre AWS compte pour obtenir des informations plus spécifiques sur la gestion de ces coûts. Vous pouvez modifier ces paramètres par défaut pour AFT.

# Déployez AWS Control Tower Account Factory pour Terraform (AFT)
<a name="aft-getting-started"></a>

 Cette section s'adresse aux administrateurs des environnements AWS Control Tower qui souhaitent configurer Account Factory for Terraform (AFT) dans leur environnement existant. Il décrit comment configurer un environnement Account Factory for Terraform (AFT) avec un nouveau compte de gestion AFT dédié. 

**Note**  
 Un module Terraform déploie AFT. Ce module est disponible dans le [référentiel AFT](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main) le GitHub, et l'ensemble du référentiel AFT est considéré comme le module.   
 Nous vous recommandons de vous référer aux modules AFT GitHub plutôt que de cloner le référentiel AFT. De cette façon, vous pouvez contrôler et utiliser les mises à jour des modules dès qu'elles sont disponibles. 

 Pour en savoir plus sur les dernières versions de la fonctionnalité AWS Control Tower Account Factory for Terraform (AFT), consultez [le fichier Releases](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/releases) de ce GitHub référentiel.

 **Conditions préalables au déploiement** 

Avant de configurer et de lancer votre environnement AFT, vous devez disposer des ressources suivantes : 
+  Une région d'origine pour votre zone de landing AWS Control Tower. Pour plus d'informations, consultez [Comment Régions AWS travailler avec AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/region-how.html). 
+  Une zone d'atterrissage pour AWS Control Tower. Pour plus d'informations, consultez [Planifier la zone d'atterrissage de votre AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/planning-your-deployment.html). 
+  Un compte de gestion AFT, que vous pouvez configurer dans AWS Control Tower, ou approvisionner par d'autres moyens et vous inscrire à AWS Control Tower. 
+  Une version et une distribution de Terraform. Pour plus d'informations, consultez les versions [Terraform et AFT](https://docs.aws.amazon.com/controltower/latest/userguide/version-supported.html). 
+  Un fournisseur VCS pour le suivi et la gestion des modifications apportées au code et à d'autres fichiers. Par défaut, AFT utilise AWS CodeCommit. Pour plus d'informations, voir [Qu'est-ce que c'est AWS CodeCommit ?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) dans le *guide de AWS CodeCommit l'utilisateur*.

  Si vous déployez AFT pour la première fois et que vous n'avez pas de CodeCommit référentiel existant, vous devez choisir un fournisseur VCS externe, tel que GitHub ou BitBucket. Pour plus d'informations, voir [Alternatives pour le contrôle de version du code source dans AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-alternative-vcs.html). 
+  Un environnement d'exécution dans lequel vous pouvez exécuter le module Terraform qui installe AFT. 
+  Options de fonctionnalités AFT. Pour plus d'informations, consultez la section [Activer les options des fonctionnalités](https://docs.aws.amazon.com/controltower/latest/userguide/aft-feature-options.html). 

## Configurez et lancez votre AWS Control Tower Account Factory pour Terraform
<a name="aft-configure-and-launch"></a>

 Les étapes suivantes supposent que vous connaissez le flux de travail Terraform. Vous pouvez également en savoir plus sur le déploiement de l'AFT en suivant le laboratoire [d'introduction à l'AFT](https://catalog.workshops.aws/control-tower/en-US/customization/aft) sur le site Web de AWS Workshop Studio. 

 **Étape 1 : Lancez votre zone de landing zone AWS Control Tower** 

 Suivez les étapes décrites dans [Getting Started with AWS Control Tower](https://catalog.workshops.aws/control-tower/en-US/customization/aft). C'est ici que vous créez le compte de gestion AWS Control Tower et que vous configurez votre zone de landing zone AWS Control Tower. 

**Note**  
 Assurez-vous de créer un rôle pour le compte de gestion AWS Control Tower doté d'**AdministratorAccess**informations d'identification. Pour plus d’informations, consultez les ressources suivantes :   
 [Identités IAM (utilisateurs, groupes d'utilisateurs et rôles)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) dans le guide de l'*Gestion des identités et des accès AWS utilisateur* 
 [AdministratorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html)dans le *Guide de référence des politiques AWS gérées* 

 **Étape 2 : Création d'une nouvelle unité organisationnelle pour l'AFT (fortement recommandé)** 

 Nous vous recommandons de créer une unité d'organisation distincte dans votre zone de landing AWS Control Tower. C'est dans cette UO que vous approvisionnez le compte de gestion AFT. Créez la nouvelle unité d'organisation et le compte de gestion AFT à partir de votre compte de gestion AWS Control Tower. Pour plus d'informations, voir [Création d'une nouvelle unité d'organisation](https://docs.aws.amazon.com/controltower/latest/userguide/create-new-ou.html). 

 **Étape 3 : provisionner le compte de gestion AFT** 

 L'AFT exige que vous créiez un AWS compte dédié aux opérations de gestion de l'AFT. Créez le compte de gestion AFT lorsque vous êtes connecté au compte de gestion AWS Control Tower associé à votre zone d'atterrissage AWS Control Tower. Vous pouvez configurer le compte de gestion AFT depuis la console AWS Control Tower en sélectionnant **Créer un compte** sur la page **Organisation** ou par un autre moyen. Pour plus d'informations, consultez [Provisionner des comptes avec AWS Service Catalog Account Factory](https://docs.aws.amazon.com/controltower/latest/userguide/provision-as-end-user.html). 

**Note**  
Si vous avez créé une unité d'organisation distincte pour AFT, assurez-vous de sélectionner cette unité d'organisation lorsque vous créez le compte de gestion AFT. 

Le provisionnement complet du compte de gestion AFT peut prendre jusqu'à 30 minutes. 

 **Étape 4 : Vérifiez que l'environnement Terraform est disponible pour le déploiement** 

 Cette étape suppose que vous avez de l'expérience avec Terraform et que vous avez mis en place des procédures pour exécuter Terraform. Pour plus d'informations, consultez [Command : init](https://developer.hashicorp.com/terraform/cli/commands/init) sur le site Web du HashiCorp développeur. 

**Note**  
 AFT prend en charge la version Terraform `1.6.0` ou ultérieure. 

 **Étape 5 : Configurations facultatives**
+ **Définissez éventuellement la configuration du cloud privé virtuel (VPC)**

  Le module AFT inclut un `aft_enable_vpc` paramètre qui indique si AWS Control Tower fournit des ressources de compte au sein d'un VPC dans le compte de gestion AFT central. Par défaut, le paramètre est défini sur`true`. Si vous définissez ce paramètre sur`false`, AWS Control Tower déploie AFT *sans* utiliser de VPC ni de ressources réseau privées, telles que des passerelles NAT ou des points de terminaison VPC. La désactivation `aft_enable_vpc` peut contribuer à réduire les coûts d'exploitation de l'AFT *pour certains modèles d'utilisation*. L'ajout de configurations VPC remplace le `aft_enable_vpc` paramètre défini sur. `false`
**Note**  
La réactivation du `aft_enable_vpc` paramètre (passage de la valeur de `false` à`true`) peut nécessiter que vous exécutiez la `terraform apply` commande deux fois de suite.

  Au lieu de configurer un nouveau VPC, vous pouvez configurer AFT pour utiliser un VPC existant dans votre compte. Pour utiliser votre propre VPC, fournissez les paramètres de configuration VPC suivants :
  + `aft_customer_vpc_id`- L'ID de votre VPC existant
  + `aft_customer_private_subnets`- Une liste des sous-réseaux privés de votre IDs VPC

  Exemple de configuration :

  ```
  module "aft" {
    source = "github.com/aws-ia/terraform-aws-control_tower_account_factory"
    
    # VPC configuration
    aft_customer_vpc_id = "vpc-0123456789abcdef0"
    aft_customer_private_subnets = ["subnet-0123456789abcdef0", "subnet-0123456789abcdef1"]
    
    # Other AFT parameters...
  }
  ```
**Important**  
Nous vous déconseillons d'utiliser l'option VPC personnalisé si vous disposez déjà d'un déploiement AFT. Vous pouvez avoir des dépendances à l'égard des fonctions Lambda ou CodePipeline des ressources au sein du VPC existant sous-jacent.
+ **Configurez éventuellement le nom du projet Terraform**

  Vous pouvez personnaliser le nom du projet Terraform utilisé par AFT en définissant le `terraform_project_name` paramètre. Par défaut, AFT place le déploiement dans le projet « par défaut » dans Terraform Cloud ou Terraform Enterprise.

  Exemple de configuration :

  ```
  module "aft" {
    source = "github.com/aws-ia/terraform-aws-control_tower_account_factory"
    
    # Project name configuration
    terraform_project_name = "my-organization-aft"
    
    # Other AFT parameters...
  }
  ```
**Note**  
Ce paramètre s'applique uniquement aux déploiements Terraform Enterprise ou Terraform Cloud.
+ **Appliquez éventuellement des balises personnalisées aux ressources AFT**

  Vous pouvez appliquer des balises personnalisées à toutes les ressources AFT à l'aide du `tags` paramètre. Ces balises facilitent l'organisation des ressources, la répartition des coûts et le contrôle d'accès.

  Exemple de configuration :

  ```
  module "aft" {
    source = "github.com/aws-ia/terraform-aws-control_tower_account_factory"
    
    # Custom tags configuration
    tags = {
      Environment = "Production"
      CostCenter = "IT-12345"
      Project = "AFT-Deployment"
      Owner = "platform-team@example.com"
    }
    
    # Other AFT parameters...
  }
  ```

  Ces balises sont appliquées à toutes les ressources créées par le module AFT. AFT ajoute automatiquement une `managed_by = "AFT"` balise à toutes les ressources, qui ne peut pas être remplacée par des balises personnalisées.
**Note**  
Des balises personnalisées peuvent être ajoutées à tout moment, et pas uniquement lors du déploiement initial.
+ **Appliquez éventuellement une clé de chiffrement AWS KMS gérée par le client (CMK) aux groupes de CloudWatch journaux et aux rubriques SNS**

  Pour activer le chiffrement KMS CMK pour les groupes de journaux et les rubriques SNS, définissez les variables `cloudwatch_log_group_enable_cmk_encryption` et`sns_topic_enable_cmk_encryption`.

  Si vous choisissez ces paramètres, AFT utilise la clé CMK existante, *alias/aft*, pour chiffrer les CloudWatch journaux et les sujets SNS. Ce CMK est créé lorsque l'AFT est déployé dans le compte de gestion AFT, et il peut être appliqué aux groupes de journaux et aux sujets SNS. 
  + Si la variable `cloudwatch_log_group_enable_cmk_encryption` est définie sur **true**, les groupes de CloudWatch journaux pour AFT sont chiffrés à l'aide de la clé CMK. Si la variable est définie sur **false**, qui est la valeur par défaut, les journaux sont chiffrés à l'aide [du chiffrement côté serveur, les CloudWatch journaux étant par défaut](https://docs.aws.amazon.com//AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html).
  +  Si la variable `sns_topic_enable_cmk_encryption` est définie sur **true**, les notifications envoyées aux rubriques AFT SNS (*aft-notifications* et *aft-failure-notifications*) sont cryptées à l'aide de la clé CMK. Si la variable est définie sur **false**, qui est la valeur par défaut, les messages SNS sont chiffrés avec la clé gérée par AWS :. *alias/aws/sns* Pour plus d'informations, consultez les [termes clés de l'ESS](https://docs.aws.amazon.com//sns/latest/dg/sns-server-side-encryption.html#sse-key-terms).
+ **Modifiez éventuellement votre type CodeBuild de calcul**

  Pendant le déploiement, pour modifier le type de calcul utilisé par AFT CodeBuild, définissez la variable`aft_codebuild_compute_type`.

  Pour plus d'informations sur les types de calcul acceptés, voir [À propos des types d'environnement à la demande](https://docs.aws.amazon.com//codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types). Le type de calcul par défaut est`BUILD_GENERAL1_MEDIUM`. 
+ **Configurez éventuellement OpenID Connect (OIDC) pour Terraform**

  Les clients utilisant Terraform Enterprise ou HCP Terraform (anciennement Terraform Cloud) peuvent utiliser les jetons d'identité Workload de Terraform (ou informations d'identification dynamiques du fournisseur), basés sur le protocole OIDC, pour connecter et authentifier en toute sécurité les espaces de travail avec AFT.

  Vous pouvez activer l'intégration OIDC pour les espaces de travail AFT en définissant le `terraform_oidc_integration` paramètre sur. `true` Par défaut, ce paramètre est défini sur `false`. Lorsque vous activez ce paramètre, les `terraform_oidc_hostname` paramètres `terraform_oidc_aws_audience` et doivent être revus et configurés si les valeurs par défaut (`aws.workload.identity`et`app.terraform.io`, respectivement) ne correspondent pas à votre environnement.

  Exemple de configuration :

  ```
  module "aft" {
    source = "github.com/aws-ia/terraform-aws-control_tower_account_factory"
    
    # Terraform distribution must be "tfc" or "tfe" for OIDC
    terraform_distribution = "tfc"
  
    # Terraform OIDC Configuration
    terraform_oidc_integration  = true
    terraform_oidc_aws_audience = "aws.workload.identity"  # default
    terraform_oidc_hostname     = "app.terraform.io"       # default; set to your TFE hostname if applicable
    
    # Other AFT parameters...
  }
  ```
**Note**  
Ce paramètre s'applique uniquement aux déploiements Terraform Enterprise ou HCP Terraform.
**Note**  
Si vous utilisez actuellement un fournisseur OIDC pour Terraform dans le compte de gestion AFT, vous devez supprimer ce fournisseur avant de vous inscrire à cette intégration. AFT recréera ce fournisseur pour vous lors du déploiement.

**Étape 6 : Appelez le module Account Factory for Terraform pour déployer AFT** 

 Appelez le module AFT avec le rôle que vous avez créé pour le compte de gestion AWS Control Tower doté d'**AdministratorAccess**informations d'identification. AWS Control Tower fournit un module Terraform via le compte de gestion AWS Control Tower, qui établit toute l'infrastructure requise pour orchestrer les demandes AWS Control Tower Account Factory. 

 Vous pouvez consulter le module AFT dans le [référentiel AFT](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main) sur GitHub. L'ensemble du GitHub référentiel est considéré comme le module AFT. Reportez-vous au [fichier README](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/blob/main/README.md) pour obtenir des informations sur les entrées requises pour exécuter le module AFT et déployer AFT. Vous pouvez également consulter le module AFT dans le registre [Terraform](https://registry.terraform.io/modules/aws-ia/control_tower_account_factory/aws/latest). 

 Si votre environnement possède des pipelines établis pour gérer Terraform, vous pouvez intégrer le module AFT dans votre flux de travail existant. Sinon, exécutez le module AFT depuis n'importe quel environnement authentifié avec les informations d'identification requises. 

 Le délai d'expiration entraîne l'échec du déploiement. Nous vous recommandons d'utiliser les informations d'identification AWS Security Token Service (STS) pour garantir un délai d'attente suffisant pour un déploiement complet. Le délai d'expiration minimum pour les AWS STS informations d'identification est de 60 minutes. Pour plus d'informations, consultez la section Informations [d'identification de sécurité temporaires dans IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) dans le *Guide de l'Gestion des identités et des accès AWS utilisateur*. 

**Note**  
 Vous pouvez attendre jusqu'à 30 minutes pour qu'AFT termine son déploiement via le module Terraform. 

 **Étape 7 : Gérer le fichier d'état Terraform** 

 Un fichier d'état Terraform est généré lorsque vous déployez AFT. Cet artefact décrit l'état des ressources créées par Terraform. Si vous prévoyez de mettre à jour la version AFT, assurez-vous de conserver le fichier d'état Terraform ou de configurer un backend Terraform à l'aide d'Amazon S3 et DynamoDB. Le module AFT ne gère pas l'état Terraform d'un backend. 

**Note**  
 Vous êtes responsable de la protection du fichier d'état de Terraform. Certaines variables d'entrée peuvent contenir des valeurs sensibles, telles qu'une `ssh` clé privée ou un jeton Terraform. Selon votre méthode de déploiement, ces valeurs peuvent être visualisées sous forme de texte brut dans le fichier d'état Terraform. Pour plus d'informations, consultez la section [Données sensibles en état](https://www.terraform.io/docs/language/state/sensitive-data.html) sur le HashiCorp site Web. 

# Étapes postérieures au déploiement
<a name="aft-post-deployment"></a>

Une fois le déploiement de l'infrastructure AFT terminé, suivez ces étapes supplémentaires pour terminer le processus de configuration et vous préparer à provisionner des comptes. 

**Étape 1 : Complétez CodeConnections avec le fournisseur VCS de votre choix**

Si vous choisissez un fournisseur de VCS tiers, l'AFT les établit CodeConnections et vous les confirmez. Reportez-vous [Alternatives pour le contrôle de version du code source dans AFT](aft-alternative-vcs.md) à pour savoir comment configurer AFT avec votre VCS préféré.

L'étape initiale d'établissement de la AWS CodeStar connexion est réalisée par AFT. Vous devez confirmer la connexion.

**Étape 2 : remplir chaque référentiel**

AFT nécessite que vous gériez [quatre référentiels](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos) :

1. Demandes de compte — Ce référentiel gère le placement ou la mise à jour des demandes de compte. [Des exemples sont disponibles](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-request). Pour plus d'informations sur les demandes de compte AFT, consultez[Création d'un nouveau compte auprès de l'AFT](aft-provision-account.md).

1. Personnalisations du provisionnement des comptes AFT — Ce référentiel gère les personnalisations appliquées à tous les comptes créés et gérés par AFT, avant de commencer la phase de personnalisation globale. [Des exemples sont disponibles](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-provisioning-customizations). Pour créer des personnalisations de provisionnement de comptes AFT, voir. [Créez votre compte AFT, provisionnement, personnalisation, machine à états](aft-provisioning-framework.md#aft-create-customizations)

1. Personnalisations globales — Ce référentiel gère les personnalisations appliquées à tous les comptes créés et gérés avec AFT. [Des exemples sont disponibles](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-global-customizations). Pour créer des personnalisations globales AFT, voir[Appliquer des personnalisations globales](aft-account-customization-options.md#aft-global-customizations).

1. Personnalisations de compte — Ce référentiel gère les personnalisations appliquées uniquement à des comptes spécifiques créés et gérés avec AFT. [Des exemples sont disponibles](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-customizations). Pour créer des personnalisations de compte AFT, voir[Appliquer les personnalisations de compte](aft-account-customization-options.md#aft-account-customizations).

 AFT s'attend à ce que chacun de ces référentiels suive une structure de répertoire spécifique. [Les modèles utilisés pour remplir vos référentiels et les instructions décrivant comment remplir les modèles sont disponibles dans le module Account Factory for Terraform du référentiel AFT github.](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos) 

# Création d'un nouveau compte auprès de l'AFT
<a name="aft-provision-account"></a>

*Cette section part du principe que vous avez déjà configuré AFT et votre compte de gestion AFT, et que vous provisionnez des comptes supplémentaires.*

Pour créer un nouveau compte auprès d'AFT, créez un fichier Terraform de demande de compte. Ce fichier contient les entrées pour les paramètres du **aft-account-request**référentiel. Après avoir créé un fichier Terraform de demande de compte, commencez à traiter votre demande de compte en exécutant. `git push` Cette commande appelle l'`ct-aft-account-request`opération dans le AWS CodePipeline, qui est créée dans le compte de gestion AFT une fois le provisionnement du compte terminé. Pour plus d'informations, consultez la section [Pipeline de provisionnement des comptes AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provisioning-framework.html). 

## Paramètres du fichier Terraform de demande de compte
<a name="w2aac44c33c15b7"></a>

 Vous devez inclure les paramètres suivants dans le fichier Terraform de votre demande de compte. Vous pouvez consulter [un exemple de fichier Terraform de demande de compte](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-request) sur. GitHub 
+  La valeur de `module name` doit être unique par Compte AWS demande. 
+  La valeur de `module source` est le chemin d'accès au module Terraform de demande de compte fourni par AFT. 
+  La valeur de `control_tower_parameters` capture les données requises pour créer un compte AWS Control Tower. La valeur inclut les champs de saisie suivants : 
  + `AccountEmail`
  + `AccountName`
  +  `ManagedOrganizationalUnit` 
  + `SSOUserEmail`
  + `SSOUserFirstName`
  + `SSOUserLastName`

**Note**  
 La saisie que vous fournissez ne `control_tower_parameters` peut pas être modifiée lors de la mise en service du compte.   
 Les formats pris en charge pour la spécification `ManagedOrganizationalUnit` dans le **aft-account-request**référentiel incluent `OUName` et`OUName (OU-ID)`. 
+  `account_tags`capture les clés et les valeurs définies par l'utilisateur, qui peuvent être étiquetées Comptes AWS en fonction de critères commerciaux. Pour plus d'informations, consultez la section [AWS Organizations Ressources relatives au balisage](https://docs.aws.amazon.com//organizations/latest/userguide/orgs_tagging.html) dans le *Guide de AWS Organizations l'utilisateur*. 
+  La valeur de `change_management_parameters` capture des informations supplémentaires, telles que la raison pour laquelle une demande de compte a été créée et l'auteur de la demande de compte. La valeur inclut les champs de saisie suivants : 
  + `change_reason`
  + `change_requested_by`
+  `custom_fields`capture des métadonnées supplémentaires avec des clés et des valeurs qui se déploient sous forme de paramètres SSM dans le compte vendu sous**/-fields/ aft/account-request/custom**. Vous pouvez faire référence à ces métadonnées lors de la personnalisation du compte afin de déployer les contrôles appropriés. Par exemple, un compte soumis à la conformité réglementaire peut en déployer d'autres AWS Config Rules. Les métadonnées que vous collectez `custom_fields` peuvent nécessiter un traitement supplémentaire lors de la mise en service et de la mise à jour du compte. Si un champ personnalisé est supprimé de la demande de compte, il est supprimé du magasin de paramètres SSM pour le compte vendu. 
+  (Facultatif) `account_customizations_name` capture le dossier des modèles de comptes dans le **aft-account-customizations**référentiel. Pour plus d'informations, consultez la section [Personnalisations du compte](https://docs.aws.amazon.com/controltower/latest/userguide/aft-account-customization-options.html). 

# Soumettre plusieurs demandes de compte
<a name="aft-multiple-account-requests"></a>

 AFT traite les demandes de compte une par une, mais vous pouvez soumettre plusieurs demandes de compte au pipeline AFT. Lorsque vous soumettez plusieurs demandes de compte au pipeline AFT, AFT met en file d'attente et traite les demandes de compte selon le principe du premier entré, premier sorti. 

**Note**  
 Vous pouvez créer un fichier Terraform de demande de compte pour chaque compte que vous souhaitez qu'AFT provisionne ou mettre en cascade plusieurs demandes de compte dans un seul fichier Terraform de demande de compte. 

# Mettre à jour un compte existant
<a name="aft-update-account"></a>

**Compatibilité avec l'inscription automatique**  
Si votre organisation utilise l'inscription automatique pour l'inscription automatique des comptes, sachez que l'AFT impose des limites à l'importation de ces comptes. Les comptes inscrits via Auto Enroll ne disposent pas des produits fournis par le Service Catalog requis par le flux de travail d'importation d'AFT.  
**Solution :** utilisez la fonction Register UO pour créer des produits provisionnés pour les comptes inscrits automatiquement. Cela permet les événements du cycle de vie nécessaires aux personnalisations AFT.

 Vous pouvez mettre à jour les comptes approvisionnés par l'AFT en modifiant les demandes de compte soumises précédemment et en les exécutant`git push`. Cette commande appelle le flux de travail de provisionnement du compte et peut traiter les demandes de mise à jour du compte. Vous pouvez mettre à jour l'entrée pour`ManagedOrganizationalUnit`, qui fait partie de la valeur requise pour`control_tower_parameters`.

`ManagedOrganizationalUnit`est le seul paramètre qui peut être mis à jour, parmi tous`control_tower_parameters`. Cependant, d'autres paramètres qui font partie du fichier Terraform de demande de compte peuvent être mis à jour, tels que. `custom_fields` Pour plus d'informations, voir Création [d'un nouveau compte auprès d'AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provision-account.html). 

Par exemple, pour mettre à jour le nom ou l'adresse e-mail d'un compte AFT, vous pouvez définir les détails comme `custom_fields` dans le fichier de demande de compte. Ce faisant, vous créez des paramètres SSM que vous pouvez transmettre à la `aws_account_alternate_contact` ressource lors de personnalisations globales.

```
resource "aws_account_alternate_contact" "operations" {

  alternate_contact_type = "OPERATIONS"

  name          = "Example"
  title         = "Example"
  email_address = "someone@example.com"
  phone_number  = "+1234567890"
}
```

Vous pouvez ajouter des champs similaires pour d'autres types de contacts, tels que les opérations et la sécurité. Dans Personnalisations globales, ajoutez des recherches de données pour chaque champ personnalisé, afin de vérifier que vous recherchez tous les champs que vous avez créés dans Account Request :

```
data "aws_ssm_parameter" "billing_name" {
            name = "/aft/account-request/custom-fields/billing_name"
            }
            
            data "aws_ssm_parameter" "billing_title" {
            name = "/aft/account-request/custom-fields/billing_title"
            }
            
            data "aws_ssm_parameter" "billing_email_address" {
            name = "/aft/account-request/custom-fields/billing_email_address"
            }
            
            data "aws_ssm_parameter" "billing_phone_number" {
            name = "/aft/account-request/custom-fields/billing_phone_number"
            }
```

Enfin, également dans le fichier de personnalisations globales, créez les ressources de contact alternatives. Vous devrez définir l'un de ces blocs pour chaque type de contact que vous avez créé dans Account Request :

```
resource "aws_account_alternate_contact" "billing" {
            
            alternate_contact_type = "BILLING"
            
            name          = data.aws_ssm_parameter.billing_name.value
            title         = data.aws_ssm_parameter.billing_title.value
            email_address = data.aws_ssm_parameter.billing_email_address.value
            phone_number  = data.aws_ssm_parameter.billing_phone_number.value
            }
```

**Note**  
 La saisie que vous fournissez ne `control_tower_parameters` peut pas être modifiée lors de la mise en service du compte.   
 Les formats pris en charge pour la spécification `ManagedOrganizationalUnit` dans le **aft-account-request**référentiel incluent `OUName` et`OUName (OU-ID)`. 

## Mettre à jour un compte que l'AFT ne fournit pas
<a name="aft-update-account-not-provision"></a>

 Vous pouvez mettre à jour les comptes AWS Control Tower créés en dehors d'AFT en spécifiant le compte dans le **aft-account-request**référentiel. 

**Note**  
 Assurez-vous que tous les détails du compte sont corrects et cohérents avec l'organisation AWS Control Tower et le produit AWS Service Catalog provisionné correspondant. 

**Conditions préalables à la mise à jour d'un existant Compte AWS avec AFT**
+  Ils Compte AWS doivent être inscrits à AWS Control Tower. 
+  Ils Compte AWS doivent faire partie de l'organisation AWS Control Tower. 

# Versions Terraform et AFT
<a name="version-supported"></a>

Account Factory for Terraform (AFT) prend en charge la version Terraform ou ultérieure. `1.6.0` Vous devez fournir une version Terraform comme paramètre d'entrée pour le processus de déploiement AFT, comme indiqué dans l'exemple suivant.

```
terraform_version = "1.6.0"
```

## Distributions Terraform
<a name="terraform-distributions"></a>

AFT prend en charge trois distributions Terraform :
+ Édition communautaire Terraform
+ Cloud Terraform
+ Terraform Entreprise

Ces distributions sont expliquées dans les sections qui suivent. Fournissez la distribution Terraform de votre choix comme paramètre d'entrée lors du processus de démarrage AFT. Pour plus d'informations sur le déploiement d'AFT et les paramètres d'entrée, consultez[Déployez AWS Control Tower Account Factory pour Terraform (AFT)](aft-getting-started.md).

Si vous choisissez les distributions Terraform Cloud ou Terraform Enterprise, le jeton d'[API que vous spécifiez `terraform_token ` doit être un jeton](https://www.terraform.io/cloud-docs/users-teams-organizations/api-tokens) d'API utilisateur ou d'équipe. Un jeton d'organisation n'est pas pris en charge pour tous les besoins APIs. Pour des raisons de sécurité, vous devez éviter d'enregistrer la valeur de ce jeton dans votre système de contrôle de version (VCS) en affectant une [variable terraform](https://www.terraform.io/cloud-docs/workspaces/variables/managing-variables), comme indiqué dans l'exemple suivant.

```
 # Sensitive variable managed in Terraform Cloud:
 terraform_token = var.terraform_cloud_token
```

### Édition communautaire Terraform
<a name="terraform-oss"></a>

Lorsque vous sélectionnez Terraform Community Edition comme distribution, AFT gère le backend Terraform pour vous dans le compte de gestion AFT. AFT télécharge la version `terraform-cli` de Terraform que vous avez spécifiée pour l'exécuter pendant les phases de déploiement d'AFT et de pipeline AFT. La configuration d'état Terraform qui en résulte est stockée dans un compartiment Amazon S3, nommé sous la forme suivante :

```
aft-backend-[account_id]-primary-region
```

AFT crée également un compartiment Amazon S3 qui reproduit votre configuration d'état Terraform dans un autre Région AWS, à des fins de reprise après sinistre, nommé sous la forme suivante :

```
aft-backend-[account_id]-secondary-region
```

Nous vous recommandons d'activer l'authentification multifactorielle (MFA) pour les fonctions de suppression sur ces compartiments Amazon S3 d'état Terraform. Pour en savoir plus sur Terraform Community Edition, consultez [la documentation Terraform](https://www.terraform.io/docs/cli/index.html).

Pour sélectionner Terraform OSS comme distribution, fournissez le paramètre d'entrée suivant :

```
terraform_distribution = "oss"
```

### Cloud Terraform
<a name="terraform-cloud"></a>

 Lorsque vous sélectionnez Terraform Cloud comme distribution, AFT crée des espaces de travail pour les composants suivants dans votre organisation Terraform Cloud, ce qui lance un flux de travail piloté par API. 
+  Demande de compte 
+  Personnalisations AFT pour les comptes approvisionnés par AFT 
+  Personnalisations de compte pour les comptes approvisionnés par l'AFT 
+  Personnalisations globales pour les comptes approvisionnés par AFT 

 Terraform Cloud gère la configuration d'état Terraform qui en résulte. 

 Lorsque vous sélectionnez Terraform Cloud comme distribution, fournissez les paramètres d'entrée suivants : 
+  `terraform_distribution = "tfc"` 
+  `terraform_token`— Ce paramètre contient la valeur du jeton Terraform Cloud. AFT marque la valeur comme sensible et stocke la valeur sous forme de chaîne sécurisée dans le magasin de paramètres SSM du compte de gestion AFT. Nous vous recommandons de modifier régulièrement la valeur du jeton Terraform conformément aux politiques de sécurité et aux directives de conformité de votre entreprise. Le jeton Terraform doit être un jeton d'API au niveau de l'utilisateur ou de l'équipe. Les jetons d'organisation ne sont pas pris en charge. 
+  `terraform_org_name`— Ce paramètre contient le nom de votre organisation Terraform Cloud. 

**Note**  
 Les déploiements AFT multiples dans une même organisation Terraform Cloud ne sont pas pris en charge. 

 Pour plus d'informations sur la configuration de Terraform Cloud, consultez [la documentation Terraform](https://www.terraform.io/docs/cloud/index.html). 

### Terraform Entreprise
<a name="terraform-enterprise"></a>

Lorsque vous sélectionnez Terraform Enterprise comme distribution, AFT crée des espaces de travail pour les composants suivants dans votre organisation Terraform Enterprise, et déclenche un flux de travail piloté par API pour les exécutions Terraform qui en résultent.
+ Demande de compte
+ Personnalisations du provisionnement des comptes AFT pour les comptes provisionnés par AFT
+ Personnalisations de compte pour les comptes provisionnés par AFT
+ Personnalisations globales pour les comptes provisionnés par AFT

La configuration d'état Terraform qui en résulte est gérée par votre configuration Terraform Enterprise.

Pour sélectionner Terraform Enterprise comme distribution, fournissez les paramètres d'entrée suivants :
+  `terraform_distribution = "tfe"` 
+ `terraform_token`— Ce paramètre contient la valeur de votre jeton Terraform Enterprise. AFT marque sa valeur comme sensible et la stocke sous forme de chaîne sécurisée dans le magasin de paramètres SSM, dans le compte de gestion AFT. Nous vous recommandons de modifier régulièrement la valeur du jeton Terraform, conformément aux politiques de sécurité et aux directives de conformité de votre entreprise.
+ `terraform_org_name`— Ce paramètre contient le nom de votre organisation Terraform Enterprise.
+ `terraform_api_endpoint`— Ce paramètre contient l'URL de votre environnement Terraform Enterprise. La valeur de ce paramètre doit être au format suivant :

  ```
  https://{fqdn}/api/v2/
  ```

Consultez [la documentation Terraform](https://www.terraform.io/docs/enterprise/index.html) pour en savoir plus sur la configuration de Terraform Enterprise.

# Vérifiez la version AFT
<a name="check-aft-version"></a>

Vous pouvez vérifier votre version AFT déployée en interrogeant la clé AWS SSM Parameter Store :

```
/aft/config/aft/version
```

Si vous utilisez la méthode du registre, vous pouvez épingler la version.

```
module "control_tower_account_factory" {
  source  = "aws-ia/control_tower_account_factory/aws"
  version = "1.3.2"
  # insert the 6 required variables here
}
```

Vous pouvez consulter plus d'informations sur les versions AFT dans le [référentiel AFT](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main).

# Mettre à jour la version AFT
<a name="update-aft-version"></a>

Connectez-vous au compte de gestion AWS Control Tower pour lancer cette mise à jour AFT.

Vous pouvez mettre à jour votre version AFT déployée en l'extrayant depuis la branche du `main` référentiel :

```
terraform get -update
```

Une fois l'extraction terminée, vous pouvez réexécuter le plan Terraform ou exécuter Apply pour mettre à jour l'infrastructure AFT avec les dernières modifications.

# Activer les options de fonctionnalités
<a name="aft-feature-options"></a>

AFT propose des options de fonctionnalités basées sur les meilleures pratiques. Vous pouvez opter pour ces fonctionnalités, au moyen d'indicateurs de fonctionnalités, lors du déploiement de l'AFT. [Création d'un nouveau compte auprès de l'AFT](aft-provision-account.md)Pour plus d'informations sur les paramètres de configuration d'entrée AFT, reportez-vous à.

Ces fonctionnalités ne sont pas activées par défaut. Vous devez activer chacune d'entre elles de manière explicite dans votre environnement.

**Topics**
+ [AWS CloudTrail événements liés aux données](#cloudtrail-data-event-option)
+ [AWS Plan de support aux entreprises](#enterprise-support-option)
+ [Supprimer le AWS VPC par défaut](#delete-default-vpc-option)

## AWS CloudTrail événements liés aux données
<a name="cloudtrail-data-event-option"></a>

Lorsqu'elle est activée, l'option AWS CloudTrail Data Events configure ces fonctionnalités.
+ Crée un historique d'organisation dans le compte de gestion AWS Control Tower, pour CloudTrail
+ Active la journalisation des événements de données Amazon S3 et Lambda
+ Chiffre et exporte tous les événements de CloudTrail données vers un compartiment `aws-aft-logs-*` S3 du compte AWS Control Tower Log Archive, avec AWS KMS chiffrement
+ Active le paramètre de **validation du fichier journal**

Pour activer cette option, définissez l'indicateur de fonctionnalité suivant sur **True** dans la configuration d'entrée de votre déploiement AFT.

```
aft_feature_cloudtrail_data_events
```

**Prérequis**

Avant d'activer cette option de fonctionnalité, assurez-vous que l'accès sécurisé AWS CloudTrail est activé dans votre organisation. 

**Pour vérifier l'état de l'accès sécurisé pour CloudTrail  :**

1. Accédez à la AWS Organizations console.

1. Choisissez **Services > CloudTrail**.

1. Sélectionnez ensuite **Activer l'accès sécurisé** en haut à droite, si nécessaire.

Vous pouvez recevoir un message d'avertissement vous conseillant d'utiliser la AWS CloudTrail console, mais dans ce cas, ignorez cet avertissement. AFT crée le parcours dans le cadre de l'activation de cette option de fonctionnalité, une fois que vous avez autorisé un accès sécurisé. Si l'accès sécurisé n'est pas activé, vous recevrez un message d'erreur lorsque l'AFT tentera de créer votre trace pour les événements liés aux données.

**Note**  
Ce paramètre fonctionne au niveau de l'organisation. L'activation de ce paramètre affecte tous les comptes AWS Organizations, qu'ils soient gérés par AFT ou non. Tous les compartiments du compte AWS Control Tower Log Archive au moment de l'activation sont exclus des événements de données Amazon S3. Reportez-vous [au guide de AWS CloudTrail l'utilisateur](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) pour en savoir plus sur CloudTrail.

## AWS Plan de support aux entreprises
<a name="enterprise-support-option"></a>

Lorsque cette option est activée, le pipeline AFT active le plan AWS Enterprise Support pour les comptes provisionnés par AFT.

AWS les comptes sont fournis par défaut avec le plan AWS de Support de base activé. AFT fournit une inscription automatique au niveau de support d'entreprise, pour les comptes approvisionnés par AFT. Le processus de provisionnement ouvre un ticket d'assistance pour le compte, demandant son ajout au plan de support aux AWS entreprises.

Pour activer l'option Enterprise Support, définissez l'indicateur de fonctionnalité suivant sur **True** dans la configuration d'entrée de votre déploiement AFT.

```
aft_feature_enterprise_support=false
```

Reportez-vous à la section [Comparer les plans de AWS support](https://aws.amazon.com/premiumsupport/plans/) pour en savoir plus sur les plans de AWS support.

**Note**  
Pour permettre à cette fonctionnalité de fonctionner, vous devez inscrire le compte payeur au plan Enterprise Support.

## Supprimer le AWS VPC par défaut
<a name="delete-default-vpc-option"></a>

 Lorsque vous activez cette option, AFT supprime toutes les AWS valeurs par défaut VPCs du compte de gestion AFT Régions AWS, même si vous n'y avez pas déployé de ressources AWS Control Tower. Régions AWS

 AFT ne supprime pas VPCs automatiquement les comptes AWS par défaut pour les comptes AWS Control Tower fournis par AFT ou pour les AWS comptes existants que vous inscrivez dans AWS Control Tower via AFT. 

Les nouveaux AWS comptes sont créés avec un VPC configuré par défaut dans chacun Région AWS d'eux. Votre entreprise applique peut-être des pratiques de création standard VPCs, qui vous obligent à supprimer le VPC AWS par défaut et à éviter de l'activer, en particulier pour le compte de gestion AFT. 

Pour activer cette option, définissez l'indicateur de fonctionnalité suivant sur **True** dans la configuration d'entrée de votre déploiement AFT.

```
aft_feature_delete_default_vpcs_enabled
```

Voici un exemple de configuration d'entrée de déploiement AFT.

```
module "aft" {
  source = "github.com/aws-ia/terraform-aws-control_tower_account_factory"
  ct_management_account_id    = var.ct_management_account_id
  log_archive_account_id      = var.log_archive_account_id
  audit_account_id            = var.audit_account_id
  aft_management_account_id   = var.aft_management_account_id
  ct_home_region              = var.ct_home_region
  tf_backend_secondary_region = var.tf_backend_secondary_region

  vcs_provider                                  = "github"
  account_request_repo_name                     = "${var.github_username}/learn-terraform-aft-account-request"
  account_provisioning_customizations_repo_name = "${var.github_username}/learn-terraform-aft-account-provisioning-customizations"
  global_customizations_repo_name               = "${var.github_username}/learn-terraform-aft-global-customizations"
  account_customizations_repo_name              = "${var.github_username}/learn-terraform-aft-account-customizations"

  # Optional Feature Flags
  aft_feature_delete_default_vpcs_enabled = true
  aft_feature_cloudtrail_data_events      = false
  aft_feature_enterprise_support          = false
}
```

Reportez-vous à la section [VPC par défaut et sous-réseaux par défaut](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html) pour en savoir plus sur le VPC par défaut. VPCs

# Considérations relatives aux ressources pour AWS Control Tower Account Factory for Terraform
<a name="aft-resources"></a>

Lorsque vous configurez votre zone de landing zone à l'aide d'AWS Control Tower Account Factory for Terraform, plusieurs types de AWS ressources sont créés dans vos AWS comptes.

**Rechercher des ressources**
+ Vous pouvez utiliser des balises pour rechercher la liste la plus récente des ressources AFT. La paire clé-valeur pour votre recherche est la suivante :

  ```
  Key: managed_by | Value: AFT
  ```
+ Pour les services de composants qui ne prennent pas en charge les balises, vous pouvez localiser les ressources en effectuant une recherche `aft` dans les noms des ressources.

**Note**  
AFT ne crée aucune ressource AWS de sauvegarde dans le compte de gestion.

**Tableaux des ressources initialement créés, par compte**


**Compte de gestion AWS Control Tower Account Factory pour Terraform**  

| **AWS web** | **Type de ressource** | **Nom de la ressource** | 
| --- | --- | --- | 
| Gestion des identités et des accès AWS | Roles |  AWSAFTAdmin AWSAFTExecution AWSAFTService ct-aft-\$1 aft-\$1 codebuild\$1trigger\$1role python-layer-builder-aft-common-\$1 | 
| Gestion des identités et des accès AWS | Stratégies | aft-\$1 | 
| CodeCommit | Référentiels | aft-\$1 | 
| CodeBuild | Projets de génération | aft-\$1 ct-aft-\$1 python-layer-builder-aft-common-\$1  | 
| Pipeline de codes | Pipelines | **YourAccountId**-customizations-pipeline | 
| Amazon S3 | Compartiments | aft-\$1  | 
| Lambda | Fonctions | aft-\$1 | 
| Lambda | Layers | aft-common-\$1 | 
| DynamoDB | Tables | aft-request aft-request-audit aft-request-metadata aft-controltower-events | 
| Step Functions | Machines d'État | aft-account-provisioning-customizations aft-account-provisioning-framework aft-feature-options aft-invoke-customizations | 
| VPC | VPC | aft-management-vpc | 
| Amazon SNS | Rubriques | aft-notifications aft-failure-notifications | 
| Amazon EventBridge | Bus pour événements | aft-events-from-ct-management | 
| Amazon EventBridge | Règles de l'événement | aft-account-provisioning-customizations-trigger aft-account-request-codepipeline-trigger aft-lambda-account-request-processor aft-controltower-event-logger | 
| Service de gestion des clés (KMS) | Clés gérées par le client | aft-backend-\$1-kms-key aft | 
| AWS Systems Manager | Magasin de paramètres | /aft/\$1  | 
| Amazon SQS | Files d’attente | aft-account-request.fifo aft-account-request-dlg.fifo | 
| CloudWatch | Groupes de journaux | /aws/\$1/ct-aft-\$1 /aws/\$1/aft-\$1 /aws/codebuild/python-layer-builder-aft-common-\$1 | 
| AWS Backup | Coffres-forts | aft-controltower-backup-vault | 
| AWS Backup | Plans | aft-controltower-backup-plan | 
| AWS Centre de support (facultatif) | Plans de support | Enterprise | 


**AWS comptes provisionnés via AWS Control Tower Account Factory pour Terraform**  

| **AWS web** | **Type de ressource** | **Nom de la ressource** | 
| --- | --- | --- | 
| Gestion des identités et des accès AWS | Roles | AWSAFTExecution | 
| AWS Centre de support (facultatif) | Plans de support | Enterprise | 


**Compte de gestion AWS Control Tower**  

| **AWS web** | **Type de ressource** | **Nom de la ressource** | 
| --- | --- | --- | 
| Gestion des identités et des accès AWS | Roles |  AWSAFTExecution AWSAFTService aft-controltower-events-rule  | 
| AWS Systems Manager | Magasin de paramètres | /aft/\$1 | 
| EventBridge | Règles de l'événement | aft-capture-ct-events | 
| CloudTrail (Facultatif) | Journaux de suivi | aws-aft-CustomizationsCloudTrail | 
| Centre de support AWS (facultatif) | Plans de support | Enterprise | 


**Compte d'archivage des journaux AWS Control Tower**  

| **AWS web** | **Type de ressource** | **Nom de la ressource** | 
| --- | --- | --- | 
| Gestion des identités et des accès AWS | Roles |  AWSAFTExecution AWSAFTService  | 
| Service de gestion des clés (KMS) | Clés gérées par le client | aft | 
| Amazon S3 | Compartiments | aws-aft-logs-\$1 aws-aft-s3-access-logs-\$1 | 
| AWS Centre de support (facultatif) | Plans de support | Enterprise | 


**Compte d'audit AWS Control Tower**  

| **AWS web** | **Type de ressource** | **Nom de la ressource** | 
| --- | --- | --- | 
| Gestion des identités et des accès AWS | Roles |  AWSAFTExecution AWSAFTService  | 
| AWS Centre de support (facultatif) | Plans de support | Enterprise | 

# Rôles obligatoires
<a name="aft-required-roles"></a>

En général, les rôles et les politiques font partie de la gestion des identités et des accès (IAM) dans AWS. Reportez-vous au [https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html) pour plus d'informations.

AFT crée plusieurs rôles et politiques IAM dans les comptes de gestion AFT et de gestion AWS Control Tower afin de soutenir les opérations du pipeline AFT. Ces rôles sont créés sur la base du modèle d'accès avec le moindre privilège, qui limite les autorisations aux ensembles d'actions et de ressources minimalement requis pour chaque rôle et chaque politique. Ces rôles et politiques se voient attribuer une `key:value` paire de AWS balises, comme ` managed_by:AFT` pour l'identification. 

Outre ces rôles IAM, l'AFT crée trois rôles essentiels :
+ le `AWSAFTAdmin` rôle
+ le `AWSAFTExecution` rôle
+ le `AWSAFTService` rôle

Ces rôles sont expliqués dans les sections suivantes.

**Le AWSAFTAdmin rôle, expliqué**

Lorsque vous déployez AFT, le `AWSAFTAdmin` rôle est créé dans le compte de gestion AFT. Ce rôle permet au pipeline AFT d'assumer le `AWSAFTExecution` rôle dans les comptes provisionnés par AWS Control Tower et AFT, afin d'effectuer des actions liées au provisionnement et à la personnalisation des comptes.

Voici la politique intégrée (artefact JSON) attachée au `AWSAFTAdmin` rôle : 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": [
                "arn:aws:iam::*:role/AWSAFTExecution",
                "arn:aws:iam::*:role/AWSAFTService"
            ]
        }
    ]
}
```

------

L'artefact JSON suivant montre la relation de confiance associée au `AWSAFTAdmin` rôle. Le numéro d'espace réservé `012345678901` est remplacé par le numéro d'identification du compte de gestion AFT.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::012345678901:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

**Le AWSAFTExecution rôle, expliqué**

Lorsque vous déployez AFT, le `AWSAFTExecution` rôle est créé dans les comptes de gestion AFT et de gestion AWS Control Tower. Plus tard, le pipeline AFT crée le `AWSAFTExecution` rôle dans chaque compte provisionné AFT pendant la phase de provisionnement du compte AFT.

 AFT utilise le `AWSControlTowerExecution` rôle dans un premier temps, pour le `AWSAFTExecution` créer dans des comptes spécifiés. Le `AWSAFTExecution` rôle permet au pipeline AFT d'exécuter les étapes effectuées lors des étapes de provisionnement et de personnalisation du provisionnement du framework AFT, pour les comptes provisionnés AFT et pour les comptes partagés.

**Des rôles distincts vous aident à limiter la portée**  
Il est recommandé de séparer les autorisations de personnalisation de celles autorisées lors du déploiement initial des ressources. N'oubliez pas que le `AWSAFTService` rôle est destiné au provisionnement du compte et qu'il est destiné à la `AWSAFTExecution` personnalisation du compte. Cette séparation limite l'étendue des autorisations autorisées au cours de chaque phase du pipeline. Cette distinction est particulièrement importante si vous personnalisez les comptes partagés AWS Control Tower, car ceux-ci peuvent contenir des informations sensibles, telles que des informations de facturation ou des informations utilisateur.

Autorisations pour `AWSAFTExecution` le rôle : **AdministratorAccess**— une politique gérée par AWS 

L'artefact JSON suivant montre la politique IAM (relation de confiance) attachée au `AWSAFTExecution` rôle. Le numéro d'espace réservé `012345678901` est remplacé par le numéro d'identification du compte de gestion AFT.

Politique de confiance pour `AWSAFTExecution`

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::012345678901:role/AWSAFTAdmin"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

**Le AWSAFTService rôle, expliqué**

Le `AWSAFTService` rôle déploie les ressources AFT dans tous les comptes inscrits et gérés, y compris les comptes partagés et le compte de gestion. Auparavant, les ressources étaient déployées uniquement par le `AWSAFTExecution` rôle.

Le `AWSAFTService` rôle est destiné à être utilisé par l'infrastructure de service pour déployer des ressources pendant la phase de provisionnement, et le `AWSAFTExecution` rôle est destiné à être utilisé uniquement pour déployer des personnalisations. En assumant les rôles de cette manière, vous pouvez maintenir un contrôle d'accès plus précis à chaque étape.

Autorisations pour `AWSAFTService` le rôle : **AdministratorAccess**— une politique gérée par AWS 

L'artefact JSON suivant montre la politique IAM (relation de confiance) attachée au `AWSAFTService` rôle. Le numéro d'espace réservé `012345678901` est remplacé par le numéro d'identification du compte de gestion AFT.

Politique de confiance pour `AWSAFTService`

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::012345678901:role/AWSAFTAdmin"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

# Services relatifs aux composants
<a name="aft-components"></a>

Lorsque vous déployez AFT, des composants sont ajoutés à votre AWS environnement à partir de chacun de ces AWS services.
+ **[AWS Control Tower](https://docs.aws.amazon.com//controltower/latest/userguide/what-is-control-tower.html)** — AFT utilise AWS Control Tower Account Factory dans le compte de gestion AWS Control Tower pour provisionner des comptes.
+ **[Amazon DynamoDB](https://docs.aws.amazon.com//amazondynamodb/latest/developerguide/Introduction.html)** — AFT crée des tables Amazon DynamoDB dans le compte de gestion AFT, qui stockent les demandes de compte, l'historique des audits des mises à jour du compte, les métadonnées du compte et les événements du cycle de vie de l'AWS Control Tower. AFT crée également des déclencheurs DynamoDB Lambda pour lancer des processus en aval, tels que le démarrage du flux de travail de provisionnement des comptes AFT. 
+ **[Amazon Simple Storage Service](https://docs.aws.amazon.com//AmazonS3/latest/userguide/Welcome.html)** — AFT crée des compartiments Amazon Simple Storage Service (S3) dans le compte de gestion AFT et le compte d'archivage des journaux AWS Control Tower, qui stockent les journaux générés par les services requis par AWS le pipeline AFT. AFT crée également un bucket S3 principal Terraform, en primaire et secondaire Régions AWS, pour stocker les états Terraform générés lors des flux de travail du pipeline AFT.
+ **[Amazon Simple Notification Service](https://docs.aws.amazon.com//sns/latest/dg/welcome.html)** — AFT crée des rubriques Amazon Simple Notification Service (SNS) dans le compte de gestion AFT, qui stocke les notifications de réussite et d'échec après le traitement de chaque demande de compte AFT. Vous pouvez recevoir ces messages en utilisant le protocole de votre choix.
+ **[Amazon Simple Queuing Service](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html)** — AFT crée une file d'attente FIFO Amazon Simple Queuing Service (Amazon SQS) dans le compte de gestion AFT. La file d'attente vous permet de soumettre plusieurs demandes de compte en parallèle, mais elle envoie une demande à la fois à AWS Control Tower Account Factory, pour un traitement séquentiel.
+ **[AWS CodeBuild](https://docs.aws.amazon.com//codebuild/latest/userguide/welcome.html)** — AFT crée des projets de CodeBuild construction AWS dans le compte de gestion AFT afin d'initialiser, de compiler, de tester et d'appliquer les plans Terraform pour le code source AFT au cours des différentes étapes de construction.
+ **[AWS CodePipeline](https://docs.aws.amazon.com//codepipeline/latest/userguide/welcome.html)** — AFT crée des CodePipeline pipelines AWS dans le compte de gestion AFT afin de les intégrer au fournisseur de CodeStar connexions AWS que vous avez sélectionné et pris en charge pour le code source AFT, et de déclencher des tâches de création dans AWS CodeBuild.
+ **[AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/welcome.html)** — AFT crée des fonctions et des couches AWS Lambda dans le compte de gestion AFT pour effectuer des étapes lors de la demande de compte, du provisionnement du compte AFT et des processus de personnalisation du compte.
+ **[AWS Systems Manager Parameter Store](https://docs.aws.amazon.com//systems-manager/latest/userguide/systems-manager-parameter-store.html)** — AFT configure le magasin de paramètres AWS Systems Manager dans le compte de gestion AFT, afin de stocker les paramètres de configuration requis pour les processus du pipeline AFT.
+ **[Amazon CloudWatch](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)** — AFT crée des groupes de CloudWatch journaux Amazon dans le compte de gestion AFT pour stocker les journaux générés par les services AWS utilisés par le pipeline AFT. La période de conservation des CloudWatch journaux est définie sur`Never Expire`.
+ **[Amazon VPC](https://docs.aws.amazon.com//vpc/latest/userguide/what-is-amazon-vpc.html)** — AFT crée un Amazon Virtual Private Cloud (VPC) pour isoler les services et les ressources du compte de gestion AFT dans un environnement réseau distinct, afin d'améliorer la sécurité.
+ **[AWS KMS](https://docs.aws.amazon.com//kms/latest/developerguide/overview.html)** — AFT utilise le service AWS Key Management Service (KMS) dans le compte de gestion AFT et dans le compte d'archivage des journaux AWS Control Tower. AFT crée des clés pour chiffrer les états Terraform, les données stockées dans les tables DynamoDB et les rubriques SNS. Ces journaux et artefacts sont générés lorsque les ressources et les services AWS sont déployés par AFT. La rotation annuelle des clés KMS créées par AFT est activée par défaut.
+ **[AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com//IAM/latest/UserGuide/introduction.html)** — AFT suit le modèle de moindre privilège recommandé. Il crée des rôles et des politiques AWS Identity and Access Management (IAM) dans le compte de gestion AFT, dans les comptes AWS Control Tower et dans les comptes provisionnés AFT, selon les besoins, afin d'effectuer les actions requises pendant le flux de travail du pipeline AFT.
+ **[AWS Step Functions](https://docs.aws.amazon.com//step-functions/latest/dg/welcome.html)** — AFT crée des machines d'état AWS Step Functions dans le compte de gestion AFT. Ces machines d'état orchestrent et automatisent le processus et les étapes du cadre de provisionnement et de personnalisation des comptes AFT.
+ **[Amazon EventBridge](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-what-is.html)** — AFT crée un bus d' EventBridgeévénements Amazon dans le compte de gestion AFT et AWS Control Tower afin de capturer et de stocker les événements du cycle de vie d'AWS Control Tower à long terme dans la table DynamoDB du compte de gestion AFT. AFT crée des règles relatives aux CloudWatch événements Amazon dans les comptes de gestion AFT et de gestion AWS Control Tower, qui déclenchent plusieurs étapes requises lors de l'exécution du flux de travail du pipeline AFT
+ **[AWS CloudTrail (Facultatif)](https://docs.aws.amazon.com//awscloudtrail/latest/userguide/cloudtrail-user-guide.html)** — Lorsque cette fonctionnalité est activée, AFT crée un journal AWS CloudTrail organisationnel dans le compte de gestion AWS Control Tower, afin de consigner les événements de données pour les buckets Amazon S3 et les fonctions AWS Lambda. AFT envoie ces journaux vers un compartiment S3 central dans le compte d'archivage des journaux d'AWS Control Tower.
+ **[AWS Support (facultatif)](https://aws.amazon.com//premiumsupport/)** — Lorsque cette fonctionnalité est activée, AFT active le plan de support aux AWS entreprises pour les comptes provisionnés par AFT. Par défaut, les AWS comptes sont créés avec le plan Support AWS de base activé.

# Pipeline de provisionnement de comptes AFT
<a name="aft-provisioning-framework"></a>

Une fois la phase de provisionnement des comptes du pipeline terminée, le cadre AFT se poursuit. Il exécute automatiquement une série d'étapes pour s'assurer que les informations relatives aux comptes nouvellement provisionnés sont en place, avant le début de l'[Personnaliser le compte](aft-account-customization-options.md)étape.

**Voici les prochaines étapes du pipeline AFT.**

1. Valide la saisie de la demande de compte.

1. Récupère des informations sur le compte provisionné, par exemple l'identifiant du compte.

1. Stocke les métadonnées du compte dans une table DynamoDB du compte de gestion AFT.

1. Crée le rôle **AWSAFTExecution**IAM dans le compte nouvellement provisionné. AFT assume ce rôle pour effectuer l'étape de personnalisation des comptes, car ce rôle donne accès au portefeuille Account Factory. 

1. Applique les balises de compte que vous avez fournies dans le cadre des paramètres de saisie de la demande de compte.

1. Applique les options de fonctionnalité AFT que vous avez choisies au moment du déploiement de l'AFT.

1. Applique les personnalisations de provisionnement du compte AFT que vous avez fournies. La section suivante explique comment configurer ces personnalisations avec une machine d'état AWS Step Functions, dans un `git` référentiel. Cette étape est parfois appelée étape du *cadre de provisionnement des comptes*. Cela fait partie du processus de provisionnement de base, mais vous avez déjà mis en place un framework qui fournit des intégrations personnalisées dans le cadre de votre flux de travail de provisionnement de comptes, avant que des personnalisations supplémentaires ne soient ajoutées aux comptes à l'étape suivante.

1. Pour chaque compte provisionné, il crée un compte de gestion intégré AWS CodePipeline à l'AFT, qui sera exécuté pour effectuer l'[Personnaliser le compte](aft-account-customization-options.md)étape (globale suivante).

1. Invoque le pipeline de personnalisation des comptes pour chaque compte provisionné (et ciblé).

1. Envoie une notification de réussite ou d'échec à la rubrique SNS, à partir de laquelle vous pouvez récupérer les messages.

## Configurer les personnalisations de la structure de provisionnement des comptes avec une machine à états
<a name="aft-customizations"></a>

Si vous configurez des intégrations personnalisées autres que Terraform avant de provisionner vos comptes, ces personnalisations sont incluses dans le flux de travail de provisionnement de votre compte AFT. Par exemple, vous pouvez avoir besoin de certaines personnalisations pour garantir que tous les comptes créés par AFT sont conformes aux normes et politiques de votre organisation, telles que les normes de sécurité, et ces normes peuvent être ajoutées aux comptes avant une personnalisation supplémentaire. Ces personnalisations du *cadre de provisionnement des comptes* sont mises en œuvre sur chaque compte provisionné, avant que la phase de personnalisation globale du compte ne commence ensuite.

**Note**  
La fonctionnalité AFT décrite dans cette section est destinée aux utilisateurs avancés qui comprennent le fonctionnement d'AWS Step Functions. Nous vous recommandons également de travailler avec les assistants globaux lors de la phase de personnalisation du compte.

Le framework de provisionnement des comptes AFT fait appel à une machine d'état AWS Step Functions, que vous définissez, pour implémenter vos personnalisations. Reportez-vous à la [documentation AWS Step Functions](https://docs.aws.amazon.com//step-functions/latest/dg/welcome.html) pour en savoir plus sur les intégrations possibles de machines à états.

Voici quelques intégrations courantes.
+ AWS Lambda fonctionne dans la langue de votre choix
+ Tâches AWS ECS ou AWS Fargate, à l'aide de conteneurs Docker
+ Activités AWS Step Functions utilisant des travailleurs personnalisés, hébergées sur AWS ou sur site
+ Intégrations Amazon SNS ou SQS

Si aucune machine d'état AWS Step Functions n'est définie, l'étape passe sans opération. Pour créer un compte AFT provisionnant une machine à états de personnalisation, suivez les instructions figurant dans. [Créez votre compte AFT, provisionnement, personnalisation, machine à états](#aft-create-customizations) Avant d'ajouter des personnalisations, assurez-vous que les prérequis sont en place.

Ces types d'intégrations ne font pas partie d'AWS Control Tower et ne peuvent pas être ajoutés pendant la phase globale de pré-API de personnalisation du compte AFT. Le pipeline AFT vous permet plutôt de configurer ces personnalisations dans le cadre du processus de provisionnement, et elles sont exécutées dans le flux de travail de provisionnement. Vous devez implémenter ces personnalisations en créant votre machine à états à l'avance, avant de lancer la phase de provisionnement du compte AFT, comme décrit dans les sections suivantes. 

**Conditions préalables à la création d'une machine à états**
+ Un AFT entièrement déployé. Voir [Déployez AWS Control Tower Account Factory pour Terraform (AFT)](aft-getting-started.md) pour plus d'informations sur le déploiement de l'AFT.
+ Configurez un `git` référentiel dans votre environnement pour personnaliser le provisionnement des comptes AFT. Pour plus d’informations, consultez [Étapes postérieures au déploiement](aft-post-deployment.md).

## Créez votre compte AFT, provisionnement, personnalisation, machine à états
<a name="aft-create-customizations"></a>

**Étape 1 : modifier la définition de la machine à états**

Modifiez l'exemple de définition de la machine à `customizations.asl.json` états. L'exemple est disponible dans le `git` référentiel que vous avez configuré pour stocker les personnalisations de provisionnement des comptes AFT, lors des étapes [post-déploiement](https://docs.aws.amazon.com//controltower/latest/userguide/aft-post-deployment.html). Reportez-vous au [guide du développeur AWS Step Functions](https://docs.aws.amazon.com//step-functions/latest/dg/welcome.html) pour en savoir plus sur les définitions des machines à états.

**Étape 2 : inclure la configuration Terraform correspondante**

Incluez les fichiers Terraform avec l'`.tf`extension dans le même `git` référentiel avec la définition de la machine à états pour votre intégration personnalisée. Par exemple, si vous choisissez d'appeler une fonction Lambda dans votre définition de tâche State Machine, vous devez inclure le `lambda.tf` fichier dans le même répertoire. Assurez-vous d'inclure les rôles et autorisations IAM requis pour vos configurations personnalisées.

Lorsque vous fournissez les informations appropriées, le pipeline AFT invoque automatiquement votre machine d'état et déploie vos personnalisations dans le cadre de l'étape du cadre de provisionnement des comptes AFT. 

## Pour redémarrer le cadre de provisionnement des comptes AFT et les personnalisations
<a name="aft-provisioining-considerations"></a>

AFT gère le cadre de provisionnement des comptes et les étapes de personnalisation pour chaque compte vendu via le pipeline AFT. Pour relancer les personnalisations de provisionnement des comptes, vous pouvez utiliser l'une des deux méthodes suivantes :

1. Apportez toute modification à un compte existant dans le dépôt des demandes de compte.

1. Ouvrez un nouveau compte auprès de l'AFT.

# Personnaliser le compte
<a name="aft-account-customization-options"></a>

AFT peut déployer des configurations standard ou personnalisées dans des comptes provisionnés. Dans le compte de gestion de l'AFT, l'AFT fournit un pipeline pour chaque compte. Avec ce pipeline, vous pouvez implémenter vos personnalisations dans tous les comptes, dans un ensemble de comptes ou dans des comptes individuels. Vous pouvez exécuter des scripts Python, des scripts bash et des configurations Terraform, ou vous pouvez interagir avec l'AWS CLI dans le cadre de l'étape de personnalisation de votre compte.

## Présentation de
<a name="aft-customizations-overview"></a>

Une fois que vos personnalisations ont été spécifiées dans les `git` référentiels que vous avez choisis, soit celui dans lequel vous stockez vos personnalisations globales, soit celui dans lequel vous stockez les personnalisations de votre compte, l'étape de personnalisation du compte est terminée automatiquement par le pipeline AFT. Pour personnaliser les comptes de manière rétroactive, voir[Réinvoquer les personnalisations](#aft-re-invoke-customizations).

**Personnalisations globales (facultatif)**

Vous pouvez choisir d'appliquer certaines personnalisations à tous les comptes approvisionnés par AFT. Par exemple, si vous devez créer un rôle IAM particulier ou déployer un contrôle personnalisé dans chaque compte, l'étape de personnalisation globale du pipeline AFT vous permet de le faire automatiquement.

**Personnalisations du compte (facultatif)**

Pour personnaliser un compte individuel ou un ensemble de comptes différemment des autres comptes provisionnés par AFT, vous pouvez tirer parti de la partie du pipeline AFT consacrée aux personnalisations de comptes pour implémenter des configurations spécifiques au compte. Par exemple, seul un certain compte peut nécessiter l'accès à une passerelle Internet. 

## Conditions préalables à la personnalisation
<a name="aft-account-customization-prerequisites"></a>

Avant de commencer à personnaliser les comptes, assurez-vous que ces conditions préalables sont réunies.
+ Un AFT entièrement déployé. Pour plus d'informations sur le déploiement, consultez[Configurez et lancez votre AWS Control Tower Account Factory pour Terraform](aft-getting-started.md#aft-configure-and-launch).
+ `git`Référentiels préremplis pour les personnalisations globales et les personnalisations de compte dans votre environnement. Reportez-vous à l'*étape 3 : renseigner chaque référentiel* [Étapes postérieures au déploiement](aft-post-deployment.md) pour plus d'informations.

## Appliquer des personnalisations globales
<a name="aft-global-customizations"></a>

Pour appliquer des personnalisations globales, vous devez transférer une structure de dossiers spécifique vers le référentiel de votre choix.
+ Si vos configurations personnalisées prennent la forme de programmes ou de scripts Python, placez-les dans le dossier **api\$1helpers/python** de votre dépôt.
+ Si vos configurations personnalisées prennent la forme de scripts Bash, placez-les dans le dossier **api\$1helpers** de votre dépôt.
+ Si vos configurations personnalisées sont sous la forme de Terraform, placez-les dans le dossier **terraform** de votre référentiel.
+ Reportez-vous au fichier README des personnalisations globales pour plus de détails sur la création de configurations personnalisées.

**Note**  
Les personnalisations globales sont appliquées automatiquement, après l'étape du framework de provisionnement des comptes AFT dans le pipeline AFT.

## Appliquer les personnalisations de compte
<a name="aft-account-customizations"></a>

****

 Vous pouvez appliquer des personnalisations de compte en transférant une structure de dossiers spécifique vers le référentiel de votre choix. Les personnalisations de compte sont appliquées automatiquement dans le pipeline AFT et après l'étape de personnalisation globale. Vous pouvez également créer plusieurs dossiers contenant différentes personnalisations de compte dans votre référentiel de personnalisations de compte. Pour chaque personnalisation de compte dont vous avez besoin, procédez comme suit. 

**Pour appliquer les personnalisations de compte**

1.  **Étape 1 : Création d'un dossier pour la personnalisation d'un compte** 

    Dans le dépôt de votre choix, copiez le `ACCOUNT_TEMPLATE` dossier fourni par AFT dans un nouveau dossier. Le nom de votre nouveau dossier doit correspondre à celui `account_customizations_name` que vous avez indiqué dans votre demande de compte. 

1.  **Ajoutez les configurations à votre dossier de personnalisation de compte spécifique** 

    Vous pouvez ajouter des configurations au dossier de personnalisation de votre compte en fonction du format de vos configurations. 
   +  Si vos configurations personnalisées prennent la forme de programmes ou de scripts Python, placez-les dans le dossier ***[account\$1customizations\$1name]*/api\$1helpers/python** qui se trouve dans votre dépôt. 
   +  Si vos configurations personnalisées prennent la forme de scripts Bash, placez-les dans le dossier ***[account\$1customizations\$1name]*/api\$1helpers** qui se trouve dans votre dépôt. 
   +  Si vos configurations personnalisées sont sous la forme de Terraform, placez-les dans le dossier ***[account\$1customizations\$1name]*/terraform** qui se trouve dans votre référentiel. 

    Pour plus d'informations sur la création de configurations personnalisées, reportez-vous au fichier README de personnalisation du compte. 

1.  **Reportez-vous au `account_customizations_name` paramètre spécifique dans le fichier de demande de compte** 

    Le fichier de demande de compte AFT inclut le paramètre d'entrée`account_customizations_name`. Entrez le nom de la personnalisation de votre compte comme valeur de ce paramètre. 

**Note**  
 Vous pouvez soumettre plusieurs demandes de compte pour les comptes de votre environnement. Lorsque vous souhaitez appliquer des personnalisations de compte différentes ou similaires, spécifiez-les à l'aide du paramètre `account_customizations_name` d'entrée dans les demandes de compte. Pour plus d'informations, voir [Soumettre des demandes de comptes multiples](https://docs.aws.amazon.com/controltower/latest/userguide/aft-multiple-account-requests.html). 

## Réinvoquer les personnalisations
<a name="aft-re-invoke-customizations"></a>

L'AFT fournit un moyen de réinvoquer les personnalisations dans le pipeline AFT. Cette méthode est utile lorsque vous avez ajouté une nouvelle étape de personnalisation ou lorsque vous modifiez une personnalisation existante. Lorsque vous le réappelez, AFT lance le pipeline de personnalisations pour apporter des modifications au compte provisionné par AFT. Une event-source-based réinvocation vous permet d'appliquer des personnalisations à des comptes individuels, à tous les comptes, à des comptes en fonction de leur unité d'organisation ou à des comptes sélectionnés en fonction de balises.

Suivez ces trois étapes pour réinvoquer les personnalisations pour les comptes provisionnés par AFT.

**Étape 1 : transférer les modifications vers les référentiels globaux ou de personnalisation des `git` comptes**

Vous pouvez mettre à jour vos personnalisations globales et de compte selon vos besoins et renvoyer les modifications à vos `git` référentiels. À ce stade, rien ne se passe. Le pipeline de personnalisations doit être invoqué par une source d'événements, comme expliqué dans les deux étapes suivantes.

**Étape 2 : démarrer l'exécution d'une fonction AWS Step pour réinvoquer des personnalisations**

AFT fournit une fonction AWS Step appelée `aft-invoke-customizations` dans le compte de gestion AFT. Le but de cette fonction est de réinvoquer le pipeline de personnalisation pour les comptes provisionnés par AFT.

Voici un exemple de schéma d'événement (format JSON) que vous pouvez créer pour transmettre des données à la fonction `aft-invoke-customizations` AWS Step.

```
{
  "include": [
    {
      "type": "all"
    },
    {
      "type": "ous",
      "target_value": [ "ou1","ou2"]
    },
    {
      "type": "tags",
      "target_value": [ {"key1": "value1"}, {"key2": "value2"}]
    },
    {
      "type": "accounts",
      "target_value": [ "acc1_ID","acc2_ID"]
    }
  ],

  "exclude": [
    {
      "type": "ous",
      "target_value": [ "ou1","ou2"]
    },
    {
      "type": "tags",
      "target_value": [ {"key1": "value1"}, {"key2": "value2"}]
    },
    {
      "type": "accounts",
      "target_value": [ "acc1_ID","acc2_ID"]
    }
  ]
}
```

 L'exemple de schéma d'événement montre que vous pouvez choisir les comptes à inclure ou à exclure du processus de réappel. Vous pouvez filtrer par unité organisationnelle (UO), tags de compte et ID de compte. Si vous n'appliquez aucun filtre et que vous incluez la déclaration`"type":"all"`, la personnalisation pour tous les comptes provisionnés par AFT est à nouveau invoquée. 

**Note**  
 Si votre version d'AWS Control Tower Account Factory for Terraform (AFT) est la 1.6.5 ou une version ultérieure, vous pouvez cibler (imbriqué à l' OUs aide de la syntaxe). `OU Name (ou-id-1234` Pour plus d'informations, consultez la rubrique suivante sur [GitHub](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/issues/280). 

 Une fois que vous avez renseigné les paramètres de l'événement, Step Functions s'exécute et invoque les personnalisations correspondantes. AFT peut invoquer un maximum de 5 personnalisations à la fois. Step Functions attend et tourne en boucle jusqu'à ce que tous les comptes correspondant aux critères de l'événement soient complets. 

**Étape 3 : surveillez la sortie de la fonction AWS Step et observez l' CodePipeline exécution d'AWS**
+ La sortie Step Function qui en résulte contient un compte IDs qui correspond à la source d'événement d'entrée Step Function.
+ Accédez à AWS CodePipeline sous **Outils** de développement et consultez les pipelines de personnalisation correspondants pour l'ID de compte.

## Résolution des problèmes liés au suivi des demandes de personnalisation du compte AFT
<a name="aft-customization-request"></a>

 Workflows de personnalisation des comptes basés sur des journaux AWS Lambda d'émission contenant le compte cible et la demande de personnalisation IDs. AFT vous permet de suivre et de résoudre les demandes de personnalisation avec Amazon CloudWatch Logs en vous fournissant des requêtes CloudWatch Logs Insights que vous pouvez utiliser pour filtrer les CloudWatch journaux liés à votre demande de personnalisation en fonction de votre compte cible ou de votre ID de demande de personnalisation. Pour plus d'informations, consultez la section [Analyse des données de journal avec Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) dans le *guide de l'utilisateur Amazon CloudWatch Logs*. 

**Pour utiliser CloudWatch Logs Insights pour AFT**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1.  Dans le volet de navigation, choisissez **Logs**, puis **Logs insights**. 

1.  Choisissez **Requêtes**. 

1.  Sous **Exemples de requêtes**, choisissez **Account Factory for Terraform**, puis sélectionnez l'une des requêtes suivantes : 
   +  **Journaux de personnalisation par identifiant de compte** 
**Note**  
 Assurez-vous de le remplacer *"YOUR-ACCOUNT-ID"* par votre identifiant de compte cible. 

     ```
     fields @timestamp, log_message.account_id as target_account_id, log_message.customization_request_id as customization_request_id, log_message.detail as detail, @logStream
     | sort @timestamp desc
     | filter log_message.account_id == "YOUR-ACCOUNT-ID" and @message like /customization_request_id/
     ```
   +  **Journaux de personnalisation par ID de demande de personnalisation** 
**Note**  
 Assurez-vous de le remplacer *"YOUR-CUSTOMIZATION-REQUEST-ID"* par votre identifiant de demande de personnalisation. Vous pouvez trouver l'ID de votre demande de personnalisation dans la sortie de la machine d' AWS Step Functions état du framework de provisionnement de comptes AFT. Pour plus d'informations sur le cadre de provisionnement des comptes AFT, voir Pipeline de [provisionnement des comptes AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-provisioning-framework.html) 

     ```
     fields @timestamp, log_message.account_id as target_account_id, log_message.customization_request_id as customization_request_id, log_message.detail as detail, @logStream
     | sort @timestamp desc
     | filter log_message.customization_request_id == "YOUR-CUSTOMIZATION-REQUEST-ID"
     ```

1.  Après avoir sélectionné une requête, assurez-vous de sélectionner un intervalle de temps, puis choisissez **Exécuter la requête**. 

# Alternatives pour le contrôle de version du code source dans AFT
<a name="aft-alternative-vcs"></a>

AFT utilise un système AWS CodeCommit de contrôle de version du code source (VCS) et en autorise d'autres [CodeConnections](https://docs.aws.amazon.com//dtconsole/latest/userguide/supported-versions-connections.html)qui répondent aux exigences de votre entreprise ou à votre architecture existante.

Si vous déployez AFT pour la première fois et que vous n'avez pas de CodeCommit référentiel existant, vous devez spécifier un fournisseur VCS externe, dans le cadre des conditions préalables au déploiement d'AFT.

**AFT prend en charge les alternatives de contrôle du code source suivantes :**
+ GitHub
+ GitHub Serveur d'entreprise
+ BitBucket
+ GitLab
+ GitLab Autogéré

**Note**  
Si vous AWS CodeCommit le spécifiez comme VCS, aucune étape supplémentaire n'est requise. AFT crée les `git` référentiels nécessaires dans votre environnement, avec des noms par défaut. Toutefois, vous pouvez remplacer les noms de référentiel par défaut afin de respecter les CodeCommit normes de votre organisation, le cas échéant.

## Mettre en place un autre système de contrôle de version du code source (VCS personnalisé) avec AFT
<a name="aft-alternate-vcs-steps"></a>

Pour configurer un autre système de contrôle de version du code source pour votre déploiement AFT, procédez comme suit.

**Étape 1 : créer des `git` référentiels dans un système de contrôle de version (VCS) tiers pris en charge.**

Si vous n'en utilisez pas AWS CodeCommit, vous devez créer des `git` référentiels dans votre environnement de fournisseur VCS tiers pris en charge par AFT pour les éléments suivants.
+ **Demandes de compte AFT.** [Exemple de code disponible](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-request). Pour plus d'informations sur les demandes de compte AFT, consultez[Création d'un nouveau compte auprès de l'AFT](aft-provision-account.md).
+ **Personnalisations du provisionnement des comptes AFT.** [Exemple de code disponible](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-provisioning-customizations). Pour plus d'informations sur les personnalisations de provisionnement des comptes AFT, consultez. [Créez votre compte AFT, provisionnement, personnalisation, machine à états](aft-provisioning-framework.md#aft-create-customizations)
+ **Personnalisations globales d'AFT.** [Exemple de code disponible](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-global-customizations). Pour plus d'informations sur les personnalisations globales d'AFT, consultez[Personnaliser le compte](aft-account-customization-options.md).
+ **Personnalisations du compte AFT.** [Exemple de code disponible](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-customizations). Pour plus d'informations sur les personnalisations des comptes AFT, consultez[Personnaliser le compte](aft-account-customization-options.md).

**Étape 2 : Spécifier les paramètres de configuration VCS requis pour le déploiement d'AFT**

Les paramètres d'entrée suivants sont nécessaires pour configurer votre fournisseur VCS dans le cadre du déploiement AFT.
+ **vcs\$1provider** : Si vous ne l'utilisez pas AWS CodeCommit, spécifiez le fournisseur VCS sous la forme,, ou `"bitbucket"` `"github"` `"githubenterprise"``"gitlab"`, en fonction de votre cas d'utilisation.
+ **github\$1enterprise\$1url** : pour les clients GitHub Enterprise uniquement, spécifiez l'URL. GitHub 
+ **account\$1request\$1repo\$1name** : pour les AWS CodeCommit utilisateurs, cette valeur est définie sur. `aft-account-request` Dans un environnement de fournisseur VCS tiers compatible avec l'AFT, mettez à jour cette valeur d'entrée avec le nom réel de votre référentiel. Pour BitBucket Github, GitHub Enterprise et GitLab Self-managed GitLab, le nom du référentiel doit avoir le format. `[Org]/[Repo]`
+ **account\$1customizations\$1repo\$1name** : pour les AWS CodeCommit utilisateurs, cette valeur est définie sur. `aft-account-customizations` Dans un environnement de fournisseur VCS tiers compatible avec l'AFT, mettez à jour cette valeur d'entrée avec le nom de votre référentiel. Pour BitBucket Github, GitHub Enterprise et GitLab Self-managed GitLab, le nom du référentiel doit avoir le format. `[Org]/[Repo]`
+ **account\$1provisioning\$1customizations\$1repo\$1name** : pour les utilisateurs, cette valeur est définie sur. AWS CodeCommit `aft-account-provisioning-customizations` Dans un environnement de fournisseur VCS tiers compatible avec l'AFT, mettez à jour cette valeur d'entrée avec le nom de votre référentiel. Pour BitBucket Github, GitHub Enterprise et GitLab Self-managed GitLab, le nom du référentiel doit avoir le format. `[Org]/[Repo]`
+ **global\$1customizations\$1repo\$1name** : pour les AWS CodeCommit utilisateurs, cette valeur est définie sur. `aft-global-customizations` Dans un environnement de fournisseur VCS tiers compatible avec l'AFT, mettez à jour cette valeur d'entrée avec le nom de votre référentiel. Pour BitBucket Github, GitHub Enterprise et GitLab Self-managed GitLab, le nom du référentiel doit avoir le format. `[Org]/[Repo]`
+ **account\$1request\$1repo\$1branch : La branche existe** `main` par défaut, mais la valeur peut être remplacée.

Par défaut, les sources AFT proviennent de la `main` branche de chaque `git` dépôt. Vous pouvez remplacer la valeur du nom de branche par un paramètre d'entrée supplémentaire. Pour plus d'informations sur les paramètres d'entrée, reportez-vous au fichier README du module [AFT Terraform](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/blob/main/README.md#inputs).

**Pour les AWS CodeCommit clients existants**  
 Si vous créez un CodeCommit dépôt avec un nouveau nom pour AFT, vous pouvez mettre à jour le nom du dépôt en mettant à jour les valeurs de ces paramètres d'entrée.

**Étape 3 : terminer la AWS CodeCommit connexion pour les fournisseurs VCS tiers**

Lorsque votre déploiement s'exécute, AFT crée les AWS CodeCommit référentiels requis ou crée une AWS CodeCommit connexion pour le fournisseur VCS tiers que vous avez choisi. Dans ce dernier cas, vous devez vous connecter manuellement à la console du compte de gestion AFT pour terminer la CodeCommit connexion en attente. Consultez [la AWS CodeCommit documentation](https://docs.aws.amazon.com//dtconsole/latest/userguide/connections-update.html) pour obtenir des instructions supplémentaires sur l'établissement de la CodeCommit connexion. 

# Transférer AFT d'un AWS CodeCommit fournisseur de VCS à un autre
<a name="move-a-vcs"></a>

Cette section explique comment vous pouvez transférer AWS Control Tower Account Factory for Terraform (AFT) de votre système de contrôle de AWS CodeCommit version (VCS) vers un autre fournisseur de VCS.

**Étape 1. ** Configurez de nouveaux référentiels dans le VCS de votre choix.

**Étape 2. ** Ajoutez ces référentiels en tant que nouvelles télécommandes. `git`

**Étape 3.** Exécutez `git push` vers le nouveau fournisseur VCS.

**Note**  
La structure du référentiel que vous créez doit être la même que dans AWS CodeCommit. La modification de la structure empêche l'AFT d'exécuter le code souhaité.  
aft-account-request
 aft-account-customizations
 aft-global-customizations
aft-account-provisioning-customizations

**Étape 4.** Dans votre compte de gestion AWS Control Tower, mettez à jour le module Terraform (bootstrap) pour qu'il pointe vers votre fournisseur VCS, comme indiqué dans l'exemple suivant :

**Exemple : GitLab ** [avec Terraform OSS](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/blob/main/examples/gitlab%2Btf_oss/main.tf)

— Exécutez ensuite `terraform plan` pour prévisualiser les modifications`terraform apply`.

**Étape 5. ** Suivez les étapes pour terminer la configuration du CodeConnection (anciennement connu sous le nom de CodeStar) : 

1. Connectez-vous à votre compte de gestion AFT

1. Localisez et terminez le dossier en attente AWS CodeConnections pour le nouveau fournisseur VCS, comme décrit dans [Mettre à jour une connexion en attente](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html), ou dans la AWS console, [`https://us-east-1.console.aws.amazon.com/codesuite/settings/connections`].

1. Référence : Étapes [après le déploiement](https://docs.aws.amazon.com//controltower/latest/userguide/aft-post-deployment.html)

**Note**  
Les pipelines de comptes conservent la source précédente jusqu'à ce que `aft-invoke-customizations` *Step Functions* soit invoqué. Cette invocation peut être effectuée dans le cadre de la mise à niveau ou lors des prochains appels de personnalisation.

Pour plus d'informations, consultez ce blog : [Comment migrer votre AWS CodeCommit dépôt vers un autre fournisseur Git](https://aws.amazon.com/blogs/devops/how-to-migrate-your-aws-codecommit-repository-to-another-git-provider).

# Protection des données
<a name="aft-data-protection"></a>

Le [modèle de responsabilitéAWS partagée](https://aws.amazon.com//compliance/shared-responsibility-model/) s'applique à la protection des données dans l'AFT. À des fins de protection des données, nous recommandons les meilleures pratiques suivantes en matière de sécurité.
+ Suivez les directives de protection des données fournies par AWS Control Tower. Pour en savoir plus, consultez [Protection des données dans AWS Control Tower](controltower-console-encryption.md).
+ Préservez la configuration d'état Terraform générée au moment du déploiement d'AFT. Pour en savoir plus, consultez [Déployez AWS Control Tower Account Factory pour Terraform (AFT)](aft-getting-started.md).
+ Changez régulièrement les informations d'identification sensibles conformément à la politique de sécurité de votre entreprise. Les jetons Terraform, les `git` jetons, etc. sont des exemples de secrets.

 **Chiffrement au repos** 

AFT crée des compartiments Amazon S3, des rubriques Amazon SNS, des files d'attente Amazon SQS et des bases de données Amazon DynamoDB qui sont chiffrées au repos à l'aide des clés du service de gestion des clés. AWS La rotation annuelle des clés KMS créées par AFT est activée par défaut. Si vous choisissez les distributions Terraform Cloud ou Terraform Enterprise de Terraform, AFT inclut un SecureString paramètre AWS Systems Manager pour stocker les valeurs des jetons Terraform sensibles.

AFT utilise AWS les services décrits dans [Services relatifs aux composants](aft-components.md) le document qui sont, par défaut, chiffrés au repos. Pour plus de détails, consultez la AWS documentation de chaque AWS service composant d'AFT et découvrez les pratiques de protection des données suivies par chaque service.

 **Chiffrement en transit** 

L'AFT s'appuie sur AWS les services décrits dans [Services relatifs aux composants](aft-components.md) le présent document qui utilisent le chiffrement en transit, par défaut. Pour plus de détails, consultez la AWS documentation de chaque AWS service composant d'AFT et découvrez les pratiques de protection des données suivies par chaque service.

 Pour les distributions Terraform Cloud ou Terraform Enterprise, AFT appelle une API de point de terminaison HTTPS pour accéder à votre organisation Terraform. Si vous choisissez un fournisseur de VCS tiers supporté par des AWS CodeStar connexions, AFT appelle une API de point de terminaison HTTPS pour accéder à votre organisation de fournisseur de VCS.

# Supprimer un compte d'AFT
<a name="aft-remove-account"></a>

 Cette rubrique décrit comment supprimer un compte d'AFT afin que le pipeline AFT arrête le déploiement et la mise à jour du compte. 

**Important**  
 La suppression d'un compte du pipeline AFT est irréversible et peut entraîner une perte d'état. 

 Vous pouvez supprimer un compte d'AFT lorsque vous souhaitez fermer le compte d'une application retirée, isoler un compte compromis ou transférer un compte d'une organisation à une autre. 

**Note**  
 La suppression d'un compte d'AFT est différente de la suppression d'un compte AWS Control Tower ou Compte AWS. Lorsque vous supprimez un compte d'AFT, AWS Control Tower le gère toujours. Pour supprimer un compte AWS Control Tower ou Compte AWS consultez ce qui suit :   
 [Annulez la gestion d'un compte](https://docs.aws.amazon.com/controltower/latest/userguide/unmanage-account.html) dans le *guide de l'utilisateur d'AWS Control Tower*. 
 [Fermeture d'un compte](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/close-account.html) dans le *guide de AWS Billing l'utilisateur*. 

**Pour supprimer un compte des pipelines AFT**

 La procédure suivante décrit comment supprimer un compte d'AFT. 

1.  **Supprimer le compte du `git` référentiel qui stocke les demandes de compte** 

    Dans le `git` référentiel où vous stockez les demandes de compte, supprimez la demande de compte pour le compte que vous souhaitez supprimer d'AFT. 

    Lorsque vous supprimez une demande de compte du référentiel de demandes de compte, AFT supprime le pipeline de personnalisation et les métadonnées du compte. Pour plus d'informations, consultez les [notes de mise à jour de la version 1.8.0](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/releases/tag/1.8.0) d'AFT on GitHub. 

1.  **Supprimer l'espace de travail Terraform (pour les clients Terraform Cloud et Terraform Enterprise uniquement)** 

    Supprimez les espaces de travail de personnalisation globale et de personnalisation de compte pour le compte que vous souhaitez supprimer d'AFT. 

1.  **Supprimer l'état Terraform du backend Amazon S3** 

    Dans le compte de gestion AFT, supprimez tous les dossiers pertinents contenus dans les compartiments Amazon S3 pour le compte que vous souhaitez supprimer d'AFT. 
**Astuce**  
 Dans les exemples suivants, remplacez par le numéro `012345678901` d'identification du compte de gestion AFT. 

**Exemple : Terraform OSS**  
 Lorsque vous choisissez Terraform OSS, vous trouvez 3 dossiers pour chaque compte dans les compartiments `aft-backend-012345678901-primary-region` et `aft-backend-012345678901-secondary-region` Amazon S3. Ces dossiers sont liés à l'état des *personnalisations du compte, à l'état* du *pipeline de personnalisations et à l'état* des personnalisations *globales* 

**Exemple : Terraform Cloud ou Terraform Enterprise**  
 Lorsque vous choisissez Terraform Cloud ou Terraform Enterprise, vous trouvez un dossier pour chaque compte dans les compartiments et Amazon `aft-backend-012345678901-primary-region` S3`aft-backend-012345678901-secondary-region`. Ces dossiers sont liés à l'*état du pipeline de personnalisations*. 

# Métriques opérationnelles
<a name="aft-operational-metrics"></a>

Par défaut, *Account Factory for Terraform (AFT)* envoie des métriques opérationnelles anonymes à. AWS Nous utilisons ces données pour comprendre comment les clients utilisent l'AFT afin d'améliorer la qualité et les fonctionnalités de la solution. Vous pouvez refuser la collecte de données en modifiant un paramètre lors du déploiement d'AFT. Lorsque la collecte est activée, les données suivantes sont envoyées à AWS :
+ **Solution : l'identifiant** spécifique à l'AFT
+ **Version :** La version d'AFT
+ **Identifiant unique universel (UUID) :** identifiant unique généré aléatoirement pour chaque déploiement AFT
+ **Horodatage :** horodatage de la collecte de données
+ **Données :** configuration AFT et mesures prises par le client

AWS est propriétaire des données collectées. La collecte de données est soumise à la [AWS Politique de confidentialité](https://aws.amazon.com/privacy/).

**Note**  
Les versions d'AFT antérieures à la version 1.6.0 ne communiquent pas les métriques d'utilisation à AWS.

Pour désactiver les statistiques de reporting, procédez comme suit :
+ Définissez la valeur d'entrée de `aft_metrics_reporting` to `false` dans votre fichier de configuration d'entrée Terraform, comme indiqué dans l'exemple suivant, et redéployez AFT. Cette valeur est définie `true` par défaut, si vous ne la définissez pas explicitement.

Si vous copiez l'exemple, n'oubliez pas de remplacer les valeurs réelles de votre ID et de votre région par les éléments indiqués dans les chaînes par`x`.

```
    module "control_tower_account_factory" {
    source = "aws-ia/control_tower_account_factory/aws"
    
    # Required Vars
    ct_management_account_id    = "xxxxxxxxxxx"
    log_archive_account_id      = "xxxxxxxxxxx"
    audit_account_id            = "xxxxxxxxxxx"
    aft_management_account_id   = "xxxxxxxxxxx"
    ct_home_region              = "xx-xxxx-x"
    tf_backend_secondary_region = "xx-xxxx-x"
    
    # Optional Vars
    aft_metrics_reporting = false    # to opt out, set this value to false 
    }
```

# Guide de dépannage d'Account Factory pour Terraform (AFT)
<a name="account-troubleshooting-guide"></a>

 Cette section peut vous aider à résoudre les problèmes courants que vous pouvez rencontrer lors de l'utilisation de Account Factory for Terraform (AFT). 

**Topics**
+ [Problèmes généraux](#w2aac44c33c45b7)
+ [Problèmes liés à l'ouverture et à l'enregistrement du compte](#w2aac44c33c45b9)
+ [Problèmes liés à l'invocation des personnalisations](#w2aac44c33c45c11)
+ [Problèmes liés au flux de travail de personnalisation des comptes](#w2aac44c33c45c13)

## Problèmes généraux
<a name="w2aac44c33c45b7"></a>
+  **Quotas AWS de ressources dépassés** 

   Si vos groupes de journaux indiquent que vous avez dépassé les quotas de AWS ressources, contactez le [AWS Support](https://aws.amazon.com/premiumsupport/). Account Factory utilise Services AWS des quotas de ressources qui incluent AWS CodeBuild AWS Organizations, et AWS Systems Manager. Pour plus d’informations, consultez les ressources suivantes : 
  +  [Qu'est-ce que c'est AWS CodeBuild ?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) dans le *guide de CodeBuild l'utilisateur*. 
  +  [Qu'est-ce que c'est AWS Organizations ?](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) dans le *Guide de l'utilisateur des Organizations*. 
  +  [Qu'est-ce que c'est AWS Systems Manager ?](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) dans le *Guide de l'utilisateur de Systems Manager*. 
+  **Version obsolète d'Account Factory** 

   Si vous rencontrez un problème et pensez qu'il s'agit d'un bogue, assurez-vous de disposer de la dernière version d'Account Factory. Pour plus d'informations, consultez la section [Mise à jour de la version d'Account Factory](https://docs.aws.amazon.com/controltower/latest/userguide/update-aft-version.html). 
+  **Des modifications locales ont été apportées au code source d'Account Factory** 

   Account Factory est un projet open source. AWS Control Tower prend en charge le code de base d'Account Factory. Si vous apportez une modification locale au code de base d'Account Factory, AWS Control Tower ne prend en charge votre déploiement d'Account Factory que dans la mesure du possible. 
+ **Autorisations de rôle Account Factory insuffisantes** 

   Account Factory crée des rôles et des politiques IAM pour gérer les déploiements et les personnalisations de comptes vendus. Si vous modifiez ces rôles ou politiques, le pipeline Account Factory risque de ne pas être en mesure d'effectuer certaines actions. Pour plus d'informations, consultez la section [Rôles obligatoires](https://docs.aws.amazon.com/controltower/latest/userguide/aft-required-roles.html). 
+  **Les référentiels de comptes ne sont pas correctement renseignés** 

   Assurez-vous de suivre les [étapes postérieures au déploiement](https://docs.aws.amazon.com/controltower/latest/userguide/aft-post-deployment.html) avant de provisionner des comptes. 
+  **Ne pas détecter la dérive après avoir changé l'unité d'organisation manuellement** 
**Note**  
 AWS Control Tower détecte automatiquement la dérive. Pour plus d'informations sur la résolution de la dérive, consultez la section [Détecter et résoudre la dérive dans AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/drift.html#resolving-drift). 

   La dérive n'est pas détectée lorsque l'unité organisationnelle (UO) est modifiée manuellement. Cela est dû à la nature événementielle d'Account Factory. Lorsqu'une demande de compte est soumise, la ressource gérée par Terraform est un élément Amazon DynamoDB, et non un compte direct. Une fois qu'un élément est modifié, la demande est placée dans une file d'attente, où AWS Control Tower la traite via Service Catalog (le service qui gère les détails du compte). Si vous modifiez l'unité d'organisation manuellement, la dérive n'est pas détectée car la demande de compte n'a pas changé. 

## Problèmes liés à l'ouverture et à l'enregistrement du compte
<a name="w2aac44c33c45b9"></a>
+  **La demande de compte (adresse e-mail/nom) existe déjà** 

   Le problème entraîne généralement une défaillance du produit Service Catalog lors du provisionnement ou en tant que`ConditionalCheckFailedException`. 

   Vous pouvez obtenir plus d'informations sur le problème en procédant de l'une des manières suivantes : 
  +  Passez en revue vos groupes de journaux Terraform ou CloudWatch Logs. 
  +  Passez en revue les échecs signalés dans la rubrique Amazon SNS. `aft-failure-notifications` 
+  **Demande de compte mal formée** 

   Assurez-vous que votre demande de compte suit le schéma attendu. Pour des exemples, consultez [terraform-aws-control\$1tower\$1account\$1factory](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main/sources/aft-customizations-repos/aft-account-request/examples) on. GitHub 
+  **Quotas de ressources dépassés pour les AWS Organisations** 

   Assurez-vous que votre demande de compte ne dépasse pas les quotas de AWS Organizations ressources. Pour plus d'informations, consultez la section [Quotas pour AWS les organisations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_reference_limits.html). 

## Problèmes liés à l'invocation des personnalisations
<a name="w2aac44c33c45c11"></a>
+  **Le compte cible n'est pas intégré à Account Factory** 

   Assurez-vous que tous les comptes inclus dans une demande de personnalisation ont été intégrés à Account Factory. Pour plus d'informations, voir [Mettre à jour un compte existant](https://docs.aws.amazon.com/controltower/latest/userguide/aft-update-account.html). 
+  **Le compte ciblé par la demande de personnalisation existe dans la `aft-request-metadata` table DynamoDB, mais pas dans le référentiel des demandes de compte** 

   Formatez votre demande d'invocation de personnalisation pour exclure le compte incriminé en effectuant l'une des opérations suivantes : 
  +  Dans le `aft-request-metadata` tableau DynamoDB, supprimez l'entrée faisant référence au compte qui ne figure plus dans le référentiel de demandes de compte. 
  +  Ne pas utiliser « tous » comme cible. 
  +  Ne pas cibler l'unité d'organisation à laquelle appartient le compte. 
  +  Ne pas cibler directement le compte. 
+  **Jeton incorrect utilisé pour Terraform Cloud** 

   Assurez-vous d'avoir configuré le bon jeton. Terraform Cloud ne prend en charge que les jetons basés sur l'équipe, et non les jetons basés sur l'organisation. 
+  **Impossible de créer le compte avant la création du pipeline de personnalisation du compte ; impossible de personnaliser le compte** 

   Apportez une modification à la spécification du compte dans le référentiel des demandes de compte. Lorsque vous apportez une modification, telle que la modification de la valeur d'une balise pour un compte, Account Factory suit le chemin qui tente de créer le pipeline, même si celui-ci n'existe pas. 

## Problèmes liés au flux de travail de personnalisation des comptes
<a name="w2aac44c33c45c13"></a>

 Si vous rencontrez des problèmes liés au flux de personnalisation des comptes, assurez-vous que votre version d'AFT est 1.8.0 ou supérieure et que vous supprimez toutes les instances de métadonnées relatives au compte de votre table de requêtes DynamoDB. 

 Pour plus d'informations sur la version 1.8.0 d'AFT, voir la [version 1.8.0](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/releases/tag/1.8.0) sur. GitHub 

 Pour plus d'informations sur la façon de vérifier et de mettre à jour votre version d'AFT, consultez ce qui suit : 
+  [Vérifiez la version AFT](https://docs.aws.amazon.com/controltower/latest/userguide/check-aft-version.html) 
+  [Mettre à jour la version AFT](https://docs.aws.amazon.com/controltower/latest/userguide/update-aft-version.html) 

 Vous pouvez également suivre et résoudre les demandes de personnalisation en utilisant les requêtes Amazon CloudWatch Logs Insights pour filtrer les journaux contenant votre compte cible et votre demande IDs de personnalisation. Pour plus d'informations, consultez la section [Résolution des problèmes liés au suivi des demandes de personnalisation du compte AFT](https://docs.aws.amazon.com/controltower/latest/userguide/aft-account-customization-options.html). 