Passwörter und SSH-Schlüssel auf EC2 Instanzen zurücksetzen - AWS Systems Manager

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Passwörter und SSH-Schlüssel auf EC2 Instanzen zurücksetzen

Sie können das AWSSupport-ResetAccess Runbook verwenden, um die lokale Administratorkennwortgenerierung auf Amazon Elastic Compute Cloud (Amazon EC2) -Instances automatisch wieder zu aktivieren für Windows Server und um einen neuen SSH-Schlüssel auf EC2 Instances für Linux zu generieren. Das AWSSupport-ResetAccess Runbook ist so konzipiert, dass es eine Kombination aus AWS Systems Manager Aktionen, AWS CloudFormation Aktionen und AWS Lambda Funktionen ausführt, die die Schritte automatisieren, die normalerweise zum Zurücksetzen des lokalen Administratorkennworts erforderlich sind.

Sie können Automation, ein im AWSSupport-ResetAccess Runbook vorhandenes Tool AWS Systems Manager, verwenden, um die folgenden Probleme zu lösen:

Windows

Sie haben das EC2 key pair verloren: Um dieses Problem zu lösen, können Sie das AWSSupport-ResetAccessRunbook verwenden, um ein kennwortfähiges zu erstellen AMI Starten Sie von Ihrer aktuellen Instance aus eine neue Instance über das AMI und wählen Sie ein key pair aus, das Ihnen gehört.

Sie haben das lokale Administratorkennwort verloren: Um dieses Problem zu lösen, können Sie das AWSSupport-ResetAccess Runbook verwenden, um ein neues Passwort zu generieren, das Sie mit dem aktuellen EC2 key pair entschlüsseln können.

Linux

Sie haben Ihr EC2 key pair verloren, oder Sie haben den SSH-Zugriff auf die Instance mit einem Schlüssel konfiguriert, den Sie verloren haben: Um dieses Problem zu lösen, können Sie das AWSSupport-ResetAccess Runbook verwenden, um einen neuen SSH-Schlüssel für Ihre aktuelle Instance zu erstellen, mit dem Sie sich erneut mit der Instance verbinden können.

Anmerkung

Wenn deine Instanz für EC2 Windows Server ist für Systems Manager konfiguriert. Sie können Ihr lokales Administratorkennwort auch mithilfe von EC2 Rescue zurücksetzen und AWS Systems Manager Run Command. Weitere Informationen finden Sie unter Verwenden von EC2 Rescue für Windows Server mit Systems Manager Run Commandim EC2 Amazon-Benutzerhandbuch.

Funktionsweise

Die Fehlerbehebung bei einer Instance mit Automation und dem AWSSupport-ResetAccess-Runbook funktioniert folgendermaßen:

  • Sie geben die ID der Instance an und führen das Runbook aus.

  • Das System erstellt eine temporäre VPC und führt dann eine Reihe von Lambda-Funktionen aus, um die VPC zu konfigurieren.

  • Das System identifiziert ein Subnetz für Ihre temporäre VPC in derselben Availability Zone wie die ursprüngliche Instance.

  • Das System startet eine temporäre, SSM-fähige Helferobjekt-Instance.

  • Das System stoppt Ihre ursprüngliche Instance und erstellt einen Backup. Anschließend fügt es das ursprüngliche Stamm-Volume an die Helferobjekt-Instance an.

  • Das System verwendet Run Command um EC2 Rescue auf der Helper-Instanz auszuführen. Unter Windows ermöglicht EC2 Rescue die Passwortgenerierung für den lokalen Administrator mithilfe von EC2 Config oder EC2 Launch auf dem angehängten, ursprünglichen Root-Volume. Unter Linux generiert EC2 Rescue einen neuen SSH-Schlüssel, fügt ihn ein und speichert den privaten Schlüssel verschlüsselt im Parameter Store. Wenn der Vorgang abgeschlossen ist, fügt EC2 Rescue das Root-Volume wieder der ursprünglichen Instanz hinzu.

  • Das System erstellt eine neue Amazon Machine Image (AMI) Ihrer Instanz, jetzt ist die Passwortgenerierung aktiviert. Sie können dies verwenden AMI um eine neue EC2 Instanz zu erstellen und bei Bedarf ein neues key pair zuzuordnen.

  • Das System startet die ursprüngliche Instance neu und beendet die temporäre Instance. Das System beendet ebenso die temporäre VPC und die Lambda-Funktionen, die zu Beginn der Automatisierung erstellt wurden.

  • Windows: Ihre Instance generiert ein neues Passwort, das Sie mit dem aktuellen key pair, das der Instance zugewiesen ist, von der EC2 Amazon-Konsole aus dekodieren können.

    Linux: Sie können eine SSH-Verbindung zur Instance herstellen, indem Sie den SSH-Schlüssel verwenden, der im Systems Manager Parameter Store als /ec2rl/openssh/ instance ID /key gespeichert ist.

