Übergang zur Verwendung von Instance-Metadatenservice Version 2 - Amazon Elastic Compute Cloud

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.

Übergang zur Verwendung von Instance-Metadatenservice Version 2

Wenn Sie die zu IMDSv2 migrieren, empfehlen wir Ihnen, die folgenden Tools und Wege zu verwenden.

Tools zur Unterstützung beim Wechsel zu IMDSv2

Wenn Ihre Software IMDSv1 verwendet, verwenden Sie die folgenden Tools, um Ihre Software für die Verwendung von IMDSv2 neu zu konfigurieren.

AWS Software

Die neuesten Versionen der AWS SDKs AWS CLI und unterstützen IMDSv2. Stellen Sie zur Verwendung von IMDSv2 sicher, dass Ihre EC2-Instances über die neuesten Versionen der CLI und der SDKs verfügen. Informationen zum Aktualisieren der CLI finden Sie unter Installieren, Aktualisieren und Deinstallieren von AWS CLI im AWS Command Line Interface -Benutzerhandbuch.

Alle Amazon Linux 2- und Amazon Linux 2023-Softwarepakete unterstützen IMDSv2. In Amazon Linux 2023 ist IMDSv1 standardmäßig deaktiviert.

Die minimalen AWS SDK-Versionen, die IMDSv2 unterstützen, finden Sie unter. Verwenden eines unterstützten AWS -SDK

IMDS-Paket-Analysator

Der IMDS-Paket-Analysator ist ein Open-Source-Tool, das IMDSv1-Aufrufe aus der Startphase Ihrer Instance identifiziert und protokolliert. Dies kann dazu beitragen, die Software zu identifizieren, die IMDSv1-Aufrufe auf EC2-Instances ausführt, sodass Sie genau bestimmen können, was Sie aktualisieren müssen, damit Ihre Instances IMDSv2 verwenden können. Sie können IMDS-Paket-Analysator von der Befehlszeile aus ausführen oder als Service installieren. Weitere Informationen finden Sie unter IMDS Packet Analyzer unter. GitHub

CloudWatch

IMDSv2 verwendet Token-gestützte Sitzungen, IMDSv1 hingegen nicht. Die MetadataNoToken CloudWatch Metrik verfolgt die Anzahl der Aufrufe des Instance Metadata Service (IMDS), die IMDSv1 verwenden. Indem Sie diese Metrik bis zum Wert Null nachverfolgen, können Sie feststellen, ob und wann Ihre Software auf IMDSv2 upgegradet wurde.

Nachdem Sie IMDSv1 deaktiviert haben, können Sie anhand der MetadataNoTokenRejected CloudWatch Metrik verfolgen, wie oft ein IMDSv1-Aufruf versucht und abgelehnt wurde. Indem Sie diese Metrik verfolgen, können Sie feststellen, ob Ihre Software aktualisiert werden muss, um IMDSv2 verwenden zu können.

Weitere Informationen finden Sie unter Instance-Metriken.

Aktualisierungen von EC2-APIs und -CLIs

Für neue Instances können Sie die RunInstancesAPI verwenden, um neue Instances zu starten, für die IMDSv2 erforderlich ist. Weitere Informationen finden Sie unter Konfigurieren von Instance-Metadatenoptionen für neue Instances.

Für bestehende Instances können Sie die ModifyInstanceMetadataOptionsAPI verwenden, um die Verwendung von IMDSv2 vorzuschreiben. Weitere Informationen finden Sie unter Modifizieren von Instance-Metadatenoptionen für vorhandene Instances.

Um die Verwendung von IMDSv2 auf allen neuen Instances zu verlangen, die von Auto Scaling-Gruppen gestartet werden, können Ihre Auto Scaling-Gruppen entweder eine Startvorlage oder eine Startkonfiguration verwenden. Wenn Sie eine Startvorlage erstellen oder eine Startkonfiguration erstellen, müssen Sie die MetadataOptions-Parameter so konfigurieren, dass die Verwendung von IMDSv2 erforderlich ist. Die Auto-Scaling-Gruppe startet neue Instances mit der neuen Startvorlage oder Startkonfiguration, bestehende Instances sind davon jedoch nicht betroffen. Für bestehende Instances in einer Auto Scaling Scaling-Gruppe können Sie die ModifyInstanceMetadataOptionsAPI verwenden, um die Verwendung von IMDSv2 auf den vorhandenen Instances vorzuschreiben, oder Sie können die Instances beenden und die Auto Scaling Scaling-Gruppe startet neue Ersatz-Instances mit den Einstellungen der Instance-Metadatenoptionen, die in der neuen Startvorlage oder Startkonfiguration definiert sind.

Verwenden eines AMI, das IMDSv2 standardmäßig konfiguriert

Beim Starten einer Instance können Sie sie automatisch so konfigurieren, dass sie standardmäßig IMDSv2 verwendet (der Parameter HttpTokens ist auf required eingestellt). Dazu starten Sie sie mit einem AMI, in dessen Konfiguration der Parameter ImdsSupport auf v2.0 eingestellt ist. Sie können den ImdsSupport Parameter auf festlegen, v2.0 wenn Sie das AMI mit dem CLI-Befehl register-image registrieren, oder Sie können ein vorhandenes AMI mit dem modify-image-attributeCLI-Befehl ändern. Weitere Informationen finden Sie unter Konfigurieren des AMI.

IAM-Richtlinien und SCPs

Sie können eine IAM-Richtlinie oder eine AWS Organizations Service Control Policy (SCP) verwenden, um Benutzer wie folgt zu kontrollieren:

  • Eine Instance kann nicht über die RunInstancesAPI gestartet werden, es sei denn, die Instance ist für die Verwendung von IMDSv2 konfiguriert.

  • Eine laufende Instanz kann nicht mithilfe der ModifyInstanceMetadataOptionsAPI geändert werden, um IMDSv1 erneut zu aktivieren.

Die IAM-Richtlinie oder die SCP muss die folgenden IAM-Bedingungsschlüssel enthalten:

  • ec2:MetadataHttpEndpoint

  • ec2:MetadataHttpPutResponseHopLimit

  • ec2:MetadataHttpTokens

Wenn ein Parameter im API- oder CLI-Aufruf nicht dem Status entspricht, der in der Richtlinie mit dem Bedingungsschlüssel angegeben ist, schlägt der API- oder CLI-Aufruf mit der Antwort UnauthorizedOperation fehl.

Darüber hinaus können Sie eine zusätzliche Schutzebene auswählen, um die Änderung von IMDSv1 auf IMDSv2 zu erzwingen. Auf der Zugriffsverwaltungsebene können Sie in Bezug auf die APIs, die über EC2-Rollenanmeldedaten aufgerufen werden, einen neuen Bedingungsschlüssel entweder in IAM-Richtlinien oder in AWS Organizations Service Control Policies (SCPs) verwenden. Durch Verwendung des Bedingungsschlüssels ec2:RoleDelivery mit dem Wert 2.0 in Ihren IAM-Richtlinien erhalten insbesondere API-Aufrufe mit Anmeldeinformationen von EC2-Rollen, die von IMDSv1 abgerufen wurden, die Antwort UnauthorizedOperation. Das Gleiche kann mit der von einer SCP erzwungenen Bedingung weiter gefasst werden. Dadurch wird sichergestellt, dass die über IMDSv1 gelieferten Anmeldeinformationen nicht tatsächlich für den Aufruf von APIs verwendet werden können, da alle API-Aufrufe, die nicht der angegebenen Bedingung entsprechen, einen UnauthorizedOperation-Fehler erhalten.

Beispiele für IAM-Richtlinien finden Sie unter Arbeiten mit Instance-Metadaten. Weitere Informationen zu SCPs finden Sie unter Service-Kontrollrichtlinien im Benutzerhandbuch von AWS Organizations .

Mit den oben genannten Tools empfehlen wir Ihnen, diesen Pfad für den Wechsel zu IMDSv2 zu folgen.

Schritt 1: Zu Beginn

Aktualisieren Sie die SDKs, CLIs und Anwendungen, die Rollen-Anmeldeinformationen auf ihren EC2-Instances verwenden, auf IMDSv2-kompatible Versionen. Informationen zum Upgrade der CLI finden Sie unter Upgrade auf die neueste Version der AWS CLI im AWS Command Line Interface -Benutzerhandbuch.

Ändern Sie dann Ihre Software, die über die IMDSv2-Anfragen direkt auf Instance-Metadaten zugreift (mit anderen Worten, die kein SDK verwendet). Sie können den IMDS-Paket-Analysator verwenden, um die Software zu identifizieren, die Sie ändern müssen, um IMDSv2-Anfragen verwenden zu können.

Schritt 2: Verfolgen des Umstellungsfortschritts

Verfolgen Sie Ihren Umstellungsfortschritt anhand der Metrik. CloudWatch MetadataNoToken Diese Metrik zeigt die Anzahl der IMDSv1-Aufrufe des IMDS für Ihre Instances an. Weitere Informationen finden Sie unter Instance-Metriken.

Schritt 3: Wenn IMDSv1 nicht mehr genutzt wird

