Créez des objets Infoblox à l'aide des ressources CloudFormation personnalisées AWS et d'Amazon SNS - 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 des objets Infoblox à l'aide des ressources CloudFormation personnalisées AWS et d'Amazon SNS

Créée par Tim Sutton (AWS)

Récapitulatif

Remarque : n' AWS Cloud9 est plus disponible pour les nouveaux clients. Les clients existants de AWS Cloud9 peuvent continuer à utiliser le service normalement. En savoir plus

Le système de noms de domaine (DNS) Infoblox, le protocole DHCP (Dynamic Host Configuration Protocol) et la gestion des adresses IP (Infoblox DDI) vous permettent de centraliser et de contrôler efficacement un environnement hybride complexe. Avec Infoblox DDI, vous pouvez découvrir et enregistrer tous les actifs du réseau dans une base de données de gestion des adresses IP (IPAM) faisant autorité, en plus de gérer le DNS sur site et sur le cloud Amazon Web Services (AWS) en utilisant les mêmes appareils.

Ce modèle décrit comment utiliser une ressource CloudFormation personnalisée AWS pour créer des objets Infoblox (par exemple, des enregistrements DNS ou des objets IPAM) en appelant l'API Infoblox WAPI. Pour plus d'informations sur l'Infoblox WAPI, consultez la documentation WAPI dans la documentation Infoblox.

En utilisant l'approche de ce modèle, vous pouvez obtenir une vue unifiée des enregistrements DNS et des configurations IPAM pour vos environnements AWS et sur site, en plus de supprimer les processus manuels qui créent des enregistrements et approvisionnent vos réseaux. Vous pouvez utiliser l'approche de ce modèle pour les cas d'utilisation suivants :

  • Ajouter un enregistrement A après avoir créé une instance Amazon Elastic Compute Cloud (Amazon EC2) 

  • Ajouter un enregistrement CNAME après avoir créé un Application Load Balancer

  • Ajouter un objet réseau après la création d'un cloud privé virtuel (VPC)

  • Fournir la plage réseau suivante et utiliser cette plage pour créer des sous-réseaux

Vous pouvez également étendre ce modèle et utiliser d'autres fonctionnalités de l'appareil Infoblox, telles que l'ajout de différents types d'enregistrement DNS ou la configuration d'Infoblox vDiscovery. 

Le modèle utilise une hub-and-spoke conception dans laquelle le hub nécessite une connectivité à l'appliance Infoblox sur le cloud AWS ou sur site et utilise AWS Lambda pour appeler l'API Infoblox. Le spoke se trouve sur le même compte ou sur un compte différent de la même organisation dans AWS Organizations et appelle la fonction Lambda à l'aide d'une ressource CloudFormation personnalisée AWS.

Conditions préalables et limitations

Prérequis

  • Une appliance ou une grille Infoblox existante, installée sur le cloud AWS, sur site, ou les deux, et configurée avec un utilisateur administrateur capable d'administrer les actions IPAM et DNS. Pour plus d'informations à ce sujet, consultez la section À propos des comptes d'administrateur dans la documentation d'Infoblox. 

  • Zone DNS autoritaire existante à laquelle vous souhaitez ajouter des enregistrements sur l'appliance Infoblox. Pour plus d'informations à ce sujet, consultez la section Configuration des zones faisant autorité dans la documentation d'Infoblox.  

  • Deux comptes AWS actifs dans AWS Organizations. L'un des comptes est le compte hub et l'autre est le compte Spoke.

  • Les comptes hub et spoke doivent se trouver dans la même région AWS. 

  • Le VPC du compte hub doit se connecter à l'appliance Infoblox, par exemple en utilisant AWS Transit Gateway ou le peering VPC.

  • AWS Serverless Application Model (AWS SAM), installé et configuré localement avec AWS Cloud9 ou AWS. CloudShell

  • Les ClientTest.yaml fichiers Infoblox-Hub.zip et (joints), téléchargés dans l'environnement local qui contient AWS SAM.

Limites

  • Le jeton de service de la ressource CloudFormation personnalisée AWS doit provenir de la même région que celle dans laquelle la pile est créée. Nous vous recommandons d'utiliser un compte hub dans chaque région, au lieu de créer une rubrique Amazon Simple Notification Service (Amazon SNS) dans une région et d'appeler la fonction Lambda dans une autre région.

Versions du produit

  • API Infoblox version 2.7

Architecture

Les diagrammes suivants montrent le flux de travail de ce modèle. 

Création d'objets Infoblox à l'aide des ressources CloudFormation personnalisées d'AWS et d'Amazon SNS.

