Erstellen Sie Infoblox-Objekte mit AWS CloudFormation benutzerdefinierten Ressourcen und Amazon SNS - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen Sie Infoblox-Objekte mit AWS CloudFormation benutzerdefinierten Ressourcen und Amazon SNS

Erstellt von Tim Sutton () AWS

Umgebung: PoC oder Pilotprojekt

Technologien: Netzwerke

Arbeitslast: Alle anderen Workloads

AWSDienstleistungen: AmazonSNS; AWS CloudFormation; AWS Lambda AWSKMS; Organizations AWS

Übersicht

Hinweis: AWS Cloud9 ist für Neukunden nicht mehr verfügbar. Bestandskunden von AWS Cloud9 können den Service weiterhin wie gewohnt nutzen. Weitere Informationen

Mit dem Infoblox Domain Name System (DNS), dem Dynamic Host Configuration Protocol (DHCP) und der IP-Adressverwaltung (Infoblox DDI) können Sie eine komplexe Hybridumgebung zentralisieren und effizient steuern. Mit Infoblox DDI können Sie alle Netzwerkressourcen in einer autoritativen IP-Adressverwaltungsdatenbank (IPAM) ermitteln und aufzeichnen. Darüber hinaus können Sie sie vor Ort und in der Amazon Web Services (AWS) Cloud verwaltenDNS, indem Sie dieselben Appliances verwenden.

Dieses Muster beschreibt, wie Sie mithilfe einer AWS CloudFormation benutzerdefinierten Ressource Infoblox-Objekte (z. B. DNS Datensätze oder IPAM Objekte) erstellen, indem Sie die Infoblox aufrufen. WAPI API Weitere Informationen zur Infoblox finden Sie in der Dokumentation in der WAPI Infoblox-Dokumentation. WAPI

Durch die Verwendung des Ansatzes dieses Musters erhalten Sie eine einheitliche Ansicht der DNS Datensätze und IPAM Konfigurationen für Ihre AWS und Ihre lokalen Umgebungen. Außerdem müssen Sie keine manuellen Prozesse mehr durchführen, mit denen Datensätze erstellt und Ihre Netzwerke bereitgestellt werden. Sie können den Ansatz dieses Musters für die folgenden Anwendungsfälle verwenden:

  • Hinzufügen eines A-Eintrags nach dem Erstellen einer Amazon Elastic Compute Cloud (AmazonEC2) -Instanz 

  • Hinzufügen eines CNAME Datensatzes nach dem Erstellen eines Application Load Balancer

  • Hinzufügen eines Netzwerkobjekts nach dem Erstellen einer virtuellen privaten Cloud () VPC

  • Bereitstellung des nächsten Netzwerkbereichs und Verwendung dieses Bereichs zur Erstellung von Subnetzen

Sie können dieses Muster auch erweitern und andere Infoblox-Gerätefunktionen verwenden, z. B. das Hinzufügen verschiedener DNS Datensatztypen oder die Konfiguration von Infoblox. vDiscovery 

Das Muster verwendet ein hub-and-spoke Design, bei dem der Hub Konnektivität zur Infoblox-Appliance in der AWS Cloud oder vor Ort benötigt und AWS Lambda verwendet, um die Infoblox aufzurufen. API Der Spoke befindet sich in demselben oder einem anderen Konto in derselben Organisation in AWS Organizations und ruft die Lambda-Funktion mithilfe einer AWS CloudFormation benutzerdefinierten Ressource auf.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Eine bestehende Infoblox-Appliance oder ein Infoblox-Grid, das in der AWS Cloud, vor Ort oder in beiden Umgebungen installiert und mit einem Admin-Benutzer konfiguriert ist, der die Verwaltung und Aktionen ausführen kann. IPAM DNS Weitere Informationen dazu finden Sie unter Über Administratorkonten in der Infoblox-Dokumentation. 

  • Eine bestehende DNS autoritative Zone, der Sie Datensätze auf der Infoblox-Appliance hinzufügen möchten. Weitere Informationen dazu finden Sie unter Konfiguration autoritativer Zonen in der Infoblox-Dokumentation.  

  • Zwei aktive AWS Konten in AWS Organizations. Ein Konto ist das Hub-Konto und das andere Konto ist das Spoke-Konto.

  • Das Hub- und das Spoke-Konto müssen sich in derselben AWS Region befinden. 

  • Die Hub-Konten VPC müssen eine Verbindung zur Infoblox-Appliance herstellen, z. B. über AWS Transit Gateway oder VPC Peering.

  • AWSServerloses Anwendungsmodell (AWSSAM), lokal installiert und konfiguriert mit AWS Cloud9 oder. AWS CloudShell

  • Die ClientTest.yaml Dateien Infoblox-Hub.zip und (angehängt), die in die lokale Umgebung heruntergeladen wurden, die Folgendes enthält. AWS SAM