Wenn die CloudWatch Metrik keine IMDSv1-Nutzung MetadataNoToken verzeichnet, sind Ihre Instances bereit, vollständig auf IMDSv2 umgestellt zu werden. In dieser Phase können Sie Folgendes tun:

  • Standardeinstellung für das Konto

    Sie können festlegen, dass IMDSv2 als Standardkonto erforderlich ist. Wenn eine Instanz gestartet wird, wird die Instanzkonfiguration automatisch auf den Kontostandard gesetzt.

    Gehen Sie wie folgt vor, um den Kontostandard festzulegen:

    • Amazon EC2 EC2-Konsole: Stellen Sie im EC2-Dashboard unter Kontoattribute, Datenschutz und Sicherheit für IMDS-Standardeinstellungen den Instance-Metadatenservice auf Aktiviert und die Metadatenversion auf Nur V2 (Token erforderlich) ein. Weitere Informationen finden Sie unter Legen Sie IMDSv2 als Standard für das Konto fest.

    • AWS CLI: Verwenden Sie den modify-instance-metadata-defaultsCLI-Befehl und geben Sie --http-tokens required und an--http-put-response-hop-limit 2.

  • Neue Instances

    Beim Starten einer neuen Instance haben Sie folgende Möglichkeiten:

    • Amazon-EC2-Konsole: Stellen Sie im Launch Instance Wizard die Option Zugriff auf Metadaten auf Aktiviert und die Option Metadatenversion auf (Nur V2 (Token erforderlich) ein. Weitere Informationen finden Sie unter Konfigurieren der Instance beim Start.

    • AWS CLI: Verwenden Sie den CLI-Befehl run-instances und geben Sie an, dass IMDSv2 erforderlich ist.

  • Vorhandene Instances

    Bei vorhandenen Instances können Sie Folgendes tun:

    • Amazon-EC2-Konsole: Wählen Sie auf der Seite Instances Ihre Instance aus, wählen Sie Aktionen, Instance-Einstellungen, Instance-Metadatenoptionen ändern und für IMDSv2 die Option Erforderlich. Weitere Informationen finden Sie unter Erzwingen der Verwendung von IMDSv2.

    • AWS CLI: Verwenden Sie den modify-instance-metadata-optionsCLI-Befehl, um anzugeben, dass nur IMDSv2 verwendet werden soll.

    Sie können die Instance-Metadatenoptionen auf laufenden Instances ändern, und Sie müssen die Instances nicht neu starten, nachdem Sie die Instance-Metadatenoptionen geändert haben.

Schritt 4: Überprüfen, dass alle Instances zu IMDSv2 gewechselt sind

Sie können überprüfen, ob irgendwelche Instances noch nicht so konfiguriert sind, dass sie die Verwendung von IMDSv2 erfordern, mit anderen Worten, bei denen IMDSv2 immer noch als optional konfiguriert ist. Wenn Instances immer noch als optional konfiguriert sind, können Sie die Intance-Metadatenoptionen ändern, um IMDSv2 required zu machen, indem Sie den vorherigen Schritt 3 wiederholen.

Filtern Ihrer Instances:

  • Amazon-EC2-Konsole: Auf der Seite Instances filtern Sie Ihre Instances mit Hilfe des Filters IMDSv2 = optional. Weitere Informationen zur Filterung erhalten Sie unter Filtern von Ressourcen mithilfe der Konsole. Sie können auch sehen, ob IMDSv2 für jede Instance erforderlich oder optional ist: Schalten Sie im Fenster Einstellungen auf IMDSv2 um, um die Spalte IMDSv2 zur Instance-Tabelle hinzuzufügen.

  • AWS CLI: Verwenden Sie den CLI-Befehl describe-instances und filtern Sie wie folgt nach metadata-options.http-tokens = optional:

    aws ec2 describe-instances --filters "Name=metadata-options.http-tokens,Values=optional" --query "Reservations[*].Instances[*].[InstanceId]" --output text

Schritt 5: Wenn alle Instances zu IMDSv2 gewechselt sind

Die ec2:MetadataHttpEndpoint IAM-Bedingungsschlüssel ec2:MetadataHttpTokensec2:MetadataHttpPutResponseHopLimit, und können verwendet werden, um die Verwendung der ModifyInstanceMetadataOptionsAPIs RunInstancesund der entsprechenden CLIs zu steuern. Wenn eine Richtlinie erstellt wird und ein Parameter im API-Aufruf nicht mit dem in der Richtlinie über den Bedingungsschlüssel angegebenen Status übereinstimmt, schlägt der API- oder CLI-Aufruf mit einer UnauthorizedOperation-Antwort fehl. Beispiele für IAM-Richtlinien finden Sie unter Arbeiten mit Instance-Metadaten.

Darüber hinaus können Sie nach der Deaktivierung von IMDSv1 anhand der MetadataNoTokenRejected CloudWatch Metrik verfolgen, wie oft ein IMDSv1-Anruf versucht und abgelehnt wurde. Wenn Sie nach der Deaktivierung von IMDSv1 über Software verfügen, die nicht ordnungsgemäß funktioniert und die MetadataNoTokenRejected Metrik IMDSv1-Aufrufe aufzeichnet, muss diese Software wahrscheinlich aktualisiert werden, um IMDSv2 verwenden zu können.