View a markdown version of this page

Configuration de l'Enterprise Blueprint Factory - AWS Conseils prescriptifs

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

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

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 :

  • AWS Command Line Interface (AWS CLI), installé et configuré

  • 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 et la mise en œuvre de politiques pour les autorisations de moindre privilège pour. AWS CloudFormation

  • Un GitHub compte

Bonnes pratiques

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 et Bonnes pratiques en matière de sécurité 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é pour Service Catalog.

Création des référentiels

Cette section vous aide à configurer le référentiel de configuration et le référentiel de produits pour Enterprise Blueprint Factory. Pour configurer vos référentiels, vous devez bifurquer les référentiels fournis. GitHub Ensuite, vous pouvez AWS CodeConnections créer une connexion à 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.

  2. Accédez au GitHub référentiel de configuration.

  3. Choisissez Fork.

  4. Sur la page Créer un nouveau fork, dans le champ Nom du référentiel, entrezServiceCatalog-ConfigRepo.

  5. (Facultatif) Entrez une description.

  6. Sélectionnez Copier uniquement la branche principale.

  7. Choisissez Create fork.

  8. Répétez ces étapes pour forker le GitHub référentiel Code. Entrez le nom ServiceCatalog-CodeRepo de ce référentiel.

  9. Répétez ces étapes pour créer un fork dans le GitHub référentiel Product 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>
  2. Utilisez la console AWS Developer Tools pour terminer la connexion. Pour plus d'informations, voir Mettre à jour une connexion en attente.

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

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, etBP-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" } }
  2. 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.

  3. 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" } }
  4. 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
  5. 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 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.

  6. 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" } }
  7. 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 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 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.

    Nom du paramètre Type Description
    /blueprints/resources/vpc_id Chaîne Paramètre qui stocke l'ID du cloud privé virtuel (VPC) cible.
    /blueprints/resources/subnets StringList Paramètre qui stocke IDs les sous-réseaux cibles.
    /blueprints/resources/securitygroups StringList Paramètre qui stocke les groupes IDs de sécurité cibles.
    /blueprints/resources/artifacts-bucket-name Chaîne Paramètre qui stocke le nom du compartiment Amazon S3 utilisé pour les CodePipeline artefacts.
    /blueprints/resources/BlueprintRepo Chaîne Paramètre qui stocke le GitHub dépôt dans lequel sont stockés les plans d'Enterprise Blueprint Factory. La valeur par défaut est <user>/aws-enterprise-blueprint-factory-blueprint-repo.
    /blueprints/resources/CodeRepo Chaîne Paramètre 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 <user>/aws-enterprise-blueprint-factory-code-repo.
    /blueprints/resources/ConfigRepo Chaîne Paramètre 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 <user>/aws-enterprise-blueprint-factory-config-repo.
Pour mettre à jour les CloudFormation modèles
  1. Dans le référentiel de code (ServiceCatalog-CodeRepo), ouvrez le fichier ServiceCatalog-Pipeline.yml.

  2. Modifiez les valeurs par défaut des paramètres suivants dans ce fichier :

    • ConfigRepositoryNameest 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.

    • CodeRepositoryNameest 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.

    • BlueprintRepositoryNameest 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.

    • BranchNameest la branche du référentiel de configuration dans laquelle le fichier de configuration est stocké. La valeur par défaut est main.

    • VPCIDest le paramètre Systems Manager qui stocke l'ID du VPC cible. La valeur par défaut est /blueprints/resources/vpc_id.

    • Subnetsest le paramètre Systems Manager qui stocke IDs les sous-réseaux cibles. La valeur par défaut est /blueprints/resources/subnets.

    • SecurityGroupIdsest le paramètre Systems Manager qui stocke les groupes IDs de sécurité cibles. La valeur par défaut est /blueprints/resources/securitygroups.

    • IamRoleNameest le nom du rôle IAM utilisé par les CodeBuild tâches. La valeur par défaut estcodebuild-servicecatalog-admin-role.

    • EnvironmentTypeest l'environnement dans lequel vous déployez l'Enterprise Blueprint Factory. La valeur par défaut est DEV.

    • ArtifactBucketest 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.

    • CodeConnectionArnest le nom de ressource Amazon (ARN) de la CodeConnections connexion à GitHub.

  3. Enregistrez et fermez le fichier ServiceCatalog-Pipeline.yml.

  4. 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
  5. Dans le référentiel de configuration (ServiceCatalog-ConfigRepo), ouvrez le fichier bp_config.yml.

  6. 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 de ce guide.

  7. Enregistrez et fermez le fichier bp_config.yml.

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

  2. Passez à un rôle IAM doté d'autorisations administratives.

  3. Ouvrez la CloudFormation console.

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

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

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

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

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

  9. Choisissez Next pour continuer et valider le modèle.

  10. Dans Nom de la pile, entrez le nom de la pile.

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

  12. Choisissez Suivant.

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

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

  15. Surveillez la progression du déploiement de la pile. Pour plus d’informations, consultez la documentation CloudFormation.

  16. Attendez que le statut passe àCREATE_COMPLETE.

Pour valider le déploiement
  1. Ouvrez la AWS Service Catalog console.

  2. Dans le volet de navigation, sélectionnez Products.

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

  4. Ouvrez la AWS CodePipeline console.

  5. Dans Nom, choisissez le pipeline de configuration. Par défaut, le nom du pipeline estServiceCatalog-Pipeline.

  6. Choisissez Afficher l'historique.

  7. 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 dans la CodePipeline documentation.

  8. Attendez que l'état du pipeline de configuration soit atteintSucceeded.

  9. Ouvrez la console Service Catalog.

  10. Dans le volet de navigation, sélectionnez Products.

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

  12. 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 plan.

Supprimer l'Enterprise Blueprint Factory

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
  2. Supprimez la CloudFormation pile de l'Enterprise Blueprint Factory. Pour obtenir des instructions, voir Supprimer une pile de la CloudFormation console ou Supprimer une pile de AWS CLI.

  3. Supprimez le compartiment Amazon S3 utilisé pour stocker les CodePipeline artefacts. Pour obtenir des instructions, consultez Supprimer un compartiment dans la documentation Amazon S3.

  4. 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 dans la documentation de Systems Manager.