Bevor Sie beginnen

Bevor Sie die folgende Automation ausführen, führen Sie die folgenden Schritte aus:

  • Kopieren Sie die Instance-ID der Instance, auf der Sie das Administratorpasswort zurücksetzen möchten. Sie legen diese ID im Verfahren fest.

  • Erfassen Sie optional die ID eines Subnetzes in derselben Availability Zone wie Ihre unerreichbare Instance. Die Rescue-Instanz wird in diesem Subnetz erstellt. EC2 Wenn Sie kein Subnetz angeben, erstellt Automation eine neue temporäre VPC in Ihrem. AWS-Konto Stellen Sie sicher, AWS-Konto dass mindestens eine VPC verfügbar ist. Standardmäßig können Sie fünf VPCs in einer Region erstellen. Wenn Sie VPCs in der Region bereits fünf erstellt haben, schlägt die Automatisierung fehl, ohne dass Änderungen an Ihrer Instanz vorgenommen werden. Weitere Informationen zu Amazon VPC-Kontingenten finden Sie unter VPC und Subnetze im Amazon VPC-Benutzerhandbuch.

  • Optional können Sie eine AWS Identity and Access Management (IAM-) Rolle für die Automatisierung erstellen und angeben. Falls Sie diese Rolle nicht festlegen, wird die Automatisierung im Kontext des Benutzers ausgeführt, der die Automatisierung ausgeführt hat.

Erteilen Sie AWSSupport-EC 2Rescue-Berechtigungen zur Durchführung von Aktionen auf Ihren Instances

EC2Rescue benötigt die Erlaubnis, während der Automatisierung eine Reihe von Aktionen auf Ihren Instances durchzuführen. Diese Aktionen rufen die EC2 Services AWS Lambda, IAM und Amazon auf, um sicher und geschützt zu versuchen, Probleme mit Ihren Instances zu beheben. Wenn Sie in Ihrer AWS-Konto und/oder Ihrer VPC über Administratorberechtigungen verfügen, können Sie die Automatisierung möglicherweise ausführen, ohne Berechtigungen zu konfigurieren, wie in diesem Abschnitt beschrieben. Falls Sie keine Administratorberechtigungen besitzen, müssen Sie oder ein Administrator Berechtigungen anhand einer der folgenden Optionen konfigurieren.

Erteilen von Berechtigungen mithilfe von IAM-Richtlinien

Sie können entweder die folgende IAM-Richtlinie als eingebundene Richtlinie an Ihren Benutzer, Ihre Gruppe oder Ihre Rolle anfügen. Sie können aber auch eine neue verwaltete IAM-Richtlinie erstellen und diese an Ihren Benutzer, Ihre Gruppe oder Ihre Rolle anfügen. Weitere Informationen zum Hinzufügen einer eingebundenen Richtlinie zu Ihrem Benutzerkonto, Ihrer Gruppe oder Ihrer Rolle finden Sie unter Verwenden von eingebundenen Richtlinien. Weitere Informationen zum Erstellen einer neuen verwalteten Richtlinien finden Sie unter Verwenden von eingebundenen Richtlinien.

Anmerkung

Wenn Sie eine neue IAM-verwaltete Richtlinie erstellen, müssen Sie ihr auch die verwaltete Amazon SSMAutomation Role Policy hinzufügen, damit Ihre Instances mit der Systems Manager Manager-API kommunizieren können.

IAM-Richtlinie für AWSSupport-ResetAccess

