

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.

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