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)

Récapitulatif

Sur Amazon Web Services (AWS), vous pouvez utiliser AWS Resource Access Managerpour partager Compte AWS au-delà des AWS Transit Gatewayfrontières. 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 recueillir 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 AWS solutions. Serverless Transit Network Orchestrator permet la création automatique de pièces jointes Transit Gateway Gateway à grande échelle.

Conditions préalables et limitations

Prérequis

  • Un actif Compte AWS

  • Une AWS Organizations organisation 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 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 permet AWS CloudFormationde déployer un AWS Step Functionsflux de travail qui gère la création de balises Transit Gateway Name sur toutes les configurations Régions AWS. Le flux de travail invoque AWS Lambdades fonctions qui exécutent les tâches sous-jacentes.

Une fois que la solution a obtenu les noms des comptes AWS Organizations, la machine d'état Step Functions obtient toutes les pièces jointes Transit Gateway IDs. Elles sont traitées en parallèle par Region. 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 Compte AWS des métadonnées.

  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 CloudFormationpermet de modéliser un ensemble de ressources connexes AWS et tierces, de les approvisionner 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 vous CloudWatch aide à surveiller les indicateurs de vos ressources AWS et des applications que vous exécutez AWS en temps réel.

  • 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 Lambdaest un service de calcul qui prend en charge l'exécution de code sans provisionnement ni gestion 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 Organizationsvous permet de gérer et de gouverner votre environnement de manière centralisée à mesure que vous développez et faites évoluer vos AWS ressources. Organizations vous permet de créer de nouvelles ressources Comptes AWS et de les allouer par programmation, 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 Functionsest un service de flux de travail visuel à faible code utilisé pour orchestrer 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 Gatewayconnecte VPCs et met en place des 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 Virtual Private Cloud (Amazon VPC) est un service permettant de lancer AWS des ressources dans un réseau virtuel logiquement isolé que vous définissez.

  • AWS X-Raycollecte des données sur les demandes traitées par votre application et fournit des outils que vous pouvez utiliser pour afficher, 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 AWS Organizations l'API, vous avez besoin de l'ID de compte du compte de gestion de l'organisation.

Note

L'ordre dans lequel les deux AWS 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 AWS 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 l'événement Amazon CloudWatch .

Ouvrez le compte AWS Management Console pour le réseau partagé, puis ouvrez la console : &CFN.  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

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

  • TGWListparamètre — Passerelle IDs de transit à exclure de la solution, saisie dans une chaîne séparée par des virgules

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

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 AWS CloudFormation pile atteigne le statut CREATE_COMPLETE. Cela devrait prendre moins d'une minute.

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

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.  

Comme 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