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
Un ou plusieurs Comptes AWS, gérés en tant qu'organisation dans AWS Organizations.
Un hub réseau ou un compte de gestion réseau qui servira d'administrateur délégué du gestionnaire d'adresses IP.
AWS Command Line Interface (AWS CLI), installé et configuré.
Autorisations pour gérer le gestionnaire d'adresses IP et les clouds privés virtuels (VPCs) configurés dans Gestion des identités et des accès AWS (IAM). AWS RAM
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 par
aws:.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.

Cette solution établit une hiérarchie claire des pools de gestionnaires d'adresses IP :
Le pool de niveau supérieur englobe l'ensemble de l'espace d'adresses IP de l'organisation, tel que
10.176.0.0/12.Les pools régionaux sont destinés aux allocations spécifiques à la région, par exemple pour.
10.176.0.0/15us-east-1Les 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-1région pourrait avoir10.176.0.0/16.Les pools d'environnements sont des allocations spécifiques pour différents environnements. Par exemple, l'unité financière de la
us-east-1région peut avoir10.176.0.0/18pour 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.

Le schéma suivant illustre le flux de travail suivant :
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.Le gestionnaire d'adresses IP alloue la prochaine plage d'adresses CIDR disponible dans ce pool au VPC.
AY3-4Cette 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
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 :
Implémenter le moindre privilège : utilisez des rôles IAM dotés des autorisations minimales requises. Pour plus d'informations, consultez les meilleures pratiques de sécurité dans IAM et la gestion des identités et des accès dans IPAM.
Utiliser des politiques de contrôle des services : implémentez des politiques de contrôle des services (SCPs) pour renforcer l'utilisation du gestionnaire d'adresses IP dans votre organisation. Pour plus d'informations, consultez Imposer l'utilisation d'IPAM pour la création de VPC avec. SCPs
Contrôlez le partage des ressources : gérez avec soin l'étendue du partage des ressources du gestionnaire d'adresses IP dans AWS RAM. Pour plus d'informations, voir Partager un pool IPAM à l'aide AWS RAM de.
Appliquer le balisage : implémentez le balisage obligatoire pour toutes les ressources liées au gestionnaire d'adresses IP. Pour plus d'informations, consultez la section Stratégie de balisage dans la section Informations supplémentaires.
Épopées
| Sous-tâche | Description | Compé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 :
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
NoteGé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âche | Description | Compé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. |
| DevOps ingénieur |
Configurez les variables. |
| Ingénieur réseau, Terraform |
Déployez les ressources du gestionnaire d'adresses IP. |
| Terraform |
Validez le déploiement. |
| AWS général, ingénieur réseau |
| Sous-tâche | Description | Compé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. |
| 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ème | Solution |
|---|---|
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.