Warum wird meine EC2-Instance nicht als verwalteter Knoten angezeigt oder zeigt im Systems Manager den Status „Verbindung verloren“ an?

Lesedauer: 8 Minute
0

Meine Amazon Elastic Compute Cloud (Amazon EC2)-Instance hat entweder ihre Verbindung verloren oder wird in der AWS Systems Manager-Konsole nicht unter Flottenmanager angezeigt.

Behebung

Eine verwaltete Instance ist eine EC2-Instance, die zusammen mit Systems Manager als verwalteter Knoten verwendet wird.

Um zu bestätigen, dass Ihre EC2-Instance die Voraussetzungen für eine verwaltete Instance erfüllt, führen Sie das Dokument AWSSupport-TroubleshootManagedInstance Systems Manager Automation aus. Stellen Sie dann sicher, dass Ihre EC2-Instance die folgenden Anforderungen erfüllt.

Wichtig: Wählen Sie während der Schritte zur Fehlerbehebung die AWS-Region aus, die Ihre EC2-Instance enthält.

Stellen Sie sicher, dass der SSM Agent auf der Instance installiert ist und ausgeführt wird

Nachdem Sie bestätigt haben, dass Ihr Betriebssystem Systems Manager unterstützt, stellen Sie sicher, dass AWS Systems Manager Agent (SSM Agent) auf Ihrer Instance installiert ist und ausgeführt wird.

SSM Agent ist auf einigen Linux-, macOS- und Windows-Amazon Machine Images (AMIs) vorinstalliert. Informationen zur manuellen Installation des SSM Agents, wenn der Agent nicht vorinstalliert ist, finden Sie in der folgenden Dokumentation:

Um zu überprüfen, ob der SSM Agent ausgeführt wird, verwenden Sie betriebssystemspezifische Befehle, um den Kundendienstmitarbeiterstatus zu überprüfen.

Nachdem Sie die Überprüfung des SSM Agents abgeschlossen haben, führen Sie ssm-cli aus, um die Verfügbarkeit der verwalteten Instances zu beheben.

Überprüfen der Konnektivität zu Systems Manager-Endpunkten auf Port 443

Um die Konnektivität zu Systems Manager-Endpunkten auf Port 443 zu überprüfen, müssen Sie Ihr Betriebssystem und Ihre Subnetzeinstellungen berücksichtigen. Eine Liste der Systems Manager-Endpunkte nach Regionen finden Sie unter AWS Systems Manager-Endpunkte und Kontingente.

Hinweis: In den Beispielen ist der ssmmessages Endpunkt für den AWS Systems Manager Session Manager erforderlich.

EC2 Linux-Instances

Verwenden Sie entweder Telnet- oder Netcat-Befehle, um die Konnektivität zu Endpunkten auf Port 443 für EC2-Linux-Instances zu überprüfen.

Hinweis: Ersetzen Sie RegionID durch die Region Ihrer Instance, wenn Sie Befehle ausführen.

Telnet-Befehle:

telnet ssm.RegionID.amazonaws.com 443
telnet ec2messages.RegionID.amazonaws.com 443
telnet ssmmessages.RegionID.amazonaws.com 443

Beispiel für eine Telnet-Verbindung:

root@111800186:~# telnet ssm.us-east-1.amazonaws.com 443
Trying 52.46.141.158...
Connected to ssm.us-east-1.amazonaws.com.
Escape character is '^]'.

Um Telnet zu verlassen, halten Sie die Strg -Taste gedrückt und drücken Sie die Taste ]. Geben Sie quit ein, und drücken Sie dann die Eingabetaste.

Netcat-Befehle:

nc -vz ssm.RegionID.amazonaws.com 443
nc -vz ec2messages.RegionID.amazonaws.com 443
nc -vz ssmmessages.RegionID.amazonaws.com 443

Netcat ist auf EC2-Instances nicht vorinstalliert. Informationen zur manuellen Installation von Netcat finden Sie unter Ncat der Nmap-Website.

EC2-Windows-Instances

Verwenden Sie die folgenden Windows PowerShell-Befehle, um die Konnektivität zu Endpunkten auf Port 443 für EC2-Windows-Instances zu überprüfen.

Test-NetConnection ssm.RegionID.amazonaws.com -port 443
Test-NetConnection ec2messages.RegionID.amazonaws.com -port 443
Test-NetConnection ssmmessages.RegionID.amazonaws.com -port 443

Öffentliche Subnetze

Systems Manager-Endpunkte sind öffentliche Endpunkte. Bestätigen Sie die folgenden Punkte, um Probleme zu lösen, wenn Sie von einer Instance in einem öffentlichen Subnetz aus eine Verbindung zu einem Endpunkt herstellen:

Private Subnetze

Verwenden Sie private IP-Adressen, um privat auf Amazon EC2- und Systems Manager-APIs zuzugreifen. Bestätigen Sie einen der folgenden Punkte, um Probleme zu beheben, wenn Sie von einer Instance in einem privaten Subnetz aus eine Verbindung zu einem Endpunkt herstellen:

  • Die Routing-Tabelle Ihrer Instance leitet den Internetverkehr an ein NAT-Gateway weiter.
  • Ihr VPC-Endpunkt ist so konfiguriert, dass er Systems Manager-Endpunkte erreicht.

Weitere Informationen siehe Wie erstelle ich VPC-Endpunkte, sodass ich den Systems Manager verwenden kann, um private EC2-Instances ohne Internetzugang zu verwalten?

Hinweis: Jeder Schnittstellenendpunkt erstellt eine elastische Netzwerkschnittstelle im bereitgestellten Subnetz.

Überprüfen Sie als bewährte Sicherheitsmethode für private Subnetze die folgenden Einstellungen:

  • Die Sicherheitsgruppe, die an die Netzwerkschnittstelle Ihres VPC-Endpunkts angehängt ist, ermöglicht eingehenden Datenverkehr über TCP-Port 443 von der Sicherheitsgruppe, die an Ihre Instance angehängt ist.
  • Die an Ihre Instance angehängte Sicherheitsgruppe ermöglicht ausgehenden Datenverkehr über TCP-Port 443 an die private IP-Adresse für die Netzwerkschnittstelle Ihres VPC-Endpunkts.

Überprüfen Sie das Setup für die Standard-Hostverwaltungskonfiguration

Hinweis: Wenn Sie die Standard-Hostverwaltungskonfiguration nicht verwenden, fahren Sie mit dem Abschnitt Vergewissern Sie sich, dass die richtige IAM-Rolle an die Instance angehängt ist fort.

Der Systems Manager verwaltet EC2-Instances automatisch ohne ein AWS Identity and Access Management (IAM)-Instance-Profil, wenn Sie die Standard-Hostverwaltungskonfiguration konfigurieren. Wenn Sie diese Funktion konfigurieren, ist der Systems Manager berechtigt, alle Instances in Ihrer Region und Ihrem Konto zu verwalten. Wenn die Berechtigungen für Ihren Anwendungsfall nicht ausreichen, fügen Sie der Standard-IAM-Rolle, die mit der Standard-Hostverwaltungskonfiguration erstellt wurde, Richtlinien hinzu.

Alle zugehörigen Instances müssen Instance Metadata Service Version 2 (IMDSv2) verwenden. Informationen zur Überprüfung Ihrer IMDSv2-Konfiguration finden Sie unter Wenn keine IMDSv1-Nutzung erfolgt und Prüfen Sie, ob Ihre Instances auf IMDSv2 umgestellt werden.

Die Standard-Hostverwaltungskonfiguration ist in SSM Agent Version 3.2.582.0 oder höher verfügbar. Informationen zur Überprüfung Ihrer SSM Agent-Version finden Sie unter Überprüfen der SSM Agenten-Versionsnummer.