Einschränkungen

  • Das Service-Token der AWS CloudFormation benutzerdefinierten Ressource muss aus derselben Region stammen, in der der Stack erstellt wurde. Wir empfehlen, dass Sie in jeder Region ein Hub-Konto verwenden, anstatt in einer Region ein Amazon Simple Notification Service (AmazonSNS) -Thema zu erstellen und die Lambda-Funktion in einer anderen Region aufzurufen.

Produktversionen

  • Infoblox Version 2.7 WAPI

Architektur

Die folgenden Diagramme zeigen den Arbeitsablauf dieses Musters. 

Erstellen von Infoblox-Objekten mithilfe von AWS CloudFormation benutzerdefinierten Ressourcen und Amazon. SNS

Das Diagramm zeigt die folgenden Komponenten für die Lösung dieses Musters:

  1. AWS CloudFormation Mit benutzerdefinierten Ressourcen können Sie benutzerdefinierte Bereitstellungslogik in Vorlagen schreiben, die AWS CloudFormation ausgeführt wird, wenn Sie Stacks erstellen, aktualisieren oder löschen. AWS CloudFormation Sendet beim Erstellen eines Stacks eine create Anfrage an ein SNS Thema, das von einer Anwendung überwacht wird, die auf einer EC2 Instanz ausgeführt wird.

  2. Die SNS Amazon-Benachrichtigung von der AWS CloudFormation benutzerdefinierten Ressource wird mit einem bestimmten AWS Key Management Service (AWSKMS) -Schlüssel verschlüsselt, und der Zugriff ist auf Konten in Ihrer Organisation unter Organizations beschränkt. Das SNS Thema initiiert die Lambda-Ressource, die die Infoblox aufruft. WAPI API

  3. Amazon SNS ruft die folgenden Lambda-Funktionen auf, die Infoblox WAPIURL, den Benutzernamen und das Passwort AWS Secrets Manager Amazon Resource Names (ARNs) als Umgebungsvariablen verwenden: 

    • dnsapi.lambda_handler— Empfängt die DNSValue Werte DNSNameDNSType, und von der AWS CloudFormation benutzerdefinierten Ressource und verwendet diese, um A-Datensätze und zu erstellenDNS. CNAMES

    • ipaddr.lambda_handler— Empfängt dieVPCCIDR, TypeSubnetPrefix, und Network Name Werte von der AWS CloudFormation benutzerdefinierten Ressource und verwendet diese, um die Netzwerkdaten zur IPAM Infoblox-Datenbank hinzuzufügen oder der benutzerdefinierten Ressource das nächste verfügbare Netzwerk zur Verfügung zu stellen, das zum Erstellen neuer Subnetze verwendet werden kann.

    • describeprefixes.lambda_handler— Ruft das auf, describe_managed_prefix_lists AWS API indem es den "com.amazonaws."+Region+".s3" Filter verwendet, um die erforderlichen Daten abzurufen. prefix ID

    Wichtig: Diese Lambda-Funktionen sind in Python geschrieben und ähneln sich, rufen aber unterschiedlich APIs auf.

  4. Sie können das Infoblox-Grid als physische, virtuelle oder cloudbasierte Netzwerk-Appliances bereitstellen.  Es kann vor Ort oder als virtuelle Appliance mithilfe einer Reihe von Hypervisoren bereitgestellt werden, darunter Microsoft Hyper-V VMwareESXi, Linux und Xen. KVM Sie können das Infoblox-Grid auch mit einem Amazon Machine Image () AMI in der AWS Cloud bereitstellen.

  5. Das Diagramm zeigt eine Hybridlösung für das Infoblox-Grid, die Ressourcen in der AWS Cloud DNS und vor IPAM Ort bereitstellt und für sie bereitstellt.

Technologie-Stack

  • AWS CloudFormation

  • IAM

  • AWS KMS

  • AWSLambda

  • AWS SAM

  • AWS Secrets Manager

  • Amazon SNS

  • Amazon VPC 

Tools

  • AWS CloudFormationhilft Ihnen dabei, AWS Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS Konten und Regionen hinweg zu verwalten.

  • AWSIdentity and Access Management (IAM) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.

  • AWSMit dem Key Management Service (AWSKMS) können Sie kryptografische Schlüssel erstellen und kontrollieren, um Ihre Daten zu schützen.

  • AWSLambda ist ein Rechendienst, mit dem Sie Code ausführen können, ohne Server bereitstellen oder verwalten zu müssen. Er führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.

  • AWSOrganizations ist ein Kontoverwaltungsdienst, mit dem Sie mehrere AWS Konten zu einer Organisation zusammenfassen können, die Sie erstellen und zentral verwalten.

  • AWSSecrets Manager hilft Ihnen dabei, hartcodierte Anmeldeinformationen in Ihrem Code, einschließlich Kennwörtern, durch einen API Aufruf von Secrets Manager zu ersetzen, um das Geheimnis programmgesteuert abzurufen.

  • AWSServerless Application Model (AWSSAM) ist ein Open-Source-Framework, mit dem Sie serverlose Anwendungen in der Cloud erstellen können. AWS

  • Amazon Simple Notification Service (AmazonSNS) unterstützt Sie bei der Koordination und Verwaltung des Nachrichtenaustauschs zwischen Herausgebern und Kunden, einschließlich Webservern und E-Mail-Adressen.

  • Amazon Virtual Private Cloud (AmazonVPC) hilft Ihnen dabei, AWS Ressourcen in einem von Ihnen definierten virtuellen Netzwerk bereitzustellen. Dieses virtuelle Netzwerk ähnelt einem herkömmlichen Netzwerk, das Sie in Ihrem eigenen Rechenzentrum betreiben würden, und bietet die Vorteile der Nutzung der skalierbaren Infrastruktur vonAWS.

Code

Sie können die ClientTest.yaml AWS CloudFormation Beispielvorlage (im Anhang) verwenden, um den Infoblox-Hub zu testen. Sie können die AWS CloudFormation Vorlage so anpassen, dass sie die benutzerdefinierten Ressourcen aus der folgenden Tabelle enthält.

Erstellen Sie einen A-Datensatz mithilfe der benutzerdefinierten Infoblox-Spoke-Ressource

Rückgabewerte

infobloxref — Infoblox-Referenzen

Beispielressource:

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'

Erstellen Sie einen CNAME Datensatz mit der benutzerdefinierten Infoblox Spoke-Ressource

Rückgabewerte

infobloxref — Infoblox-Referenzen

Beispielressource:

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'

Erstellen Sie ein Netzwerkobjekt mithilfe der benutzerdefinierten Infoblox Spoke-Ressource

Rückgabewerte:

infobloxref — Infoblox-Referenzen

network— Netzwerkreichweite (dieselbe wie) VPCCIDR

Beispielressource:

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

Rufen Sie das nächste verfügbare Subnetz mithilfe der benutzerdefinierten Infoblox-Spoke-Ressource ab

Rückgabewerte:

infobloxref— Infoblox-Referenzen

network — Die Netzwerkreichweite des Subnetzes

Beispielressource:

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

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie eine VPC mit einer Verbindung zur Infoblox-Appliance.

Melden Sie sich bei der AWS Management Console für Ihr Hub-Konto an und erstellen Sie ein, VPC indem Sie den Schritten in der Amazon VPC on the AWS Cloud Quick Start-Referenzbereitstellung von AWS Quick Starts folgen.

Wichtig: Sie VPC müssen über HTTPS Konnektivität zur Infoblox-Appliance verfügen. Wir empfehlen, für diese Verbindung ein privates Subnetz zu verwenden.

Netzwerkadministrator, Systemadministrator

(Optional) Erstellen Sie die VPC Endpunkte für private Subnetze.

VPCEndpunkte bieten Konnektivität zu öffentlichen Diensten für Ihre privaten Subnetze. Die folgenden Endpunkte sind erforderlich:

  • Ein Gateway-Endpunkt für Amazon Simple Storage Service (Amazon S3), mit dem Lambda kommunizieren kann AWS CloudFormation

  • Ein Schnittstellenendpunkt für Secrets Manager, um Konnektivität mit Secrets Manager zu ermöglichen

  • Ein Schnittstellen-Endpunkt AWSKMS, um die Verschlüsselung des SNS Themas und des Secrets Manager Manager-Geheimnisses zu ermöglichen

Weitere Informationen zum Erstellen von Endpunkten für private Subnetze finden Sie unter VPCEndpoints in der Amazon-Dokumentation. VPC

Netzwerkadministrator, Systemadministrator
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie die AWS SAM Vorlage.

  1. Führen Sie den unzip Infoblox-Hub.zip Befehl in der Umgebung aus, die enthält AWSSAM.

  2. Führen Sie den cd Hub/ Befehl aus, um Ihr Verzeichnis in das Hub Verzeichnis zu ändern.

  3. Führen Sie den sam build Befehl aus, um die AWS SAM Vorlagendatei, den Anwendungscode und alle sprachspezifischen Dateien und Abhängigkeiten zu verarbeiten. Der sam build Befehl kopiert außerdem Buildartefakte in dem Format und an dem Speicherort, die für die folgende Geschichte erwartet werden.

Entwickler, Systemadministrator

Stellen Sie die AWS SAM Vorlage bereit.

Der sam deploy Befehl verwendet die erforderlichen Parameter und speichert sie in der samconfig.toml Datei, speichert die AWS CloudFormation Vorlagen- und Lambda-Funktionen in einem S3-Bucket und stellt die AWS CloudFormation Vorlage dann in Ihrem Hub-Konto bereit.  

Der folgende Beispielcode zeigt, wie die Vorlage bereitgestellt wird AWSSAM:

$ 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]:

Wichtig: Sie müssen die --guided Option jedes Mal verwenden, da die Infoblox-Anmeldeinformationen nicht in der Datei gespeichert sind. samconfig.toml

Entwickler, Systemadministrator

Zugehörige Ressourcen

Anlagen

Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip