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.
Automatisez le déploiement du portefeuille et des produits AWS Service Catalog en utilisant AWS CDK
Créé par Sandeep Gawande (AWS), (), et Viyoma Sachdeva RAJNEESH TYAGI (AWS) AWS
Référentiel de code : aws-cdk-servicecatalog-automation | Environnement : PoC ou pilote | Technologies : infrastructure DevOps, gestion et gouvernance |
Charge de travail : Open source | AWSservices : AWS Service Catalog ; AWS CDK |
Récapitulatif
AWSService Catalog vous permet de gérer de manière centralisée les catalogues de services informatiques, ou de produits, dont l'utilisation est approuvée dans l'AWSenvironnement de votre entreprise. Un ensemble de produits est appelé portefeuille, et un portefeuille contient également des informations de configuration. AWSService Catalog vous permet de créer un portefeuille personnalisé pour chaque type d'utilisateur de votre organisation, puis d'accorder l'accès au portefeuille approprié. Ces utilisateurs peuvent ensuite déployer rapidement tous les produits dont ils ont besoin au sein du portefeuille.
Si vous disposez d'une infrastructure réseau complexe, telle que des architectures multirégions et multicomptes, il est recommandé de créer et de gérer les portefeuilles Service Catalog dans un seul compte central. Ce modèle décrit comment utiliser AWS Cloud Development Kit (AWSCDK) pour automatiser la création de portefeuilles Service Catalog dans un compte central, autoriser les utilisateurs finaux à y accéder, puis, éventuellement, fournir des produits sur un ou plusieurs AWS comptes cibles. Cette ready-to-use solution crée les portefeuilles Service Catalog dans le compte source. Il approvisionne également, en option, les produits dans des comptes cibles à l'aide de AWS CloudFormation piles et vous aide à configurer TagOptions les produits :
AWS CloudFormation StackSets— Vous pouvez les utiliser StackSets pour lancer des produits Service Catalog dans plusieurs AWS régions et comptes. Dans cette solution, vous avez la possibilité de provisionner automatiquement les produits lorsque vous déployez cette solution. Pour plus d'informations, consultez Using AWS CloudFormation StackSets (documentation Service Catalog) et StackSets concepts (CloudFormation documentation).
TagOption bibliothèque — Vous pouvez gérer les balises des produits approvisionnés à l'aide de la TagOption bibliothèque. A TagOptionest une paire clé-valeur gérée dans AWS Service Catalog. Il ne s'agit pas d'un AWS tag, mais il sert de modèle pour créer un AWS tag basé sur le TagOption. Pour plus d'informations, consultez TagOption la bibliothèque (documentation Service Catalog).
Conditions préalables et limitations
Prérequis
Un AWS compte actif que vous souhaitez utiliser comme compte source pour administrer les portefeuilles Service Catalog.
Si vous utilisez cette solution pour approvisionner des produits sur un ou plusieurs comptes cibles, le compte cible doit déjà exister et être actif.
AWSAutorisations Identity and Access Management (IAM) pour accéder à AWS Service Catalog AWS CloudFormation, et AWSIAM.
Versions du produit
AWSCDKversion 2.27.0
Architecture
Pile technologique cible
Portefeuilles Service Catalog dans un AWS compte centralisé
Produits Service Catalog déployés sur le compte cible
Architecture cible
Dans le compte portfolio (ou source), vous mettez à jour le fichier config.json avec les informations relatives au AWS compte, à la AWS région, au IAM rôle, au portefeuille et au produit correspondant à votre cas d'utilisation.
Vous déployez l'AWSCDKapplication.
L'AWSCDKapplication assume le IAM rôle de déploiement et crée les portefeuilles et les produits Service Catalog définis dans le fichier config.json.
Si vous avez configuré StackSets pour déployer des produits dans un compte cible, le processus se poursuit. Si vous n'avez pas configuré StackSets pour approvisionner des produits, le processus est terminé.
L'AWSCDKapplication assume le rôle StackSet d'administrateur et déploie le AWS CloudFormation stack set que vous avez défini dans le fichier config.json.
Dans le compte cible, StackSets assume le rôle StackSet d'exécution et approvisionne les produits.
Outils
AWSservices
AWSCloud Development Kit (AWSCDK) est un framework de développement logiciel qui vous aide à définir et à provisionner une infrastructure AWS cloud sous forme de code.
AWSCDKToolkit est un kit de développement cloud en ligne de commande qui vous permet d'interagir avec votre AWS CDK application.
AWS CloudFormationvous aide à configurer les AWS ressources, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie, quels que soient les AWS comptes et les régions.
AWSIdentity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.
AWSService Catalog vous permet de gérer de manière centralisée les catalogues de services informatiques approuvés. AWS Les utilisateurs finaux peuvent déployer rapidement uniquement les services informatiques approuvés dont ils ont besoin, en respectant les contraintes définies par votre organisation.
Référentiel de code
Le code de ce modèle est disponible sur GitHub, dans le aws-cdk-servicecatalog-automation
cdk-sevicecatalog-app— Ce dossier contient l'AWSCDKapplication correspondant à cette solution.
config — Ce dossier contient le fichier config.json et le CloudFormation modèle de déploiement des produits du portefeuille Service Catalog.
config/config.json — Ce fichier contient toutes les informations de configuration. Vous mettez à jour ce fichier pour personnaliser cette solution en fonction de votre cas d'utilisation.
config/templates — Ce dossier contient les CloudFormation modèles pour les produits Service Center.
setup.sh — Ce script déploie la solution.
uninstall.sh — Ce script supprime la pile et toutes les AWS ressources créées lors du déploiement de cette solution.
Pour utiliser l'exemple de code, suivez les instructions de la section Epics.
Bonnes pratiques
IAMles rôles utilisés pour déployer cette solution doivent respecter le principe du moindre privilège (IAMdocumentation).
Respectez les meilleures pratiques pour développer des applications cloud avec AWS CDK
(article de AWS blog). Respectez les AWS CloudFormation meilleures pratiques (CloudFormation documentation).
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Installez le AWS CDK kit d'outils. | Assurez-vous que AWS CDK Toolkit est installé. Entrez la commande suivante pour vérifier s'il est installé et vérifier la version.
Si AWS CDK Toolkit n'est pas installé, entrez la commande suivante pour l'installer.
Si la version du AWS CDK Toolkit est antérieure à 2.27.0, entrez la commande suivante pour la mettre à jour vers la version 2.27.0.
| AWS DevOps, DevOps ingénieur |
Pour cloner le référentiel. | Entrez la commande suivante. Dans Cloner le référentiel, dans la section Informations supplémentaires, vous pouvez copier la commande complète contenant le URL pour le référentiel. Cela clone le aws-cdk-servicecatalog-automation
Cela crée un
| AWS DevOps, DevOps ingénieur |
Configurez les AWS informations d'identification. | Entrez les commandes suivantes : Ils exportent les variables suivantes, qui définissent le AWS compte et la région dans lesquels vous déployez la pile.
AWSles informations d'identification pour AWS CDK sont fournies par le biais de variables d'environnement. | AWS DevOps, DevOps ingénieur |
Configurez les autorisations pour les IAM rôles des utilisateurs finaux. | Si vous comptez utiliser IAM des rôles pour accorder l'accès au portefeuille et aux produits qu'il contient, les rôles doivent disposer d'autorisations pour être assumés par le principal du service servicecatalog.amazonaws.com. Pour obtenir des instructions sur la façon d'accorder ces autorisations, consultez la section Activation de l'accès sécurisé avec Service Catalog (documentation AWS des organisations). | AWS DevOps, DevOps ingénieur |
Configurez IAM les rôles requis par StackSets. | Si vous avez l'habitude StackSets de provisionner automatiquement des produits dans des comptes cibles, vous devez configurer les IAM rôles qui administrent et exécutent le stack set.
| AWS DevOps, DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Créez les CloudFormation modèles. | Dans le | Développeur d'applications AWS DevOps, DevOps ingénieur |
Personnalisez le fichier de configuration. | Dans le
Pour un exemple de fichier de configuration terminé, voir Exemple de fichier de configuration dans la section Informations supplémentaires. | Développeur d'applications, DevOps ingénieur, AWS DevOps |
Déployez la solution. | Entrez la commande suivante. Cela permet de déployer l'AWSCDKapplication et de provisionner les portefeuilles et les produits Service Catalog comme indiqué dans le fichier config.json.
| Développeur d'applications, DevOps ingénieur, AWS DevOps |
Vérifier le déploiement. | Vérifiez la réussite du déploiement en procédant comme suit :
| Général AWS |
(Facultatif) Mettez à jour les portefeuilles et les produits. | Si vous souhaitez utiliser cette solution pour mettre à jour les portefeuilles ou les produits ou pour fournir de nouveaux produits :
Par exemple, vous pouvez ajouter des portefeuilles supplémentaires ou allouer davantage de ressources. L'AWSCDKapplication implémente uniquement les modifications. Si aucune modification n'est apportée aux portefeuilles ou aux produits précédemment déployés, le redéploiement ne les affectera pas. | Développeur d'applications, DevOps ingénieur, général AWS |
Tâche | Description | Compétences requises |
---|---|---|
(Facultatif) Supprimez les AWS ressources déployées par cette solution. | Si vous souhaitez supprimer un produit approvisionné, suivez les instructions de la section Supprimer des produits approvisionnés (documentation Service Catalog). Si vous souhaitez supprimer toutes les ressources créées par cette solution, entrez la commande suivante.
| AWS DevOps, DevOps ingénieur, développeur d'applications |
Ressources connexes
AWSBibliothèque Service Catalog Construct (AWSAPIréférence)
StackSets concepts (CloudFormation documentation)
AWSService Catalog
(AWSmarketing) Utilisation du Service Catalog avec le AWS CDK
(AWSatelier)
Informations supplémentaires
Informations supplémentaires
Cloner le référentiel
Entrez la commande suivante pour cloner le référentiel GitHub.
git clone https://github.com/aws-samples/aws-cdk-servicecatalog-automation.git
Exemple de fichier de configuration
Voici un exemple de fichier config.json avec des exemples de valeurs.
{ "portfolios": [ { "displayName": "EC2 Product Portfolio", "providerName": "User1", "description": "Test1", "roles": [ "<Names of IAM roles that can access the products>" ], "users": [ "<Names of IAM users who can access the products>" ], "groups": [ "<Names of IAM user groups that can access the products>" ] }, { "displayName": "Autoscaling Product Portfolio", "providerName": "User2", "description": "Test2", "roles": [ "<Name of IAM role>" ] } ], "tagOption": [ { "key": "Group", "value": [ "finance", "engineering", "marketing", "research" ] }, { "key": "CostCenter", "value": [ "01", "02", "03", "04" ] }, { "key": "Environment", "value": [ "dev", "prod", "stage" ] } ], "products": [ { "portfolioName": "EC2 Product Profile", "productName": "Ec2", "owner": "owner1", "productVersionName": "v1", "templatePath": "../../config/templates/template1.json" }, { "portfolioName": "Autoscaling Product Profile", "productName": "autoscaling", "owner": "owner1", "productVersionName": "v1", "templatePath": "../../config/templates/template2.json", "deployWithStackSets": { "accounts": [ "012345678901", ], "regions": [ "us-west-2" ], "stackSetAdministrationRoleName": "AWSCloudFormationStackSetAdministrationRole", "stackSetExecutionRoleName": "AWSCloudFormationStackSetExecutionRole" } } ] }