
kontaktiere uns


Manchmal ist es notwendig, das komplett neu aufzubauen Amazon Webservice (AWS) Infrastruktur, da sie strukturelle Probleme und Sicherheitsprobleme aufweisen kann, die zu unangenehmen Situationen führen können.
Ich habe kürzlich diesen gesamten Prozess durchlaufen und es hat eine Weile gedauert, bis er abgeschlossen war, da er nicht immer so intuitiv war, wie er sein sollte. Um sicherzugehen, dass Sie nicht auf dieselben Hindernisse stoßen, stelle ich Ihnen hier eine AWS-Tutorial Schritt für Schritt das deckt alles ab, was Sie wissen müssen, um das Infrastrukturmanagement zu konfigurieren.
Fangen wir ganz am Anfang an.
Sie haben gerade Ihr AWS-Konto erstellt und jetzt ist es an der Zeit, mit dem Aufbau Ihrer eigenen Infrastruktur zu beginnen. Ich schätze, Sie hätten gerne eine Produktionsumgebung und auch eine Testumgebung (QA), oder?
Wenn das der Fall ist, ist es wichtig trennen Sie Ihre Umgebungen. Verwenden Sie nicht dieselbe VPC für beide. Stattdessen sollten Sie verschiedene VPCs mit eigenen Subnetzen, Sicherheitsgruppen, Routing-Tabellen und Internet-Gateways erstellen, um sicherzustellen, dass Ihre Umgebungen unabhängig sind.
Dadurch wird vermieden, dass Ihre QA-Umgebung angegriffen wird und Ihre Produktionsumgebung kurz darauf folgt.
Lassen Sie uns also die erste VPC erstellen. Sie können beginnen, indem Sie im Haupt-Dashboard VPC auswählen:
Als nächstes klicken Sie auf VPC erstellen:
Sie erhalten diesen Bildschirm:
Der nächste Schritt ist sehr wichtig, da Sie hier Ihren VPC-Konfigurationstyp auswählen können. Stellen Sie sich vor, Sie haben eine einfache Anwendung (eine einfache Website wie WordPress und MySQL zum Beispiel). Ihre beste VPC-Konfiguration wäre die erste (mit einem einzigen öffentlichen Subnetz).
Wenn Sie jedoch eine große Anwendung haben, die mit Microservices erstellt wurde und einige von ihnen öffentlichen Zugriff benötigen, während andere dies nicht tun, die zweite
Option ist die beste.
Nur eine kurze Erklärung zu Subnetzen: Sie sind Netzwerkcontainer (Knoten) in Ihrer VPC und ermöglichen es Ihnen, Zugriffsregeln zu erstellen (z. B. Verkehr und öffentlicher Zugriff).
Nehmen wir nun an, Sie möchten eine VPC mit öffentlichen und privaten Subnetzen erstellen. Wählen Sie einfach die richtige Option (auf dem vorherigen Bild) und klicken Sie auf Auswählen, um diesen Bildschirm anzuzeigen.
Sie können die IP-Bereiche nach Ihren Bedürfnissen konfigurieren und auch Ihre Subnetze benennen. Was die Verfügbarkeitszonen und Regionen anbelangt, so ist jede Region nach geografischen Gebieten organisiert und jede enthält die verfügbaren Zonen, die miteinander verbunden sind.
In Bezug auf das NAT-Gateway können Sie eine Elastic Allocation IP (öffentliche IPv4-Adresse, die über das Internet erreichbar ist) verwenden oder eine NAT-Instance erstellen (eine EC2-Instance mit speziell konfigurierten Routingtabellen). Persönlich würde ich das NAT-Gateway wählen, da eine EC2-Instance normalerweise mehr Stabilitätsprobleme hat.
Ihre VPC ist jetzt fast einsatzbereit. Zunächst sollten Sie, wie in den Bildern unten zu sehen, eine Reihe von Subnetzen haben, ein privates und ein öffentliches, eine Reihe von Routing-Tabellen, ein Internet-Gateway, das standardmäßig der VPC zugeordnet ist, und ein NAT-Gateway, das dem öffentlichen Subnetz zugeordnet ist. Alternativ können Sie die NAT-Instance auswählen.
Bitte beachten Sie, dass NAT-Gateways sind nicht im kostenlosen Kontingent von AWS enthalten.
Nur eine Randnotiz zu den Routen: Sie werden feststellen, dass eine von ihnen auf die beiden Subnetze zeigt, um sicherzustellen, dass sie sich unterhalten zueinander.
Die ersten Schritte sind getan und wir haben jetzt eine frische neue VPC, die bereit ist zu rocken! Lassen Sie uns nun andere wichtige Themen behandeln, z. B. die Erstellung von EC2-Instances.
Sollten wir direkten Zugriff (SSH) auf die EC2-Instances zulassen? Das sollten wir auf keinen Fall! Selbst wenn Sie einen anderen Port einrichten, den Root-Zugriff blockieren und den Zugriff nur über eine private Schlüsseldatei (PEM-Datei) zulassen, ist die Antwort immer noch dieselbe.
Die beste Lösung besteht darin, einen VPN-Zugriff auf einen Bastion-Server zu verwenden (eine EC2-Instance, die über SSH eine Verbindung zu allen Maschinen in der VPC herstellen kann). Auf diese Bastion sollte nur mit einem autorisierten Schlüssel (von AWS generierter PEM-Dateischlüssel) zugegriffen und dieser in einem nicht standardmäßigen Port konfiguriert werden.
Gehen Sie zunächst zu EC2 (Abschnitt Compute) und klicken Sie dann auf „Instanz starten“. Wählen Sie das Basis-AMI (Amazon Machine Image) und dann den Instance-Typ aus. Danach erreichen Sie den dritten Schritt, und dieser ist sehr wichtig. Das Maschinensubnetz sollte öffentlich sein.
Wählen Sie einfach das öffentliche Subnetz in der Liste aus und ändern Sie dann die Option Öffentliche IP automatisch zuweisen zu ermöglichen. Wenn Sie keinen zusätzlichen Speicherplatz benötigen, können Sie auf den oberen Link klicken 6. Sicherheitsgruppe konfigurieren.
Achten Sie besonders auf den Gruppennamen und die Beschreibung, da dies ein sehr wichtiger Schritt ist. Ich rate dir verwende gute beschreibende Namen wie zum Beispiel Public-SSH testen und eine erkennbare Beschreibung. Vermeiden Sie die Verwendung der Standardnamen und immer Überprüfe, ob bereits eine Regel erstellt wurde, oder du wirst am Ende eine Reihe wiederholter Regeln haben.
Wenn Sie den Standardport ändern möchten, müssen Sie auch eine benutzerdefinierte Regel hinzufügen. Klicken Sie einfach rein Regel hinzufügen, aber beachten Sie, dass Sie dies nach dem Start der Instance tun sollten und alle Änderungen auch in der EC2-Instance (Betriebssystem) vorgenommen werden müssen, da Sie sonst nicht über SSH darauf zugreifen können.
Fahren Sie fort, indem Sie auf Überprüfung und Markteinführung. Sie werden eine Meldung oben auf dem Bildschirm sehen.
Sie erhalten diese Meldung, weil dieser Computer öffentlichen SSH-Zugriff ermöglicht. Das heißt, wir sind startklar. Klicken Sie einfach auf Starten klicken Sie auf die Schaltfläche, wählen Sie die Schlüssel aus oder erstellen Sie ein neues Set. Bewahren Sie Ihre Schlüssel immer an einem sicheren Ort auf. Verwenden Sie kein VCS, um sie aufzubewahren.
Bis zu diesem Punkt habe ich die VPC-Erstellung und die Bastion-Server-Erstellung behandelt. Als Nächstes erstellen wir eine Instanz in einem privaten Subnetz und konfigurieren den SSH-Zugriff.
Beginnen wir mit einem Klick auf den Instanz starten knopf:
Hier sind die Schritte dieselben, wähle ein AMI (ich verwende Ubuntu 14.04 LTS, im kostenlosen Kontingent enthalten):
Dann wählen Sie den Instance-Typ (ich verwende eine kostenlose Instance, t2.micro):
Nachdem Sie Ihren Instanztyp ausgewählt haben, klicken Sie auf Weiter: Instanzdetails konfigurieren.
Der folgende Bildschirm wird angezeigt:
Dieses Gerät wird nicht öffentlich zugänglich sein. Es wird verwendet, um einen Dienst auszuführen, der nicht über das Internet zugänglich sein sollte.
In der Subnetzoption sollten wir also das zuvor mit der VPC erstellte private Subnetz verwenden und wählen Behinderte in der Option IP automatisch zuweisen. Wenn Sie den Speicher nicht ändern oder Tags hinzufügen möchten, klicken Sie auf Sicherheitsgruppe konfigurieren an der Spitze.
Bitte beachte den Unterschied zwischen dieser und der für Bastion verwendeten Sicherheitsgruppe, da wir hier nur SSH-Zugriff auf den privaten IP-Bereich zulassen (dieser kann je nach Subnetz variieren, achte darauf).
Du kannst auch fügen Sie Regeln nach Ihren Bedürfnissen hinzu (HTTPS, RabbitMQ usw.) für einen gewünschten IP-Bereich (hier füge ich die Regel für RabbitMQ hinzu — Port 5672). Wenn du keine weiteren Regeln hinzufügen möchtest, klicke einfach auf Überprüfung und Markteinführung. Der nächste Bildschirm wird angezeigt:
Klicken Sie einfach auf Starten, wählen Sie Ihren Zugangsschlüssel und klicken Sie dann auf Instanz starten. AWS beginnt mit der Erstellung Ihrer neuen EC2-Instance:
Wenn Sie zum EC2-Dashboard gehen, sollte Ihre neue EC2-Instance in der Liste enthalten sein:
Ich habe die neue Instanz benannt test-rabbitmq. Wenn Sie sich die öffentliche DNS-Spalte ansehen, werden Sie feststellen, dass sie kein öffentliches DNS enthält. Das liegt daran, dass es in einem privaten Subnetz erstellt wurde.
Bis jetzt haben wir eine VPC mit einem privaten und einem öffentlichen Subnetz gebaut und wir haben zwei Maschinen: eine für den SSH-Zugriff, der eine Verbindung zur privaten Zone herstellt, und eine Maschine in der privaten Zone (RabbitMQ). Also, wie testet man den SSH-Zugang?
Gehen Sie einfach zum EC2-Dashboard, holen Sie sich die Bastion-IP und gehen Sie zu Ihrer Konsole. Vergessen Sie nicht, dem Befehl den privaten Schlüssel hinzuzufügen:
Du kannst dich jetzt mit deiner Bastion verbinden! Gehen wir nun tiefer und versuchen, eine Verbindung zu Ihrer RabbitMQ-Instanz herzustellen:
Sie können sich jetzt mit der privaten Instanz verbinden!
Wie Sie bemerkt haben, habe ich einige Parameter für die obigen Befehle verwendet, aber Sie können dies vermeiden, indem Sie Ihre Konfigurationsdatei im Verzeichnis.ssh (in Ihrem Home-Verzeichnis) konfigurieren. Sie können die Konfigurationsdatei auch auf dem Bastion-Server konfigurieren.
Testen wir also den Internetzugang in der privaten EC2-Instance:
Alles funktioniert einwandfrei, aber nur ein Hinweis: Wenn Sie eine NAT-Instance anstelle eines NAT-Gateways verwenden, vergessen Sie nicht, die Sicherheitsgruppen, einschließlich der privaten Computergruppe, in den Regeln zu ändern.
Sie sollten den SSH-Zugriff einschränken, öffentliche und private Subnetze erstellen, Ihre Umgebungen trennen (Produktion, Entwicklung, QA), jede Umgebung (VPC) sollte ihre eigenen Routentabellen, Subnetze usw. haben.
Seien Sie vorsichtig mit den Sicherheitsgruppen, lassen Sie nur die notwendigen Protokolle und Ports zu und vermeiden Sie den externen Zugriff, wenn möglich.
Es könnte noch viel mehr über AWS geschrieben werden, aber es ist praktisch unmöglich, alles in nur einem Artikel zu behandeln. Es gibt noch einige ungeklärte Themen, wie die Sicherheit von S3, den Zugriff auf Bastion über VPN und natürlich die Verwendung von Ansible, um alles zum Laufen zu bringen. Auf jeden Fall findest du hier alles, was du brauchst, um sofort loszulegen!
Bei Imaginary Cloud wir arbeiten mit einem breiten Tech-Stack, einschließlich AWS. Wenn Sie in Ihrem Softwareentwicklungsprojekt Hilfe mit dieser oder ähnlichen Technologien benötigen, wartet ein Expertenteam auf Sie! Schreiben Sie uns eine Nachricht hier!
Fanden Sie diesen Artikel hilfreich? Diese könnten dir auch gefallen!
Entwickler @Imaginary Cloud, das sich der Entwicklung außergewöhnlicher Softwarelösungen verschrieben hat, sich der Innovation und der Nutzung modernster Technologien verschrieben hat.
People who read this post, also found these interesting: