Wie behebe ich Probleme, wenn ich SSM-Agent so konfiguriere, dass er einen Proxy für die Verwaltung meiner Amazon-EC2-Instance verwendet?

Lesedauer: 5 Minute
0

Ich erhalte Fehler, wenn ich einen Proxy mit SSM-Agent verwende, um meine Amazon Elastic Compute Cloud (Amazon EC2)-Instanz mit AWS Systems Manager zu verwalten. Wie kann ich Proxy-Probleme beheben?

Kurzbeschreibung

Sie können Systems Manager verwenden, um Ihre Amazon EC2-Instanzen zu verwalten. Wenn sich die Instanzen jedoch hinter einem Proxy befinden, müssen Sie den SSM (Systems-Manager-Agent)-Agent so konfigurieren, dass er mit den Amazon-Endpunkten über Ihren Proxy kommuniziert. Wenn der SSM-Agent nicht korrekt konfiguriert ist, erhalten Sie eine Fehlermeldung ähnlich der Folgenden:

Post https://ssm.RegionID.amazonaws.com/: proxyconnect tcp: dial tcp xxx.xxx.xxx.xxx:yyyy: i/o timeout

Behebung

Führen Sie die folgenden Schritte aus, um Proxy-Probleme zu beheben:

Überprüfen Sie, ob die EC2-Instanz auf Ihren Proxyserver zugreifen kann

EC2-Windows-Instanzen

Sie können den folgenden Windows PowerShell-Befehl verwenden, um die Konnektivität zu Ihrem Proxy zu überprüfen. Ersetzen Sie im folgenden BeispielHostnamedurch Ihren Proxy-Hostnamen undPortdurch Ihren Proxy-Port.

> Test-NetConnection hostname -port port

Erwartete Leistung:

ComputerName     : hostname
RemoteAddress    : xxx.xxx.xxx.xxx
RemotePort       : port
InterfaceAlias   : Ethernet
SourceAddress    : YYY.YYY.YYY.YYY
TcpTestSucceeded : True
PS C:\Windows\system32>

EC2 Linux-Instanzen

Sie können die folgenden Telnet- oder Netcat-Befehle verwenden, um die Konnektivität zu Ihrem Proxy zu überprüfen. Ersetzen Sie in den folgenden BeispielenHostnamedurch Ihren Proxy-Hostnamen undPortdurch Ihren Proxy-Port.

Telnet

$ telnet hostname port

Erwartete Leistung:

Trying xxx.xxx.xxx.xxx...
Connected to hostname.
Escape character is '^]'.

Netcat

$ nc -vz hostname port'

Erwartete Leistung:

Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to xxx.xxx.xxx.xxx:YYYY.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.

Hinweis: Netcat ist auf Amazon EC2-Instanzen nicht vorinstalliert. Informationen zur manuellen Installation von Netcat finden Sie unterNcatauf der Nmap-Website.

Überprüfen Sie, ob Ihre EC2-Instanz den Systems Manager-Endpunkt über den Proxyserver erreichen kann

Führen Sie den folgenden Befehl aus, um zu bestätigen, dass Ihre Instanz den Systems Manager-Endpunkt über Ihren Proxyserver erreichen kann. Wenn Sie einen HTTP-Fehlercode 4xx erhalten, bedeutet dies, dass Sie den Endpunkt über Ihren Proxyserver erreichen können.

Hinweis: Ersetzen Sie in den folgenden Befehlsbeispielen** RegionIDdurch IhreAWS-Region, Hostnamedurch Ihren Proxy-Hostnamen und Port durch IhrenProxy-Port**.

EC2-Windows-Instanzen

> (invoke-webrequest https://ssm.RegionID.amazonaws.com -DisableKeepAlive -UseBasicParsing -Method head -Proxy http://hostname:port )

Erwartete Leistung:

invoke-webrequest : The remote server returned an error: (404) Not Found.

EC2 Linux-Instanzen

$  curl -k --proxy http://hostname:port -m 5 -s -o /dev/null -w "%{http_code}" https://ssm.RegionID.amazonaws.com

Erwartete Leistung:

404

Überprüfen Sie, ob der SSM-Agent so konfiguriert ist, dass er Ihre Proxyinformationen verwendet

EC2-Windows-Instanzen

Sie müssen das Protokoll des SSM-Agenten überprüfen, um sicherzustellen, dass die Proxy-Einstellungen wie im folgenden Beispiel gezeigt angewendet werden. Führen Sie den folgenden Befehl aus:

> type C:\ProgramData\Amazon\SSM\Logs\amazon-ssm-agent.log | findstr -i "proxy"

Erwartete Leistung:

2021-03-18 19:06:16 INFO Getting IE proxy configuration for current user: The operation completed successfully.
2021-03-18 19:06:16 INFO Getting WinHTTP proxy default configuration: The operation completed successfully.
2021-03-18 19:06:16 INFO Proxy environment variables:
2021-03-18 19:06:16 INFO http_proxy: hostname:port
2021-03-18 19:06:16 INFO https_proxy:
2021-03-18 19:06:16 INFO no_proxy: 169.254.169.254

Weitere Informationen findenSie unter Konfigurieren des SSM-Agenten zur Verwendung eines Proxys für Windows Server-Instanzen.

EC2 Linux-Instanzen

Führen Sie zunächst den folgenden Befehl aus, um zu überprüfen, ob der SSM-Agent derzeit die erforderlichen Proxy-Variablen verwendet, indem Sie die Prozess-Umgebungsvariable überprüfen:

sudo cat /proc/$(pidof amazon-ssm-agent)/environ | xargs -0 -L1 -I{} echo {}

Erwartete Leistung:

[root@host123~]# sudo cat /proc/$(pidof amazon-ssm-agent)/environ | xargs -0 -L1 -I{} echo {}
LANG=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
http_proxy=http://Hostname:Port
https_proxy=http://Hostname:Port
no_proxy=169.254.169.254

Wenn das Ergebnis die Proxy-Variablen nicht enthält, folgen Sie den nachstehenden Anweisungen für Ihren Instanztyp, um die entsprechenden Dateien zu überprüfen und zu aktualisieren.

EC2-Linux-Instanzen, die auf einem Upstart wie Ubuntu 14.04 basieren

Überprüfen Sie, ob die Datei amazon-ssm-agent.override die erforderlichen Konfigurationen enthält. Geben Sie den folgenden Befehl ein und bestätigen Sie, dass Ihre Ergebnis mit der erwarteten Ergebnissen übereinstimmt. Weitere Informationen findenSie unter Konfigurieren des SSM-Agenten zur Verwendung eines Proxys (Upstart).

Wichtig: Wenn Sie die Datei amazon-ssm-agent.override aktualisieren, stellen Sie sicher, dass Sie den SSM-Agent neu starten, nachdem die Datei bearbeitet wurde.

$ cat  /etc/init/amazon-ssm-agent.override

Erwartetes Ergebnis für einen HTTP-Proxyserver:

env http_proxy=http://hostname:port
env https_proxy=http://hostname:port
env no_proxy=169.254.169.254

Erwartetes Ergebnis für einen HTTPS-Proxyserver:

env http_proxy=http://hostname:port
env https_proxy=https://hostname:port
env no_proxy=169.254.169.254

EC2-Linux-Instanzen auf Basis von Ubuntu 16.04 oder höher, auf denen der SSM-Agent per Snap installiert ist

Geben Sie den folgenden Befehl ein und bestätigen Sie, dass die Proxyinformationen mit dem erwarteten Ergebnis übereinstimmen. Weitere Informationen findenSie unter Konfigurieren des SSM-Agenten zur Verwendung eines Proxys (systemd).

Wichtig: Wenn Sie die Datei amazon-ssm-agent.override aktualisieren, stellen Sie sicher, dass Sie den SSM-Agent neu starten, nachdem die Datei bearbeitet wurde.

$ cat /etc/systemd/system/snap.amazon-ssm-agent.amazon-ssm-agent.service.d/override.conf

Erwartetes Ergebnis für einen HTTP-Proxyserver:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=http://hostname:port"
Environment="no_proxy=169.254.169.254"

Erwartetes Ergebnis für einen HTTPS-Proxyserver:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=https://hostname:port"
Environment="no_proxy=169.254.169.254"

EC2 Linux-Instanzen, die auf Amazon Linux 2 basieren

Geben Sie den folgenden Befehl ein und bestätigen Sie, dass die Proxyinformationen mit dem erwarteten Ergebnis übereinstimmen. Weitere Informationen findenSie unter Konfigurieren des SSM-Agenten zur Verwendung eines Proxys (systemd).

Wichtig: Wenn Sie die Datei amazon-ssm-agent.override aktualisieren, stellen Sie sicher, dass Sie den SSM-Agent neu starten, nachdem die Datei bearbeitet wurde.

$ cat /etc/systemd/system/amazon-ssm-agent.service.d/override.conf

Erwartetes Ergebnis für einen HTTP-Proxyserver:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=http://hostname:port"
Environment="no_proxy=169.254.169.254"

Erwartetes Ergebnis für einen HTTPS-Proxyserver:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=https://hostname:port"
Environment="no_proxy=169.254.169.254"

EC2 Linux-Instanzen, die auf anderen Betriebssystemen basieren

Geben Sie den folgenden Befehl ein und bestätigen Sie, dass die Proxyinformationen mit dem erwarteten Ergebnis übereinstimmen. Weitere Informationen findenSie unter Konfigurieren des SSM-Agenten zur Verwendung eines Proxys (systemd).

Wichtig: Wenn Sie die Datei amazon-ssm-agent.override aktualisieren, stellen Sie sicher, dass Sie den SSM-Agent neu starten, nachdem die Datei bearbeitet wurde.

$ cat /etc/systemd/system/amazon-ssm-agent.service.d/amazon-ssm-agent.override

Erwartetes Ergebnis für einen HTTP-Proxyserver:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=http://hostname:port"
Environment="no_proxy=169.254.169.254"

Erwartetes Ergebnis für einen HTTPS-Proxyserver:

[Service]
Environment="http_proxy=http://hostname:port"
Environment="https_proxy=https://hostname:port"
Environment="no_proxy=169.254.169.254"

Ähnliche Informationen

Mit SSM-Agent arbeiten

Fehlerbehebung bei SSM-Agent

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren