Befehle auf einer EC2-Instance mit AWS Systems Manager remote ausführen
TUTORIAL
Übersicht
In diesem praxisorientierten Tutorial erfahren Sie, wie Sie mit AWS Systems Manager Befehle auf Ihren Amazon EC2-Instances remote ausführen können. Systems Manager ist ein Management-Tool, das es Ihnen ermöglicht, operative Einblicke zu gewinnen und Maßnahmen in Bezug auf AWS-Ressourcen sicher und in großem Umfang zu ergreifen. Mit dem Ausführungsbefehl, einer der Automatisierungsfunktionen von Systems Manager, können Sie Verwaltungsaufgaben vereinfachen, indem Sie die Verwendung von Bastion-Hosts, SSH oder Remote-PowerShell überflüssig machen.
In unserem Beispielszenario müssen Sie als Systemadministrator die Pakete auf Ihren EC2-Instances aktualisieren. Diese Verwaltungsaufgabe ist eigentlich denkbar einfach. Allerdings erlaubt Ihnen Ihr Sicherheitsteam keinen direkten Zugriff auf Produktionsserver über SSH oder die Verwendung von Bastion-Hosts. Und das macht die Sache kompliziert. Zum Glück können Sie Systems Manager verwenden, um Befehle, wie z. B. Update-Pakete, auf Ihren EC2-Instances remote auszuführen.
Um dieses herausfordernde Szenario zu lösen, erstellen Sie eine Identity and Access Management (IAM)-Rolle, aktivieren einen Agenten auf Ihrer Instance, der mit dem Systems Manager kommuniziert, befolgen dann bewährte Methoden, indem Sie das Dokument AWS-UpdateSSMAgent ausführen, um Ihren Systems Manager Agent zu aktualisieren, und verwenden schließlich den Systems Manager, um einen Befehl auf Ihrer Instance auszuführen.
AWS Systems Manager ist ein stets kostenloses Produkt. Die EC2-Instance, die Sie in diesem Tutorial erstellen, ist für das kostenlose Kontingent geeignet.
Öffnen Sie die AWS-Managementkonsole, damit Sie diese schrittweise Anleitung geöffnet halten können. Geben Sie, wenn der Bildschirm vollständig geladen ist, Ihren Benutzernamen und das Passwort ein, um zu beginnen.
Erfahrung mit AWS
Einsteiger
Benötigte Zeit
10 Minuten
Kosten für die Fertigstellung
Für kostenloses Kontingent qualifiziert.
Erfordert
- AWS-Konto
- Empfohlener Browser: aktuelle Version von Chrome oder Firefox
[**] Innerhalb der letzten 24 Stunden erstellte Konten haben möglicherweise noch keinen Zugriff auf alle für dieses Tutorial erforderlichen Services.
Letzte Aktualisierung
14. Juli 2022
Implementierung
Schritt 1: Erstellen einer Identity and Access Management (IAM)-Rolle
In diesem Schritt erstellen Sie eine IAM-Rolle, die verwendet wird, um Systems Manager die Erlaubnis zu erteilen, Aktionen auf Ihren Instances durchzuführen.
a. Öffnen Sie die IAM-Konsole unter https://console.thinkwithwp.com/iam/.
b. Wählen Sie im linken Navigationsbereich Roles (Rollen) und dann Create role (Rolle erstellen).
c. Wählen Sie auf der Seite Select trusted entity (Vertrauenswürdige Entität auswählen) unter AWS-Service die Option EC2 und dann Next (Weiter).
d. Geben Sie auf der Seite Add permissions (Berechtigungen hinzufügen) in der Suchleiste Folgendes ein: AmazonEC2RoleforSSM. Wählen Sie in der Richtlinienliste AmazonEC2RoleforSSM aus und klicken Sie dann auf Next (Weiter).
e. Geben Sie auf der Seite Name, review, and create (Namen festlegen, überprüfen und erstellen) im Feld Role name (Rollenname) die Zeichenfolge EnablesEC2ToAccessSystemsManagerRole ein. Geben Sie im Feld Description(Beschreibung) den Text Enables an EC2 instance to access Systems Manager (Ermöglicht einer EC2-Instance den Zugriff auf Systems Manager) ein. Wählen Sie Create role (Rolle erstellen).
Schritt 2: Erstellen einer EC2-Instance
In diesem Schritt werden Sie eine EC2-Instance mit der Rolle EnablesEC2ToAccessSystemsManagerRole erstellen. Auf diese Weise kann die EC2-Instance von Systems Manager verwaltet werden.
a. Öffnen Sie die Amazon-EC2-Konsole. Wählen Sie auf der EC2-Konsole Ihre bevorzugte Region aus. Systems Manager wird in allen AWS-Regionen unterstützt. Wählen Sie Launch instance (Instance starten).
b. Geben Sie im Feld Name MyEC2Tutorial ein. Wählen Sie das Amazon Linux AMI. Behalten Sie die in der Dropdownliste angezeigte Standardauswahl bei. Sie können den Systems Manger Agent auch auf Ihrem eigenen Windows- oder Linux-System installieren.
d. Sie benötigen kein Schlüsselpaar, um mit Systems Manager Befehle remote auszuführen. Scrollen Sie nach unten zu Key pair(Schlüsselpaar) und wählen Sie in der Dropdownliste Key pair name (Schlüsselpaarname) die Option Proceed without a key pair (Ohne Schlüsselpaar fortfahren) aus.
e. Behalten Sie die Standardeinstellungen unter Network settings (Netzwerkeinstellungen) und Configure storage (Speicher konfigurieren) bei.
Schritt 3: Aktualisieren des Systems Manager Agents
Jetzt, wo Sie eine EC2-Instance haben, auf der der Systems Manager Agent läuft, können Sie Verwaltungsaufgaben automatisieren und die Instance verwalten. In diesem Schritt führen Sie einen vorkonfigurierten Befehl, ein sogenanntes Dokument, aus, mit dem der Agent aktualisiert wird. Es empfiehlt sich, den Systems Manager Agent zu aktualisieren, wenn Sie eine neue Instance erstellen.
a. Suchen Sie in der oberen Navigationsleiste nach Systems Manager und öffnen Sie die Systems Manager-Konsole.
b. Wählen Sie in der linken Navigationsleiste im Bereich Node Management (Knotenverwaltung) die Option Fleet Manager aus.
c. Wählen Sie MyEC2Tutorial aus, also die in Schritt 2 erstellte Knoten-ID, um die Seite mit den Knotendetails zu öffnen.
d. Wählen Sie auf der Seite mit den Knotendetails in der Dropdownliste Node actions (Knotenaktionen) die Option Execute run command (Ausführungsbefehl ausführen) aus.
e. Klicken Sie auf der Seite Run a command (Einen Befehl ausführen) in die Suchleiste und wählen Sie Document name prefix (Dokumentnamen-Präfix), klicken Sie dann auf Equals (Gleich) und geben Sie AWS-UpdateSSMAgent ein.
Klicken Sie nun auf das Optionsfeld links neben AWS-UpdateSSMAgent. Dieses Dokument wird den Systems Management-Agent auf der Instance aktualisieren.
f. Scrollen Sie nach unten zum Bereich Targets (Ziele) und klicken Sie auf das Kontrollkästchen neben der von Ihnen verwalteten EC2-Instance.
Scrollen Sie schließlich nach unten und wählen Sie Run (Ausführen).
g. Als Nächstes sehen Sie eine Seite, auf der Ihr gerade ausgeführter Befehl und dann der Gesamterfolg in grün dokumentiert werden. Herzlichen Glückwunsch, Sie haben gerade Ihren ersten Remote-Befehl mit Systems Manager ausgeführt.
Schritt 4: Ausführen eines Remote Shell-Skripts
Nun, da Ihre EC2-Instance über den neuesten Systems Manager Agent verfügt, können Sie die Pakete auf der EC2-Instance aktualisieren. In diesem Schritt führen Sie ein Shell-Skript über den Run Command aus.
a. Wählen Sie in der linken Navigationsleiste im Bereich Knotenverwaltung die Option Fleet Manager aus.
b. Wählen Sie MyEC2Tutorial aus, also die in Schritt 2 erstellte Knoten-ID, um die Seite mit den Knotendetails zu öffnen.
c. Wählen Sie auf der Seite mit den Knotendetails in der Dropdownliste Knotenaktionen die Option Ausführungsbefehl ausführen aus.
d. Klicken Sie auf der Seite Einen Befehl ausführen in die Suchleiste und wählen Sie Dokumentnamen-Präfix, klicken Sie dann auf Gleich und geben Sie AWS-RunShellScript ein.
Wählen Sie nun das Optionsfeld links neben AWS-RunShellScript.
e. Scrollen Sie nach unten zum Bereich Befehlsparameter und fügen Sie den folgenden Befehl in das Textfeld Befehle ein:
sudo yum update –y
f. Scrollen Sie nach unten zum Bereich Targets (Ziele) und klicken Sie auf das Kontrollkästchen neben der von Ihnen verwalteten EC2-Instance.
Scrollen Sie schließlich nach unten und wählen Sie Run (Ausführen).
g. Während Ihr Skript auf der verwalteten EC2-Instance remote ausgeführt wird, lautet der Gesamtstatus In Bearbeitung. Bald wird der Gesamtstatus zu Erfolg wechseln. Wenn dies der Fall ist, scrollen Sie nach unten zum Bereich Ziele und Ausgaben und klicken Sie auf die Instance-ID Ihrer Instance. Ihre Instance-ID wird sich von der abgebildeten unterscheiden.
h. Wählen Sie auf der Seite Ausgabe auf: i-XX auf die Kopfzeile des Bereichs Ausgabe, um die Ausgabe des Aktualisierungsbefehls von der Instance anzuzeigen.
Schritt 5: Beenden der Ressourcen
In diesem Schritt beenden Sie Ihre Systems Manager- und EC2-bezogenen Ressourcen. Wichtig: Die Beendigung von Ressourcen, die nicht aktiv genutzt werden, senkt die Kosten und ist eine bewährte Methode. Wenn Sie Ihre Ressourcen nicht beenden, können Gebühren anfallen.
a. Öffnen Sie die Amazon EC2-Konsole und wählen Sie auf der linken Navigationsleiste unter der Überschrift Instances die Option Instances.
b. Wählen Sie zuerst das Kontrollkästchen Ihrer Instance, dann Instance-Status und anschließend Instanz beenden aus. Dadurch wird Ihre Instance vollständig beendet.
Zusammenfassung
Herzlichen Glückwunsch, Sie haben erfolgreich eine verwaltete Instance erstellt und einen Befehl mit dem AWS Systems Manager remote ausgeführt. Sie richteten zunächst die korrekten Berechtigungen über IAM ein. Als Nächstes starteten Sie eine Amazon-Linux-Instance, die mit dem Systems Manager-Agenten vorinstalliert war. Schließlich haben Sie den Run Command verwendet, um den Agenten zu aktualisieren und remote ein Yum-Update durchzuführen.
Systems Manager ist eine gute Wahl, wenn Sie Betriebsdaten für Gruppen von Ressourcen anzeigen, betriebliche Aktionen automatisieren, den aktuellen Zustand Ihrer Ressourcen verstehen und kontrollieren, hybride Umgebungen verwalten sowie Sicherheit und Compliance gewährleisten müssen.