Créez une architecture IPAM hiérarchique multirégionale à l'aide de AWS Terraform - 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.

Créez une architecture IPAM hiérarchique multirégionale à l'aide de AWS Terraform

Donny Schreiber, Amazon Web Services

Résumé

La gestion des adresses IP (IPAM) est un élément essentiel de la gestion du réseau, et elle devient de plus en plus complexe à mesure que les entreprises font évoluer leur infrastructure cloud. Sans un IPAM approprié, les entreprises risquent de connaître des conflits d'adresses IP, de gaspiller de l'espace d'adressage et de résoudre des problèmes complexes susceptibles d'entraîner des pannes et des interruptions de service des applications. Ce modèle montre comment implémenter une solution IPAM complète pour les environnements AWS d'entreprise à l'aide de HashiCorp Terraform. Il aide les organisations à créer une architecture IPAM hiérarchique multirégionale qui facilite la gestion centralisée des adresses IP Comptes AWS dans l'ensemble de l'organisation AWS .

Ce modèle vous aide à implémenter le gestionnaire d'adresses IP Amazon VPC avec une hiérarchie de pool sophistiquée à quatre niveaux : pool de niveau supérieur, pools régionaux, pools d'unités commerciales et pools spécifiques à l'environnement. Cette structure permet une bonne gouvernance des adresses IP tout en permettant de déléguer la gestion des adresses IP aux équipes appropriées au sein de l'organisation. La solution utilise AWS Resource Access Manager (AWS RAM) pour partager de manière fluide les pools de gestionnaires d'adresses IP au sein de l'organisation. AWS RAM centralise et normalise les spécifications IPAM, sur lesquelles les équipes peuvent s'appuyer pour tous les comptes gérés.

Ce modèle peut vous aider à atteindre les objectifs suivants :

  • Automatisez l'allocation des adresses IP entre Régions AWS les unités commerciales et les environnements.

  • Appliquez les politiques du réseau organisationnel par le biais de la validation programmatique.

  • Adaptez efficacement l'infrastructure réseau à mesure que les exigences de l'entreprise évoluent.

  • Réduisez les frais d'exploitation grâce à une gestion centralisée des espaces d'adresses IP.

  • Accélérez les déploiements de charges de travail natives dans le cloud grâce à l'allocation de plages CIDR en libre-service.

  • Prévenez les conflits d'adresses grâce à des contrôles et à une validation basés sur des politiques.

Conditions préalables et limitations

Conditions préalables

Limites

  • Le gestionnaire d'adresses IP est soumis à des quotas de service. Le quota de service par défaut pour les pools est de 50 par étendue. L'exécution de ce déploiement pour 6 régions, 2 unités commerciales et 4 environnements créerait 67 pools. Par conséquent, une augmentation des quotas peut s'avérer nécessaire.

  • La modification ou la suppression de pools du gestionnaire d'adresses IP une fois les ressources allouées peut entraîner des problèmes de dépendance. Vous devez libérer l'allocation avant de pouvoir supprimer le pool.

  • Dans le gestionnaire d'adresses IP, la surveillance des ressources peut être légèrement retardée avant de refléter les modifications des ressources. Ce délai peut être d'environ 20 minutes.

  • Le gestionnaire d'adresses IP ne peut pas appliquer automatiquement l'unicité des adresses IP dans différentes zones d'application.

  • Les balises personnalisées doivent respecter les meilleures pratiques en matière AWS de balisage. Par exemple, chaque clé doit être unique et ne peut pas commencer paraws:.

  • L'intégration du Gestionnaire d'adresses IP à des comptes extérieurs à votre organisation comporte des considérations et des limites.

Architecture

Architecture cible

Configuration du gestionnaire d'adresses IP et hiérarchie du pool

Le schéma suivant montre les structures logiques de l'architecture cible. Un scope est le conteneur de plus haut niveau dans le Gestionnaire d'adresses IP. Chaque étendue représente l'espace d'adresses IP d'un réseau unique. Les pools sont des ensembles de plages d'adresses IP contiguës (ou plages CIDR) comprises dans le périmètre. Les pools vous aident à organiser vos adresses IP en fonction de vos besoins en matière de routage et de sécurité. Ce diagramme montre quatre niveaux hiérarchiques de pools : un pool de niveau supérieur, des pools régionaux, des pools d'unités commerciales et des pools d'environnement.

Un périmètre privé et quatre niveaux de pools dans une seule région AWS dans un compte réseau.

Cette solution établit une hiérarchie claire des pools de gestionnaires d'adresses IP :

  1. Le pool de niveau supérieur englobe l'ensemble de l'espace d'adresses IP de l'organisation, tel que10.176.0.0/12.

  2. Les pools régionaux sont destinés aux allocations spécifiques à la région, par exemple pour. 10.176.0.0/15 us-east-1

  3. Les pools d'unités commerciales sont des allocations spécifiques au domaine au sein de chacun d'entre eux. Région AWS Par exemple, l'unité financière de la us-east-1 région pourrait avoir10.176.0.0/16.

  4. Les pools d'environnements sont des allocations spécifiques pour différents environnements. Par exemple, l'unité financière de la us-east-1 région peut avoir 10.176.0.0/18 pour environnement de production.

Cette topologie de déploiement répartit géographiquement les ressources du gestionnaire d'adresses IP tout en maintenant un contrôle centralisé. Ses caractéristiques sont les suivantes :

  • Le gestionnaire d'adresses IP est déployé dans un seul serveur principal Région AWS.

  • Des régions supplémentaires sont enregistrées en tant que régions d'exploitation, dans lesquelles le gestionnaire d'adresses IP peut gérer les ressources.

  • Chaque région d'exploitation reçoit un pool d'adresses dédié du pool de niveau supérieur.

  • Les ressources de toutes les régions d'exploitation sont gérées de manière centralisée via le gestionnaire d'adresses IP dans la région principale.

  • Chaque pool régional possède une propriété locale liée à sa région pour vous aider à allouer correctement les ressources.

Validation avancée de la plage CIDR

Cette solution est conçue pour empêcher le déploiement de configurations non valides. Lorsque vous déployez les pools via Terraform, les éléments suivants sont validés pendant la phase du plan Terraform :

  • Vérifie que toutes les plages CIDR de l'environnement sont contenues dans les plages CIDR de l'unité commerciale mère

  • Confirme que toutes les plages de CIDR des unités commerciales sont contenues dans les plages CIDR régionales de leur société mère

  • Vérifie que toutes les plages CIDR régionales sont contenues dans les plages CIDR de niveau supérieur

  • Vérifie les plages CIDR qui se chevauchent au sein du même niveau hiérarchique

  • Valide le mappage correct des environnements par rapport à leurs unités commerciales respectives

Allocation de plage CIDR

Le schéma suivant montre un exemple de la manière dont les développeurs ou les administrateurs peuvent créer de nouvelles adresses IP VPCs et les allouer à partir des niveaux du pool.

Un périmètre privé et quatre niveaux de pools dans une seule région AWS dans un compte réseau.

Le schéma suivant illustre le flux de travail suivant :

  1. Par le biais du AWS Management Console AWS CLI, ou via l'infrastructure en tant que code (IaC), un développeur ou un administrateur demande la prochaine plage d'adresses CIDR disponible dans le pool d'AY3environnements.

  2. Le gestionnaire d'adresses IP alloue la prochaine plage d'adresses CIDR disponible dans ce pool au VPC. AY3-4 Cette plage d'adresses CIDR ne peut plus être utilisée.

Automatisation et mise à l'échelle

Cette solution est conçue pour être évolutive comme suit :

  • Expansion régionale — Ajoutez de nouvelles régions en étendant la configuration Terraform avec des entrées de pool régionales supplémentaires.

  • Croissance des unités commerciales — Supportez les nouvelles unités commerciales en les ajoutant à la carte de configuration des BU.

  • Flexibilité de l'environnement : configurez différents types d'environnement, tels que le développement ou la production, en fonction des besoins de l'organisation.

  • Support multi-comptes : partagez les pools entre tous les comptes de votre organisation via AWS RAM.

  • Provisionnement VPC automatisé : intégrez-le aux flux de travail de provisionnement VPC pour automatiser l'allocation de plages d'adresses CIDR.

La structure hiérarchique permet également différentes échelles de délégation et de contrôle, telles que les suivantes :

  • Les administrateurs réseau peuvent gérer les pools de niveau supérieur et régionaux.

  • Les équipes informatiques des unités commerciales peuvent avoir délégué le contrôle de leurs pools respectifs.

  • Les équipes chargées des applications peuvent consommer des adresses IP provenant de leurs pools d'environnement désignés.