Le schéma montre les composants suivants pour la solution de ce modèle :

  1. CloudFormation Les ressources personnalisées AWS vous permettent d'écrire une logique de provisionnement personnalisée dans des modèles qu'AWS CloudFormation exécute lorsque vous créez, mettez à jour ou supprimez des piles. Lorsque vous créez une pile, AWS CloudFormation envoie une create demande à une rubrique SNS surveillée par une application exécutée sur une EC2 instance.

  2. La notification Amazon SNS provenant de la ressource CloudFormation personnalisée AWS est chiffrée au moyen d'une clé AWS Key Management Service (AWS KMS) spécifique et l'accès est limité aux comptes de votre organisation dans Organizations. La rubrique SNS lance la ressource Lambda qui appelle l'API WAPI Infoblox.

  3. Amazon SNS invoque les fonctions Lambda suivantes qui utilisent l'URL de l'API Infoblox, le nom d'utilisateur et le mot de passe AWS Secrets Manager Amazon Resource Names () comme variables d'environnement : ARNs 

    • dnsapi.lambda_handler— Reçoit les DNSValue valeurs DNSNameDNSType, et de la ressource CloudFormation personnalisée AWS et les utilise pour créer des enregistrements DNS A et des CNAMES.

    • ipaddr.lambda_handler— Reçoit les Network Name valeurs VPCCIDR TypeSubnetPrefix,, et de la ressource CloudFormation personnalisée AWS et les utilise pour ajouter les données réseau dans la base de données Infoblox IPAM ou fournir la ressource personnalisée au prochain réseau disponible pouvant être utilisé pour créer de nouveaux sous-réseaux.

    • describeprefixes.lambda_handler— Appelle l'API describe_managed_prefix_lists AWS en utilisant le "com.amazonaws."+Region+".s3" filtre pour récupérer les informations requisesprefix ID.

    Important

    Ces fonctions Lambda sont écrites en Python et sont similaires les unes aux autres, mais leurs appels sont différents. APIs

  4. Vous pouvez déployer la grille Infoblox sous forme d'appliances réseau physiques, virtuelles ou basées sur le cloud.  Il peut être déployé sur site ou en tant qu'appliance virtuelle à l'aide d'une gamme d'hyperviseurs, notamment VMware ESXi Microsoft Hyper-V, Linux KVM et Xen. Vous pouvez également déployer la grille Infoblox sur le cloud AWS avec une Amazon Machine Image (AMI).

  5. Le schéma montre une solution hybride pour la grille Infoblox qui fournit le DNS et l'IPAM aux ressources sur le cloud AWS et sur site.

Pile technologique

  • AWS CloudFormation

  • IAM

  • AWS KMS

  • AWS Lambda

  • AWS SAM

  • AWS Secrets Manager

  • Amazon SNS

  • Amazon VPC 

Outils

  • AWS vous CloudFormation aide à configurer les ressources AWS, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie sur l'ensemble des comptes et des régions AWS.

  • AWS Identity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos ressources AWS en contrôlant qui est authentifié et autorisé à les utiliser.

  • AWS Key Management Service (AWS KMS) vous aide à créer et à contrôler des clés cryptographiques afin de protéger vos données.

  • AWS Lambda est un service de calcul qui vous permet d'exécuter du code sans avoir à provisionner ou à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.

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

  • AWS Secrets Manager vous aide à remplacer les informations d'identification codées en dur dans votre code, y compris les mots de passe, par un appel d'API à Secrets Manager pour récupérer le secret par programmation.

  • AWS Serverless Application Model (AWS SAM) est un framework open source qui vous aide à créer des applications sans serveur dans le cloud AWS.

  • Amazon Simple Notification Service (Amazon SNS) vous aide à coordonner et à gérer l'échange de messages entre les éditeurs et les clients, y compris les serveurs Web et les adresses e-mail.

  • Amazon Virtual Private Cloud (Amazon VPC) vous aide à lancer des ressources AWS dans un réseau virtuel que vous avez défini. Ce réseau virtuel ressemble à un réseau traditionnel que vous exploiteriez dans votre propre centre de données, avec les avantages liés à l'utilisation de l'infrastructure évolutive d'AWS.

Code

Vous pouvez utiliser l'ClientTest.yamlexemple de CloudFormation modèle AWS (ci-joint) pour tester le hub Infoblox. Vous pouvez personnaliser le CloudFormation modèle AWS pour inclure les ressources personnalisées du tableau suivant.

Créez un enregistrement A à l'aide de la ressource personnalisée Infoblox Spoke

Valeurs renvoyées : 

infobloxref — Références d'Infoblox

Exemple de ressource :

ARECORDCustomResource: Type: "Custom::InfobloxAPI" Properties: ServiceToken: !Sub arn:aws:sns:${AWS::Region}:${HubAccountID}:RunInfobloxDNSFunction DNSName: 'arecordtest.company.com' DNSType: 'ARecord' DNSValue: '10.0.0.1'

Créez un enregistrement CNAME à l'aide de la ressource personnalisée Infoblox Spoke

Valeurs renvoyées : 

infobloxref — Références d'Infoblox

Exemple de ressource :

CNAMECustomResource: Type: "Custom::InfobloxAPI" Properties: ServiceToken: !Sub arn:aws:sns:${AWS::Region}:${HubAccountID}:RunInfoblox DNSFunction DNSName: 'cnametest.company.com' DNSType: 'cname' DNSValue: 'aws.amazon.com'

