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 à l'aide d'AWS CDK
Créée par Sandeep Gawande (AWS), RAJNEESH TYAGI (AWS) et Viyoma Sachdeva (AWS)
Récapitulatif
AWS Service Catalog vous permet de gérer de manière centralisée les catalogues de services ou de produits informatiques dont l'utilisation est approuvée dans l'environnement AWS de votre organisation. Un ensemble de produits est appelé portefeuille, et un portefeuille contient également des informations de configuration. Avec AWS Service Catalog, vous pouvez créer un portefeuille personnalisé pour chaque type d'utilisateur de votre organisation, puis 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 (AWS CDK) 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 comptes AWS cibles. Cette ready-to-use solution crée les portefeuilles Service Catalog dans le compte source. Il fournit également, en option, des produits dans des comptes cibles à l'aide d'AWS CloudFormation Stacks et vous aide à configurer TagOptions les produits :
AWS CloudFormation StackSets — Vous pouvez les utiliser StackSets pour lancer des produits Service Catalog dans plusieurs régions et comptes AWS. 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'une balise AWS, mais elle sert de modèle pour créer une balise AWS basée sur le TagOption. Pour plus d'informations, consultez TagOption la bibliothèque (documentation Service Catalog).
Conditions préalables et limitations
Prérequis
Un compte AWS 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.
Autorisations AWS Identity and Access Management (IAM) pour accéder à AWS Service Catalog CloudFormation, AWS et AWS IAM.
Versions du produit
Version 2.27.0 du kit de développement logiciel AWS
Architecture
Pile technologique cible
Portefeuilles Service Catalog dans un compte AWS 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 le compte AWS, la région AWS, le rôle IAM, le portefeuille et les informations sur le produit correspondant à votre cas d'utilisation.
Vous déployez l'application AWS CDK.
L'application AWS CDK assume le rôle IAM 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'application AWS CDK assume le rôle d'StackSet administrateur et déploie le CloudFormation stack set AWS 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
Services AWS
AWS Cloud Development Kit (AWS CDK) est un framework de développement logiciel qui vous aide à définir et à provisionner l'infrastructure du cloud AWS sous forme de code.
AWS CDK Toolkit est un kit de développement cloud en ligne de commande qui vous permet d'interagir avec votre application AWS CDK.
AWS vous CloudFormation aide à configurer les ressources AWS, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie sur l'ensemble des comptes et des régions AWS.
AWS Identity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos ressources AWS en contrôlant qui est authentifié et autorisé à les utiliser.
AWS Service Catalog vous permet de gérer de manière centralisée les catalogues de services informatiques approuvés pour 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'application AWS CDK pour 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 ressources AWS créées lors du déploiement de cette solution.
Pour utiliser l'exemple de code, suivez les instructions de la section Epics.
Bonnes pratiques
Les rôles IAM utilisés pour déployer cette solution doivent respecter le principe du moindre privilège (documentation IAM).
Respectez les meilleures pratiques pour développer des applications cloud avec AWS CDK
(article de blog AWS). Respectez les CloudFormation meilleures pratiques d'AWS (CloudFormation documentation).
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Installez le kit d'outils AWS CDK. | Assurez-vous qu'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 d'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 l'URL du référentiel. Cela clone le aws-cdk-servicecatalog-automation
Cela crée un
| AWS DevOps, DevOps ingénieur |
Configurez les informations d'identification AWS. | Entrez les commandes suivantes : Ils exportent les variables suivantes, qui définissent le compte AWS et la région dans lesquels vous déployez la pile.
Les informations d'identification AWS pour AWS CDK sont fournies par le biais de variables d'environnement. | AWS DevOps, DevOps ingénieur |
Configurez les autorisations pour les rôles IAM des utilisateurs finaux. | Si vous comptez utiliser des rôles IAM 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 savoir comment accorder ces autorisations, consultez Enabling trusted access with Service Catalog (documentation AWS Organizations). | AWS DevOps, DevOps ingénieur |
Configurez les rôles IAM requis par StackSets. | Si vous avez l'habitude StackSets de provisionner automatiquement des produits dans des comptes cibles, vous devez configurer les rôles IAM 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 Dans
AvertissementLes utilisateurs IAM disposent d’informations d’identification à long terme, ce qui présente un risque de sécurité. Pour atténuer ce risque, nous vous recommandons de ne fournir à ces utilisateurs que les autorisations dont ils ont besoin pour effectuer la tâche et de supprimer ces autorisations lorsqu’elles ne sont plus nécessaires. Important
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'application AWS CDK 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 :
| AWS général |
(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'application AWS CDK 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, AWS général |
Tâche | Description | Compétences requises |
---|---|---|
(Facultatif) Supprimez les ressources AWS 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
Bibliothèque AWS Service Catalog Construct (référence d'API AWS)
StackSets concepts (CloudFormation documentation)
AWS Service Catalog
(AWS marketing) Utilisation du Service Catalog avec le kit AWS CDK
(atelier AWS)
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"
}
}
]
}