Note

Vous pouvez également intégrer cette solution à AWS Control Tower Account Factory for Terraform (AFT). Pour plus d'informations, voir Intégration avec AFT dans la section Informations supplémentaires de ce modèle.

Outils

Services AWS

  • Amazon vous CloudWatch aide à surveiller les indicateurs de vos AWS ressources et des applications que vous utilisez AWS en temps réel.

  • AWS Command Line Interface (AWS CLI) est un outil open source qui vous permet d'interagir Services AWS par le biais de commandes dans votre interface de ligne de commande.

  • AWS Organizationsest un service de gestion de comptes qui vous aide à Comptes AWS en regrouper plusieurs au sein d'une organisation que vous créez et gérez de manière centralisée.

  • AWS Resource Access Manager (AWS RAM) vous permet de partager vos ressources en toute sécurité afin Comptes AWS de réduire les frais opérationnels et de garantir visibilité et auditabilité.

  • Amazon Virtual Private Cloud (Amazon VPC) vous aide à lancer AWS des ressources dans un réseau virtuel que vous avez défini. Ce réseau virtuel ressemble à un réseau traditionnel que vous pourriez exécuter dans votre propre centre de données et présente l'avantage d'utiliser l'infrastructure évolutive d' AWS. Le gestionnaire d'adresses IP est une fonctionnalité d'Amazon VPC. Il vous aide à planifier, suivre et surveiller les adresses IP pour vos AWS charges de travail.

Autres outils

  • HashiCorp Terraform est un outil d'infrastructure en tant que code (IaC) qui vous aide à utiliser le code pour provisionner et gérer l'infrastructure et les ressources du cloud.

Référentiel de code

Le code de ce modèle est disponible dans le Sample Terraform Implementation for Hierarchical IPAM sur le référentiel sur AWS. GitHub La structure du référentiel inclut :

  • Module racine : orchestration du déploiement et variables d'entrée.

  • Module IPAM — Implémentation principale de l'architecture décrite dans ce modèle.

  • Module de balises : balisage standardisé pour toutes les ressources.

Bonnes pratiques

Tenez compte des meilleures pratiques suivantes pour la planification du réseau :

  • Planifiez d'abord : planifiez soigneusement votre espace d'adresses IP avant le déploiement. Pour plus d'informations, voir Planifier le provisionnement des adresses IP.

  • Évitez le chevauchement des plages d'adresses CIDR : assurez-vous que les plages d'adresses CIDR de chaque niveau ne se chevauchent pas.

  • Réservez de l'espace tampon — Allouez toujours des plages CIDR supérieures à celles qui sont immédiatement nécessaires pour faire face à la croissance.

  • Documenter l'attribution des adresses IP — Conservez la documentation de votre stratégie d'allocation d'adresses IP.

Tenez compte des meilleures pratiques de déploiement suivantes :

  • Commencez par la non-production : déployez d'abord dans des environnements hors production.

  • Utiliser la gestion des états Terraform : implémentez le stockage et le verrouillage d'états à distance. Pour plus d'informations, consultez State Storage and locking dans la documentation Terraform.

  • Implémenter le contrôle de version — Contrôle de version de tout le code Terraform.

  • Mettre en œuvre CI/CD l'intégration : utilisez des pipelines d'intégration continue et de livraison continue (CI/CD) pour des déploiements reproductibles.

Tenez compte des meilleures pratiques opérationnelles suivantes :

  • Activer l'importation automatique : configurez un pool de gestionnaires d'adresses IP pour découvrir et importer automatiquement les ressources existantes. Suivez les instructions de la section Modifier un pool IPAM pour activer l'importation automatique.

  • Surveiller l'utilisation des adresses IP : configurez des alarmes pour les seuils d'utilisation des adresses IP. Pour plus d'informations, consultez Surveiller l'IPAM avec Amazon CloudWatch.

  • Audit régulier — Vérifiez régulièrement l'utilisation et la conformité des adresses IP. Pour plus d'informations, consultez la section Suivi de l'utilisation des adresses IP dans IPAM.

  • Nettoyer les allocations inutilisées : libérez les allocations d'adresses IP lorsque les ressources sont mises hors service. Pour plus d'informations, voir Déprovisionner CIDRs à partir d'un pool.

