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.
Provisionner AWS Service Catalog des produits basés sur AWS CloudFormation des modèles à l'aide d' GitHub actions
Créée par Ashish Bhatt (AWS) et Ruchika Modi (AWS)
Récapitulatif
Ce modèle fournit aux organisations une approche rationalisée utilisant des AWS Service Catalogproduits et des portefeuilles pour fournir des services standardisés et conformes à Services AWS toutes les équipes. AWS CloudFormationpermet de combiner les composants essentiels des produits et des portefeuilles Service Catalog pour le provisionnement de l'infrastructure réseau de base. AWS Cloud Ce modèle favorise également DevOps les pratiques en intégrant l'infrastructure en tant que code (IaC) dans les flux de travail de développement automatisés à l'aide d'GitHub actions
AWS Service Catalog permet aux entreprises de créer et de gérer des services informatiques approuvés sur AWS, offrant des avantages tels que la standardisation, le contrôle centralisé, le provisionnement en libre-service et la gestion des coûts. En automatisant le déploiement des portefeuilles et des produits Service Catalog par le biais d' GitHub actions, les entreprises peuvent effectuer les opérations suivantes :
Réalisez des déploiements cohérents et reproductibles.
Utilisez le contrôle de version pour IaC.
Intégrez la gestion des ressources cloud aux flux de développement existants.
Cette combinaison rationalise les opérations dans le cloud, renforce la conformité et accélère la fourniture de services approuvés tout en réduisant les erreurs manuelles et en améliorant l'efficacité globale.
Conditions préalables et limitations
Prérequis
Un actif Compte AWS
Accès au GitHub référentiel
Compréhension de base de AWS CloudFormation et AWS Service Catalog
Un compartiment Amazon Simple Storage Service (Amazon S3) pour héberger des modèles CloudFormation
Rôle AWS Identity and Access Management (IAM) nommé
github-actions
qui est utilisé pour la connectivité entre et GitHub AWS
Limites
Le code réutilisable de ce modèle a été testé uniquement avec GitHub des actions.
Certains Services AWS ne sont pas disponibles du tout Régions AWS. Pour connaître la disponibilité par région, voir Services AWS par région
. Pour des points de terminaison spécifiques, consultez Points de terminaison de service et quotas, puis choisissez le lien correspondant au service.
Versions du produit
La solution de ce modèle a été créée à l'aide des actions GitHub Marketplace
actions/checkout@v4
aws-actions/configure-aws-credentials@v2
aws-actions/aws-cloudformation-github-deploy@v1.2.0
Architecture
Le schéma suivant montre l'architecture de cette solution.

