Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Provisionner AWS Service Catalog des produits basés sur AWS CloudFormation des modèles à l'aide d' GitHub actions - Recommandations AWS

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.

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 suivantes et de leurs versions respectives :

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

Utiliser GitHub des actions pour approvisionner les produits Service Catalog sur la base CloudFormation de modèles.
  1. 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.

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

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

  4. 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. Le dépôt contient les fichiers intéressants suivants :

  • 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é avec workflow_call comme déclencheur. En tant que flux de travail réutilisable, il workflow.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èle vpc.yaml est chargé. Bien que ce modèle inclut le vpc.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. Le vpc.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

Épopées

TâcheDescriptionCompé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 de la documentation 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 :

  1. Ouvrez le GitHub dépôt pour ce modèle

  2. Choisissez Code pour voir les options de clonage, puis copiez l'URL fournie dans l'onglet HTTPS.

  3. Créez un dossier pour votre projet sur votre poste de travail.

  4. Ouvrez un terminal et naviguez jusqu'à ce dossier

  5. Pour cloner le GitHub dépôt, exécutez la commande suivante à l'aide de l'URL que vous avez copiée à l'étape 2 :

    git clone https://github.com/aws-samples/service-catalog-with-github-actions.git
  6. Une fois le clonage terminé, pour accéder au dépôt cloné dans le dossier de votre projet, exécutez la commande suivante :

    cd <folder-name>/service-catalog-with-github-actions
  7. Ouvrez le projet dans un environnement de développement intégré (IDE) de votre choix.

DevOps ingénieur

Configuration d'un poste de travail local

TâcheDescriptionCompé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 de la documentation 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 :

  1. Ouvrez le GitHub dépôt pour ce modèle

  2. Choisissez Code pour voir les options de clonage, puis copiez l'URL fournie dans l'onglet HTTPS.

  3. Créez un dossier pour votre projet sur votre poste de travail.

  4. Ouvrez un terminal et naviguez jusqu'à ce dossier

  5. Pour cloner le GitHub dépôt, exécutez la commande suivante à l'aide de l'URL que vous avez copiée à l'étape 2 :

    git clone https://github.com/aws-samples/service-catalog-with-github-actions.git
  6. Une fois le clonage terminé, pour accéder au dépôt cloné dans le dossier de votre projet, exécutez la commande suivante :

    cd <folder-name>/service-catalog-with-github-actions
  7. Ouvrez le projet dans un environnement de développement intégré (IDE) de votre choix.

DevOps ingénieur
TâcheDescriptionCompé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 dans la GitHub documentation.

Une fois qu'un fournisseur OIDC est configuré, la politique de confiance du rôle IAMgithub-actions, mentionnée plus haut dans les conditions préalables, sera mise à jour.

Administrateur AWS, AWS DevOps, AWS général

Configurer le fournisseur OIDC

TâcheDescriptionCompé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 dans la GitHub documentation.

Une fois qu'un fournisseur OIDC est configuré, la politique de confiance du rôle IAMgithub-actions, mentionnée plus haut dans les conditions préalables, sera mise à jour.

Administrateur AWS, AWS DevOps, AWS général
TâcheDescriptionCompétences requises

Mettre à jour e2e-test.yaml.

Le e2e-test.yaml fichier déclenche le flux de travail réutilisable à l'adresseworkflow.yaml. Mettez à jour et validez les valeurs des paramètres d'entrée suivants dans e2e-test.yaml :

  • aws_account_id— Spécifiez le bon Compte AWS.

  • aws_region— Spécifiez le bon Région AWS.

  • s3BucketName— Spécifiez le compartiment Amazon S3 qui doit contenir les CloudFormation modèles.

  • Le fichier de flux de travail nécessite deux rôles IAM en entrée :

    • LaunchConstraintRole- Le rôle IAM qui joue le AWS Service Catalog rôle lorsqu'un utilisateur final lance, met à jour ou met fin à un produit.

    • PrincipalArn- Le nom de ressource Amazon (ARN) du principal (utilisateur, rôle ou groupe IAM) qui sera associé au portefeuille de services Catalog. Dans l'PrincipalTypeaffirmativeIAM, la valeur prise en charge est un nom de ressource IAM Amazon (ARN) entièrement défini. Si tel PrincipalType est le casIAM_PATTERN, la valeur prise AccountID en charge est un ARN IAM sans arn:partition:iam:::resource-type/resource-id

