Marquez automatiquement les pièces jointes à Transit Gateway à l'aide d'AWS Organizations - 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.

Marquez automatiquement les pièces jointes à Transit Gateway à l'aide d'AWS Organizations

Créée par Richard Milner-Watts (AWS), Haris Bin Ayub (AWS) et John Capps (AWS)

Dépôt de code : Transit Gateway Attachment Tagger

Environnement : Production

Technologies : mise en réseau ; infrastructure ; gestion et gouvernance ; opérations

Services AWS : AWS Step Functions ; AWS Transit Gateway ; Amazon VPC ; AWS Lambda

Récapitulatif

Sur Amazon Web Services (AWS), vous pouvez utiliser AWS Resource Access Manager pour partager AWS Transit Gateway au-delà des limites de votre compte AWS. Cependant, lorsque vous créez des pièces jointes Transit Gateway au-delà des limites du compte, elles sont créées sans étiquette Name. Cela peut rendre l'identification des pièces jointes fastidieuse. 

Cette solution fournit un mécanisme automatisé pour collecter des informations sur chaque pièce jointe Transit Gateway pour les comptes d'une organisation gérée par AWS Organizations. Le processus consiste à rechercher la plage de routage interdomaines sans classe (CIDR) à partir de la table de routage Transit Gateway. La solution applique ensuite une étiquette de nom sous la forme de <CIDR-range>-<AccountName> à la pièce jointe du compte qui contient la passerelle de transit.

Cette solution peut être utilisée conjointement avec une solution telle que le Serverless Transit Network Orchestrator de la bibliothèque de solutions AWS. Serverless Transit Network Orchestrator permet la création automatisée de pièces jointes Transit Gateway à grande échelle.

Conditions préalables et limitations

Prérequis

  • Un compte AWS actif

  • Une organisation AWS Organizations qui contient tous les comptes associés

  • Accès au compte de gestion de l'organisation, sous la racine de l'organisation, pour créer le rôle AWS Identity and Access Management (IAM) requis

  • Un compte de membre du réseau partagé contenant une ou plusieurs passerelles de transport partagées avec l'organisation et comportant des pièces jointes

Architecture

La capture d'écran suivante de l'AWS Management Console montre des exemples de pièces jointes Transit Gateway sans étiquette de nom associée et de deux pièces jointes Transit Gateway avec des balises de nom générées par cette solution. La structure de la balise Name générée est<CIDR-range>-<AccountName>.

Console affichant les pièces jointes sans étiquette de nom et deux pièces jointes avec balises de nom.

Cette solution utilise AWS CloudFormation pour déployer un flux de travail AWS Step Functions qui gère la création de balises Transit Gateway Name dans toutes les régions configurées. Le flux de travail invoque les fonctions AWS Lambda, qui exécutent les tâches sous-jacentes.

Une fois que la solution a obtenu les noms de compte auprès d'AWS Organizations, la machine d'état Step Functions obtient tous les identifiants des pièces jointes Transit Gateway. Ils sont traités en parallèle par la région AWS. Ce traitement inclut la recherche de la plage CIDR pour chaque pièce jointe. La plage CIDR est obtenue en recherchant dans les tables de routage de Transit Gateway de la région un ID de pièce jointe Transit Gateway correspondant. Si toutes les informations requises sont disponibles, la solution applique un tag Name à la pièce jointe. La solution ne remplacera aucune balise Name existante.

La solution s'exécute selon un calendrier contrôlé par un EventBridge événement Amazon. L'événement initie la solution chaque jour à 6 h 00 UTC.

Pile technologique cible

  • Amazon EventBridge

  • AWS Lambda

  • AWS Organizations

  • AWS Transit Gateway

  • Amazon Virtual Private Cloud (Amazon VPC)

  • AWS X-Ray

Architecture cible

L'architecture de la solution et le flux de travail sont illustrés dans le schéma suivant.

Processus en neuf étapes pour les réseaux partagés et les comptes de gestion de l'organisation.
  1. L'événement planifié initie la règle.

  2. La EventBridge règle démarre la machine d'état Step Functions.

  3. La machine à états invoque la fonction tgw-tagger-organizations-account-query Lambda.

  4. La fonction tgw-tagger-organizations-account-query Lambda assume le rôle dans le compte de gestion de l'organisation.

  5. La fonction tgw-tagger-organizations-account-query Lambda appelle l'API Organizations pour renvoyer les métadonnées du compte AWS.

  6. La machine à états invoque la fonction tgw-tagger-attachment-query Lambda.

  7. Pour chaque région, en parallèle, la machine à états invoque la fonction tgw-tagger-rtb-query Lambda pour lire la plage CIDR de chaque pièce jointe.

  8. Pour chaque région, en parallèle, la machine à états invoque la fonction tgw-tagger-attachment-tagger Lambda.

  9. Des étiquettes nominatives sont créées pour les pièces jointes Transit Gateway dans le compte Shared Networking.