Ersetzen Sie es account ID durch Ihre eigenen Informationen.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction", "lambda:DeleteFunction", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:*:account ID:function:AWSSupport-EC2Rescue-*", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::awssupport-ssm.*/*.template", "arn:aws:s3:::awssupport-ssm.*/*.zip" ], "Effect": "Allow" }, { "Action": [ "iam:CreateRole", "iam:CreateInstanceProfile", "iam:GetRole", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:DetachRolePolicy", "iam:AttachRolePolicy", "iam:PassRole", "iam:AddRoleToInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteInstanceProfile" ], "Resource": [ "arn:aws:iam::account ID:role/AWSSupport-EC2Rescue-*", "arn:aws:iam::account ID:instance-profile/AWSSupport-EC2Rescue-*" ], "Effect": "Allow" }, { "Action": [ "lambda:CreateFunction", "ec2:CreateVpc", "ec2:ModifyVpcAttribute", "ec2:DeleteVpc", "ec2:CreateInternetGateway", "ec2:AttachInternetGateway", "ec2:DetachInternetGateway", "ec2:DeleteInternetGateway", "ec2:CreateSubnet", "ec2:DeleteSubnet", "ec2:CreateRoute", "ec2:DeleteRoute", "ec2:CreateRouteTable", "ec2:AssociateRouteTable", "ec2:DisassociateRouteTable", "ec2:DeleteRouteTable", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:ModifyVpcEndpoint", "ec2:Describe*" ], "Resource": "*", "Effect": "Allow" } ] }

Erteilen von Berechtigungen mithilfe einer AWS CloudFormation Vorlage

AWS CloudFormation automatisiert den Prozess der Erstellung von IAM-Rollen und -Richtlinien mithilfe einer vorkonfigurierten Vorlage. Gehen Sie wie folgt vor, um die erforderlichen IAM-Rollen und -Richtlinien für EC2 Rescue Automation zu erstellen, indem Sie. AWS CloudFormation

So erstellen Sie die erforderlichen IAM-Rollen und -Richtlinien für Rescue EC2
  1. Laden Sie AWSSupport-EC2RescueRole.zip herunter und extrahieren Sie die AWSSupport-EC2RescueRole.json-Datei in ein Verzeichnis auf Ihrem lokalen Computer.

  2. Wenn Sie AWS-Konto sich in einer speziellen Partition befinden, bearbeiten Sie die Vorlage, um die ARN-Werte in die für Ihre Partition zu ändern.

    Ändern Sie beispielsweise für arn:aws alle Fälle von in arn:aws-cn.

  3. Melden Sie sich bei https://console.aws.amazon.com/cloudformation an AWS Management Console und öffnen Sie die AWS CloudFormation Konsole.

  4. Klicken Sie auf Create stack (Stack erstellen), With new resources (standard) (Mit neuen Ressourcen (Standard)).

  5. Wählen Sie auf der Seite Create stack (Stack erstellen) unter Prerequisite - Prepare template (Voraussetzung – Vorlage vorbereiten) die Option Template is ready (Vorlage ist bereit) aus.

  6. Wählen Sie unter Vorlage angeben die Option Vorlagendatei hochladen aus.

  7. Wählen Sie Choose file (Datei auswählen) aus, navigieren Sie dann zu der AWSSupport-EC2RescueRole.json-Datei aus dem Verzeichnis, in dem Sie sie extrahiert haben, und wählen Sie sie aus.

  8. Wählen Sie Weiter.

  9. Geben Sie auf der Seite Specify stack details (Stack-Details angeben) für das Feld Stack name (Stack-Name) einen Namen ein, um diesen Stack zu identifizieren. Wählen Sie dann Next (Weiter) aus.

  10. (Optional) Wenden Sie im Bereich Tags ein oder mehrere Tag-Schlüsselname/-wertpaare auf den Stack an.

    Tags sind optionale Metadaten, die Sie einer Ressource zuweisen. Mithilfe von Tags können Sie eine Ressource unterschiedlich kategorisieren, beispielsweise nach Zweck, Besitzer oder Umgebung. Beispielsweise können Sie einen Stack kennzeichnen, um den Typ der ausgeführten Aufgaben, die Typen von Zielen oder anderen Ressourcen und die Umgebung zu identifizieren, in der er ausgeführt wird.

  11. Wählen Sie Next (Weiter)

  12. Überprüfen Sie auf der Seite Überprüfen“ die Stack-Details, scrollen Sie dann nach unten und wählen Sie die Option Ich bestätige, dass AWS CloudFormation möglicherweise IAM-Ressourcen erstellt werden.

  13. AWS CloudFormation zeigt für einige Minuten den Status CREATE_IN_PROGRESS an. Nach dem Erstellen des Stacks ändert sich der Status in CREATE_COMPLETE. Sie können auch auf das Aktualisierungssymbol klicken, um den Status des Erstellungsprozesses zu überprüfen.

  14. Wählen Sie in der Stackliste die Option neben dem Stack, den Sie gerade erstellt haben, und wählen Sie dann die Registerkarte Outputs (Ausgaben) aus.

  15. Kopieren Sie den Value (Wert). Das ist der ARN von AssumeRole. Sie geben diesen ARN bei der Ausführung der Automation an.

Ausführen der Automation

Im folgenden Verfahren wird beschrieben, wie Sie mithilfe der AWS Systems Manager -Konsole das AWSSupport-ResetAccess-Runbook ausführen.

Wichtig

Die folgende Automatisierung hält die Instance an. Das Anhalten der Instance kann zu Datenverlusten auf den angehängten Instance-Speicher-Volumes (sofern vorhanden) führen. Das Anhalten der Instance kann auch dazu führen, dass die öffentliche IP-Adresse geändert wird, wenn keine elastische IP-Adresse zugeordnet ist. Um diese Konfigurationsänderungen zu vermeiden, verwenden Sie Run Command um den Zugriff zurückzusetzen. Weitere Informationen finden Sie unter Verwenden von EC2 Rescue für Windows Server mit Systems Manager Run Commandim EC2 Amazon-Benutzerhandbuch.

Um die AWSSupport-ResetAccess Automatisierung auszuführen
  1. Öffnen Sie die AWS Systems Manager Konsole unter https://console.aws.amazon.com/systems-manager/.

  2. Klicken Sie im Navigationsbereich auf Automation.

  3. Wählen Sie Automatisierung ausführen.

  4. Wählen Sie im Abschnitt Automation document (Automatisierungsdokument) die Option Owned by Amazon (Im Besitz von Amazon) aus der Liste aus.

  5. Wählen Sie in der Runbooks-Liste die Schaltfläche auf der Karte für AWSSupport-ResetAccess und wählen Sie danach Weiter.

  6. Klicken Sie auf der Seite Execute automation document (Automation-Dokument ausführen) auf Simple execution (Einfache Ausführung).

  7. Überprüfen Sie im Abschnitt Document details (Dokumentdetails), ob Document version (Dokumentversion) auf die höchste Standardversion gesetzt ist. Beispiel: $DEFAULT oder 3 (default) (3 (Standard)).

  8. Geben Sie im Abschnitt Input Parameters die folgenden Parameter an.

    1. Geben Sie für InstanceID die ID der nicht erreichbaren Instance an.

    2. Geben Sie für SubnetIdein Subnetz in einer vorhandenen VPC in derselben Availability Zone wie die angegebene Instance an. Standardmäßig erstellt Systems Manager eine neue VPC, aber Sie können ein Subnetz in einer vorhandenen VPC angeben, wenn Sie möchten.

      Anmerkung

      Wenn Sie die Option zur Angabe einer Subnetz-ID nicht sehen, überprüfen Sie, ob Sie die neueste Default-Version des Runbooks verwenden.

    3. Geben Sie für EC2RescueInstanceTypeeinen Instanztyp für die EC2 Rescue-Instanz an. Der Standard-Instance-Typ lautet t2.medium.

    4. Denn AssumeRolewenn Sie Rollen für diese Automatisierung mithilfe des weiter oben in diesem Thema beschriebenen AWS CloudFormation Verfahrens erstellt haben, geben Sie den AssumeRole ARN an, den Sie in der AWS CloudFormation Konsole notiert haben.

  9. (Optional) Wenden Sie im Bereich Tags mindestens ein Tag-Schlüsselname-/-Wert-Paar an, um die Automatisierung zu identifizieren, z. B. Key=Purpose,Value=ResetAccess.

  10. Wählen Sie Ausführen.

  11. Zur Überwachung des Fortschritts der Automatisierung wählen Sie die laufende Automatisierung und dann die Registerkarte Steps (Schritte). Wenn die Automatisierung abgeschlossen ist, wählen Sie die Registerkarte Descriptions (Beschreibungen) und dann View output (Ausgabe anzeigen), um die Ergebnisse anzuzeigen. Zum Anzeigen der Ausgabe der einzelnen Schritte wählen Sie die Registerkarte Steps (Schritte) und dann neben einem Schritt View Outputs (Ausgabe anzeigen) aus.

Das Runbook erstellt ein Backup AMI und ein passwortfähiges AMI als Teil der Automatisierung. Alle anderen durch die Automatisierung erstellten Ressourcen werden automatisch gelöscht, aber diese AMIs bleiben Sie in Ihrem Konto. Das Tool AMIs werden nach den folgenden Konventionen benannt:

  • Backup AMI: AWSSupport-EC2Rescue:InstanceID

  • Passwort-fähiges AMI: AWSSupport-EC 2Rescue: Passwort-fähiges AMI von Instance ID

Sie können diese finden AMIs indem Sie nach der Ausführungs-ID für die Automatisierung suchen.

Für Linux wird der neue private SSH-Schlüssel für Ihre Instanz verschlüsselt gespeichert in Parameter Store. Der Parametername ist /ec2rl/openssh/ instance ID /key.