Das alte Terminal kann weg!
This content is more than 4 years old and the cloud moves fast so some information may be slightly out of date.
Diese Probleme tauchen manchmal bei der Arbeit mit AWS Instanzen auf:
- Du arbeitest mit AWS Instanzen und die Firewall lässt keine ausgehenden SSH Verbindungen zu?
- Die Suche nach dem richtigen Konzept für die Verwaltung von SSH Keys gestaltet sich schwierig?
- Es ist erforderlich, dass jeder Terminal Zugriff auf die Instanzen protokolliert wird.
- Der SSH Key ist so sicher verlegt, dass keiner mehr auf die Instanzen kommt.
Wäre es da nicht schön, einfach über die AWS Console eine Terminal Session auf eine Instanz zu starten?
Genau das geht jetzt.
Der AWS EC2 - Simple Systems Manager ist darauf ausgelegt eine große Menge von Instanzen zu verwalten. Nicht nur bei AWS, sondern auch “On Premise”, also im eigenen Datacenter. Der Paramater Store als Feature war ein Überraschungserfolg. Nun hat er ein neues Feature bekommen, was einen Quantensprung bedeuten kann.
Der Systems Manager kann jetzt auch direkt im Browser Terminal Sessions starten.
Um eine Session für eine Instanz zu starten, braucht man nur folgende Schritte auszuführen:
- Eine Instanz Profil zu erstellen, das die Policy “AmazonEC2RoleforSSM” angehängt hat. [Siehe AWS Dokumentation Task 2: Create an Instance Profile for Systems Manager - AWS Systems Manager]
- Eine Instanz mit diesem Profile starten
- Den Systems Manager mit einem RunCommand auf dieser Instanz updaten.
- In der AWS Console - SystemsManager Run auswählen
- Ausführen Document “AWS-UpdateSSMAgent” auf der gestarteten Instanz.
Update des SSM Agenten auf der Instanz
Wenn die Version des Agenten < “2.3.68.0” ist, muss er aktualisiert werden.
Und so sieht es nach dem Update aus:
Start der Session
Jetzt kann eine Session gestartet werden.
Wähle dazu Systems Manager -> Start Session
Alle Instanzen mit SSM Agenten in der passenden Version sind wählbar.
Und das Terminal erscheint im Browser:
Verwaltung der Sessions
Alle laufenden Sessions werden aufgelistet:
Protokollierung der Session mit Cloudwatch
In den Einstellungen kann ich das Logging einschalten.
Und sehe dann nach dem Terminieren ein Protokoll der Session:
![Script started on 2018-09-26 11:29:51+0000 [?1034hsh-4.2# /usr/bin/ssm-session-logger /var/lib/amazon/ssm/i-08153ffe33f815ac7/session/orchestration/ggtrcdmin-0a5afb375de70c91e/Standard_Stream/tpcTempFile.log ?1034hsh-4.2$
Im Test musste ich die Log Group erst selber erstellen, das kann aber auch ein zeitliches Problem sein.
Aufbau eines eigenen “Browser Terminal Server”
Wenn ein eigener Server aufgebaut werden muss, so ist das mit dem Apache Projekt “guacamole” möglich. Guacamole
Fazit
Ein neues Feature, was gerade im Zusammenhang mit SSH Verbindungen und restriktiven Firewalls nützlich sein wird!
Bild zu Beginn von: Tina Rataj-Berard on Unsplash