Tenez compte des meilleures pratiques de sécurité suivantes :

Épopées

Sous-tâcheDescriptionCompétences requises

Activez AWS Organizations les fonctionnalités.

Assurez-vous que AWS Organizations toutes les fonctionnalités sont activées. Pour obtenir des instructions, consultez la section Activation de toutes les fonctionnalités pour une organisation AWS Organizations dans la AWS Organizations documentation.

Administrateur AWS

Activez le partage des ressources dans AWS RAM.

À l'aide de AWS CLI, entrez la commande suivante pour activer le partage AWS RAM des ressources pour votre organisation :

aws ram enable-sharing-with-aws-organization

Pour plus d'informations, voir Activer le partage des ressources au AWS Organizations sein de la AWS RAM documentation.

Administrateur AWS

Désignez un administrateur pour le gestionnaire d'adresses IP.

À partir du compte de gestion de l'organisation, à l' AWS CLI aide de la commande, entrez la commande suivante, où se 123456789012 trouve l'ID du compte qui administrera le gestionnaire d'adresses IP :

aws ec2 enable-ipam-organization-admin-account \ --delegated-admin-account-id 123456789012
Note

Généralement, un compte réseau ou hub réseau est utilisé en tant qu'administrateur délégué pour IP Address Manager.

Pour plus d'informations, consultez la section Intégrer l'IPAM aux comptes d'une AWS organisation dans la documentation du gestionnaire d'adresses IP.

Administrateur AWS
Sous-tâcheDescriptionCompétences requises

Définissez l'architecture du réseau.

Définissez et documentez l'architecture de votre réseau, y compris les plages CIDR pour les régions, les unités commerciales et les environnements. Pour plus d'informations, consultez la section Planifier le provisionnement des adresses IP dans la documentation du gestionnaire d'adresses IP.

Ingénieur réseau

Pour cloner le référentiel.

  1. Entrez la commande suivante pour cloner le référentiel sur votre station de travail locale :

    git clone https://github.com/aws-samples/sample-amazon-vpc-ipam-terraform.git
  2. Entrez la commande suivante pour accéder au terraform répertoire.

DevOps ingénieur

Configurez les variables.

  1. Ouvrez le fichier terraform.tfvars.

  2. Configurez les variables pour votre déploiement du gestionnaire d'adresses IP. Pour un exemple de fichier terminé, consultez terraform.tfvars.example dans le référentiel de code.

  3. Enregistrez et fermez le fichier terraform.tfvars.

Ingénieur réseau, Terraform

Déployez les ressources du gestionnaire d'adresses IP.

  1. Entrez la commande suivante pour initialiser Terraform :

    terraform init
  2. Entrez la commande suivante pour générer un plan d'exécution :

    terraform plan
  3. Passez en revue le plan et validez les ressources et les composants d'infrastructure qui seront créés.

  4. Entrez la commande suivante pour déployer l'infrastructure :

    terraform apply
  5. Lorsque vous y êtes invité, entrez Oui pour confirmer le déploiement.

  6. Attendez que le déploiement soit terminé.

Terraform

Validez le déploiement.

  1. Connectez-vous à votre Compte AWS, puis ouvrez la console du gestionnaire d'adresses IP.

  2. Dans le panneau de navigation, choisissez Pools (Groupes).

  3. Dans la liste des pools, vérifiez que les pools que vous avez configurés ont été créés.

  4. Ouvrez la AWS RAM console.

  5. Vérifiez que les ressources du gestionnaire d'adresses IP ont été partagées. Suivez les instructions de la section Affichage des partages de ressources que vous avez créés dans la AWS RAM documentation.

AWS général, ingénieur réseau
Sous-tâcheDescriptionCompétences requises

Créez un VPC.

Suivez les étapes décrites dans Créer un VPC dans la documentation Amazon VPC. Lorsque vous avez atteint l'étape consistant à choisir une plage d'adresses CIDR pour le VPC, allouez la plage suivante disponible à partir de l'un de vos pools régionaux, d'unités commerciales ou d'environnements.

AWS général, administrateur réseau, ingénieur réseau