Gehen Sie wie folgt vor, um das Setup für die Standard-Hostverwaltungskonfiguration zu überprüfen:

  1. Öffnen Sie die Systems-Manager-Konsole.
  2. Wählen Sie im Navigationsbereich Flottenmanager aus.
  3. Wählen Sie in der Dropdown-Liste Kontoverwaltung die Option Standard-Hostverwaltungskonfiguration aus.
  4. Vergewissern Sie sich, dass die Einstellung Standard-Hostverwaltungskonfiguration aktivieren aktiviert ist.

Sie können auch den folgenden AWS-Befehlszeilenschnittstellen-Befehl (AWS CLI) verwenden, um die Einrichtung für die Standard-Hostverwaltungskonfiguration zu überprüfen:

Hinweis: Ersetzen Sie AccountID durch Ihre AWS-Konto-ID, wenn Sie Befehle ausführen.

aws ssm get-service-setting \
--setting-id arn:aws:ssm:RegionID:AccountID:servicesetting/ssm/managed-instance/default-ec2-instance-management-role

Wenn die Standard-Hostverwaltungskonfiguration eingerichtet ist, erhalten Sie eine Antwort, die der folgenden ähnelt:

{
  "ServiceSetting": {
    "SettingId": "/ssm/managed-instance/default-ec2-instance-management-role",
    "SettingValue": "service-role/AWSSystemsManagerDefaultEC2InstanceManagementRole",
    "LastModifiedDate": 1679492424.738,
    "LastModifiedUser": "arn:aws:sts::012345678910:assumed-role/role/role-name",
    "ARN": "arn:aws:ssm:ap-southeast-1:012345678910:servicesetting/ssm/managed-instance/default-ec2-instance-management-role",
    "Status": "Customized"
  }
}

Hinweis: Wenn der Wert für SettingValue $None ist, ist die Standard-Hostverwaltungskonfiguration nicht konfiguriert.

Stellen Sie sicher, dass die Standard-Hostverwaltungskonfiguration eine entsprechende IAM-Rolle verwendet

Die Rolle AWSSystemsManagerDefaultEC2InstanceManagementRole ist die empfohlene IAM-Rolle, wenn Sie die Standard-Hostverwaltungskonfiguration einrichten. Um eine andere Rolle zu verwenden, stellen Sie sicher, dass der Rolle die IAM-Richtlinie AmazonSSMManagedEC2InstanceDefaultPolicy zugeordnet ist.

Wenn Sie Instance-Profile an Ihre EC2-Instances angehängt haben, entfernen Sie alle Berechtigungen, die den Vorgang ssm:UpdateInstanceInformation zulassen. Der SSM Agent versucht, Instance-Profilberechtigungen zu verwenden, bevor er die Berechtigungen der Standard-Hostverwaltungskonfiguration verwendet. Wenn Sie den Vorgang ssm:UpdateInstanceInformation in Ihren Instance-Profilen zulassen, verwendet Ihre Instance nicht die Berechtigungen der Standard-Hostverwaltungskonfiguration.

Stellen Sie sicher, dass die richtige IAM-Rolle an die Instance angehängt ist

**Hinweis:**Wenn Sie die Standard-Hostverwaltungskonfiguration verwenden, fahren Sie mit dem Abschnitt Konnektivität zum IMDS überprüfen fort.

Um API-Aufrufe an einen Systems Manager-Endpunkt zu tätigen, müssen Sie die AmazonSSMManagedInstanceCore -Richtlinie an die IAM-Rolle anhängen, die Ihrer Instance zugeordnet ist. Wenn Sie eine benutzerdefinierte IAM-Richtlinie verwenden, stellen Sie sicher, dass Ihre benutzerdefinierte Richtlinie die in AmazonSSMManagedInstanceCore enthaltenen Berechtigungen verwendet. Stellen Sie außerdem sicher, dass die Vertrauensrichtlinie für Ihre IAM-Rolle ec2.amazonaws.com erlaubt, diese Rolle zu übernehmen.

