Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

EC2 remote verwalten – mit AWS Systems Manager

By Alexandre TostivintSep 8, 20245 min read

Diese Seite ist auch in English, Español, Français, Italiano, 日本語 und Português verfügbar.

Bei DoiT treffen Sie auf Menschen mit ganz unterschiedlichen Hintergründen, die ein gemeinsames Ziel verbindet: Ihren Arbeitsalltag spürbar zu erleichtern. Wer sich schon einmal per VPN auf EC2-Instanzen einloggen musste, weiß, wie zäh das sein kann. Die Verwaltung dieser Instanzen zu automatisieren, ohne sich überhaupt auf ihnen anmelden zu müssen, wäre ein echter Gewinn. Noch besser: diese Automatisierungen über eine zentrale Oberfläche zu steuern, statt sie auf jeder Instanz oder in einem Golden Image zu hinterlegen.

In einer früheren Rolle stand ich vor genau dieser Herausforderung, als ich unsere Flotte an AWS-Active-Directory-Servern übernahm und gleichzeitig neue Kolleginnen und Kollegen zügig onboarden musste. Damals bin ich auf Systems Manager gestoßen.

Was ist Systems Manager?

Systems Manager ist die Antwort von AWS auf die Frage, wie sich Infrastruktur intelligent verwalten lässt. Der auf der Maschine installierte Agent empfängt Befehle aus den AWS-Konten und sendet Informationen zurück. Daraus ergeben sich gleich mehrere Möglichkeiten:

  • Windows- und Linux-Befehle ausführen. Jeder Agent legt einen lokalen Benutzer namens ssm-user an, über den Sie Befehle in bash, PowerShell und CMD auf der Instanz ausführen können. Berechtigungen und Regeln steuern Sie über IAM – ganz ohne SSH-Schlüssel und Netzwerkregeln.
  • Inventarisierung und Patch-Management. Erfassen Sie installierte Anwendungen und Patches und definieren Sie eine Patch-Richtlinie für Ihre Instanzen, die zu Ihren Vorgaben und Zeitplänen passt.
  • Runbooks und Automation. Erstellen Sie Systems-Manager-Dokumente mit einer Abfolge von Schritten, die auf einer Instanz ausgeführt werden. Mit Systems Manager Automation lässt sich zudem über eine IAM-Rolle und AWS-APIs wie EC2 oder Step Functions direkt mit Ihrer AWS-Infrastruktur interagieren.
  • Maintenance Windows erlauben es Ihnen, die Ausführung von Runbooks anhand definierter Zeit-, Verfügbarkeits- und Erfolgskriterien zu planen und zu steuern.

In diesem Beitrag zeige ich Ihnen, wie Sie diesen Service aktivieren und sich per SSM über den Session Manager interaktiv mit Ihren Instanzen verbinden.

Systems Manager einrichten

Damit Sie SSM nutzen können, müssen folgende Voraussetzungen erfüllt sein:

  • Auf der Maschine muss der Agent installiert sein.
  • Eine IAM-Rolle mit den minimal nötigen Berechtigungen für Systems Manager (AmazonSSMManagedInstanceCore) muss zugewiesen sein.
  • Die Maschine muss das öffentliche Internet über Port 443 oder drei VPC-Endpunkte erreichen können.

Wenn Sie ein von AWS bereitgestelltes Image verwenden, ist der Systems-Manager-Agent standardmäßig vorinstalliert. Falls nicht, hilft einer der folgenden Befehle weiter:

#Auf einem Red-Hat-basierten System
sudo yum install amazon-ssm-agent
#Auf einem Debian-basierten System
sudo apt-get install amazon-ssm-agent
#Nach der Installation den Service starten
sudo systemctl start amazon-ssm-agent

Für den zweiten Punkt müssen Sie die auf Ihrer Maschine genutzte Instance-Rolle anhängen oder aktualisieren. Weisen Sie das verwaltete Berechtigungspaket AmazonSSMManagedInstanceCore zu, mit dem die Ressource mit eng begrenzten Rechten direkt mit dem AWS-Service kommunizieren darf. So müssen Sie keine Anmeldedaten auf der Instanz hinterlegen und riskieren auch nicht, sie zu verlieren.