Créez un objet réseau à l'aide de la ressource personnalisée Infoblox Spoke

Valeurs renvoyées :

infobloxref — Références d'Infoblox

network— Portée du réseau (identique àVPCCIDR)

Exemple de ressource :

VPCCustomResource: Type: 'Custom::InfobloxAPI' Properties: ServiceToken: !Sub arn:aws:sns:${AWS::Region}:${HubAccountID}:RunInfobloxNextSubnetFunction VPCCIDR: !Ref VpcCIDR Type: VPC NetworkName: My-VPC

Récupérez le prochain sous-réseau disponible à l'aide de la ressource personnalisée Infoblox Spoke

Valeurs renvoyées :

infobloxref— Références d'Infoblox

network — La portée réseau du sous-réseau

Exemple de ressource :

Subnet1CustomResource: Type: 'Custom::InfobloxAPI' DependsOn: VPCCustomResource Properties: ServiceToken: !Sub arn:aws:sns:${AWS::Region}:${HubAccountID}:RunInfobloxNextSubnetFunction VPCCIDR: !Ref VpcCIDR Type: Subnet SubnetPrefix: !Ref SubnetPrefix NetworkName: My-Subnet

Épopées

TâcheDescriptionCompétences requises

Créez un VPC avec une connexion à l'appliance Infoblox.

Connectez-vous à la console de gestion AWS pour votre compte hub et créez un VPC en suivant les étapes décrites dans le déploiement de référence Amazon VPC on the AWS Cloud Quick Start à partir d'AWS Quick Starts.

Important

Le VPC doit disposer d'une connectivité HTTPS avec l'appliance Infoblox et nous vous recommandons d'utiliser un sous-réseau privé pour cette connexion.

Administrateur réseau, administrateur système

(Facultatif) Créez les points de terminaison VPC pour les sous-réseaux privés.

Les points de terminaison VPC fournissent une connectivité aux services publics pour vos sous-réseaux privés. Les points de terminaison suivants sont requis :

  • Un point de terminaison de passerelle pour Amazon Simple Storage Service (Amazon S3) permettant à Lambda de communiquer avec AWS CloudFormation

  • Un point de terminaison d'interface permettant à Secrets Manager de se connecter à Secrets Manager

  • Un point de terminaison d'interface pour AWS KMS permettant le chiffrement de la rubrique SNS et du secret Secrets Manager

Pour plus d'informations sur la création de points de terminaison pour les sous-réseaux privés, consultez la section Points de terminaison VPC dans la documentation Amazon VPC.

Administrateur réseau, administrateur système
TâcheDescriptionCompétences requises

Créez le modèle AWS SAM.

  1. Exécutez la unzip Infoblox-Hub.zip commande dans l'environnement qui contient AWS SAM.

  2. Exécutez la cd Hub/ commande pour remplacer votre répertoire par le Hub répertoire.

  3. Exécutez la sam build commande pour traiter le fichier modèle AWS SAM, le code de l'application, ainsi que tous les fichiers et dépendances spécifiques à la langue. La sam build commande copie également les artefacts de construction au format et à l'emplacement attendus pour l'histoire suivante.

Développeur, administrateur système

Déployez le modèle AWS SAM.

La sam deploy commande prend les paramètres requis et les enregistre dans le samconfig.toml fichier, stocke le CloudFormation modèle AWS et les fonctions Lambda dans un compartiment S3, puis déploie le CloudFormation modèle AWS dans votre compte de hub.  

L'exemple de code suivant montre comment déployer le modèle AWS SAM :

$ sam deploy --guided Configuring SAM deploy ====================== Looking for config file [samconfig.toml] : Found Reading default arguments : Success Setting default arguments for 'sam deploy' ========================================= Stack Name [Infoblox-Hub]: AWS Region [eu-west-1]: Parameter InfobloxUsername: Parameter InfobloxPassword: Parameter InfobloxIPAddress [xxx.xxx.xx.xxx]: Parameter AWSOrganisationID [o-xxxxxxxxx]: Parameter VPCID [vpc-xxxxxxxxx]: Parameter VPCCIDR [xxx.xxx.xxx.xxx/16]: Parameter VPCSubnetID1 [subnet-xxx]: Parameter VPCSubnetID2 [subnet-xxx]: Parameter VPCSubnetID3 [subnet-xxx]: Parameter VPCSubnetID4 []: #Shows you resources changes to be deployed and require a 'Y' to initiate deploy Confirm changes before deploy [Y/n]: y #SAM needs permission to be able to create roles to connect to the resources in your template Allow SAM CLI IAM role creation [Y/n]: n Capabilities [['CAPABILITY_NAMED_IAM']]: Save arguments to configuration file [Y/n]: y SAM configuration file [samconfig.toml]: SAM configuration environment [default]:
Important

Vous devez utiliser --guided cette option à chaque fois car les informations de connexion à Infoblox ne sont pas stockées dans le fichier. samconfig.toml

Développeur, administrateur système

Ressources connexes

Pièces jointes

Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip