Ich möchte Session Manager, eine Funktion von AWS Systems Manager, verwenden, um Portweiterleitung zu erstellen.
Behebung
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI-Version verwendest.
Gehe wie folgt vor, um den Session Manager zum Erstellen einer Portweiterleitung zu verwenden:
-
Vergewissere dich, dass Systems Manager die Amazon Elastic Compute Cloud (Amazon EC2)-Instance verwaltet. Weitere Informationen findest du unter Verwalten von EC2-Instances mit Systems Manager und Manuelles Installieren und Deinstallieren von AWS Systems Manager Agent auf EC2-Instances für Linux.
-
Installiere das Session Manager-Plugin für den AWS-CLI.
-
Führe die folgenden Befehle aus, um zu überprüfen, ob sich der Port in der EC2-Ziel-Instance im Abhörmodus befindet:
Linux:
netstat -plant
macOS:
lsof -iTCP -sTCP:LISTEN -P -n
Windows:
netstat -nb
-
Konfiguriere eine AWS Identity and Access Management (IAM)-Richtlinie, die es Benutzern ermöglicht, Portweiterleitungssitzungen über Systems Manager zu verwenden. Das folgende IAM-Richtlinienbeispiel ermöglicht die Portweiterleitung auf allen EC2-Instances in einem AWS-Konto:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "ssm:StartSession",
"Resource": [
"arn:aws:ec2:*:example-account-id:instance/*",
"arn:aws:ssm:*::document/AWS-StartPortForwardingSession"
]
}
]
}
Hinweis: Ersetze example-account-id durch die Konto-ID:
-
Führe den Befehl basierend auf dem Betriebssystem aus.
Linux oder macOS:
# aws ssm start-session \
--target example-EC2-instance-ID \
--document-name AWS-StartPortForwardingSession \
--parameters '{"portNumber":["80"], "localPortNumber":["example-local-port"]}'
Hinweis: Ersetzen example-ec2-instance-ID durch die EC2-Instance-ID und example-local-port durch den lokalen Port.
Windows:
# aws ssm start-session
--target "example-EC2-instance-ID" --document-name AWS-StartPortForwardingSession --parameters "portNumber"=["80"],"localPortNumber"=["example-local-port"]
Hinweis: Ersetzen example-ec2-instance-ID durch die EC2-Instance-ID und example-local-port durch den lokalen Port.
-
Um den Webserverinhalt der Instance anzuzeigen, lade ** http://localhost:example-local-port** im Browser auf dem lokalen Computer.
Hinweis: Es ist nicht erforderlich, den eingehenden Port 80 auf der verwalteten EC2-Instance in einer Sicherheitsgruppe oder einer Netzwerk-Zugriffssteuerungsliste zu öffnen.