

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.

# Configuration de l'Enterprise Blueprint Factory
<a name="setup"></a>

Cette section vous aide à configurer l'Enterprise Blueprint Factory dans votre AWS environnement. Il inclut des instructions détaillées pour configurer les référentiels requis et les AWS ressources pour l'Enterprise Blueprint Factory.

## Prérequis
<a name="setup-prereqs"></a>

Les conditions préalables à la configuration de l'Enterprise Blueprint Factory dans votre AWS environnement sont les suivantes :
+ Ce qui suit Comptes AWS :
  + Un compte utilisé pour administrer l'Enterprise Blueprint Factory et pour lancer des produits
  + Un ou plusieurs comptes consommant le produit publié
+ Tous les comptes sont les suivants :
  + Géré en tant qu'organisation dans [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)
  + Situé dans la même [unité organisationnelle (UO)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#organizationalunit)
  + L'organisation suit le [account-per-tenant modèle](https://aws.amazon.com/blogs/mt/managing-the-account-lifecycle-in-account-per-tenant-saas-environments-on-aws/)
+ AWS Command Line Interface (AWS CLI), [installé](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) et [configuré](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ Autorisations permettant de déployer une AWS CloudFormation pile qui crée les AWS ressources suivantes :
  + Groupe de CloudWatch journaux Amazon Logs
  + AWS CodePipeline canalisations
  + AWS CodeBuild projets
  + Politique et règle d'Amazon EventBridge Event Bus
  + Gestion des identités et des accès AWS rôle et politique (IAM)
  + AWS Key Management Service (AWS KMS) politique clé et clé
  + AWS Service Catalog portefeuilles, produits et produits approvisionnés
  + Rubrique, politique relative à Amazon Simple Notification Service (Amazon SNS) et abonnement
  + Compartiments Amazon Simple Storage Service (Amazon S3)
  + AWS Systems Manager Paramètres du magasin de paramètres

  Pour plus d'informations sur la configuration de ces autorisations, consultez la [CloudFormation documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) et la [mise en œuvre de politiques pour les autorisations de moindre privilège](https://docs.aws.amazon.com/prescriptive-guidance/latest/least-privilege-cloudformation/introduction.html) pour. AWS CloudFormation
+ Un GitHub compte

## Bonnes pratiques
<a name="setup-best-practices"></a>

Nous vous recommandons de suivre les meilleures pratiques suivantes lors de la configuration de l'Enterprise Blueprint Factory dans votre AWS environnement :
+ Lorsque vous configurez les autorisations nécessaires pour déployer l'Enterprise Blueprint Factory, suivez le principe du moindre privilège et accordez les autorisations minimales requises. Pour plus d'informations, consultez les sections [Accorder le moindre privilège](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) et [Bonnes pratiques en matière de sécurité](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPracticesAndUseCases.html) dans la documentation IAM.
+ Lorsque vous configurez l'accès aux portefeuilles Service Catalog, suivez le principe du moindre privilège et accordez l'accès uniquement à des rôles, utilisateurs ou administrateurs spécifiques. Suivez les [meilleures pratiques de sécurité](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/security-best-practices.html) pour Service Catalog.

## Création des référentiels
<a name="setup-create-repos"></a>

Cette section vous aide à configurer le [référentiel de configuration](architecture-components.md#architecture-config-repo) et le [référentiel de produits](architecture-components.md#architecture-product-repo) pour Enterprise Blueprint Factory. Pour configurer vos référentiels, vous devez [bifurquer](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo) les référentiels fournis. GitHub Ensuite, vous pouvez AWS CodeConnections créer une [connexion](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-create-github.html) à votre GitHub dépôt. Ensuite, vous clonez les GitHub référentiels sur votre machine locale.

**Pour forger les GitHub référentiels**

1. Connexion à [GitHub](https://github.com/login).

1. Accédez au [ GitHub référentiel de configuration](https://github.com/aws-samples/aws-enterprise-blueprint-factory-config-repo).

1. Choisissez **Fork**.

1. Sur la page **Créer un nouveau fork**, dans le champ **Nom du référentiel**, entrez`ServiceCatalog-ConfigRepo`.

1. (Facultatif) Entrez une description.

1. Sélectionnez **Copier uniquement la branche principale**.

1. Choisissez **Create fork**.

1. Répétez ces étapes pour forker le [ GitHub référentiel Code](https://github.com/aws-samples/aws-enterprise-blueprint-factory-code-repo). Entrez le nom `ServiceCatalog-CodeRepo` de ce référentiel.

1. Répétez ces étapes pour créer un fork dans le GitHub référentiel [Product Repo](https://github.com/aws-samples/aws-enterprise-blueprint-factory-blueprint-repo). Entrez le nom `ServiceCatalog-BlueprintProductRepo` de ce référentiel.

**Pour créer la CodeConnections connexion**

1. Dans la CLI AWS, entrez la commande suivante pour créer une CodeConnections connexion à GitHub :

   ```
   aws codeconnections create-connection --provider-type GitHub --connection-name <MyConnection>
   ```

1. Utilisez la console AWS Developer Tools pour terminer la connexion. Pour plus d'informations, voir [Mettre à jour une connexion en attente](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html).

**Pour cloner les référentiels bifurqués**
+ Entrez les commandes suivantes pour cloner les GitHub référentiels sur votre station de travail locale :

  ```
  git clone git@github.com:<user>/aws-enterprise-blueprint-factory-config-repo ServiceCatalog-ConfigRepo
  git clone git@github.com:<user>/aws-enterprise-blueprint-factory-blueprint-repo ServiceCatalog-BlueprintProductRepo
  git clone git@github.com:<user>/aws-enterprise-blueprint-factory-code-repo ServiceCatalog-CodeRepo
  ```

## Configuration de l'Enterprise Blueprint Factory
<a name="setup-factory"></a>

Les instructions de cette section décrivent comment configurer l'Enterprise Blueprint Factory sur votre compte cible. Le dépôt de produits à partir duquel vous avez cloné GitHub contient deux exemples de CloudFormation modèles, et`BP-S3`. `BP-SNS` En suivant ces instructions, vous déployez ces deux exemples de plans en tant que produits dans Service Catalog.

**Pour configurer les rôles**

1. Dans le compte Blueprint Developer, créez la politique de confiance suivante, puis enregistrez-la sous le nom : `sc-enduserrole-trust-policy.json`

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

1. Entrez la commande suivante pour créer le rôle `ServiceCatalogEndUserRole` IAM :

   ```
   aws iam create-role \
   --role-name ServiceCatalogEndUserRole \
   --assume-role-policy-document file://sc-enduserrole-trust-policy.json  
   aws iam attach-role-policy \
   --policy-arn arn:aws:iam::aws:policy/AWSServiceCatalogEndUserFullAccess \
   -- role-name ServiceCatalogEndUserRole
   ```
**Note**  
Les développeurs utilisent ce `ServiceCatalogEndUserRole` rôle pour fournir le produit Service Catalog. Ce rôle n'a pas besoin d'autorisations pour créer les ressources définies dans le plan. Cela suit les meilleures pratiques en matière d'autorisations les moins privilégiées et de séparation des tâches.

1. Créez la politique de confiance suivante, puis enregistrez-la sous le nom `sc-launchconstraintrole-trust-policy.json` :

   ```
   { 
     "Version": "2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Allow",
       "Principal": {
         "Service": "servicecatalog.amazonaws.com"
       },
       "Action": "sts:AssumeRole"
     }
   }
   ```

1. Entrez la commande suivante pour créer le rôle `ServiceCataloglogLaunchConstraintRole` IAM :

   ```
   aws iam create-role \
   --role-name ServiceCataloglogLaunchConstraintRole \
   --assume-role-policy-document file://sc-launchconstraintrole-trust-policy.json  
   aws iam attach-role-policy \
   --policy-arn arn:aws:iam::aws:policy/AmazonSNSFullAccess \
   --role-name ServiceCataloglogLaunchConstraintRole
   aws iam attach-role-policy \
   --policy-arn arn:aws:iam::aws:policy/AWSCloudFormationFullAccess \
   --role-name ServiceCataloglogLaunchConstraintRole
   ```

1. Ajoutez la politique suivante au rôle `ServiceCataloglogLaunchConstraintRole` IAM. Incluez toutes les autres autorisations requises pour les ressources du produit, comme décrit dans la [section Configuration d'un rôle de lancement](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/constraints-launch.html#constraints-launch-role) dans la documentation du Service Catalog :

   ```
   {
             "Statement":[
         {
            "Effect":"Allow",
            "Action":[
               "s3:GetObject"
            ],
            "Resource":"*",
            "Condition":{
               "StringEquals":{
                  "s3:ExistingObjectTag/servicecatalog:provisioning":"true"
               }
            }
      ]
   }
   ```
**Note**  
Service Catalog utilise ce rôle pour déployer la CloudFormation pile en tant que produit dans Service Catalog. La politique de confiance associée à ce rôle garantit que seul Service Catalog peut l'assumer. Les autres utilisateurs ou services ne peuvent pas assumer ce rôle. Cela suit les meilleures pratiques en matière de séparation des tâches.

1. Créez la politique de confiance suivante, puis enregistrez-la sous le nom `sc-codebuild-trust-policy.json` :

   ```
   { 
     "Version": "2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Allow",
       "Principal": {
         "Service": "codebuild.amazonaws.com"
       },
       "Action": "sts:AssumeRole"
     }
   }
   ```

1. Entrez la commande suivante pour créer le rôle `codebuild-servicecatalog-admin-role` IAM :

   ```
   aws iam create-role \
   --role-name codebuild-servicecatalog-admin-role \
   --assume-role-policy-document file://sc-codebuild-trust-policy.json  
   aws iam attach-role-policy \
   --policy-arn arn:aws:iam::aws:policy/AWSCodeBuildAdminAccess \
   --role-name codebuild-servicecatalog-admin-role
   ```
**Note**  
Les CodeBuild tâches du pipeline de configuration utilisent ce rôle.

**Pour configurer le compartiment Amazon S3**
+ Pour créer un compartiment Amazon Simple Storage Service (Amazon S3) utilisé pour stocker les artefacts, suivez les instructions de CodePipeline la section [Création d'un compartiment dans](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) la documentation Amazon S3. Suivez les [meilleures pratiques de sécurité pour Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html).

**Pour configurer les AWS Systems Manager paramètres**
+ Suivez les instructions de la [section Création de paramètres de magasin de paramètres dans Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html) afin de créer les paramètres de Systems Manager dans le tableau suivant. Ces paramètres sont utilisés dans le CloudFormation modèle qui déploie le pipeline de configuration.  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/enterprise-blueprint-factory/setup.html)

**Pour mettre à jour les CloudFormation modèles**

1. Dans le référentiel de code (`ServiceCatalog-CodeRepo`), ouvrez le fichier **ServiceCatalog-Pipeline.yml**.

1. Modifiez les valeurs par défaut des paramètres suivants dans ce fichier :
   + `ConfigRepositoryName`est le paramètre Systems Manager qui stocke le GitHub dépôt dans lequel sont stockés les fichiers de configuration d'Enterprise Blueprint Factory. La valeur par défaut est `/blueprints/resources/ConfigRepo`.
   + `CodeRepositoryName`est le paramètre Systems Manager qui stocke le GitHub dépôt dans lequel le code du pipeline de configuration d'Enterprise Blueprint Factory et le `Bootstrapping-Admin-Product` code sont stockés. La valeur par défaut est `/blueprints/resources/CodeRepo`.
   + `BlueprintRepositoryName`est le paramètre Systems Manager qui stocke le GitHub dépôt dans lequel sont stockés les plans d'Enterprise Blueprint Factory. La valeur par défaut est `/blueprints/resources/BlueprintRepo`.
   + `BranchName`est la branche du référentiel de configuration dans laquelle le fichier de configuration est stocké. La valeur par défaut est `main`.
   + `VPCID`est le paramètre Systems Manager qui stocke l'ID du VPC cible. La valeur par défaut est `/blueprints/resources/vpc_id`.
   + `Subnets`est le paramètre Systems Manager qui stocke IDs les sous-réseaux cibles. La valeur par défaut est `/blueprints/resources/subnets`.
   + `SecurityGroupIds`est le paramètre Systems Manager qui stocke les groupes IDs de sécurité cibles. La valeur par défaut est `/blueprints/resources/securitygroups`.
   + `IamRoleName`est le nom du rôle IAM utilisé par les CodeBuild tâches. La valeur par défaut est`codebuild-servicecatalog-admin-role`.
   + `EnvironmentType`est l'environnement dans lequel vous déployez l'Enterprise Blueprint Factory. La valeur par défaut est `DEV`.
   + `ArtifactBucket`est le paramètre Systems Manager qui stocke le compartiment Amazon S3 dans lequel sont stockés CodePipeline les artefacts. La valeur par défaut est`/blueprints/resources/artifacts-bucket-name`.
   + `CodeConnectionArn`est le nom de ressource Amazon (ARN) de la CodeConnections connexion à GitHub.

1. Enregistrez et fermez le fichier **ServiceCatalog-Pipeline.yml**.

1. Entrez les commandes suivantes pour fusionner les modifications dans le référentiel de code :

   ```
   cd ServiceCatalog-CodeRepo
   git add ServiceCatalog-Pipeline.yml
   git commit -m "<description of change>"
   git push origin main
   ```

1. Dans le référentiel de configuration (`ServiceCatalog-ConfigRepo`), ouvrez le fichier **bp\_config.yml**.

1. Mettez à jour les valeurs de la section du portefeuille selon les besoins de votre organisation. Par exemple, mettez à jour les `share_to_ou` attributs `portfolio_access_roles` et. Pour plus d'informations, consultez [la section Fichier de configuration](architecture-components.md#architecture-config-file) de ce guide.

1. Enregistrez et fermez le fichier **bp\_config.yml**.

1. Entrez les commandes suivantes pour fusionner les modifications dans le référentiel de code :

   ```
   cd ServiceCatalog-ConfigRepo
   git add bp_config.yml
   git commit -m "<description of change>"
   git push origin main
   ```

**Pour déployer la CloudFormation pile**

1. Connectez-vous au compte administratif d'Enterprise Blueprint Factory.

1. Passez à un rôle IAM doté d'[autorisations administratives](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AdministratorAccess.html).

1. Ouvrez la [CloudFormation console](https://console.aws.amazon.com/cloudformation/).

1. Dans la barre de navigation en haut de l'écran, choisissez la cible Région AWS.

1. Sur la page **Stacks**, choisissez **Create stack** en haut à droite, puis choisissez **Avec de nouvelles ressources (standard)**.

1. Pour **Préparer le modèle**, choisissez **Le modèle est prêt**.

1. Sous **Spécifier le modèle**, choisissez **Charger un fichier modèle**.

1. Choisissez **Choisir un fichier**, naviguez jusqu'au `ServiceCatalog-CodeRepo` dossier, puis choisissez **ServiceCatalog-Pipeline.yml**.

1. Choisissez **Next** pour continuer et valider le modèle.

1. Dans **Nom de la pile**, entrez le nom de la pile.

1. Dans la section **Paramètres**, ne modifiez pas les valeurs par défaut.

1. Choisissez **Suivant**.

1. Sur la page **Configurer les options de pile**, ne modifiez pas les valeurs par défaut, puis choisissez **Next**.

1. Sur la page **Réviser et créer**, vérifiez les détails du modèle et de la pile, puis choisissez **Soumettre**.

1. Surveillez la progression du déploiement de la pile. Pour plus d’informations, consultez la [documentation CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/monitor-stack-progress.html).

1. Attendez que le statut passe à`CREATE_COMPLETE`.

**Pour valider le déploiement**

1. Ouvrez la [AWS Service Catalog console](https://console.aws.amazon.com/servicecatalog/).

1. Dans le volet de navigation, sélectionnez **Products**.

1. Vérifiez que **ServiceCatalog-Pipeline** est disponible dans la liste des produits.

1. Ouvrez la [AWS CodePipeline console](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. Dans **Nom**, choisissez le pipeline de configuration. Par défaut, le nom du pipeline est`ServiceCatalog-Pipeline`.

1. Choisissez **Afficher l'historique**.

1. Consultez l'état du pipeline et de l'exécution de l'étape. Pour plus d'informations sur le statut, voir [Afficher le statut d'exécution](https://docs.aws.amazon.com/codepipeline/latest/userguide/executions-view.html#pipelines-executions-status-console) dans la CodePipeline documentation.

1. Attendez que l'état du pipeline de configuration soit atteint`Succeeded`.

1. Ouvrez la [console Service Catalog](https://console.aws.amazon.com/servicecatalog/).

1. Dans le volet de navigation, sélectionnez **Products**.

1. Vérifiez que les **produits BP-S3 et **BP-SNS**** sont disponibles. Cela indique que les pipelines de lancement du produit pour les exemples de plans ont été achevés avec succès.

1. Si vous souhaitez supprimer les exemples de plans que vous avez déployés lors de la configuration de l'Enterprise Blueprint Factory, suivez les instructions de la section [Supprimer un](using-factory.md#using-factory-delete) plan.

## Supprimer l'Enterprise Blueprint Factory
<a name="setup-delete-factory"></a>

Si vous n'utilisez pas l'Enterprise Blueprint Factory, vous pouvez la supprimer pour ne plus avoir à supporter les coûts associés à ses ressources. AWS 

**Pour supprimer les ressources**

1. Entrez les commandes suivantes pour supprimer les rôles IAM déployés dans le compte administratif d'Enterprise Blueprint Factory :

   ```
   aws iam detach-role-policy \
   --policy-arn arn:aws:iam::aws:policy/AWSServiceCatalogEndUserFullAccess \
   --role-name ServiceCatalogEndUserRole
   aws iam delete-role --role-name ServiceCatalogEndUserRole
   aws iam detach-role-policy \
   --policy-arn arn:aws:iam::aws:policy/AmazonSNSFullAccess \
   --role-name ServiceCataloglogLaunchConstraintRole
   aws iam delete-role --role-name ServiceCataloglogLaunchConstraintRole
   ```

1. Supprimez la CloudFormation pile de l'Enterprise Blueprint Factory. Pour obtenir des instructions, voir [Supprimer une pile de la CloudFormation console](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) ou [Supprimer une pile de AWS CLI](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/service_code_examples.html#delete-stack-sdk).

1. Supprimez le compartiment Amazon S3 utilisé pour stocker les CodePipeline artefacts. Pour obtenir des instructions, consultez [Supprimer un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html) dans la documentation Amazon S3.

1. Supprimez les paramètres Systems Manager suivants de Parameter Store :
   + `/blueprints/resources/vpc_id`
   + `/blueprints/resources/subnets`
   + `/blueprints/resources/securitygroups`
   + `/blueprints/resources/artifacts-bucket-name`
   + `/blueprints/resources/BlueprintRepo`
   + `/blueprints/resources/CodeRepo`
   + `/blueprints/resources/ConfigRepo`

   Pour obtenir des instructions, consultez [Supprimer des paramètres du Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/deleting-parameters.html) dans la documentation de Systems Manager.