DevOps ingénieur

Pipeline Trigger GitHub Actions pour déployer le portefeuille et les produits Service Catalog

TâcheDescriptionCompétences requises

Mettre à jour e2e-test.yaml.

Le e2e-test.yaml fichier déclenche le flux de travail réutilisable à l'adresseworkflow.yaml. Mettez à jour et validez les valeurs des paramètres d'entrée suivants dans e2e-test.yaml :

  • aws_account_id— Spécifiez le bon Compte AWS.

  • aws_region— Spécifiez le bon Région AWS.

  • s3BucketName— Spécifiez le compartiment Amazon S3 qui doit contenir les CloudFormation modèles.

  • Le fichier de flux de travail nécessite deux rôles IAM en entrée :

    • LaunchConstraintRole- Le rôle IAM qui joue le AWS Service Catalog rôle lorsqu'un utilisateur final lance, met à jour ou met fin à un produit.

    • PrincipalArn- Le nom de ressource Amazon (ARN) du principal (utilisateur, rôle ou groupe IAM) qui sera associé au portefeuille de services Catalog. Dans l'PrincipalTypeaffirmativeIAM, la valeur prise en charge est un nom de ressource IAM Amazon (ARN) entièrement défini. Si tel PrincipalType est le casIAM_PATTERN, la valeur prise AccountID en charge est un ARN IAM sans arn:partition:iam:::resource-type/resource-id

DevOps ingénieur
TâcheDescriptionCompétences requises

Validez les ressources du Service Catalog.

Pour valider les ressources du Service Catalog, procédez comme suit :

  1. Connectez-vous au AWS Management Console Compte AWS, et vérifiez que c' Région AWS est correct.

  2. Accédez à un portefeuille AWS Service Cataloget validez qu'un portefeuille est présent sous Administration, Portefeuilles.

  3. Choisissez le portefeuille et validez les informations dans les onglets Produits, Contraintes et Accès.

AWS DevOps

Valider le déploiement

TâcheDescriptionCompétences requises

Validez les ressources du Service Catalog.

Pour valider les ressources du Service Catalog, procédez comme suit :

  1. Connectez-vous au AWS Management Console Compte AWS, et vérifiez que c' Région AWS est correct.

  2. Accédez à un portefeuille AWS Service Cataloget validez qu'un portefeuille est présent sous Administration, Portefeuilles.

  3. Choisissez le portefeuille et validez les informations dans les onglets Produits, Contraintes et Accès.

AWS DevOps
TâcheDescriptionCompétences requises

Supprimez la CloudFormation pile.

Pour supprimer la CloudFormation pile, procédez comme suit :

  1. Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.

  2. Dans la barre de navigation en haut de l'écran, choisissez l' Région AWS emplacement de la pile.

  3. Sur la page Stacks, choisissez la pile que vous souhaitez supprimer. La pile doit être en cours d’exécution.

  4. Dans le volet des détails de la pile, choisissez Supprimer.

  5. Sélectionnez Supprimer la pile lorsque vous y êtes invité.

Pour plus d'informations, voir Supprimer une pile de la CloudFormation console dans la CloudFormation documentation

DevOps ingénieur, administrateur AWS

Nettoyage des ressources

TâcheDescriptionCompétences requises

Supprimez la CloudFormation pile.

Pour supprimer la CloudFormation pile, procédez comme suit :

  1. Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.

  2. Dans la barre de navigation en haut de l'écran, choisissez l' Région AWS emplacement de la pile.

  3. Sur la page Stacks, choisissez la pile que vous souhaitez supprimer. La pile doit être en cours d’exécution.

  4. Dans le volet des détails de la pile, choisissez Supprimer.

  5. Sélectionnez Supprimer la pile lorsque vous y êtes invité.

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èmeSolution

e2e-test

Can't find 'action.yml', 'action.yaml' or 'Dockerfile' under '*/home/runner/work/service-catalog-with-github-actions/service-catalog-with-github-actions

Did you forget to run actions/checkout before running your local action?

Pour vous assurer que les paramètres de référentiel corrects sont activés, procédez comme suit :

  1. Accédez au référentiel Github, onglet Paramètres.

  2. Choisissez Actions, Général dans le menu de gauche

  3. Accédez à la section Accès et sélectionnez l'option Accessible depuis les référentiels de l'organisation « XXX ».

Ressources connexes

AWS documentation

Autres ressources

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 :

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.