View a markdown version of this page

Déployez AWS Control Tower Account Factory pour Terraform (AFT) - AWS Control Tower

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)

Cette section est destinée 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 l'AFT. Ce module est disponible dans le référentiel AFT 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 au GitHub lieu de cloner le référentiel AFT. De cette façon, vous pouvez contrôler et utiliser les mises à jour des modules au fur et à mesure de leur disponibilité.

Pour plus d'informations sur les dernières versions de la fonctionnalité AWS Control Tower Account Factory for Terraform (AFT), consultez le fichier des versions de ce GitHub référentiel.

Prérequis de déploiement

Avant de configurer et de lancer votre environnement AFT, vous devez disposer des ressources suivantes :

Configurez et lancez votre AWS Control Tower Account Factory pour Terraform

Les étapes suivantes supposent que vous connaissez le flux de travail Terraform. Vous pouvez également en savoir plus sur le déploiement d'AFT en suivant le laboratoire d'introduction à l'AFT sur le site Web de AWS Workshop Studio.

Étape 1 : Lancez votre zone d'atterrissage AWS Control Tower

Pour obtenir des instructions sur la prise en main d'AWS Control Tower, consultez la section Démarrage avec AWS Control Tower. C'est ici que vous créez le compte de gestion AWS Control Tower et que vous configurez votre zone d'atterrissage AWS Control Tower.

Note

Assurez-vous de créer un rôle pour le compte de gestion AWS Control Tower qui possède des AdministratorAccess informations d'identification. Pour plus d’informations, consultez les ressources suivantes :

É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 la zone d'atterrissage de votre AWS Control Tower. Cette OU est l'endroit où vous approvisionnez le compte de gestion de l'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éer une nouvelle unité d'organisation.

Étape 3 : provisionner le compte de gestion de l'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 provisionner 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, voir Provisionner des comptes avec AWS Service Catalog Account Factory.

Note

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

L'approvisionnement complet du compte de gestion de l'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 la section Command : init sur le site Web du HashiCorp développeur.

Note

AFT prend en charge Terraform Version 1.6.1 ou version 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 spécifie si AWS Control Tower provisionne les ressources du compte au sein d'un VPC dans le compte de gestion AFT central. Par défaut, le paramètre est défini surtrue. Si vous définissez ce paramètre surfalse, 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

    Re-enabling le aft_enable_vpc paramètre (passer de la valeur false àtrue) peut vous obliger à exécuter la terraform apply commande deux fois de suite.

    Au lieu de provisionner 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 identifiants de sous-réseaux privés de votre 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ée si vous disposez déjà d'un déploiement AFT. Vous pouvez avoir des dépendances vis-à-vis des fonctions Lambda ou CodePipeline dépendre des ressources 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 HCP Terraform 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 seulement 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 etsns_topic_enable_cmk_encryption.

    Si vous choisissez ces paramètres, AFT utilise la CMK existante pour chiffrer les alias/aft CloudWatch journaux et les sujets SNS. Ce CMK est créé lorsque l'AFT est déployé dans le compte de gestion AFT et 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 CMK. Si la variable est définie sur false, qui est la valeur par défaut, les journaux sont chiffrés à l'aide d'un chiffrement côté serveur avec les CloudWatch journaux par défaut.

    • 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 CMK. Si la variable est définie sur false, qui est la valeur par défaut, les messages SNS sont chiffrés avec la AWS-managed clé : alias/aws /sns. Pour plus d'informations, consultez la section Termes clés du SSE.

  • Modifiez éventuellement votre type de CodeBuild calcul

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

    Pour plus d'informations sur les types de calcul acceptés, consultez À propos des types d'environnement à la demande. Le type de calcul par défaut estBUILD_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 les informations d'identification dynamiques des fournisseurs), 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.identityetapp.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 participer à 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 qui possède des AdministratorAccess informations d'identification. AWS Control Tower fournit un module Terraform via le compte de gestion AWS Control Tower, qui met en place 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 sur GitHub. L'ensemble du GitHub référentiel est considéré comme le module AFT. Reportez-vous au fichier README pour plus d'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.

Si votre environnement dispose de pipelines conçus pour gérer Terraform, vous pouvez intégrer le module AFT à votre flux de travail existant. Sinon, exécutez le module AFT depuis n'importe quel environnement authentifié avec les informations d'identification requises.

L'expiration du délai entraîne l'échec du déploiement. Nous vous recommandons d'utiliser des informations d'identification AWS Security Token Service (STS) pour vous assurer que vous disposez d'un délai suffisant pour un déploiement complet. Le délai 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 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 le 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 envisagez de mettre à jour la version AFT, veillez à conserver le fichier d'état Terraform ou configurez un backend Terraform à l'aide d'Amazon S3 et DynamoDB. Le module AFT ne gère pas l'état Terraform du backend.

Note

Vous êtes responsable de la protection du fichier d'état 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 affichées sous forme de texte brut dans le fichier d'état Terraform. Pour plus d'informations, consultez la section Données sensibles dans State sur le HashiCorp site Web.