Weitere Informationen finden Sie unter Hinzufügen von Berechtigungen zu einem Systems Manager-Instance-Profil (Konsole).

Überprüfen der Konnektivität zu IMDS

Der SSM Agent muss mit dem Instance Metadata Service (IMDS) kommunizieren, um die notwendigen Informationen über Ihre Instance zu erhalten. Führen Sie den folgenden Netcat-Befehl aus, um die Verbindung zu testen:

nc -vz 169.254.169.254 80

Um zu überprüfen, ob IMDS für Ihre bestehende Instance eingerichtet ist, führen Sie einen der folgenden Schritte aus:

  • Öffnen Sie die Amazon-EC2-Konsole. Wählen Sie im Navigationsbereich Instances aus, wählen Sie Ihre Instance aus und wählen Sie dann Aktionen, Instance-Einstellungen, Instance-Metadatenoptionen ändern aus. Im Dialogfeld muss der Instance-Metadatendienst aktiviert sein.

  • Führen Sie in der AWS-CLI den CLI-Befehl describe-instances aus.

    aws ec2 describe-instances --query "Reservations[*].Instances[*].MetadataOptions" --instance-ids i-012345678910

    Beispiel für die Ausgabe:

    [
      [
        {
          "State": "applied",
          "HttpTokens": "optional",
          "HttpPutResponseHopLimit": 1,
          "HttpEndpoint": "enabled",
          "HttpProtocolIpv6": "disabled",
          "InstanceMetadataTags": "disabled"
        }
      ]
    ]
    

    Hinweis: „HttpTokens“: „optional“ bedeutet, dass sowohl IMDSv1 als auch IMDSv2 unterstützt werden. „HttpTokens“: „erforderlich“ bedeutet, dass IMDSv2 unterstützt wird. „HttpEndpoint“: „aktiviert“ bedeutet, dass IMDS aktiviert ist.

Wenn Sie auf Ihrer Instance einen Proxy verwenden, blockiert der Proxy möglicherweise die Konnektivität zur Metadaten-URL. Um dies zu vermeiden, stellen Sie sicher, dass Sie Ihren SSM-Agenten so konfigurieren, dass er mit einem Proxy arbeitet, und legen Sie no\ _proxy für die Metadaten-URL fest. Informationen zur Konfiguration des SSM-Agenten für die Verwendung eines Proxys finden Sie in der folgenden Dokumentation:

Zusätzliche Problembehebung

Wenn Ihre Instance im Systems Manager immer noch nicht als verwalteter Knoten angezeigt wird oder eine unterbrochene Verbindung angezeigt wird, fahren Sie mit der Problembehandlung in den SSM-Agent-Protokollen fort:

  • Linux und macOS: Die SSM-Agent-Protokolle befinden sich in /var/log/amazon/ssm.
  • Windows: Die SSM-Agent-Protokolle befinden sich in %PROGRAMDATA%\Amazon\SSM\Logs.

Wenn Ihre Instance nicht an den SSM-Agenten berichtet, versuchen Sie, sich mit RDP (Windows) oder SSH (Linux) anzumelden, um die Protokolle zu sammeln. Wenn Sie die Protokolle nicht sammeln können, müssen Sie Ihre Instance anhalten und das Root-Volume trennen. Hängen Sie dann das Root-Volume als sekundäres Volume an eine andere Instance in derselben Availability Zone an, um die Protokolle abzurufen.

Ähnliche Informationen

Ein Amazon Elastic Block Store (Amazon EBS)-Volume an eine Instance anhängen

Ein Amazon EBS-Volume von einer Linux-Instance trennen

Ein Amazon EBS-Volume für die Verwendung unter Linux zur Verfügung stellen

Ein Amazon EBS-Volume für die Verwendung unter Windows zur Verfügung stellen