Automatisation et mise à l'échelle

La solution traite chaque région en parallèle afin de réduire la durée totale de l'exécution.

Outils

Services AWS

  • AWS CloudFormation — AWS CloudFormation fournit un moyen de modéliser un ensemble de ressources AWS et tierces connexes, de les fournir rapidement et de manière cohérente, et de les gérer tout au long de leur cycle de vie, en traitant l'infrastructure comme du code.

  • Amazon EventBridge — Amazon EventBridge est un service de bus d'événements sans serveur que vous pouvez utiliser pour connecter vos applications à des données provenant de diverses sources. EventBridge reçoit un événement, un indicateur d'un changement d'environnement, et applique une règle pour acheminer l'événement vers une cible. Les règles associent les événements aux cibles en fonction de la structure de l'événement, appelée schéma d'événements, ou d'un calendrier.

  • AWS Lambda — AWS Lambda est un service de calcul qui prend en charge l'exécution de code sans provisionner ni gérer de serveurs. Lambda exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, passant de quelques requêtes par jour à des milliers par seconde. Vous payez uniquement pour le temps de calcul consommé. Aucun frais n'est facturé si votre code n'est pas en cours d'exécution.

  • AWS Organizations — AWS Organizations vous aide à gérer et à gouverner de manière centralisée votre environnement à mesure que vous développez et adaptez vos ressources AWS. AWS Organizations vous permet de créer par programmation de nouveaux comptes AWS et d'allouer des ressources, de regrouper des comptes pour organiser vos flux de travail, d'appliquer des politiques aux comptes ou aux groupes à des fins de gouvernance et de simplifier la facturation en utilisant un mode de paiement unique pour tous vos comptes.

  • AWS Step Functions — AWS Step Functions est un service de flux de travail visuel à faible code utilisé pour orchestrer les services AWS, automatiser les processus métier et créer des applications sans serveur. Les flux de travail gèrent les échecs, les nouvelles tentatives, la parallélisation, les intégrations de services et l'observabilité afin que les développeurs puissent se concentrer sur une logique métier à plus forte valeur ajoutée.

  • AWS Transit Gateway — AWS Transit Gateway connecte les VPC et les réseaux sur site via un hub central. Cela simplifie votre réseau et met fin aux relations de peering complexes. Il agit comme un routeur cloud, de sorte que chaque nouvelle connexion n'est établie qu'une seule fois.

  • Amazon VPC — Amazon Virtual Private Cloud (Amazon VPC) est un service permettant de lancer des ressources AWS dans un réseau virtuel isolé de manière logique que vous définissez.

  • AWS X-Ray — AWS X-Ray collecte des données sur les demandes traitées par votre application et fournit des outils que vous pouvez utiliser pour visualiser, filtrer et obtenir des informations sur ces données afin d'identifier les problèmes et les opportunités d'optimisation.

Code

Le code source de cette solution est disponible dans le GitHub référentiel Transit Gateway Attachment Tagger. Le référentiel inclut les fichiers suivants :

  • tgw-attachment-tagger-main-stack.yamlcrée toutes les ressources nécessaires à la prise en charge de cette solution dans le compte réseau partagé.

  • tgw-attachment-tagger-organizations-stack.yamlcrée un rôle dans le compte de gestion de l'organisation.

Épopées

TâcheDescriptionCompétences requises

Rassemblez les informations préalables requises.

Pour configurer l'accès entre comptes depuis la fonction Lambda vers l'API AWS Organizations, vous avez besoin de l'ID de compte du compte de gestion de l'organisation.

Remarque : L'ordre dans lequel les deux CloudFormation piles sont créées est important. Vous devez d'abord déployer des ressources dans le compte réseau partagé. Le rôle dans le compte de réseau partagé doit déjà exister avant de déployer des ressources dans le compte de gestion de l'organisation. Pour plus d'informations, consultez la documentation AWS.

DevOps ingénieur

Lancez le CloudFormation modèle pour la pile de solutions principale.

Le modèle de la pile de solutions principale déploiera les rôles IAM, le flux de travail Step Functions, les fonctions Lambda et CloudWatch l'événement.