Les administrateurs ou les ingénieurs de plateforme CloudFormation transfèrent les modèles standardisés vers un GitHub référentiel, où ils sont conservés. Le GitHub dépôt contient également des flux de travail qui automatisent le provisionnement à l' AWS Service Catalog aide GitHub d'actions.
GitHub Actions déclenche un flux de travail qui se connecte à l' AWS Cloud aide d'un fournisseur OpenID Connect (OIDC) pour approvisionner Service Catalog.
Service Catalog contient le portefeuille et les produits que les développeurs peuvent directement utiliser pour fournir AWS des ressources standardisées. Ce modèle regroupe AWS des ressources telles que les clouds privés virtuels (VPCs), les sous-réseaux, les passerelles NAT et Internet, ainsi que les tables de routage.
Une fois que le développeur a créé un produit Service Catalog, Service Catalog le convertit en AWS ressources préconfigurées et standardisées. Les développeurs gagnent ainsi du temps car ils n'ont pas besoin de provisionner des ressources individuelles et de les configurer manuellement.
Outils
Services AWS
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 à travers Comptes AWS et Régions AWS. Il s'agit d'un service d'infrastructure sous forme de code (IaC) qui peut être facilement utilisé comme l'un des types de produits AWS Service Catalog.
AWS Identity 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.
AWS Service Catalogvous permet de gérer de manière centralisée le catalogue des 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.
Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.
Autres
GitHub Actions
est une plateforme d'intégration et de livraison continues (CI/CD) étroitement intégrée aux GitHub référentiels. Vous pouvez utiliser GitHub les actions pour automatiser votre pipeline de création, de test et de déploiement.
Référentiel de code
Le code de ce modèle est disponible dans le référentiel GitHub service-catalog-with-github-actions
github/workflows
:e2e-test.yaml
— Ce fichier appelleworkflow.yaml
, qui est le flux de travail réutilisable. Ce flux de travail est déclenché dès qu'il y a un commit et un push sur une branche. workflow.yaml
— Ce fichier contient le flux de travail réutilisable pour cette solution et est configuré avecworkflow_call
comme déclencheur. En tant que flux de travail réutilisable, ilworkflow.yaml
peut être appelé depuis n'importe quel autre flux de travail.
templates
:servicecatalog-portfolio.yaml
— Ce CloudFormation modèle inclut des ressources qui fournissent le portefeuille Service Catalog et le produit Service Catalog. Le modèle contient un ensemble de paramètres utilisés lors du provisionnement du portefeuille et des produits Service Catalog. Un paramètre accepte l'URL d'un fichier Amazon S3 où le modèlevpc.yaml
est chargé. Bien que ce modèle inclut levpc.yaml
fichier pour provisionner AWS les ressources, vous pouvez également utiliser le paramètre URL du fichier S3 pour la configuration.vpc.yaml
— Ce CloudFormation modèle contient AWS des ressources à ajouter au produit Service Catalog. AWS les ressources incluent les VPCs sous-réseaux, les passerelles Internet, les passerelles NAT et les tables de routage. Levpc.yaml
modèle est un exemple de la manière dont vous pouvez utiliser n'importe quel CloudFormation modèle avec un modèle de produit et de portefeuille Service Catalog.
Bonnes pratiques
Consultez les meilleures pratiques de sécurité AWS Service Catalog dans la AWS Service Catalog documentation.
Consultez la section Renforcement de la sécurité pour GitHub les actions
dans la GitHub documentation.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Configurez Git sur votre poste de travail local. | Pour installer et configurer Git sur votre poste de travail local, utilisez les instructions Getting Started — Install Git | Développeur d’applications |
Clonez le dépôt GitHub du projet. | Pour cloner le dépôt GitHub du projet, procédez comme suit :
| DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Configurez un fournisseur OIDC. | Créez un fournisseur OpenID Connect (OIDC) qui permet aux flux de travail GitHub Actions d'accéder aux ressources AWS, sans avoir à stocker les informations d' AWS identification sous forme de secrets de longue durée. GitHub Pour obtenir des instructions, consultez la section Configuration d'OpenID Connect dans Amazon Web Services Une fois qu'un fournisseur OIDC est configuré, la politique de confiance du rôle IAM | Administrateur AWS, AWS DevOps, AWS général |
Tâche | Description | Compétences requises |
---|---|---|
Mettre à jour | Le
| DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Validez les ressources du Service Catalog. | Pour valider les ressources du Service Catalog, procédez comme suit :
| AWS DevOps |
Tâche | Description | Compétences requises |
---|---|---|
Supprimez la CloudFormation pile. | Pour supprimer la CloudFormation pile, procédez comme suit :
Pour plus d'informations, voir Supprimer une pile de la CloudFormation console dans la CloudFormation documentation | DevOps ingénieur, administrateur AWS |
Résolution des problèmes
Problème | Solution |
---|---|
| Pour vous assurer que les paramètres de référentiel corrects sont activés, procédez comme suit :
|
Ressources connexes
AWS documentation
Autres ressources
À propos des événements qui déclenchent des flux de travail
(GitHub documentation) Réutilisation des flux de travail
(GitHub documentation)
Informations supplémentaires
Pour voir des captures d'écran liées aux Epics, rendez-vous dans le dossier Images du GitHub dépôt de ce modèle. Les captures d'écran suivantes sont disponibles :