Falls Sie noch gar keine Rolle eingerichtet haben, können Sie auch die Default Host Management Configuration nutzen:

  • Öffnen Sie die AWS-Systems-Manager-Konsole und wählen Sie links Fleet Manager. Achten Sie darauf, dass Sie sich in der Region befinden, in der die meisten Ihrer EC2-Instanzen laufen.
  • Aktivieren Sie unter Account Management und Configure Default Host Management Configuration die Option Enable Default Host Management Configuration.
  • Sie werden aufgefordert, eine IAM-Rolle auszuwählen. Übernehmen Sie einfach die empfohlene Option, um eine neue Standard-Instance-Management-Rolle anzulegen.

Beim Anlegen der Standard-IAM-Rolle für das Host-Management können Sie eine neue Rolle erstellen oder eine bestehende verwenden.

  • Schließen Sie die Einrichtung mit einem Klick auf Configure ab.

Alle Instanzen in dieser Region sollten den Systems-Manager-Endpunkt nun über die soeben erstellte Standardrolle erreichen können.

Zum letzten Punkt: In den meisten Netzwerk-Setups ist der Internetzugang über Port 443 ohnehin offen. Falls nicht, hier ein kurzer Überblick über die Netzwerkanforderungen.

Der SSM Agent muss mindestens folgende Adressen über Port 443 erreichen können:

ssm.==region==.amazonaws.com
ssmmessages.==region==.amazonaws.com
ec2messages.==region==.amazonaws.com

Wenn Sie keinen externen Zugriff zulassen, können Sie Amazon-VPC-Endpunkte einrichten, um den Zugriff zu ermöglichen. Diese müssen Sie allerdings in jeder Region anlegen, in der Sie sie nutzen möchten. Achten Sie zudem darauf, dass Ihre Netzwerkkonfiguration den meisten Instanzen weiterhin den Weg zum Service offenhält. Ich empfehle, diese Endpunkte in einer Service-VPC zu betreiben.

Mit dem Session Manager arbeiten

Mit den passenden Anmeldedaten und IAM-Zugriff können Sie sich nun von überall direkt auf diesen Instanzen anmelden.

Bei einer Windows-Instanz mit GUI öffnen Sie den Fleet Manager, wählen Ihre Instanz aus und klicken auf Connect with Remote Desktop.

Die Oberfläche des Fleet Managers, in der Sie Ihre Remote-Instanzen sehen und sich mit ihnen verbinden können.

Da Windows ein Passwort für das Administrationskonto verlangt, benötigen Sie entweder die Anmeldedaten oder eine Instanz, die mit einem Key Pair eingerichtet wurde. Daraus leitet AWS das Passwort für das Administratorkonto ab.

Oberfläche zum Verbinden mit Instanzen per Remote Desktop.

Nach einem Klick auf den Connect-Button baut Systems Manager einen sicheren Tunnel von Ihrem Rechner zur gewünschten Instanz auf – und Sie können Ihre Administrationsaufgaben von überall auf der Welt erledigen.

Oberfläche einer Remote-Verbindung zu einem Windows Remote Desktop.

Die Anmeldung per Kommandozeile auf Windows- und Linux-Instanzen ist sogar noch einfacher: Klicken Sie auf Start Commandline, um auf den in SSM registrierten Maschinen ein Terminal mit Administrationsrechten zu öffnen.

Jeder Agent legt einen lokalen Benutzer namens ssm-user an, dem Sie wahlweise Administratorrechte auf der Instanz geben können – oder eben nicht. Derselbe Benutzer führt auch die Runbooks aus, die in Systems Manager Documents heißen.

Oberfläche einer Remote-Verbindung mit einem Windows-Kommandozeilen-Terminal.

Ich hoffe, dieser Artikel ist hilfreich für Sie. Es gibt viele Wege, AWS Systems Manager auszubauen und an Ihre Anforderungen anzupassen – dieser Beitrag zeigt einen schnellen Einstieg, um die Funktionen des Service produktiv zu nutzen.

Wenn Sie Unterstützung bei der Verwaltung von Instanzen auf AWS brauchen, melden Sie sich gerne über unseren DoiT Support oder hinterlassen Sie einen Kommentar unter diesem Artikel.

Sprechen Sie uns bei DoiT an. Unser Team besteht ausschließlich aus erfahrenen Senior Engineers und ist auf anspruchsvolle Cloud-Beratung spezialisiert – von Architekturdesign über Debugging bis hin zu Consulting-Services.