

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.

# Personnalisez la zone de landing de votre AWS Control Tower
<a name="customize-landing-zone"></a>

Certains aspects de votre zone de landing zone AWS Control Tower sont configurables dans la console, tels que la sélection des régions et les contrôles optionnels. D'autres modifications peuvent être apportées en dehors de la console, grâce à l'automatisation.

Par exemple, vous pouvez créer des personnalisations plus poussées de votre zone d'atterrissage grâce à la fonctionnalité *Customizations for AWS Control Tower*, une structure de personnalisation de GitOps type C qui fonctionne avec les AWS CloudFormation modèles et les événements du cycle de vie d'AWS Control Tower.

# Personnalisation depuis la console AWS Control Tower
<a name="console-customize"></a>

Pour personnaliser votre zone de landing zone, suivez les étapes indiquées par la console AWS Control Tower.

**Sélectionnez des noms personnalisés lors de la configuration**
+ Vous pouvez sélectionner les noms de vos unités d'organisation de premier niveau lors de la configuration. [Vous pouvez renommer votre identifiant OUs à tout moment à l'aide de la AWS Organizations console, mais le fait de modifier votre identifiant AWS Organizations peut OUs entraîner une dérive réparable.](drift.md)
+ Vous pouvez sélectionner les noms de vos comptes d'**audit et d'****archivage des journaux** partagés, mais vous ne pouvez pas les modifier après la configuration. (Il s'agit d'une sélection unique.)

**Conseil**  
N'oubliez pas que le fait de renommer une unité d' AWS Organizations organisation ne met pas à jour le produit provisionné correspondant dans Account Factory. Pour mettre à jour automatiquement le produit provisionné (et éviter toute dérive), vous devez exécuter l'opération de l'unité d'organisation via AWS Control Tower, notamment en créant, en supprimant ou en réenregistrant une unité d'organisation.

**Sélectionnez AWS les régions**
+ Vous pouvez personnaliser votre zone de landing zone en sélectionnant des AWS régions spécifiques pour la gouvernance. Suivez les étapes indiquées dans la console AWS Control Tower.
+ Vous pouvez sélectionner et désélectionner les AWS régions à des fins de gouvernance lorsque vous mettez à jour votre zone de landing zone.
+ Vous pouvez définir le contrôle Region Deny sur **Activé** ou **Non activé**, et contrôler l'accès des utilisateurs à la plupart des AWS services dans les AWS régions non gouvernées.

Pour plus d'informations sur les domaines Régions AWS dans lesquels le CfCT est soumis à des limites de déploiement, consultez[Limites de contrôle](control-limitations.md).

**Personnalisez en ajoutant des commandes facultatives**
+ Les contrôles facultatifs et fortement recommandés sont facultatifs, ce qui signifie que vous pouvez personnaliser le niveau d'application pour votre zone d'atterrissage en choisissant ceux que vous souhaitez activer. Les [commandes facultatives](https://docs.aws.amazon.com//controltower/latest/userguide/optional-controls.html) ne sont pas activées par défaut. 
+ Les [contrôles facultatifs de résidence des données](https://docs.aws.amazon.com//controltower/latest/userguide/data-residency-controls.html) vous permettent de personnaliser les régions dans lesquelles vous stockez vos données et d'autoriser l'accès à celles-ci.
+ Les contrôles optionnels intégrés à la norme Security Hub CSPM vous permettent de scanner votre environnement AWS Control Tower afin de détecter les risques de sécurité.
+ Les contrôles proactifs optionnels vous permettent de vérifier vos CloudFormation ressources avant qu'elles ne soient provisionnées, afin de vous assurer que les nouvelles ressources seront conformes aux objectifs de contrôle de votre environnement.

**Personnalisez vos AWS CloudTrail sentiers**
+ Lorsque vous mettez à jour votre zone de landing zone vers la version 3.0 ou ultérieure, vous pouvez choisir d'accepter ou de refuser les CloudTrail parcours au niveau de l'organisation gérés par AWS Control Tower. Vous pouvez modifier cette sélection à chaque fois que vous mettez à jour votre zone de landing zone. AWS Control Tower crée une trace au niveau de l'organisation dans votre compte de gestion, et cette trace passe au statut actif ou inactif, selon votre choix. La zone d'atterrissage 3.0 ne prend pas en charge les CloudTrail sentiers au niveau du compte ; toutefois, si vous en avez besoin, vous pouvez configurer et gérer vos propres sentiers. Vous pouvez avoir à payer des frais supplémentaires pour les sentiers dupliqués.

**Créez des comptes de membres personnalisés dans la console**
+ Vous pouvez créer des comptes membres AWS Control Tower personnalisés, et vous pouvez mettre à jour les comptes membres existants pour ajouter des personnalisations, à partir de la console AWS Control Tower. Pour de plus amples informations, veuillez consulter [Personnalisez les comptes avec Account Factory Customization (AFC)](af-customization-page.md).

# Automatisez les personnalisations en dehors de la console AWS Control Tower
<a name="automate-customizations"></a>

Certaines personnalisations ne sont pas disponibles via la console AWS Control Tower, mais elles peuvent être mises en œuvre de différentes manières. Par exemple :
+ Vous pouvez personnaliser les comptes pendant le provisionnement, dans un flux de travail de GitOps type C, avec [*Account Factory for Terraform*](taf-account-provisioning.md) (AFT).

  AFT est déployé avec un module Terraform, disponible dans le référentiel [AFT](https://github.com/aws-ia/terraform-aws-control_tower_account_factory/tree/main).
+ Vous pouvez personnaliser la zone d'atterrissage de votre AWS Control Tower à l'aide de [*Customizations for AWS Control Tower*](cfct-overview.md) (CfCT), un ensemble de fonctionnalités basé sur des AWS CloudFormation modèles et des politiques de contrôle des services ()SCPs. Vous pouvez déployer les modèles et politiques personnalisés sur des comptes individuels et des unités organisationnelles (OUs) au sein de votre organisation.

  Le code source de CfCT est disponible dans un [GitHub dépôt](https://github.com/aws-solutions/aws-control-tower-customizations).
+ Vous pouvez personnaliser la zone d'atterrissage de votre AWS Control Tower en activant Landing Zone Accelerator (LZA). AWS La solution LZA est conçue pour s'aligner sur les AWS meilleures pratiques et se conformer à de multiples cadres de conformité mondiaux. Nous vous recommandons de déployer AWS Control Tower comme zone d'atterrissage de base, puis d'améliorer les capacités de la zone d'atterrissage avec LZA, le cas échéant. Pour plus d'informations, consultez [AWS Control Tower et Landing Zone Accelerator](https://docs.aws.amazon.com//controltower/latest/userguide/about-lza.html).

# AWS Control Tower et accélérateur de zones d'atterrissage
<a name="about-lza"></a>

Cette section décrit les avantages liés à l'utilisation conjointe d'AWS Control Tower et de la solution **Landing Zone Accelerator** (LZA).

*Vous pouvez personnaliser la zone d'atterrissage de votre AWS Control Tower en activant Landing Zone Accelerator (LZA). AWS *

LZA est une solution qui déploie un ensemble de fonctionnalités de base conçues pour s'aligner sur les AWS meilleures pratiques et sur plusieurs cadres de conformité mondiaux, afin de vous aider à gérer et à gouverner un environnement multi-comptes. LZA est développé à l'aide du AWS Cloud Development Kit (CDK).

LZA met automatiquement en place un environnement cloud adapté à l'hébergement de charges de travail sécurisées. Cette solution peut être déployée dans tous les domaines Régions AWS, afin de vous aider à maintenir la cohérence des opérations et de la gouvernance. La solution LZA est conçue pour s'aligner sur les AWS meilleures pratiques et pour se conformer aux multiples cadres de conformité mondiaux. 

Nous vous recommandons de déployer AWS Control Tower comme zone d'atterrissage de base, puis d'améliorer les capacités de votre zone d'atterrissage avec LZA, le cas échéant. La combinaison de LZA et d'AWS Control Tower fournit une solution complète sans code qui vous aide à gérer et à gouverner un environnement multi-comptes. Elle est conçue pour prendre en charge des charges de travail hautement réglementées et des exigences de conformité complexes. Ensemble, AWS Control Tower et Landing Zone Accelerator vous aident à établir l'état de préparation de la plateforme, notamment en termes de sécurité, de conformité et de capacités opérationnelles.

Le code source de LZA est disponible dans un [GitHub dépôt](https://github.com/awslabs/landing-zone-accelerator-on-aws).

Pour plus d'informations sur la manière de combiner LZA et AWS Control Tower, consultez [le guide de mise en œuvre du LZA](https://docs.aws.amazon.com//solutions/latest/landing-zone-accelerator-on-aws/prerequisites.html).

## Avantages des personnalisations pour AWS Control Tower (CfCT)
<a name="benefits-of-cfct"></a>

L'ensemble de fonctionnalités que nous appelons *Customizations for AWS Control Tower* (CfCT) vous permet de créer des personnalisations plus étendues pour votre zone d'atterrissage que celles que vous pouvez créer dans la console AWS Control Tower. Il propose un processus automatisé de GitOps type X. Vous pouvez remodeler votre zone d'atterrissage pour répondre aux besoins de votre entreprise.

Ce processus *infrastructure-as-code*de personnalisation intègre des AWS CloudFormation modèles aux politiques de contrôle des AWS services (SCPs) et aux [événements du cycle](lifecycle-events.md) de vie d'AWS Control Tower, afin que vos déploiements de ressources restent synchronisés avec votre zone de landing zone. Par exemple, lorsque vous créez un nouveau compte avec Account Factory, les ressources associées au compte et à l'unité d'organisation peuvent être déployées automatiquement.

**Note**  
Contrairement à Account Factory et AFT, CfCT n'est pas spécifiquement destiné à créer de nouveaux comptes, mais à personnaliser les comptes et OUs dans votre zone de landing zone en déployant les ressources que vous spécifiez.

**Note**  
L'unité organisationnelle (UO) cible configurée dans CfCT doit être 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).

**Avantages**
+ **Développez un AWS environnement personnalisé et sécurisé** — Vous pouvez développer plus rapidement votre environnement AWS Control Tower multi-comptes et intégrer les AWS meilleures pratiques dans un flux de travail de personnalisation reproductible.
+ **Instanciez vos exigences** : vous pouvez personnaliser la zone de landing de votre AWS Control Tower en fonction des besoins de votre entreprise, à l'aide des AWS CloudFormation modèles et des politiques de contrôle des services qui expriment vos intentions en matière de politique.
+ **Automatisez davantage grâce aux événements du cycle de vie d'AWS Control Tower** : les événements du cycle de vie vous permettent de déployer des ressources en fonction de la fin d'une série d'événements précédente. Vous pouvez compter sur un événement du cycle de vie pour vous aider à déployer des ressources sur des comptes et OUs automatiquement.
+ **Étendez votre architecture réseau** : vous pouvez déployer des architectures réseau personnalisées qui améliorent et protègent votre connectivité, comme une passerelle de transit.

## Exemples supplémentaires de CfCT
<a name="cfct-examples"></a>
+ Un exemple d'utilisation réseau avec *Customizations for AWS Control Tower* (CfCT) est présenté dans le billet de blog sur l' AWS architecture, [Deploy consistent DNS with Service Catalog and AWS Control Tower](https://aws.amazon.com/blogs//architecture/deploy-consistent-dns-with-aws-service-catalog-and-aws-control-tower-customizations/) customizations.
+ Un exemple spécifique [lié à CfCT et Amazon GuardDuty](https://github.com/aws-samples/aws-security-reference-architecture-examples/tree/main/aws_sra_examples/solutions/guardduty/guardduty_org/customizations_for_aws_control_tower) est disponible GitHub dans le [`aws-samples`référentiel](https://github.com/aws-samples/aws-security-reference-architecture-examples).
+ Des exemples de code supplémentaires concernant CfCT sont disponibles dans le cadre de l'architecture de référence de AWS sécurité, dans le [`aws-samples`référentiel](https://github.com/aws-samples/aws-security-reference-architecture-examples). La plupart de ces exemples contiennent des exemples de `manifest.yaml` fichiers dans un répertoire nommé`customizations_for_aws_control_tower`.

Pour plus d'informations sur l'architecture AWS de référence de sécurité, consultez les pages de [conseils AWS prescriptifs](https://docs.aws.amazon.com//prescriptive-guidance/latest/security-reference-architecture/welcome.html).

# Présentation des personnalisations pour AWS Control Tower (CfCT)
<a name="cfct-overview"></a>

*Les personnalisations pour AWS Control Tower* (CfCT) vous aident à personnaliser la zone d'atterrissage de votre AWS Control Tower et à respecter les AWS meilleures pratiques. Les personnalisations sont mises en œuvre à l'aide AWS CloudFormation de modèles et de politiques de contrôle des services (SCPs).

Cette fonctionnalité CfCT est intégrée aux événements du cycle de vie d'AWS Control Tower, afin que vos déploiements de ressources restent synchronisés avec votre zone de landing zone. Par exemple, lorsqu'un nouveau compte est créé via Account Factory, toutes les ressources associées au compte sont déployées automatiquement. Vous pouvez déployer les modèles et politiques personnalisés sur des comptes individuels et des unités organisationnelles (OUs) au sein de votre organisation.

**Note**  
L'unité organisationnelle (UO) cible configurée dans CfCT doit être 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).

 La vidéo suivante décrit les meilleures pratiques pour déployer un pipeline cFCT évolutif et les personnalisations courantes des cFCT. 

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


La section suivante fournit des considérations architecturales et des étapes de configuration pour le déploiement de Customizations for AWS Control Tower (CfCT). Il inclut un lien vers le [AWS CloudFormation](https://aws.amazon.com/cloudformation)modèle qui lance, configure et exécute les AWS services requis, conformément aux AWS meilleures pratiques en matière de sécurité et de disponibilité.

*Cette rubrique s'adresse aux architectes et aux développeurs d'infrastructures informatiques ayant une expérience pratique de l'architecture dans le AWS cloud.*

Pour plus d'informations sur les dernières mises à jour et modifications apportées à Customizations for AWS Control Tower (CfCT), consultez le fichier [ChangeLog.md](https://github.com/aws-solutions/aws-control-tower-customizations/blob/master/CHANGELOG.md) dans le référentiel. GitHub 

# Présentation de l’architecture
<a name="architecture"></a>

Le déploiement de CfCT crée l'environnement suivant dans le AWS cloud, avec un compartiment Amazon S3 comme source de configuration.

![\[Personnalisations pour le schéma d'architecture d'AWS Control Tower\]](http://docs.aws.amazon.com/fr_fr/controltower/latest/userguide/images/customizations-for-aws-control-tower-architecture-diagram.png)


CfCT inclut un AWS CloudFormation modèle que vous déployez dans votre compte de gestion AWS Control Tower. Le modèle lance tous les composants nécessaires à la création des flux de travail, afin que vous puissiez personnaliser votre zone de landing zone AWS Control Tower.

**Remarque**  
Le CfCT doit être déployé dans la région d'origine d'AWS Control Tower et dans le compte de gestion de la tour de contrôle AWS, car c'est là que votre zone d'atterrissage AWS Control Tower est déployée. Pour plus d'informations sur la configuration d'une zone d'atterrissage AWS Control Tower, reportez-vous à[Commencer à utiliser AWS Control Tower](getting-started-with-control-tower.md).

Lorsque vous déployez CfCT, il empaquète et télécharge les ressources personnalisées vers la source du pipeline de code, au moyen d'[Amazon Simple Storage Service](https://aws.amazon.com/s3/) (Amazon S3). Le processus de téléchargement invoque automatiquement la machine d'état des politiques de contrôle des services (SCPs) et la machine d'[AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)état pour les déployer SCPs au niveau de l'unité d'organisation ou pour déployer des instances de pile au niveau de l'unité d'organisation ou du compte.

**Remarque**  
Par défaut, CfCT crée un compartiment Amazon S3 pour stocker la source du pipeline. Si vous avez un AWS CodeCommit dépôt existant, vous pouvez le remplacer par un [CodeCommit](https://aws.amazon.com/codecommit/)dépôt. Pour plus d'informations, consultez [[Configurer Amazon S3 comme source de configuration](cfct-s3-source.md)](cfct-s3-source.md).

**CfCT déploie deux flux de travail :**
+ un [AWS CodePipeline](https://aws.amazon.com/codepipeline/)flux de travail
+ et un flux de travail relatif aux événements liés au cycle de vie d'AWS Control Tower. 

**Le AWS CodePipeline flux de travail**

Le AWS CodePipeline flux de travail configure AWS CodePipeline, [AWS CodeBuild](https://aws.amazon.com/codebuild/)projette et [AWS Step Functions](https://aws.amazon.com/step-functions/)orchestre la gestion de AWS CloudFormation StackSets et au sein de votre SCPs organisation. 

Lorsque vous téléchargez le package de configuration, CFct invoque le pipeline de code pour exécuter trois étapes.
+ **Étape de construction** : valide le contenu du package de configuration à l'aide d'AWS CodeBuild.
+ **SCP Stage** — invoque la machine d'état des politiques de contrôle des services, qui appelle l' AWS Organizations API pour la créer. SCPs
+ **CloudFormation Étape** : invoque la machine d'état Stack Set pour déployer les ressources spécifiées dans la liste des comptes ou OUs que vous avez fournies dans [le fichier manifeste](the-manifest-file.md).

À chaque étape, le pipeline de code invoque les fonctions stack set et SCP step, qui déploient des ensembles de piles personnalisés et SCPs vers les comptes individuels ciblés, ou vers une unité organisationnelle complète.

**Remarque**  
Pour obtenir des informations détaillées sur la personnalisation du package de configuration, reportez-vous à[Guide de personnalisation du CfCT](cfct-customizations-dev-guide.md).

**Le flux de travail des événements liés au cycle de vie d'AWS Control Tower**

Lorsqu'un nouveau compte est créé dans AWS Control Tower, un [événement du cycle](lifecycle-events.md) de vie peut appeler le AWS CodePipeline flux de travail. Vous pouvez personnaliser le package de configuration via ce flux de travail, qui comprend une règle d' EventBridgeévénement [Amazon](https://aws.amazon.com/eventbridge/), une [file d'attente « premier entré, premier sorti » (FIFO) Amazon Simple Queue Service](https://aws.amazon.com/sqs/) (Amazon SQS) et une fonction. [AWS Lambda](https://aws.amazon.com/lambda/)

Lorsque la règle d' EventBridge événement Amazon détecte un événement du cycle de vie correspondant, elle transmet l'événement à la file d'attente FIFO Amazon SQS, invoque la AWS Lambda fonction et invoque le pipeline de code pour effectuer le déploiement en aval des ensembles de piles et. SCPs

# Cost
<a name="cost"></a>

Le coût d'exécution de CfCT dépend du nombre d' AWS CodePipeline essais, de la durée des AWS CodeBuild essais, du nombre et de la durée des AWS Lambda fonctions, ainsi que du nombre d' EventBridge événements Amazon publiés. **Par exemple, si vous exécutez 100 versions en un mois à l'aide de **build.general1.small** où chaque version s'exécute pendant cinq minutes, le coût approximatif de l'exécution de CfCT est de 3\$1 par mois.** Pour plus de détails, vous pouvez consulter la page Web de tarification de chaque AWS service que vous utilisez.

Le bucket Amazon Simple Storage Service (Amazon S3) AWS CodeCommit et les ressources du référentiel Git sont conservés après la suppression du modèle, afin de protéger vos informations de configuration. Selon l'option que vous sélectionnez, vous êtes facturé en fonction de la quantité de données stockées dans le compartiment Amazon S3 et du nombre de requêtes Git (non applicable à la ressource Amazon S3). Reportez-vous à [Amazon S3](https://aws.amazon.com/s3/pricing/) et à la [AWS CodeCommit](https://aws.amazon.com/codecommit/pricing/)tarification pour plus de détails.

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

 Les AWS services suivants sont des composants de *Customizations for AWS Control Tower* (CfCT). 

## AWS CodeCommit
<a name="comp-aws-codecommit"></a>

Si vous avez un AWS CodeCommit référentiel existant, vous pouvez le configurer comme source pour votre pipeline, comme alternative à Amazon S3.

Sur la base de vos entrées dans le CloudFormation modèle, CfCT peut créer un [AWS CodeCommit](https://aws.amazon.com/codecommit/)référentiel avec le même exemple de configuration que celui expliqué dans la section Amazon Simple Storage Service.

Pour cloner le AWS CodeCommit référentiel CfCT sur votre ordinateur local, vous devez créer des informations d'identification qui vous donnent un accès temporaire au référentiel, comme expliqué dans le [guide de l'AWS CodeCommit utilisateur](https://docs.aws.amazon.com//codecommit/latest/userguide/temporary-access.html#temporary-access-configure-credentials). Pour plus d'informations sur la compatibilité des versions, voir [Configuration pour AWS CodeCommit](https://docs.aws.amazon.com//console/codecommit/connect-tc-alert-np).

**Note**  
Si vous ne l'utilisez pas déjà CodeCommit, votre seule option est de configurer le compartiment Amazon S3 comme emplacement de stockage pour votre package de configuration. CodeCommit n'est pas disponible si vous déployez CfCT pour la première fois.

## AWS CodePipeline
<a name="comp-aws-codepipeline"></a>

AWS CodePipeline valide, teste et implémente les modifications en fonction des mises à jour du package de configuration, que vous apporterez soit dans le compartiment Amazon S3 par défaut, soit dans le AWS CodeCommit référentiel. Pour plus d'informations sur le contrôle de la source de configuration, consultez [Utiliser Amazon S3 comme source de configuration](cfct-s3-source.md). Le pipeline comprend des étapes pour valider et gérer les fichiers et modèles de configuration, les comptes principaux, les politiques de contrôle des AWS Organizations services, et AWS CloudFormation StackSets. Pour plus d'informations sur les étapes du pipeline, reportez-vous à [Guide de personnalisation du CfCT](cfct-customizations-dev-guide.md)

## AWS Key Management Service
<a name="comp-aws-kms"></a>

CfCT crée une clé de `CustomControlTowerKMSKey` chiffrement [AWS Key Management Service](https://aws.amazon.com/kms/)(AWS KMS). Cette clé est utilisée pour chiffrer les objets du compartiment de configuration Amazon S3, de la file d'attente Amazon SQS et des paramètres sensibles du magasin de paramètres Systems AWS Manager. Par défaut, seuls les rôles fournis par CfCT sont autorisés à effectuer des opérations de chiffrement ou de déchiffrement avec cette clé. Pour accéder au fichier de configuration, à la file d'attente FIFO ou aux `SecureString` valeurs du magasin de paramètres, des administrateurs doivent être ajoutés à la `CustomControlTowerKMSKey` politique. La rotation automatique des touches est activée par défaut.

## AWS Lambda
<a name="comp-aws-lambda"></a>

CfCT utilise des AWS Lambda fonctions pour invoquer les composants d'installation lors de l'installation et du déploiement initiaux AWS CloudFormation StackSets ou AWS Organizations SCPs lors d'un événement du cycle de vie d'AWS Control Tower.

## Amazon Simple Notification Service
<a name="comp-amazon-sns"></a>

 CfCT peut publier des notifications, telles que l'approbation du pipeline [sur des sujets Amazon Simple Notification Service](https://aws.amazon.com/sns/) (Amazon SNS) pendant le flux de travail. Amazon SNS est lancé uniquement lorsque vous choisissez de recevoir des notifications d'approbation du pipeline. 

## Amazon Simple Storage Service
<a name="comp-amazon-s3"></a>

 Lorsque vous déployez CfCT, CfCT crée un bucket Amazon Simple Storage Service (Amazon S3) avec un nom unique : 

 **Exemple : nom du compartiment Amazon S3** 

 `custom-control-tower-configuration-accountID-region` 

 Le bucket contient un exemple de fichier de configuration appelé `_custom-control-tower-configuration.zip` 

Notez le trait de soulignement principal dans le nom du fichier.

 Ce fichier zip fournit un exemple de manifeste et les exemples de modèles associés qui décrivent la structure de dossiers nécessaire. Ces exemples vous aident à développer un package de configuration pour personnaliser votre zone de landing AWS Control Tower. L'exemple de manifeste identifie les configurations requises pour les ensembles de piles et les politiques de contrôle des services (SCPs) dont vous aurez besoin lors de la mise en œuvre de vos personnalisations.

Vous pouvez utiliser cet exemple de package de configuration comme modèle pour développer et télécharger votre package personnalisé, qui déclenche automatiquement le pipeline de configuration CfCT.

Pour plus d'informations sur la personnalisation du fichier de configuration, consultez[Guide de personnalisation du CfCT](cfct-customizations-dev-guide.md).

## Amazon Simple Queue Service
<a name="comp-amazon-sqs"></a>

CfCT utilise une file d'attente FIFO Amazon Simple Queue Service (Amazon SQS) pour capturer les événements du cycle de vie d'Amazon. EventBridge Il déclenche une AWS Lambda fonction, qui invoque AWS CodePipeline pour déployer AWS CloudFormation StackSets ou SCPs. Pour plus d'informations sur SCPs, voir [AWS Organizations](https://aws.amazon.com/organizations/).

## AWS Step Functions
<a name="comp-aws-step-functions"></a>

 CfCT crée Step Functions pour orchestrer les déploiements de personnalisation. Ces Step Functions traduisent les fichiers de configuration pour déployer les personnalisations nécessaires dans les environnements. 

## AWS Systems Manager Parameter Store
<a name="comp-aws-sm-parameter-store"></a>

[AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) stocke les paramètres de configuration CfCT. Ces paramètres vous permettent d'intégrer des modèles de configuration associés. Par exemple, vous pouvez configurer chaque compte pour enregistrer AWS CloudTrail les données dans un compartiment Amazon S3 centralisé. En outre, le magasin de paramètres Systems Manager fournit un emplacement centralisé où les administrateurs peuvent consulter les entrées et les paramètres CfCT.

# Considérations relatives au déploiement
<a name="cfct-considerations"></a>

Assurez-vous de lancer *Customizations for AWS Control Tower* (CfCT) dans le même compte et dans la même région que ceux où votre zone d'atterrissage AWS Control Tower est déployée ; en d'autres termes, vous devez la déployer sur le compte de gestion AWS Control Tower de votre région d'origine AWS Control Tower. Par défaut, CfCT crée et exécute le package de configuration de la zone d'atterrissage en configurant un pipeline de configuration dans ce compte et cette région.

## Préparation au déploiement
<a name="deploy-custom-aws-ct-deploy"></a>

Certaines options s'offrent à vous lorsque vous préparez votre CloudFormation modèle pour le déploiement initial. Vous pouvez choisir la source de configuration et autoriser l'approbation manuelle des déploiements de pipelines. Les deux sections suivantes expliquent plus en détail ces options.

### Choisissez votre source de configuration
<a name="deploy-config-source"></a>

Par défaut, le modèle crée un bucket Amazon Simple Storage Service (Amazon S3) pour stocker l'exemple de package de configuration sous la forme d'`.zip`un fichier appelé. `_custom-control-tower-configuration.zip` Le compartiment Amazon S3 est contrôlé par version et vous pouvez mettre à jour le package de configuration selon vos besoins. Pour plus d'informations sur la mise à jour du package de configuration, consultez [Utiliser Amazon S3 comme source de configuration](cfct-s3-source.md).

**N'oubliez pas de supprimer le trait de soulignement**  
Le nom du fichier d'exemple de package de configuration commence par un trait de soulignement (\$1) afin qu'il ne AWS CodePipeline soit pas lancé automatiquement. Lorsque vous avez fini de personnaliser le package de configuration, veillez à le télécharger `custom-control-tower-configuration.zip` sans le trait de soulignement (\$1) afin de commencer le déploiement dans. AWS CodePipeline

Si vous disposez d'un référentiel AWS CodeCommit Git existant, vous pouvez modifier l'emplacement de stockage du package de configuration en remplaçant le compartiment Amazon S3 par un référentiel AWS CodeCommit Git. Pour ce faire, sélectionnez l'`CodeCommit`option dans le CloudFormation paramètre.

**Compresser ou ne pas compresser ?**  
Lorsque vous utilisez le compartiment S3 par défaut, assurez-vous que le package de configuration est disponible sous forme de `.zip` fichier. Si vous utilisez le AWS CodeCommit référentiel, veillez à placer le package de configuration dans le référentiel sans compresser les fichiers. Pour plus d'informations sur la création et le stockage du package de configuration dans AWS CodeCommit, consultez[Guide de personnalisation du CfCT](cfct-customizations-dev-guide.md).

Vous pouvez utiliser l'exemple de package de configuration pour créer votre propre source de configuration personnalisée. Lorsque vous êtes prêt à déployer vos configurations personnalisées, téléchargez manuellement le package de configuration, soit dans le compartiment Amazon S3, soit dans le AWS CodeCommit référentiel. Le pipeline démarre automatiquement lorsque vous téléchargez le fichier de configuration.

### Choisissez les paramètres d'approbation de la configuration de votre pipeline
<a name="deploy-pipeline-config-parameters"></a>

Le AWS CloudFormation modèle offre la possibilité d'approuver le déploiement des modifications de configuration manuellement. Par défaut, l'approbation manuelle n'est pas activée. Pour plus d'informations, reportez-vous à l'[étape 1. Lancez la pile](step1.md).

Lorsque l'approbation manuelle est activée, le pipeline de configuration valide les personnalisations apportées au manifeste de fichiers et aux modèles d'AWS Control Tower, puis il suspend le processus jusqu'à ce que l'approbation manuelle soit accordée. Après approbation, le déploiement passe aux étapes restantes du pipeline, selon les besoins, afin de mettre en œuvre la fonctionnalité *Customizations for AWS Control Tower* (CfCT).

Vous pouvez utiliser le paramètre d'approbation manuelle pour empêcher l'exécution des personnalisations relatives à la configuration d'AWS Control Tower, en rejetant la première tentative d'exécution dans le pipeline. Ce paramètre vous permet également de valider manuellement les personnalisations pour les modifications de configuration d'AWS Control Tower, en tant que contrôle final avant la mise en œuvre.

## Pour mettre à jour les personnalisations pour AWS Control Tower
<a name="update"></a>

Si vous avez déjà déployé CfCT, vous devez mettre à jour la CloudFormation pile pour obtenir la dernière version du framework CfCT. Pour plus de détails, reportez-vous à la section [Mettre à jour la pile](update-stack.md).

# Modèle et code source
<a name="cfct-template"></a>

 Les personnalisations pour AWS Control Tower (CfCT) sont déployées dans votre compte de gestion après le lancement de votre AWS CloudFormation modèle. Vous pouvez télécharger [le modèle](  https://github.com/aws-solutions/aws-control-tower-customizations/blob/main/customizations-for-aws-control-tower.template) depuis, GitHub puis le lancer depuis [AWS CloudFormation](https://console.aws.amazon.com/cloudformation/home?region=us-east-1). 

 Le **customizations-for-aws-control-tower.template** déploie les éléments suivants : 
+  Un AWS CodeBuild projet 
+  Un AWS CodePipeline projet 
+  Une EventBridge règle Amazon 
+  AWS Lambda fonctions 
+  Une file d'attente Amazon Simple Queue Service 
+  Un bucket Amazon Simple Storage Service avec un exemple de package de configuration 
+  AWS Step Functions 

**Note**  
 Vous pouvez personnaliser le modèle en fonction de vos besoins spécifiques. 

## Référentiel de code source
<a name="cfct-source-code"></a>

Vous pouvez visiter notre [GitHubréférentiel](https://github.com/aws-solutions/aws-control-tower-customizations) pour télécharger les modèles et les scripts pour CfCT et pour partager les personnalisations de votre zone d'atterrissage avec d'autres personnes.

# Déploiement automatique
<a name="deployment"></a>

Avant de lancer le déploiement automatique, passez en revue les [considérations](cfct-considerations.md). Suivez les step-by-step instructions de cette section pour configurer et déployer la solution dans votre compte de gestion AWS Control Tower.

**Temps de déploiement :** environ 15 minutes

## Prérequis
<a name="prerequisites"></a>

Le CfCT doit être déployé dans votre compte de gestion AWS Control Tower et dans votre région d'origine AWS Control Tower. Si aucune zone d'atterrissage n'est configurée, reportez-vous à[Commencer à utiliser AWS Control Tower](getting-started-with-control-tower.md).

## Étapes de déploiement
<a name="what-we-cover"></a>

La procédure de déploiement du CfCT comprend deux étapes principales. Pour obtenir des instructions détaillées, suivez les liens pour chaque étape.

[Étape 1. Lancement de la pile](step1.md)
+ Lancez le CloudFormation modèle dans votre compte de gestion.
+ Passez en revue les paramètres du modèle et ajustez-les si nécessaire.

[Étape 2. Création d'un package personnalisé](step2.md)
+ Créez un package de configuration personnalisé.

**Important**  
Pour télécharger le AWS CloudFormation modèle approprié et lancer CfCT, suivez le GitHub lien indiqué dans cette section. Ne suivez pas les anciens liens vers des compartiments S3 précédemment spécifiés.

# Étape 1. Lancement de la pile
<a name="step1"></a>

Le CloudFormation modèle de cette section déploie les *personnalisations pour AWS Control Tower* (CfCT) dans votre compte.

**Remarque**  
Vous êtes responsable du coût des AWS services utilisés pendant que vous utilisez CfCT. Pour en savoir plus, consultez [Cost](cost.md).

1. Pour lancer *Customizations for AWS Control Tower*, [téléchargez le modèle depuis](  https://github.com/aws-solutions/aws-control-tower-customizations/blob/main/customizations-for-aws-control-tower.template), GitHub puis lancez-le depuis [AWS CloudFormation](https://console.aws.amazon.com/cloudformation/home?region=us-east-1).

1. Le modèle est lancé par défaut dans la région USA Est (Virginie du Nord). Pour lancer CfCT dans une autre AWS région, utilisez le sélecteur de région dans la barre de navigation de la console.
**Note**  
Le CfCT doit être lancé dans la même région et sur le même compte que ceux où vous avez déployé votre zone d'atterrissage AWS Control Tower, à savoir votre région d'origine.

1. Sur la page **Créer une pile**, vérifiez que l'URL du modèle s'affiche correctement dans la zone de texte **URL** et choisissez **Next**.

1. Sur la page **Spécifier les détails de la pile**, attribuez un nom à votre pile CfCT.

1. Sous **Paramètres**, passez en revue les paramètres suivants et modifiez-les dans le modèle, si nécessaire.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/controltower/latest/userguide/step1.html)

1. Choisissez **Next** (Suivant).

1. Sur la page **Configurer les options de pile**, choisissez **Suivant**.

1. Sur la page **Vérification**, vérifiez et confirmez les paramètres. N’oubliez pas de cocher la case indiquant que le modèle va créer les ressources Gestion des identités et des accès AWS (IAM).

1. Sélectionnez **Create stack (Créer une pile)** pour déployer la pile.

   Vous pouvez consulter l'état de la pile dans la CloudFormation console dans la colonne **État**. Vous devriez voir le statut **CREATE\$1COMPLETE** dans 15 minutes environ.

# Étape 2. Création d'un package personnalisé
<a name="step2"></a>

Avec la pile lancée, vous pouvez ajouter des personnalisations à votre zone d'atterrissage AWS Control Tower et à vos politiques de contrôle des services (SCPs) en personnalisant le package de configuration inclus. Pour obtenir des instructions détaillées sur la création d'un package personnalisé, reportez-vous au[Guide de personnalisation du CfCT](cfct-customizations-dev-guide.md).

**Remarque**  
Le pipeline ne s'exécute pas sans le téléchargement du package de configuration personnalisé.

# Mettre à jour la pile
<a name="update-stack"></a>

 Si vous avez déjà déployé *des personnalisations pour AWS Control Tower* (CfCT), suivez la procédure pour mettre à jour la AWS CloudFormation pile pour la dernière version du framework CfCT. 

**Important**  
 Avant de pouvoir effectuer la procédure suivante, vous devez télécharger le [dernier modèle depuis GitHub](  https://github.com/aws-solutions/aws-control-tower-customizations/blob/main/customizations-for-aws-control-tower.template) un bucket Amazon Simple Storage Service (Amazon S3). Pour savoir comment démarrer avec Amazon S3, consultez [Getting started with Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html) dans le *guide de l'utilisateur d'Amazon Simple Storage Service*. 

1.  Connectez-vous à la [console AWS CloudFormation](https://console.aws.amazon.com/cloudformation). 

1.  **Sélectionnez vos **personnalisations existantes pour la CloudFormation pile AWS Control Tower** (CfCT), puis sélectionnez Mettre à jour.** 

1.  Sous **Prérequis — Préparer le modèle**, sélectionnez **Remplacer le modèle actuel**. 

1.  Sous **Spécifier le modèle**, procédez comme suit : 

   1.  Pour **Source du modèle**, sélectionnez **Remplacer le modèle actuel**. 

   1.  Pour **l'URL Amazon S3**, entrez l'URL du modèle que vous avez précédemment chargé sur Amazon S3, puis choisissez **Next**. GitHub 

   1.  Vérifiez que l'URL du modèle est correcte. Choisissez ensuite **Next** et **Next** à nouveau. 

1. Sous **Paramètres**, passez en revue les paramètres du modèle et modifiez-les si nécessaire. Reportez-vous à [l'étape 1. Lancez la pile](step1.md) pour obtenir des informations détaillées sur les paramètres.

1. Choisissez **Next** (Suivant).

1. Sur la page **Configurer les options de pile**, choisissez **Suivant**.

1. Sur la page **Vérification**, vérifiez et confirmez les paramètres. Assurez-vous de cocher la case indiquant que le modèle est susceptible de créer des ressources Gestion des identités et des accès AWS (IAM).

1. Choisissez **Afficher l'ensemble de modifications** et vérifiez les modifications.

1. Choisissez **Mettre à jour la pile** pour déployer la pile.

   Vous pouvez consulter l'état de la pile dans la AWS CloudFormation console dans la colonne **État**. Vous devriez voir le statut **UPDATE\$1COMPLETE dans 15** minutes environ.

# Suppression d'un ensemble de piles
<a name="cfct-delete-stack"></a>

Vous pouvez supprimer un ensemble de piles si vous avez activé la suppression d'un ensemble de piles dans le fichier manifeste. Par défaut, le paramètre `enable_stack_set_deletion` est défini sur `false`. Dans cette configuration, aucune action n'est entreprise pour supprimer l'ensemble de piles associé lorsqu'une ressource est supprimée du fichier manifeste CFct.

Si vous modifiez la valeur de `enable_stack_set_deletion` to `true` dans le fichier manifeste, CFct supprime l'ensemble de piles et toutes ses ressources lorsque vous supprimez une ressource associée du fichier manifeste.

Cette fonctionnalité est prise en charge dans **la version 2** du fichier manifeste.

**Important**  
Lorsque vous définissez la valeur de `enable_stack_set_deletion` to pour la première fois`true`, la prochaine fois que vous invoquerez CfCT, **TOUTES les** ressources qui commencent par le préfixe`CustomControlTower-`, auxquelles est associée la balise `Key:AWS_Solutions, Value: CustomControlTowerStackSet` clé et qui ne sont pas déclarées dans le fichier manifeste sont préparées pour être supprimées.

Voici un exemple de définition de ce paramètre dans un `manifest.yaml` fichier :

```
version: 2021-03-15
region: us-east-1
enable_stack_set_deletion: true   #New opt-in functionality


resources: 
  - name: demo_resource_1
    resource_file: s3://demo_bucket/resource.template
    deployment_targets:
      accounts:
        - 012345678912
    deploy_method: stack_set
    ...
    regions:
    - us-east-1
    - us-west-2

  - name: demo_resource_2
    resource_file: s3://demo_bucket/resource.template
    deployment_targets:
      accounts:
        - 012345678912
    deploy_method: stack_set
    ...
    regions: 
    - us-east-1
    - eu-north-1
```

# Configurer Amazon S3 comme source de configuration
<a name="cfct-s3-source"></a>

Lorsque vous configurez *des personnalisations pour AWS Control Tower*, celui-ci stocke un fichier de configuration initiale, appelé `_custom-control-tower-configuration.zip` fichier, dans un bucket Amazon Simple Storage Service (Amazon S3), nommé. `custom-control-tower-configuration-account-ID-region`

**Remarque**  
Si vous choisissez de télécharger et de modifier ce fichier, n'oubliez pas de compresser les modifications, de les enregistrer sous un nouveau nom de fichier`custom-control-tower-configuration.zip`, puis de le télécharger à nouveau dans le même compartiment Amazon S3.  
Le compartiment Amazon S3 est la source par défaut du pipeline. Lorsque les paramètres par défaut sont en place, le téléchargement d'un fichier zip de configuration sans le préfixe de soulignement dans le nom du fichier vers le compartiment S3 lancera automatiquement le pipeline.

Le fichier zip est protégé par le [chiffrement côté serveur](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) (SSE) avec AWS Key Management Service (AWS KMS) et le [refus d'utilisation de](https://docs.aws.amazon.com/kms/latest/developerguide/determining-access.html) la clé KMS. Pour accéder au fichier zip, vous devez mettre à jour la politique des clés KMS afin de spécifier le ou les rôles auxquels l'accès doit être accordé. Le rôle peut être un rôle d'administrateur, un rôle d'utilisateur ou les deux. Suivez cette procédure :

1. Accédez à la [console AWS Key Management Service](https://console.aws.amazon.com/kms/home).

1. Dans **Clés gérées par le client**, sélectionnez **CustomControlTowerKMSKey**.

1. Sélectionnez l'onglet **Politique clé**. Sélectionnez ensuite **Modifier**.

1. Sur la page **Modifier la politique relative aux clés**, recherchez la section **Autoriser l'utilisation de la clé** dans le code et ajoutez l'une des autorisations suivantes :
   + Pour ajouter un rôle d'administration, procédez comme suit :

     `arn:aws:iam::<account-ID>:role/<administrator-role>`
   + Pour ajouter un utilisateur :

     `arn:aws:iam::<account-ID>:user/<username>`

1. Sélectionnez **Save Changes** (Enregistrer les modifications).

1. Accédez à la [console Amazon S3](https://console.aws.amazon.com/s3/home), recherchez le compartiment S3 contenant le fichier zip de configuration, puis sélectionnez Télécharger.

1. Apportez les modifications de configuration nécessaires au fichier manifeste et aux fichiers modèles. Pour plus d'informations sur la personnalisation des fichiers de manifeste et de modèle, consultez[Guide de personnalisation du CfCT](cfct-customizations-dev-guide.md).

1. Téléchargez vos modifications :

   1. Compressez les fichiers de configuration modifiés et nommez le fichier :`custom-control-tower-configuration.zip`.

   1. Téléchargez le fichier sur Amazon S3 à l'aide de SSE avec la AWS KMS clé principale :. `CustomControlTowerKMSKey`

# Configurer en GitHub tant que source de configuration
<a name="cfct-github-configuration-source"></a>

Cette section explique comment déployer des personnalisations pour AWS Control Tower (CfCT) en GitHub tant que source. Le processus comporte trois étapes principales :
+ Préparer un GitHub référentiel
+ Création de la connexion par GitHub code
+ Déployez la CloudFormation pile

## Préparer un GitHub référentiel
<a name="prepare-github-cfct-source"></a>

 Créez un référentiel dans votre GitHub compte, le nom par défaut utilisé dans le modèle est`custom-control-tower-configuration`. Envisagez de rendre le dépôt cible *privé*. Vous allez définir vos personnalisations dans un `yaml` fichier appelé `manifest.yaml` dans le [dossier de déploiement](https://github.com/aws-solutions/aws-control-tower-customizations/tree/main/deployment) du référentiel CfCT.

Le [https://docs.aws.amazon.com//controltower/latest/userguide/cfct-customizations-dev-guide.html](https://docs.aws.amazon.com//controltower/latest/userguide/cfct-customizations-dev-guide.html) fournit des conseils détaillés sur la création d'un `manifest.yaml` pour configurer vos personnalisations. 

## Création de la GitHub connexion
<a name="create-github-cfct-connection"></a>

Depuis votre instance **Developer Tools --Connections** pour Github, effectuez les étapes suivantes :

1. Sélectionnez **Créer une connexion** et choisissez GitHub comme fournisseur

1. Choisissez **Créer une connexion à une GitHub application**, puis dans le champ **Nom de la connexion**, entrez **GitHub CFCT** ou le nom de votre choix

1. Sélectionnez **Se connecter à**, GitHub puis choisissez **Installer une nouvelle application**

1. Sélectionnez l' GitHub utilisateur ou l'organisation pour votre référentiel

1. Sous **Accès au référentiel**, choisissez **Sélectionner uniquement les référentiels**, puis sélectionnez le référentiel que vous avez créé précédemment et **Enregistrez** votre travail.

1. Notez l'ARN Code Connections : vous en aurez besoin lors du déploiement de la CloudFormation pile.

## Déployez la CloudFormation pile
<a name="deploy-github-cfct-stack"></a>
+ Téléchargez le `custom-control-tower-initiation.template` fichier depuis le référentiel.
+ Créez une nouvelle CloudFormation pile à l'aide du `custom-control-tower-initiation.template` fichier.
+ Sous **AWS CodePipeline Source**, choisissez **GitHub (via Code Connection)**.
+ Sous **GitHub Configuration**, spécifiez les champs suivants : 
  + Pour **l'ARN de la connexion au code**, fournissez l'ARN de la connexion au code
  + pour **GitHub Utilisateur ou Organisation**, indiquez le nom de l' GitHub utilisateur ou de l'organisation sous lequel vous avez créé le référentiel
  + Pour **Nom GitHub du référentiel**, entrez le nom du référentiel (par défaut, c'est) `custom-control-tower-configuration`
  + Dans le **GitHub champ Nom** de la branche, entrez le nom de la branche (par défaut) `main`

# Collecte de métriques opérationnelles
<a name="cfct-metrics"></a>

 *Les personnalisations pour AWS Control Tower* (CfCT) incluent une option permettant d'envoyer des métriques opérationnelles anonymes à. AWS AWS utilise ces données pour comprendre comment les clients utilisent le CfCT, ainsi que d'autres services et produits connexes. Lorsque la collecte de données est activée, les informations suivantes sont envoyées à AWS : 
+ **ID de solution :** identifiant de AWS solution
+ **ID unique (UUID) :** identifiant unique généré aléatoirement pour chaque déploiement
+ **Horodatage :** horodatage de la collecte de données
+ Nombre d'**exécutions de la machine à états : compte** de manière incrémentielle le nombre de fois que cette machine à états s'exécute
+ **Version du manifeste :** version du manifeste utilisée dans la configuration

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

 Pour refuser l'envoi de mesures opérationnelles anonymes à AWS, effectuez l'une des tâches suivantes : 
+  **Mettez à jour la section de mappage des AWS CloudFormation modèles comme suit :** 

   *à partir de* 

  ```
  AnonymousData:
       SendAnonymousData:
          Data: Yes
  ```

   * sur * 

  ```
  AnonymousData:
       SendAnonymousData:
          Data: No
  ```
+  **Une fois CfCT déployé, recherchez la clé du paramètre `/org/primary/metrics_flag` SSM dans la console Parameter Store et mettez à jour la valeur en. `No`** 

# Guide de personnalisation du CfCT
<a name="cfct-customizations-dev-guide"></a>

 Le guide *Customizations for AWS Control Tower* (CfCT) s'adresse aux administrateurs, aux DevOps professionnels, aux éditeurs de logiciels indépendants, aux architectes d'infrastructures informatiques et aux intégrateurs de systèmes qui souhaitent personnaliser et étendre leurs environnements AWS Control Tower pour leur entreprise et leurs clients. Il fournit des informations sur la personnalisation et l'extension de l'environnement AWS Control Tower avec le package de personnalisation CfCT. 

**Note**  
 Pour déployer et configurer (CfCT), vous devez déployer et traiter un package de configuration via AWS CodePipeline. Les sections suivantes décrivent le processus en détail. 

# Vue d'ensemble du pipeline de code
<a name="cfct-codepipeline-overview"></a>

Le package de configuration nécessite Amazon Simple Storage Service (Amazon S3 AWS CodePipeline) et. Le package de configuration contient les éléments suivants :
+ Un fichier manifeste
+ Un ensemble de modèles d'accompagnement
+ Autres fichiers JSON pour décrire et implémenter les personnalisations de votre environnement AWS Control Tower

Par défaut, le package `_custom-control-tower-configuration.zip` de configuration est chargé dans un compartiment Amazon S3 avec la convention de dénomination suivante :

`custom-control-tower-configuration-accountID-region`.

**Note**  
 Par défaut, CfCT crée un compartiment Amazon S3 pour stocker la source du pipeline. La plupart des clients conservent cette valeur par défaut. Si vous avez un AWS CodeCommit dépôt existant, vous pouvez modifier l'emplacement de la source pour le placer AWS CodeCommit dans votre dépôt. Pour plus d'informations, voir [Modifier un pipeline CodePipeline dans](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-edit.html) le *guide de AWS CodePipeline l'utilisateur*.

Le *fichier manifeste* est un fichier texte qui décrit les AWS ressources que vous pouvez déployer pour personnaliser votre zone de landing zone. CodePipeline effectue les tâches suivantes : 
+ extrait le fichier manifeste, l'ensemble de modèles qui l'accompagne et les autres fichiers JSON
+ effectue des validations de manifestes et de modèles
+ invoque des sections du fichier manifeste CFct pour exécuter des étapes de [pipeline](#code-pipeline-stages) spécifiques.

Lorsque vous mettez à jour le package de configuration en personnalisant le fichier manifeste et en supprimant le trait de soulignement (\$1) du nom du fichier de configuration, il démarre automatiquement. AWS CodePipeline

**N'oubliez pas le soulignement**  
Le nom du fichier d'exemple de package de configuration commence par un trait de soulignement (\$1) afin qu'il ne AWS CodePipeline soit pas automatiquement déclenché. Lorsque vous avez terminé la personnalisation du package de configuration, téléchargez le fichier `custom-control-tower-configuration.zip` sans le trait de soulignement (\$1) afin de déclencher le déploiement dans AWS CodePipeline.

## AWS CodePipeline étapes
<a name="code-pipeline-stages"></a>

Le pipeline CfCT nécessite plusieurs AWS CodePipeline étapes pour implémenter et mettre à jour votre environnement AWS Control Tower.

1. **Étape source**

   L'étape source est la phase initiale. Votre package de configuration personnalisé lance cette étape du pipeline. La source AWS CodePipeline peut être un compartiment Amazon S3 ou un AWS CodeCommit référentiel dans lequel le package de configuration peut être hébergé.

1. **Étape de construction**

   La phase de construction nécessite AWS CodeBuild de valider le contenu du package de configuration. Ces vérifications incluent le test de la syntaxe et du schéma du `manifest.yaml` fichier, ainsi que de tous les CloudFormation modèles inclus dans le package ou hébergés à distance, à l'aide de CloudFormation `validate-template` et`cfn_nag`. Si le fichier manifeste et les CloudFormation modèles réussissent les tests, le pipeline passe à l'étape suivante. Si les tests échouent, vous pouvez consulter les CodeBuild journaux pour identifier le problème et modifier le fichier source de configuration selon vos besoins.

1. **Étape d'approbation manuelle (en option)**

   L'étape d'approbation manuelle est facultative. Si vous activez cette étape, elle fournit un contrôle supplémentaire sur le pipeline de configuration. Il suspend le pipeline pendant le déploiement, jusqu'à ce qu'une approbation soit donnée. Vous pouvez opter pour l'approbation manuelle en modifiant le paramètre **Étape d'approbation du pipeline** sur **Oui** lorsque vous lancez la pile.

1. **Étape politique**

   L'étape de la politique invoque la machine d'état de la politique de contrôle des services (SCP) ou de la politique de contrôle des ressources (RCP) pour appeler AWS Organizations APIs ce create or. SCPs RCPs

1. **CloudFormation étape de la ressource**

   L'étape CloudFormation des ressources appelle la machine d'état du stack set pour déployer les ressources spécifiées dans la liste des comptes ou des unités organisationnelles (OUs), que vous avez fournie dans le fichier manifeste. La machine d'état crée les CloudFormation ressources dans l'ordre dans lequel elles sont spécifiées dans le fichier manifeste. Pour spécifier une dépendance aux ressources, organisez l'ordre dans lequel les ressources sont spécifiées dans le fichier manifeste. L'ordre des ressources dans le fichier manifeste est le seul moyen de spécifier une dépendance.

# Définition d'une configuration personnalisée
<a name="cfct-custom-configuration"></a>

Vous allez définir votre configuration AWS Control Tower personnalisée à l'aide du fichier manifeste CFct, de l'ensemble de modèles qui l'accompagne et d'autres fichiers JSON. Vous allez empaqueter ces fichiers dans une structure de dossiers et les placer dans le compartiment Amazon S3 sous forme de `.zip` fichier, comme indiqué dans l'exemple de code suivant.

**Structure de dossier de configuration personnalisée**

```
- manifest.yaml
- policies/                                                [optional]
   - service control policies files (*.json)
- templates/                                               [optional]
   - template files for AWS CloudFormation Resources (*.template)
```

L'exemple précédent décrit la structure d'un dossier de configuration personnalisé. La structure des dossiers reste la même, que vous choisissiez Amazon S3 ou un AWS CodeCommit référentiel comme emplacement de stockage source. Si vous choisissez Amazon S3 comme stockage source, compressez tous les dossiers et fichiers dans un `custom-control-tower-configuration.zip` fichier et chargez uniquement le `.zip` fichier dans le compartiment Amazon S3 désigné.

**Note**  
Si vous en utilisez AWS CodeCommit, placez les fichiers dans le référentiel sans les compresser.

# Le fichier manifeste CFct
<a name="the-manifest-file"></a>

Le `manifest.yaml` fichier CFCT est un fichier texte qui décrit vos AWS ressources. L'exemple suivant montre la structure du fichier manifeste CFct.

```
---
region: String
version: 2021-03-15

resources:
  #set of CloudFormation resources, SCP policies, or RCP policies
...
```

Comme indiqué dans l'exemple de code précédent, les deux premières lignes du fichier manifeste spécifient les valeurs de la **région** et les mots clés de **version**. Voici les définitions de ces mots clés.

**region** — Chaîne de texte pour la région par défaut d'AWS Control Tower. Cette valeur doit être un nom de AWS région valide (tel que `us-east-1``eu-west-1`, ou`ap-southeast-1`). La région d'origine d'AWS Control Tower est la région par défaut lorsque vous créez des ressources AWS Control Tower personnalisées (telles que CloudFormation StackSets), sauf si une région plus spécifique aux ressources est spécifiée.

```
region:your-home-region
```

**version** — Numéro de version du schéma du manifeste. La dernière version prise en charge est le 15/03/2021.

```
version: 2021-03-15
```

**Note**  
Nous vous recommandons vivement d'utiliser la dernière version. Pour mettre à jour les propriétés du manifeste dans la dernière version, reportez-vous à[Mises à niveau de version pour le manifeste CfCT](cfct-compatibility.md).

Le mot clé suivant présenté dans l'exemple précédent est le mot clé **resources**. La section des **ressources** du fichier manifeste est hautement structurée. Il contient une liste détaillée des AWS ressources, qui seront déployées automatiquement par le pipeline CfCT. Ces descriptions des ressources et de leurs paramètres disponibles sont données dans la section suivante.

# La section des ressources du fichier manifeste CfCT
<a name="cfct-manifest-file-resources-section"></a>

 Cette rubrique décrit la section des **ressources** du fichier manifeste CfCT, dans laquelle vous allez définir les ressources requises pour vos personnalisations. Cette section du fichier manifeste CfCT commence au niveau des **ressources** du mot clé et se poursuit jusqu'à la fin du fichier. 

 La section des **ressources** du fichier manifeste indique le ou CloudFormation StackSets le type AWS Organizations SCPs de RCPs CfCT déployé automatiquement via le pipeline de code. Vous pouvez créer des listes OUs, des comptes et des régions pour déployer des instances de stack. 

 Les instances Stack sont déployées au niveau du compte plutôt qu'au niveau de l'unité d'organisation. SCPs et RCPs sont déployés au niveau de l'UO. Pour plus d'informations, voir [Création de vos propres personnalisations](https://docs.aws.amazon.com/controltower/latest/userguide/cfcn-byo-customizations.html). 

 L'exemple de modèle suivant décrit les entrées possibles disponibles pour la section des **ressources** du fichier manifeste. 

```
resources: # List of resources
  - name: [String]
    resource_file: [String] [Local File Path, S3 URI, S3 URL] 
    deployment_targets: # account and/or organizational unit names
      accounts: # array of strings, [0-9]{12}
        - 012345678912
        - AccountName1
      organizational_units: #array of strings
        - OuName1
        - OuName2 
    deploy_method: scp | stack_set | rcp
    parameters: # List of parameters [SSM, Alfred, Values]
      - parameter_key: [String]
        parameter_value: [String]  
    export_outputs: # list of ssm parameters to store output values
      - name: /org/member/test-ssm/app-id
        value: $[output_ApplicationId]    
    regions: #list of strings
    - [String]
```

**Le reste de cette rubrique fournit des définitions détaillées pour les mots clés présentés dans l'exemple de code précédent.**

**name** — Le nom associé au CloudFormation StackSets. La chaîne que vous fournissez attribue un nom plus convivial à un ensemble de piles.
+  **Type** : chaîne
+ **Obligatoire** : oui
+ **Valeurs valides :** a-z, A-Z, 0-9 et tiret (-). Le nom doit commencer par un caractère alphabétique.

**description** — Description de la ressource.
+ **Type** : chaîne
+ **Obligatoire** : non

 **resource\$1file** — Ce fichier peut être spécifié comme l'emplacement relatif du fichier manifeste, une URI ou une URL Amazon S3 pointant vers un CloudFormation modèle ou une politique de contrôle des AWS Organizations services en JSON pour la création de CloudFormation ressources, SCPs ou. RCPs 
+ **Type** : chaîne
+ **Obligatoire** : oui 

1. L'exemple suivant montre le`resource_file`, donné comme emplacement relatif du fichier de ressources dans le package de configuration.

   ```
   resources:
     - name: SecurityRoles
       resource_file: templates/custom-security.template
   ```

1. L'exemple suivant montre le fichier de ressources fourni sous forme d'URI Amazon S3 

   ```
   resources:
     - name: SecurityRoles
       resource_file: s3://amzn-s3-demo-bucket/[key-name]
   ```

1. L'exemple suivant montre le fichier de ressources fourni sous forme d'URL HTTPS Amazon S3. 

   ```
   resources:
     - name: SecurityRoles
       resource_file: https://bucket-name.s3.Region.amazonaws.com/key-name
   ```
**Note**  
Si vous fournissez une URL Amazon S3, vérifiez que la politique du compartiment autorise l'accès en lecture au compte de gestion AWS Control Tower à partir duquel vous déployez CfCT. Si vous fournissez une URL HTTPS Amazon S3, vérifiez que le chemin utilise la notation par points. Par exemple, `S3.us-west-1`. CfCT ne prend pas en charge les points de terminaison contenant un tiret entre S3 et la région, tels que. `S3‐us-west-2`

1. L'exemple suivant montre une politique de compartiment Amazon S3 et un ARN dans lequel les ressources sont stockées.

   ```
   {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          {
           "Effect": "Allow",
           "Principal": {"AWS": "arn:aws:iam::AccountId:root"},
           "Action": "s3:GetObject",
           "Resource": "arn:aws:s3:::my-bucket/*”
          }
      ]
   }  
   ```

   Vous allez remplacer la *AccountId* variable illustrée dans l'exemple par l'ID de AWS compte du compte de gestion qui déploie CfCT. Pour plus d'exemples, reportez-vous aux exemples de [politiques relatives aux compartiments](https://docs.aws.amazon.com//AmazonS3/latest/userguide/example-bucket-policies.html) dans le guide de l'utilisateur d'Amazon Simple Storage Service.

**paramètres** — Spécifie le nom et la valeur des CloudFormation paramètres.
+ **Type** MapList :
+ **Obligatoire** : non

La section des paramètres contient des paires de key/value paramètres. Le pseudo-modèle suivant décrit la section **des paramètres**.

```
parameters:
  - parameter_key: [String]
    parameter_value: [String]
```
+ **parameter\$1key** — La clé associée au paramètre.
  +  **Type** : chaîne
  + **Obligatoire :** Oui (sous la propriété des paramètres)
  + **Valeurs valides :** a-z, A-Z et 0-9 
+ **parameter\$1value** — La valeur d'entrée associée au paramètre.
  + **Type** : chaîne 
  +  **Obligatoire :** Oui (sous la propriété des paramètres) 

**deploy\$1method — Méthode** de déploiement pour déployer des ressources dans le compte. Actuellement, **deploy\$1method** prend en charge le déploiement de ressources à l'aide de l'`stack_set`option de déploiement des ressources via CloudFormation StackSets, de l'`scp`option si vous déployez SCPs ou de l'`rcp`option si vous déployez. RCPs
+ **Type** : chaîne 
+ **Valeurs Valides** : `stack_set` \$1 `scp` \$1 `rcp`
+ **Obligatoire** : oui

**deployment\$1targets** ****— Liste des comptes ou des unités organisationnelles (OUs), dans lesquels CfCT déploiera les CloudFormation ressources, spécifiées sous forme de comptes ou d'unité\$1organisations.****

**Note**  
 Si vous souhaitez déployer un SCP ou un RCP, la cible doit être une unité d'organisation et non un compte. 
+ **Type :** liste de chaînes `account name` ou `account number` pour indiquer que cette ressource sera déployée dans la liste de comptes donnée, ou `OU names` pour indiquer que cette ressource sera déployée dans la liste d'unités d'organisation donnée.
+ **Obligatoire :** au moins un des **comptes ou **unité\$1organisations****
  + **comptes :**

    **Type :** liste de chaînes `account name` ou `account number` pour indiquer que cette ressource sera déployée dans la liste de comptes donnée.
  + **unités\$1organisationnelles :**

    **Type :** liste de chaînes `OU names` indiquant que cette ressource sera déployée dans une liste d'unités d'organisation donnée. Si vous fournissez une UO qui ne contient pas de comptes et que la propriété **accounts** n'est pas ajoutée, CFct crée uniquement le stack set.
**Note**  
L'ID du compte de gestion de l'organisation n'est pas une valeur autorisée. CfCT ne prend pas en charge le déploiement d'instances de stack dans le compte de gestion de l'organisation, par défaut. Si vous avez un cas d'utilisation particulier, consultez [Root OU](https://docs.aws.amazon.com//controltower/latest/userguide/cfct-root-ou.html).

**export\$1outputs** — Liste des name/value paires indiquant les clés de paramètres SSM. Ces clés de paramètres SSM vous permettent de stocker les sorties du modèle dans le magasin de paramètres SSM. La sortie est destinée à être consultée par d'autres ressources, définies précédemment dans le fichier manifeste.

```
export_outputs: # List of SSM parameters
  - name: [String]
    value: [String]
```
+ **Type :** Liste des paires de clés de **nom** et de **valeur**. Le **nom** contient la `name` chaîne d'une clé de magasin de paramètres SSM et **la valeur** contient la `value` chaîne du paramètre.
+ **Valeurs valides :** Toute chaîne ou `$[output_CfnOutput-Logical-ID]` variable *CfnOutput-Logical-ID* correspondant à la variable de sortie du modèle. Pour plus d'informations sur la section Sorties d'un CloudFormation modèle, voir [https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/outputs-section-structure.html](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/outputs-section-structure.html) dans le *guide de CloudFormation l'utilisateur*.
+ **Obligatoire** : non 

Par exemple, l'extrait de code suivant stocke la variable de `VPCID` sortie du modèle dans la clé de paramètre SSM nommée. `/org/member/audit/vpc_id`

```
export_outputs: # List of SSM parameters
  - name: /org/member/audit/VPC-ID
    value: $[output_VPCID]
```

**Note**  
Le nom de la clé **export\$1outputs** peut contenir une valeur autre que. `output` Par exemple, si le **nom** est`/org/environment-name`, la **valeur** peut être`production`.

**régions** — Liste des régions dans lesquelles CfCT déploiera les instances de CloudFormation stack. 
+ **Type :** Toute liste de noms de régions AWS commerciales, pour indiquer que cette ressource sera déployée dans la liste de régions donnée. Si ce mot clé n'existe pas dans le fichier manifeste, les ressources sont déployées uniquement dans la région d'origine.
+ **Obligatoire** : non 

# Root OU
<a name="cfct-root-ou"></a>

 CfCT prend en charge **Root** en tant que valeur pour une unité organisationnelle (UO) `organizational_units` dans la **version V2 du manifeste (2021-03-15**). 
+ Si vous choisissez la méthode de déploiement de `scp` ou`rcp`, lorsque vous ajoutez Root sous`organizational_units`, AWS Control Tower applique les politiques à tous les éléments situés OUs sous le root. Si vous choisissez la méthode de déploiement`stack_set`, lorsque vous ajoutez Root sous`organizational_units`, CfCT déploie les stack sets dans tous les comptes sous Root inscrits dans AWS Control Tower, à l'exception du compte de gestion.
+ Conformément aux bonnes pratiques d'AWS Control Tower, le compte de gestion est uniquement destiné à gérer les comptes des membres et à des fins de facturation. N'exécutez pas de charges de travail de production dans le compte de gestion AWS Control Tower.

  Conformément aux directives relatives aux meilleures pratiques, le déploiement d'AWS Control Tower place le compte de gestion sous l'unité d'organisation racine, afin qu'il dispose d'un accès complet et n'utilise pas de ressources supplémentaires. Pour cette raison, le **AWSControlTowerExecution**rôle n'est pas déployé sur le compte de gestion.
+ Nous vous recommandons de suivre ces bonnes pratiques pour le compte de gestion. Si vous avez un cas d'utilisation spécifique qui vous oblige à déployer des stacksets dans le compte de gestion, incluez les **comptes** comme cible de déploiement et spécifiez le compte de gestion. Dans le cas contraire, n'incluez pas les **comptes** comme cible de déploiement. Vous devez créer les ressources manquantes, y compris les rôles IAM requis, dans le compte de gestion.

Pour déployer des stacksets dans le compte de gestion, incluez-les `accounts` comme cible de déploiement et spécifiez le compte de gestion. Dans le cas contraire, n'incluez pas les comptes comme cible de déploiement.

```
---
region: your-home-region
version: 2021-03-15

resources:

  …truncated…

    deployment_targets:
      organizational_units:
        - Root
```

**Note**  
La fonctionnalité Root OU n'est prise en charge que dans la version V2 du fichier manifeste (2021-03-15). Si vous ajoutez **Root** en tant qu'unité d'`organizational_units`organisation ci-dessous, n'en ajoutez aucune autre OUs.

# UO imbriquée
<a name="cfct-nested-ou"></a>

CfCT prend en charge la liste d'un ou plusieurs éléments imbriqués OUs sous le `organizational_units` mot clé dans la version V2 du manifeste (2021-03-15). 

Un chemin complet (à l'exception de la racine) pour l'unité d'organisation imbriquée est requis, en utilisant deux points comme séparateur entre les deux OUs. Pour la méthode de déploiement `scp` ou`rcp`, AWS Control Tower déploie le SCPs ou RCPs vers la dernière unité organisationnelle du chemin d'unité d'organisation imbriqué. Pour ce qui est de la méthode de déploiement`stack_set`, AWS Control Tower déploie les ensembles de piles sur tous les comptes situés sous la dernière unité organisationnelle du chemin d'unité d'organisation imbriqué.

Par exemple, considérez le chemin`OUName1:OUName2:OUName3`. La dernière unité d'organisation du chemin est`OUName3`. CfCT déploie les ensembles SCPs or RCPs to `OUName3` et stack uniquement sur tous les comptes situés directement en dessous`OUName3`.

```
---
region: your-home-region
version: 2021-03-15

resources:

  …truncated…

    deployment_targets:
      organizational_units:
        - OuName1:OUName2:OUName3
```

**Note**  
La fonctionnalité d'unité d'organisation imbriquée n'est prise en charge que dans la version V2 du fichier manifeste (15/03/2021).

# Créez vos propres personnalisations
<a name="cfcn-byo-customizations"></a>

Pour créer vos propres personnalisations, vous pouvez modifier le `manifest.yaml` fichier CFct en ajoutant ou en mettant à jour des politiques de contrôle des services (SCPs), des politiques de contrôle des ressources (RCPs) et CloudFormation des ressources. Pour les ressources qui doivent être déployées, vous pouvez ajouter ou supprimer des comptes et OUs. Vous pouvez ajouter ou modifier les modèles dans les dossiers du package, créer vos propres dossiers et référencer les modèles ou les dossiers du `manifest.yaml` fichier.

Cette section explique les deux principales étapes de la création de vos propres personnalisations :
+ comment configurer votre propre package de configuration pour les politiques de contrôle des services
+ comment configurer votre propre package de configuration pour les ensembles de AWS CloudFormation piles

# Configurez un package de configuration pour SCPs ou RCPs
<a name="cfcn-set-up-custom-scps"></a>

Cette section explique comment créer un package de configuration pour les politiques de contrôle des services (SCPs) ou les politiques de contrôle des ressources (RCPs). Les deux parties principales de ce processus sont (1) la préparation du fichier manifeste CFct et (2) la préparation de la structure de dossiers.

## Étape 1 : Modifier le fichier manifest.yaml
<a name="cfct-byo-scp-step-1"></a>

Utilisez le `manifest.yaml` fichier d'exemple comme point de départ. Entrez toutes les configurations nécessaires. Ajoutez les `deployment_targets` détails `resource_file` et.

L'extrait suivant montre le fichier manifeste par défaut.

```
---
region: us-east-1
version: 2021-03-15

resources: []
```

La valeur pour `region` est ajoutée automatiquement lors du déploiement. Il doit correspondre à la région dans laquelle vous avez déployé CfCT. Cette région doit être identique à la région AWS Control Tower.

Pour ajouter un SCP ou un RCP personnalisé dans le `example-configuration` dossier du package zip stocké dans le compartiment Amazon S3, ouvrez le `example-manifest.yaml` fichier et commencez à le modifier.

```
---
region: your-home-region
version: 2021-03-15

resources:
  - name: test-preventive-controls
    description: To prevent from deleting or disabling resources in member accounts
    resource_file: policies/preventive-controls.json
    deploy_method: scp | rcp
    #Apply to the following OU(s)
    deployment_targets:
      organizational_units: #array of strings
        - OUName1
        - OUName2 

…truncated…
```

L'extrait suivant montre un exemple de fichier manifeste personnalisé. Vous pouvez ajouter plusieurs politiques lors d'une seule modification.

```
---
region: us-east-1
version: 2021-03-15

resources:
  - name: block-s3-public-access
    description: To S3 buckets to have public access
    resource_file: policies/block-s3-public.json
    deploy_method: scp | rcp
    #Apply to the following OU(s)
    deployment_targets:
      organizational_units: #array of strings
        - OUName1
        - OUName2
```

## Étape 2 : Création d'une structure de dossiers
<a name="cfct-byo-scp-step-2"></a>

Vous pouvez ignorer cette étape si vous utilisez une URL Amazon S3 pour le fichier de ressources et si vous utilisez **des paramètres** par key/value paires.

Vous devez inclure une politique SCP ou une politique RCP au format JSON pour prendre en charge le manifeste, car le fichier manifeste fait référence au fichier JSON. Assurez-vous que les chemins des fichiers correspondent aux informations de chemin fournies dans le fichier manifeste. 
+ Un fichier JSON de *politique* contient le SCPs ou RCPs vers lequel le déploiement doit être effectué OUs.

L'extrait suivant montre la structure des dossiers de l'exemple de fichier manifeste.

```
- manifest.yaml
- policies/
   - block-s3-public.json
```

L'extrait suivant est un exemple de fichier de régulation`block-s3-public.json`.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"GuardPutAccountPublicAccessBlock",
         "Effect":"Deny",
         "Action":"s3:PutAccountPublicAccessBlock",
         "Resource":"arn:aws:s3:::*"
      }
   ]
}
```

------

# Configurez un package de configuration pour CloudFormation StackSets
<a name="cfcn-byo-cfn-stacksets"></a>

Cette section explique comment configurer un package de configuration pour CloudFormation StackSets. Les deux parties principales de ce processus sont les suivantes : (1) préparer le fichier manifeste et (2) mettre à jour la structure des dossiers.

## Étape 1 : modifier le fichier manifeste existant
<a name="cfcn-byo-cfn-stacksets-step-1"></a>

Ajoutez les nouvelles CloudFormation StackSets informations au fichier manifeste que vous avez modifié précédemment.

Juste pour examen, l'extrait suivant contient le même fichier manifeste personnalisé que celui affiché précédemment pour configurer un package de configuration pour SCPs ou. RCPs Vous pouvez maintenant modifier davantage ce fichier pour inclure les détails de vos ressources.

```
---
region: us-east-1
version: 2021-03-15

resources:
  
  - name: block-s3-public-access
    description: To S3 buckets to have public access
    resource_file: policies/block-s3-public.json
    deploy_method: scp | rcp
    #Apply to the following OU(s)
    deployment_targets:
    organizational_units: #array of strings
    - OUName1
    - OUName2
```

L'extrait suivant montre un exemple de fichier manifeste modifié contenant les `resources` détails. L'ordre de `resources` détermine l'ordre d'exécution pour créer des `resources` dépendances. Vous pouvez modifier l'exemple de fichier manifeste suivant en fonction des besoins de votre entreprise.

```
---
region: your-home-region
version: 2021-03-15

…truncated…

resources:
  - name: stackset-1
    resource_file: templates/create-ssm-parameter-keys-1.template
    parameters:
      - parameter_key: parameter-1
        parameter_value: value-1
    deploy_method: stack_set
    deployment_targets:
      accounts: # array of strings, [0-9]{12}
        - account number or account name
        - 123456789123
      organizational_units: #array of strings, ou ids, ou-xxxx
        - OuName1
        - OUName2 
    export_outputs:
      - name: /org/member/test-ssm/app-id
        value: $[output_ApplicationId]
    regions:
      - region-name

  - name: stackset-2
    resource_file: s3://bucket-name/key-name
    parameters:
      - parameter_key: parameter-1
        parameter_value: value-1
    deploy_method: stack_set
    deployment_targets:
      accounts: # array of strings, [0-9]{12}
        - account number or account name
        - 123456789123
      organizational_units: #array of strings
        - OuName1
        - OUName2 
regions:
  - region-name
```

L'exemple suivant montre que vous pouvez ajouter plusieurs CloudFormation ressources dans le fichier manifeste.

```
---
region: us-east-1
version: 2021-03-15

resources:
  - name: block-s3-public-access
    description: To S3 buckets to have public access
    resource_file: policies/block-s3-public.json
    deploy_method: scp | rcp
    #Apply to the following OU(s)
    deployment_targets:
      organizational_units: #array of strings
        - Custom
        - Sandbox

  - name: transit-network
    resource_file: templates/transit-gateway.template
    parameter_file: parameters/transit-gateway.json
    deploy_method: stack_set
    deployment_targets:
      accounts: # array of strings, [0-9]{12}
        - Prod
        - 123456789123 #Network
      organizational_units: #array of strings
        - Custom
    export_outputs:
      - name: /org/network/transit-gateway-id
        value: $[output_TransitGatewayID]
    regions:
      - us-east-1
```

## Étape 2 : mise à jour de la structure des dossiers
<a name="cfct-byo-cfn-stacksets-step-2"></a>

Lorsque vous mettez à jour la structure des dossiers, vous pouvez inclure tous les fichiers CloudFormation modèles de support et les fichiers de politique SCP ou RCP présents dans le fichier manifeste. Vérifiez que les chemins des fichiers correspondent à ceux fournis dans le fichier manifeste. 
+ Un fichier *modèle* contient les AWS ressources à déployer dans OUs et les comptes.
+ Un *fichier de* régulation contient les paramètres d'entrée utilisés dans le fichier modèle.

L'exemple suivant montre la structure de dossiers de l'exemple de fichier manifeste créé à [l'étape 1](#cfcn-byo-cfn-stacksets-step-1).

```
- manifest.yaml
- policies/
   - block-s3-public.json
- templates/
   - transit-gateway.template
```

# L'assistant « alfred » et les fichiers de CloudFormation paramètres
<a name="alfred-helper"></a>

 CfCT vous fournit un mécanisme connu sous le nom d'assistant *Alfred* pour obtenir la valeur d'une clé de [magasin de paramètres SSM](https://docs.aws.amazon.com//systems-manager/latest/userguide/systems-manager-parameter-store.html) définie dans le modèle. CloudFormation À l'aide de l'assistant *Alfred*, vous pouvez utiliser des valeurs stockées dans le magasin de paramètres SSM sans mettre à jour le CloudFormation modèle. Pour plus d'informations, voir [Qu'est-ce qu'un CloudFormation modèle ?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/gettingstarted.templatebasics.html#gettingstarted.templatebasics.what) dans le *guide de CloudFormation l'utilisateur*. 

**Important**  
 L'assistant *Alfred* a deux limites. Les paramètres ne sont disponibles que dans la région d'origine du compte de gestion AWS Control Tower. Il est recommandé d'envisager de travailler avec des valeurs qui ne changent pas d'une instance de pile à l'autre. Lorsque l'assistant « alfred » récupère les paramètres, il choisit une instance de pile aléatoire dans l'ensemble de piles qui exporte la variable. 

## Exemple
<a name="w2aac28c41c15c13b7"></a>

 Supposons que vous disposiez de deux ensembles de CloudFormation piles. Le *Stack set 1* possède une instance de stack et se déploie sur un compte dans une région. Il crée un Amazon VPC et des sous-réseaux dans une zone de disponibilité, et le `VPC ID` et `subnet ID` doit être transmis au *stack set 2* sous forme de valeurs de paramètres. Avant que le `VPC ID` et `subnet ID` puisse être transmis à l'*ensemble de piles 2*, le `VPC ID` et `subnet ID` doit être stocké dans le *jeu de piles 1* à l'aide de`AWS:::SSM::Parameter`. Pour plus d’informations, consultez [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-parameter.html) dans le *Guide de l’utilisateur CloudFormation *. 

**CloudFormation set de piles 1 :**

 Dans l'extrait suivant, l'assistant *Alfred* peut obtenir des valeurs pour et à `subnet ID` partir du magasin de paramètres `VPC ID` et les transmettre en entrée à la StackSet machine à états. 

```
VpcIdParameter:
    Type: AWS::SSM::Parameter
    Properties:
      Name: '/stack_1/vpc/id'
      Description: Contains the VPC id
      Type: String
      Value: !Ref MyVpc

SubnetIdParameter:
    Type: AWS::SSM::Parameter
    Properties:
      Name: '/stack_1/subnet/id'
      Description: Contains the subnet id
      Type: String
      Value: !Ref MySubnet
```

**CloudFormation set de 2 piles :**

 L'extrait montre les paramètres spécifiés dans le fichier de CloudFormation pile 2. `manifest.yaml` 

```
parameters:
      - parameter_key: VpcId
        parameter_value: $[alfred_ssm_/stack_1/vpc/id]
      - parameter_key: SubnetId
        parameter_value: $[alfred_ssm_/stack_1/subnet/id]
```

**CloudFormation Stack Set 2.1 :**

 L'extrait montre que vous pouvez répertorier les `alfred_ssm` propriétés pour prendre en charge les paramètres de type. *CommaDelimitedList* Pour plus d’informations, consultez [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#parameters-section-structure-properties-type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#parameters-section-structure-properties-type) dans le *Guide de l’utilisateur CloudFormation *. 

```
parameters:
      - parameter_key: VpcId # Type: String
        parameter_value: $[alfred_ssm_/stack_1/vpc/id']
      - parameter_key: SubnetId # Type: String
        parameter_value: $[ alfred_ssm_/stack_1/subnet/id']
      - parameter_key: AvailablityZones # Type: CommaDelimitedList
        parameter_value:   - "$[alfred_ssm_/availability_zone_1]"  - "$[alfred_ssm_/availability_zone_2]"
```

**Schéma JSON pour le package de personnalisation**  
Le schéma JSON du package de personnalisation pour CfCT se trouve dans le [référentiel de code source sur GitHub](https://github.com/aws-solutions/aws-control-tower-customizations). Vous pouvez utiliser le schéma avec la plupart de vos outils de développement préférés, et vous le trouverez peut-être utile pour réduire les erreurs lorsque vous créez votre propre `manifest.yaml` fichier CFct.

# Mises à niveau de version pour le manifeste CfCT
<a name="cfct-compatibility"></a>

Pour plus d'informations sur la dernière version de *Customizations for AWS Control Tower* (CfCT), consultez le [`CHANGELOG.md`fichier](https://github.com/aws-solutions/aws-control-tower-customizations/blob/master/CHANGELOG.md) dans le GitHub référentiel. 

**Avertissement**  
La version 2.2.0 de *Customizations for AWS Control Tower* (CfCT) a introduit un schéma de manifeste cFCT (version *2021-03-15*) pour s'aligner sur le service associé. AWS APIs Le schéma du manifeste permet à un seul fichier manifest.yaml de gérer les ressources prises en charge (CloudFormation modèles SCPs, et RCPs) via des flux de travail découplés. DevOps   
Nous vous recommandons vivement de mettre à jour le schéma du manifeste CfCT de la version *2020-01-01* à la version *2021-03-15* ou ultérieure.  
CfCT continue de prendre en charge les versions *2021-03-15* et *2020-01-01* du fichier. `manifest.yaml` Aucune modification de votre configuration existante n'est requise. Cependant, la version *2020-01-01* est en **fin de support**. Nous ne fournissons plus de mises à jour ni n'ajoutons d'améliorations à la version *2020-01-01*. Les fonctionnalités de l'unité d'organisation racine et de l'unité d'organisation imbriquée ne sont pas prises en charge dans la version *2020-01-01*. 

***Propriétés obsolètes dans la version du manifeste CfCT 2021-03-15 :***

```
organization_policies
policy_file
apply_to_accounts_in_ou

cloudformation_resources
template_file
deploy_to_account
deploy_to_ou
ssm_parameters
```

## Étapes de mise à niveau obligatoires du CfCT
<a name="mandatory-upgrade-steps"></a>

Lorsque vous passez à la version du schéma de manifeste CfCT version *2021-03-15*, voici les modifications que vous devez apporter pour mettre à jour vos fichiers. Les sections suivantes décrivent les modifications obligatoires et recommandées pour la transition.

**Politiques des organisations**

1. **Déplacez le SCPs ou RCPs sous **organization\$1policies sous les** nouvelles ressources de propriété.**

1. **Remplacez la propriété **policy\$1file** par la nouvelle propriété resource\$1file.**

1. **Remplacez **apply\$1to\$1accounts\$1in\$1ou par la nouvelle propriété deployment\$1targets**.** La liste des unités d'organisation doit être définie sous la sous-propriété **organizational\$1units**. La sous-propriété **accounts** n'est pas prise en charge pour les politiques des organisations.

1. **Ajoutez une nouvelle propriété **deploy\$1method** avec la valeur **scp** ou rcp.** 

**CloudFormation ressources**

1. **Déplacez les CloudFormation ressources sous **cloudformation\$1resources sous les nouvelles ressources** de propriété.**

1. **Remplacez la propriété **template\$1file** par la nouvelle propriété resource\$1file.**

1. **Remplacez le **deploy\$1to\$1ou par la nouvelle propriété deployment\$1targets**.** La liste des unités d'organisation doit être définie sous la sous-propriété **organizational\$1units**.

1. **Remplacez le paramètre **deploy\$1to\$1accounts par la nouvelle propriété deployment\$1targets**.** La liste des comptes doit être définie sous les **comptes** de sous-propriétés.

1. **Remplacez la propriété **ssm\$1parameters** par la nouvelle propriété export\$1outputs.**

## Étapes de mise à niveau du CfCT hautement recommandées
<a name="highly-recommended-upgrade-steps"></a>

**CloudFormation paramètres**

1. **Remplacez la propriété **parameter\$1file** par de nouveaux paramètres de propriété.**

1. Supprimez le chemin du fichier dans la valeur de la propriété **parameter\$1file**.

1. Copiez la clé et la valeur du paramètre à partir du fichier JSON de paramètre existant dans le nouveau format de la propriété **des paramètres**. Cela vous aidera à les gérer dans le fichier manifeste.

**Note**  
*La propriété **parameter\$1file** est prise en charge dans la version du manifeste CFct 2021-03-15.*