Ouvrez la console de gestion AWS pour le compte réseau partagé, puis ouvrez la CloudFormation console.  Créez la pile en utilisant le tgw-attachment-tagger-main-stack.yaml modèle et les valeurs suivantes :  

  • Nom de la piletgw-attachment-tagger-main-stack 

  • awsOrganizationsRootAccountId— Numéro de compte pour le compte de gestion de l'organisation

  • Paramètre TGWRegions — Régions AWS pour la solution, saisies sous forme de chaîne séparée par des virgules

  • Paramètre TGWList — Identifiants de passerelle de transit à exclure de la solution, saisis dans une chaîne séparée par des virgules

Pour plus d'informations sur le lancement d'une CloudFormation pile, consultez la documentation AWS.

DevOps ingénieur

Vérifiez que la solution a été lancée avec succès.

Attendez que la CloudFormation pile atteigne le statut CREATE_COMPLETE. Cela devrait prendre moins d'une minute.

Ouvrez la console Step Functions et vérifiez qu'une nouvelle machine à états a été créée avec le nom tgw-attachment-tagger-state-machine.

DevOps ingénieur
TâcheDescriptionCompétences requises

Rassemblez les informations préalables requises.

Pour configurer l'accès entre comptes depuis la fonction Lambda vers l'API AWS Organizations, vous avez besoin de l'ID de compte du compte réseau partagé.

DevOps ingénieur

Lancez le CloudFormation modèle pour la pile Organizations

Le modèle de la pile AWS Organizations déploiera le rôle IAM dans le compte de gestion de l'organisation. 

Accédez à la console AWS pour le compte de gestion de l'organisation, puis ouvrez la CloudFormation console.  Créez la pile en utilisant le tgw-attachment-tagger-organizations-stack.yaml modèle et les valeurs suivantes :

  • Nom de la piletgw-attachment-tagger-organizations-stack

  • NetworkingAccountIdparamètre — ID de compte pour le compte réseau partagé 

Pour les autres options de création de pile, utilisez les valeurs par défaut.

DevOps ingénieur

Vérifiez que la solution a été lancée avec succès.

Attendez que la CloudFormation pile atteigne le statut CREATE_COMPLETE. Cela devrait prendre moins d'une minute.

Ouvrez la console Identity and Access Management (IAM) et vérifiez qu'un nouveau rôle a été créé avec le nom -query-role. tgw-attachment-tagger-organization

DevOps ingénieur
TâcheDescriptionCompétences requises

Lancez la machine d'état.

Ouvrez la console Step Functions pour le compte Shared Networking et choisissez State machines dans le volet de navigation.

Sélectionnez l'état machine tgw-attachment-tagger-state-machine, puis choisissez Start Execution.  

Étant donné que l'entrée de cette machine à états n'est pas utilisée par la solution, vous pouvez utiliser la valeur par défaut.

{ "Comment": "Insert your JSON here" }

Choisissez Démarrer une exécution.

DevOps ingénieur

Surveillez la machine à états jusqu'à ce qu'elle soit terminée.

Sur la nouvelle page qui s'ouvre, vous pouvez regarder la machine d'état fonctionner. La durée dépendra du nombre de pièces jointes Transit Gateway à traiter.

Sur cette page, vous pouvez examiner chaque étape de la machine à états. Vous pouvez consulter les différentes tâches de la machine à états et suivre les liens vers les CloudWatch journaux des fonctions Lambda. Pour les tâches exécutées en parallèle sur la carte, vous pouvez utiliser la liste déroulante Index pour afficher les implémentations spécifiques à chaque région.

DevOps ingénieur

Vérifiez les balises de pièce jointe de Transit Gateway.

Ouvrez la console VPC pour le compte réseau partagé et choisissez Transit Gateway Attachments.  Sur la console, un tag Name est fourni pour les pièces jointes répondant aux critères (la pièce jointe est propagée vers une table de routage Transit Gateway et le propriétaire de la ressource est membre de l'organisation).

DevOps ingénieur

Vérifiez le déclenchement de l' CloudWatch événement.

Attendez que l' CloudWatch événement démarre. Cela est prévu pour 06h00 UTC. 

Ouvrez ensuite la console Step Functions pour le compte Shared Networking et choisissez State machines dans le volet de navigation.

Sélectionnez l'état machine tgw-attachment-tagger-state-machine. Vérifiez que la solution a été exécutée à 6 h 00 UTC.

DevOps ingénieur

Ressources connexes