Validez l'allocation de plage CIDR.

  1. Ouvrez la console du gestionnaire d'adresses IP.

  2. Dans le panneau de navigation, sélectionnez Dashboard (Tableau de bord).

  3. Dans le tableau de bord, vérifiez que la plage d'adresses CIDR a été allouée au VPC que vous avez créé.

AWS général, administrateur réseau, ingénieur réseau

Surveillez le gestionnaire d'adresses IP.

Configurez la surveillance et les alarmes liées à l'allocation des ressources du gestionnaire d'adresses IP. Pour plus d'informations et d'instructions, consultez les sections Surveillance de l'IPAM avec Amazon CloudWatch et Surveillance de l'utilisation du CIDR par ressource dans la documentation du gestionnaire d'adresses IP.

AWS général

Imposez l'utilisation du gestionnaire d'adresses IP.

Créez une politique de contrôle des services (SCP) AWS Organizations qui oblige les membres de votre organisation à utiliser le gestionnaire d'adresses IP lorsqu'ils créent un VPC. Pour obtenir des instructions, consultez la section Appliquer l'utilisation d'IPAM pour la création de VPC dans la SCPs documentation du gestionnaire d'adresses IP.

AWS général, administrateur AWS

Résolution des problèmes

ProblèmeSolution

Terraform échoue avec une ressource de gestionnaire d'adresses IP introuvable

Assurez-vous que le compte administrateur du gestionnaire d'adresses IP est correctement délégué et que votre AWS fournisseur est authentifié auprès de ce compte.

L'allocation de la plage CIDR échoue

Vérifiez que la plage d'adresses CIDR demandée correspond à la plage disponible du pool du gestionnaire d'adresses IP et qu'elle ne chevauche pas les allocations existantes.

AWS RAM problèmes de partage

Vérifiez que le partage des ressources est activé pour votre AWS organisation. Vérifiez que le principal correct, l'Amazon Resource Name (ARN) de l'organisation, est utilisé dans le AWS RAM partage.

Erreurs de validation de la hiérarchie du pool

Assurez-vous que les plages CIDR du pool enfant sont correctement contenues dans les plages CIDR du pool parent et qu'elles ne se chevauchent pas avec les pools frères.

La limite de quota du gestionnaire d'adresses IP est dépassée

Demandez une augmentation du quota pour les pools du gestionnaire d'adresses IP. Pour plus d’informations, consultez Demande d’augmentation de quota dans le Guide de l’utilisateur Service Quotas.

Ressources connexes

Service AWS documentation

AWS articles de blog

Vidéos et tutoriels

Informations supplémentaires

Intégration avec AFT

Vous pouvez intégrer cette solution à AWS Control Tower Account Factory for Terraform (AFT) pour vous assurer que les comptes nouvellement provisionnés reçoivent automatiquement les configurations réseau appropriées. En déployant cette solution IPAM dans votre compte de hub réseau, les nouveaux comptes créés via AFT peuvent référencer les pools de gestionnaires d'adresses IP partagés lors de leur création VPCs.

L'exemple de code suivant illustre l'intégration d'AFT dans la personnalisation d'un compte à l'aide de AWS Systems Manager Parameter Store :

# Get the IP Address Manager pool ID from Parameter Store data "aws_ssm_parameter" "dev_ipam_pool_id" { name = "/org/network/ipam/finance/dev/pool-id" } # Create a VPC using the IP Address Manager pool resource "aws_vpc" "this" { ipv4_ipam_pool_id = data.aws_ssm_parameter.dev_ipam_pool_id.value ipv4_netmask_length = 24 tags = { Name = "aft-account-vpc" } }

Stratégie de balisage

La solution met en œuvre une stratégie de balisage complète pour faciliter la gestion des ressources. L'exemple de code suivant montre comment il est utilisé :

# Example tag configuration module "tags" { source = "./modules/tags" # Required tags product_name = "enterprise-network" feature_name = "ipam" org_id = "finance" business_unit = "network-operations" owner = "network-team" environment = "prod" repo = "https://github.com/myorg/ipam-terraform" branch = "main" cost_center = "123456" dr_tier = "tier1" # Optional tags optional_tags = { "project" = "network-modernization" "stack_role" = "infrastructure" } }

Ces balises sont automatiquement appliquées à toutes les ressources du gestionnaire d'adresses IP. Cela facilite la cohérence de la gouvernance, de la répartition des coûts et de la gestion des ressources.