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:

  1. 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]
  2. Eine Instanz mit diesem Profile starten
  3. 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 The AWS EC2 - Simple Systems Manager is designed to manage a large number of instances, both on AWS and on-premises in your own data center. The Parameter Store feature has been a pleasant surprise, and now it has a new feature that can be a game-changer.

Wenn die Version des Agenten < “2.3.68.0” ist, muss er aktualisiert werden.

Und so sieht es nach dem Update aus: i-08153ffe33f815ac7  

Start der Session

Jetzt kann eine Session gestartet werden.

Wähle dazu Systems Manager -> Start Session Start session

Alle Instanzen mit SSM Agenten in der passenden Version sind wählbar.

Demo SSM

Und das Terminal erscheint im Browser: Browser terminal server

Verwaltung der Sessions

Alle laufenden Sessions werden aufgelistet:

Updated and terminated session management interface

Protokollierung der Session mit Cloudwatch

In den Einstellungen kann ich das Logging einschalten.

S3 bucket storage enabled, CloudWatch log stream enabled

Image of a web browser screen showing preferences for an AWS Systems Manager session, including options to write session output to an Amazon S3 bucket, send session output to CloudWatch Logs, and enter the name of a CloudWatch log group.

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

Similar Posts You Might Enjoy

Interview: Kosten sparen mit AWS und ParkMyCloud

Im Interview mit dem US-Magazin sdxcentral.com erläutert Sven Ramuschkat, Geschäftsführer der tecRacer Group, wie es gelang, mit [AWS] und dem Online-tool parkmycloud die laufendenden Serverkosten für eine große deutsche Hausbaufirma erheblich zu reduzieren. “Der Kunde betreibt eine große Citrix-Serverfarm, mit bis zu 50 Nutzern parallel”, so Ramuschkat. Der Serververbund nutzt GPU-Instanzen, um aufwändige 3d-Modellierung zu realisieren. “Es gibt sehr hohe Ansprüche an die Rechenleistung, das verursacht natürlich gewisse Kosten”, so Ramuschkat weiter, “um diese zu reduzieren haben wir anfänglich selbst nicht benötigte Server, heruntergefahren und bei Bedarf dann wieder gestartet. - by Sven Grelak

Defenders - caller based EC2 security with CDK

Defenders: Caller based EC2 security The risk with security credentials is that they get exposed an are being used elsewhere. What if we could prevent that the are being used elsewhere. The idea from the article of William Bengston from netflix was: Dynamically locking credentials to the environment. This implementation of this idea is much more simple with the cdk. So, let’s defend ourselves! Our story here is the battle of the defenders (tm). - by Gernot Glawe

Cloud Arbeiterbienen für die Build Pipeline - Jenkins mit dynamischen Verarbeitungsknoten über AWS Plugin

Jenkins als Build Server erfreut sich einer großen Verbreitung. Die architekturelle Frage, die sich dabei stellt ist: Wie groß lege ich den Server aus, damit er neben des Management der Build Projekte auch die Builds selber verarbeiten kann? Die einfachste Antwort darauf ist ja: AWS CodeBuild verwenden, aber wenn das nicht geht? Dann bietet das EC2-Plugin eine dynamische Lösung mit AWS Mitteln: Die Worker Knoten werden vollautomatisch dynamisch als EC2 Instanzen erzeugt und wieder abgebaut. - by Gernot Glawe