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 :
-
Géré en tant qu'organisation dans AWS Organizations
-
Situé dans la même unité organisationnelle (UO)
-
L'organisation suit le account-per-tenant modèle
-
-
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
Pour forger les GitHub référentiels
-
Connexion à GitHub
. -
Accédez au GitHub référentiel de configuration
. -
Choisissez Fork.
-
Sur la page Créer un nouveau fork, dans le champ Nom du référentiel, entrez
ServiceCatalog-ConfigRepo. -
(Facultatif) Entrez une description.
-
Sélectionnez Copier uniquement la branche principale.
-
Choisissez Create fork.
-
Répétez ces étapes pour forker le GitHub référentiel Code
. Entrez le nom ServiceCatalog-CodeRepode ce référentiel. -
Répétez ces étapes pour créer un fork dans le GitHub référentiel Product Repo
. Entrez le nom ServiceCatalog-BlueprintProductRepode ce référentiel.
Pour créer la CodeConnections connexion
-
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> -
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
-
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" } } -
Entrez la commande suivante pour créer le rôle
ServiceCatalogEndUserRoleIAM :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 ServiceCatalogEndUserRoleNote
Les développeurs utilisent ce
ServiceCatalogEndUserRolerô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. -
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" } } -
Entrez la commande suivante pour créer le rôle
ServiceCataloglogLaunchConstraintRoleIAM :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 -
Ajoutez la politique suivante au rôle
ServiceCataloglogLaunchConstraintRoleIAM. 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.
-
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" } } -
Entrez la commande suivante pour créer le rôle
codebuild-servicecatalog-admin-roleIAM :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-roleNote
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 la documentation Amazon S3. Suivez les meilleures pratiques de sécurité pour 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_idChaîne Paramètre qui stocke l'ID du cloud privé virtuel (VPC) cible. /blueprints/resources/subnetsStringList Paramètre qui stocke IDs les sous-réseaux cibles. /blueprints/resources/securitygroupsStringList Paramètre qui stocke les groupes IDs de sécurité cibles. /blueprints/resources/artifacts-bucket-nameChaîne Paramètre qui stocke le nom du compartiment Amazon S3 utilisé pour les CodePipeline artefacts. /blueprints/resources/BlueprintRepoChaî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/CodeRepoChaî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-Productcode sont stockés. La valeur par défaut est<user>/aws-enterprise-blueprint-factory-code-repo./blueprints/resources/ConfigRepoChaî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
-
Dans le référentiel de code (
ServiceCatalog-CodeRepo), ouvrez le fichier ServiceCatalog-Pipeline.yml. -
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 leBootstrapping-Admin-Productcode 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 estmain. -
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 estDEV. -
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.
-
-
Enregistrez et fermez le fichier ServiceCatalog-Pipeline.yml.
-
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 -
Dans le référentiel de configuration (
ServiceCatalog-ConfigRepo), ouvrez le fichier bp_config.yml. -
Mettez à jour les valeurs de la section du portefeuille selon les besoins de votre organisation. Par exemple, mettez à jour les
share_to_ouattributsportfolio_access_roleset. Pour plus d'informations, consultez la section Fichier de configuration de ce guide. -
Enregistrez et fermez le fichier bp_config.yml.
-
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
-
Connectez-vous au compte administratif d'Enterprise Blueprint Factory.
-
Passez à un rôle IAM doté d'autorisations administratives.
-
Ouvrez la CloudFormation console
. -
Dans la barre de navigation en haut de l'écran, choisissez la cible Région AWS.
-
Sur la page Stacks, choisissez Create stack en haut à droite, puis choisissez Avec de nouvelles ressources (standard).
-
Pour Préparer le modèle, choisissez Le modèle est prêt.
-
Sous Spécifier le modèle, choisissez Charger un fichier modèle.
-
Choisissez Choisir un fichier, naviguez jusqu'au
ServiceCatalog-CodeRepodossier, puis choisissez ServiceCatalog-Pipeline.yml. -
Choisissez Next pour continuer et valider le modèle.
-
Dans Nom de la pile, entrez le nom de la pile.
-
Dans la section Paramètres, ne modifiez pas les valeurs par défaut.
-
Choisissez Suivant.
-
Sur la page Configurer les options de pile, ne modifiez pas les valeurs par défaut, puis choisissez Next.
-
Sur la page Réviser et créer, vérifiez les détails du modèle et de la pile, puis choisissez Soumettre.
-
Surveillez la progression du déploiement de la pile. Pour plus d’informations, consultez la documentation CloudFormation.
-
Attendez que le statut passe à
CREATE_COMPLETE.
Pour valider le déploiement
-
Ouvrez la AWS Service Catalog console
. -
Dans le volet de navigation, sélectionnez Products.
-
Vérifiez que ServiceCatalog-Pipeline est disponible dans la liste des produits.
-
Ouvrez la AWS CodePipeline console
. -
Dans Nom, choisissez le pipeline de configuration. Par défaut, le nom du pipeline est
ServiceCatalog-Pipeline. -
Choisissez Afficher l'historique.
-
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.
-
Attendez que l'état du pipeline de configuration soit atteint
Succeeded. -
Ouvrez la console Service Catalog
. -
Dans le volet de navigation, sélectionnez Products.
-
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.
-
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
-
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 -
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.
-
Supprimez le compartiment Amazon S3 utilisé pour stocker les CodePipeline artefacts. Pour obtenir des instructions, consultez Supprimer un compartiment dans la documentation Amazon S3.
-
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.
-