Ü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 Ihre Instances so konfigurieren möchten, dass sie nur Aufrufe von Instance Metadata Service Version 2 (IMDSv2) akzeptieren, empfehlen wir Ihnen, die folgenden Tools und den folgenden Übergangspfad zu verwenden.

Tools für den Übergang zu IMDSv2

Mit den folgenden Tools können Sie den Übergang Ihrer Software von zu identifizieren, zu überwachen und IMDSv1 zu IMDSv2 verwalten. Anweisungen zur Verwendung dieser Tools finden Sie unterEmpfohlener Pfad zur Anforderung IMDSv2.

AWS Software

Die neuesten Versionen der AWS SDKs AWS CLI und unterstützen IMDSv2. Um IMDSv2 zu verwenden, aktualisieren Sie Ihre EC2-Instances, sodass sie die neuesten Versionen verwenden. Informationen zu den AWS SDK-Mindestversionen, die dies unterstützen IMDSv2, finden Sie unter. Verwenden Sie ein unterstütztes AWS SDK

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

IMDS-Paket-Analysator

IMDS Packet Analyzer ist ein Open-Source-Tool, das IMDSv1 Aufrufe während der Startphase und der Laufzeitvorgänge Ihrer Instance identifiziert und protokolliert. Durch die Analyse dieser Protokolle können Sie genau identifizieren, welche Software Ihre Instances IMDSv1 aufruft, und bestimmen, welche Software aktualisiert werden muss, damit sie IMDSv2 nur auf Ihren Instances unterstützt wird. Sie können IMDS-Paket-Analysator von der Befehlszeile aus ausführen oder als Service installieren. Weitere Informationen finden Sie AWS ImdsPacketAnalyzerunter GitHub.

CloudWatch

CloudWatch bietet die folgenden zwei Metriken für die Überwachung Ihrer Instances:

MetadataNoToken— IMDSv2 verwendet tokengestützte Sitzungen, tut dies aber IMDSv1 nicht. Die MetadataNoToken Metrik verfolgt die Anzahl der Aufrufe des Instance Metadata Service (IMDS), die verwendet werden. IMDSv1 Indem Sie diese Metrik bis zum Wert Null nachverfolgen, können Sie feststellen, ob und wann Ihre Software auf IMDSv2 aktualisiert wurde.

MetadataNoTokenRejected— Nach der Deaktivierung IMDSv1 können Sie anhand der MetadataNoTokenRejected Metrik verfolgen, wie oft ein IMDSv1 Anruf versucht und abgelehnt wurde. Indem Sie diese Metrik verfolgen, können Sie feststellen, ob Ihre Software aktualisiert werden muss, um sie verwenden IMDSv2 zu können.

Für jede EC2-Instance schließen sich diese Metriken gegenseitig aus. Wenn aktiviert IMDSv1 ist (httpTokens = optional), wird nur ausgegebenMetadataNoToken. Wenn deaktiviert IMDSv1 ist (httpTokens = required), wird nur ausgegebenMetadataNoTokenRejected. Wann Sie diese Metriken verwenden sollten, finden Sie unterEmpfohlener Pfad zur Anforderung IMDSv2.

Weitere Informationen finden Sie unter Instance-Metriken.

Starten APIs

Neue Instances: Verwenden Sie die RunInstancesAPI, um neue Instances zu starten, für die die Verwendung von erforderlich ist IMDSv2. Weitere Informationen finden Sie unter Konfigurieren von Instance-Metadatenoptionen für neue Instances.

Bestehende Instanzen: Verwenden Sie die ModifyInstanceMetadataOptionsAPI, um die Verwendung von IMDSv2 auf vorhandenen Instanzen vorzuschreiben. Weitere Informationen finden Sie unter Modifizieren von Instance-Metadatenoptionen für vorhandene Instances.

Neue Instances, die von Auto Scaling Scaling-Gruppen gestartet wurden: Um die Verwendung von IMDSv2 für alle neuen Instances zu verlangen, die von Auto Scaling Scaling-Gruppen gestartet werden, können Ihre Auto Scaling 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.

Bestehende Instances in einer Auto Scaling Scaling-Gruppe: Verwenden Sie die ModifyInstanceMetadataOptionsAPI, um die Verwendung von IMDSv2 auf vorhandenen Instances vorzuschreiben, oder beenden Sie die Instances, und die Auto Scaling Scaling-Gruppe startet neue Ersatz-Instances mit den Einstellungen der Instance-Metadaten-Optionen, die in der neuen Startvorlage oder Startkonfiguration definiert sind.

AMIs

AMIs konfiguriert mit dem ImdsSupport Parameter, der auf gesetzt ist, v2.0 startet IMDSv2 standardmäßig Instances, die dies erfordern. Amazon Linux 2023 ist konfiguriert mitImdsSupport = v2.0.

Neu AMIs: Verwenden Sie den CLI-Befehl register-image, um den ImdsSupport Parameter auf zu setzen, v2.0 wenn Sie ein neues AMI erstellen.

Existierend AMIs: Verwenden Sie den modify-image-attributeCLI-Befehl, um den ImdsSupport Parameter auf festzulegen, v2.0 wenn Sie ein vorhandenes AMI ändern.

Weitere Informationen finden Sie unter Konfigurieren des AMI.

Kontrollen auf Kontoebene

Sie können Standardwerte für alle Instanz-Metadatenoptionen auf Kontoebene konfigurieren. Die Standardwerte werden automatisch angewendet, wenn Sie eine Instance starten. Weitere Informationen finden Sie unterIMDSv2 Als Standard für das Konto festlegen.

Sie können die Anforderung zur Nutzung auch IMDSv2 auf Kontoebene durchsetzen. Wenn die IMDSv2 Durchsetzung aktiviert ist:

  • Neue Instanzen: Instances, die so konfiguriert sind, dass sie mit IMDSv1 aktivierter Option gestartet werden, können nicht gestartet werden

  • Bestehende Instances mit IMDSv1 deaktiviertem Status: Versuche, sie IMDSv1 auf vorhandenen Instances zu aktivieren, werden verhindert.

  • Bestehende Instanzen mit IMDSv1 aktivierter Option: Bestehende Instanzen, die IMDSv1 bereits aktiviert sind, sind davon nicht betroffen.

Weitere Informationen finden Sie unter IMDSv2 Auf Kontoebene durchsetzen.

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 mithilfe der RunInstancesAPI gestartet werden, es sei denn, die Instance ist für die Verwendung konfiguriert. IMDSv2

  • Eine bestehende Instanz kann nicht mithilfe der ModifyInstanceMetadataOptionsAPI geändert werden, um sie erneut zu aktivierenIMDSv1.

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 mit dem Status übereinstimmt, der in der Richtlinie angegeben ist, die den Bedingungsschlüssel enthält, schlägt der API- oder CLI-Aufruf mit einer UnauthorizedOperation Antwort 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 für die APIs, die über EC2-Rollenanmeldedaten aufgerufen werden, können Sie einen Bedingungsschlüssel entweder in IAM-Richtlinien oder in AWS Organizations Dienststeuerungsrichtlinien () SCPs verwenden. Insbesondere wenn Sie den Bedingungsschlüssel ec2:RoleDelivery mit einem Wert von 2.0 in Ihren IAM-Richtlinien verwenden, erhalten API-Aufrufe, die mit den EC2-Rollenanmeldedaten von IMDSv1 abgerufen wurden, eine Antwort. UnauthorizedOperation Das Gleiche kann mit der von einer SCP erzwungenen Bedingung weiter gefasst werden. Dadurch wird sichergestellt, dass die über übermittelten Anmeldeinformationen IMDSv1 nicht tatsächlich zum Aufrufen verwendet werden können, APIs da bei API-Aufrufen, die nicht der angegebenen Bedingung entsprechen, eine UnauthorizedOperation Fehlermeldung ausgegeben wird.

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

Deklarative Richtlinien

Verwenden Sie deklarative Richtlinien (eine Funktion von AWS Organizations), um die Standardeinstellungen für IMDS-Konten, einschließlich deren IMDSv2 Durchsetzung, in Ihrem gesamten Unternehmen zentral festzulegen. Eine Beispielrichtlinie finden Sie auf der Registerkarte Instanz-Metadaten im Abschnitt Unterstützte deklarative Richtlinien im Benutzerhandbuch.AWS Organizations

Schritt 1: Identifizieren Sie Instanzen mit IMDSv2 =optional und überprüfen Sie die Nutzung IMDSv1

Um Ihren IMDSv2 Migrationsumfang einzuschätzen, identifizieren Sie Instanzen, die so konfiguriert sind, dass sie entweder IMDSv1 oder zulassen IMDSv2, und prüfen Sie IMDSv1 Aufrufe.

  1. Identifizieren Sie Instanzen, die so konfiguriert sind, dass sie entweder IMDSv1 oder IMDSv2:

    Amazon EC2 console
    1. Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/.

    2. Wählen Sie im Navigationsbereich Instances aus.

    3. Um nur die Instanzen zu sehen, die so konfiguriert sind, dass sie IMDSv1 oder zulassen IMDSv2, fügen Sie den Filter IMDSv2 = optional hinzu.

    4. Um zu sehen, ob dies optional oder für alle Instanzen erforderlich IMDSv2 ist, öffnen Sie alternativ das Einstellungsfenster (Zahnradsymbol) IMDSv2, schalten Sie die Option ein und wählen Sie Bestätigen. Dadurch wird die IMDSv2Spalte zur Instanzen-Tabelle hinzugefügt.

    AWS CLI

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

    aws ec2 describe-instances --filters "Name=metadata-options.http-tokens,Values=optional" --query "Reservations[*].Instances[*].[InstanceId]" --output text
  2. IMDSv1 Audit-Aufrufe für jede Instanz:

    Verwenden Sie die CloudWatch MetrikMetadataNoToken. Diese Metrik zeigt die Anzahl der IMDSv1 Aufrufe an das IMDS auf Ihren Instances. Weitere Informationen finden Sie unter Instanz-Metriken.

  3. Identifizieren Sie die Software auf Ihren Instances, die IMDSv1 Anrufe tätigt:

    Verwenden Sie den Open-Source-IMDS Packet Analyzer, um IMDSv1 Aufrufe während der Startphase und der Laufzeitvorgänge Ihrer Instance zu identifizieren und zu protokollieren. Verwenden Sie diese Informationen, um die Software zu identifizieren, die aktualisiert werden muss, damit Ihre Instances IMDSv2 nur einsatzbereit sind. Sie können IMDS-Paket-Analysator von der Befehlszeile aus ausführen oder als Service installieren.

Schritt 2: Aktualisieren Sie die Software auf IMDSv2

Aktualisieren Sie alle SDKs, und Software CLIs, die Rollenanmeldedaten auf Ihren Instances verwendet, auf IMDSv2 -kompatible Versionen. Weitere Informationen zur Aktualisierung der CLI finden Sie unter Installieren oder Aktualisieren auf die neueste Version der AWS CLI im Benutzerhandbuch für AWS Command Line Interface .

Schritt 3: Keine Instanzen erforderlich IMDSv2

Nachdem Sie anhand der MetadataNoToken Metrik bestätigt haben, dass keine IMDSv1 Aufrufe mehr erforderlich sind, konfigurieren Sie Ihre vorhandenen Instances so, dass sie erforderlich sind IMDSv2. Konfigurieren Sie außerdem alle neuen Instanzen so, dass sie erforderlich sind IMDSv2. Mit anderen Worten, deaktivieren Sie es IMDSv1 auf allen vorhandenen und neuen Instanzen.

  1. Konfigurieren Sie bestehende Instanzen so, dass sie Folgendes erfordernIMDSv2:

    Amazon EC2 console
    1. Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/.

    2. Wählen Sie im Navigationsbereich Instances aus.

    3. Wählen Sie Ihre Instance aus.

    4. Wählen Sie Aktionen, Instance-Einstellungen und Instance-Metadata-Optionen ändern.

    5. Wählen Sie für IMDSv2die Option Erforderlich aus.

    6. Wählen Sie Speichern.

    AWS CLI

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

    Anmerkung

    Sie können diese Einstellung bei laufenden Instances ändern. Die Änderung wird sofort wirksam, ohne dass ein Neustart der Instanz erforderlich ist.

    Weitere Informationen finden Sie unter Erfordern die Verwendung von IMDSv2.

  2. Achten Sie nach der Deaktivierung IMDSv1 auf Probleme:

    1. Verfolgen Sie anhand der MetadataNoTokenRejected CloudWatch Metrik, wie oft ein IMDSv1 Anruf versucht und abgelehnt wurde.

    2. Wenn die MetadataNoTokenRejected Metrik IMDSv1 Aufrufe einer Instanz aufzeichnet, bei der Softwareprobleme auftreten, bedeutet dies, dass die Software aktualisiert werden muss, damit sie verwendet IMDSv2 werden kann.

  3. Konfigurieren Sie neue Instanzen so, dass sie Folgendes erfordernIMDSv2:

    Amazon EC2 console
    1. Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/.

    2. Folgen Sie den Schritten, um eine Instanz zu starten.

    3. Erweitern Sie Erweiterte Details und wählen Sie als Metadaten-Version nur V2 aus (Token erforderlich).

    4. Überprüfen Sie im Bereich Summary (Übersicht) die Konfiguration Ihrer Instance und wählen Sie dann Launch instance (Instance starten) aus.

      Weitere Informationen finden Sie unter Konfigurieren der Instance beim Start.

    AWS CLI

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

Schritt 4: Stellen Sie IMDSv2 =required als Standard ein

Sie können IMDSv2 =required als Standardkonfiguration entweder auf Konto- oder Organisationsebene festlegen. Dadurch wird sichergestellt, dass alle neu gestarteten Instances automatisch so konfiguriert werden, dass sie Folgendes benötigen IMDSv2.

  1. Legen Sie den Standard auf Kontoebene fest:

    Amazon EC2 console
    1. Öffnen Sie die Amazon-EC2-Konsole unter https://console.aws.amazon.com/ec2/.

    2. Wählen Sie im Navigationsbereich Dashboard (Dashboard).

    3. Wählen Sie auf der Karte Kontoattribute unter Einstellungen die Option Datenschutz und Sicherheit aus.

    4. Wählen Sie unter IMDS-Standardeinstellungen die Option Verwalten aus.

    5. Wählen Sie für Instance-Metadaten-Service die Option Aktiviert aus.

    6. Wählen Sie für die Metadatenversion nur V2 aus (Token erforderlich).

    7. Wählen Sie Aktualisieren aus.

    AWS CLI

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

    Weitere Informationen finden Sie unter IMDSv2 Als Standard für das Konto festlegen.

  2. Alternativ können Sie mithilfe einer deklarativen Richtlinie den Standard auf Organisationsebene festlegen:

    Verwenden Sie eine deklarative Richtlinie, um den Organisationsstandard für auf erforderlich festzulegen. IMDSv2 Eine Beispielrichtlinie finden Sie auf der Registerkarte Instanz-Metadaten im Abschnitt Unterstützte deklarative Richtlinien im AWS Organizations Benutzerhandbuch.

Schritt 5: Erzwingen Sie, dass Instanzen Folgendes benötigen IMDSv2

Sobald Sie bestätigt haben, dass keine IMDSv1 Abhängigkeit von einer Ihrer Instances besteht, empfehlen wir Ihnen, dies für alle neuen Instances durchzusetzen IMDSv2 .

Verwenden Sie zur Durchsetzung eine der folgenden Optionen IMDSv2:

  1. IMDSv2 Mit einer Kontoeigenschaft durchsetzen

    Sie können die Verwendung von für jedes Konto IMDSv2 auf Kontoebene erzwingen AWS-Region. Wenn diese Option erzwungen wird, können Instances nur gestartet werden, wenn sie so konfiguriert sind, dass sie dies erfordern IMDSv2. Diese Durchsetzung gilt unabhängig davon, wie die Instance oder das AMI konfiguriert ist. Weitere Informationen finden Sie unter IMDSv2 Auf Kontoebene durchsetzen. Um diese Einstellung auf Organisationsebene anzuwenden, legen Sie eine deklarative Richtlinie fest. Eine Beispielrichtlinie finden Sie auf der Registerkarte Instanz-Metadaten im Abschnitt Unterstützte deklarative Richtlinien im AWS Organizations Benutzerhandbuch.

    Um zu verhindern, dass die Durchsetzung rückgängig gemacht wird, sollten Sie eine IAM-Richtlinie verwenden, um den Zugriff auf die API zu verhindern. ModifyInstanceMetadataDefaults Weitere Informationen finden Sie unter Verwenden einer IAM-Richtlinie.

    Anmerkung

    Diese Einstellung ändert nicht die IMDS-Version vorhandener Instances, blockiert jedoch die Aktivierung vorhandener Instances, die derzeit IMDSv1 deaktiviert sind. IMDSv1

    Warnung

    Wenn die IMDSv2 Erzwingung aktiviert httpTokens ist und weder required in der Instance-Konfiguration beim Start noch in den Kontoeinstellungen oder in der AMI-Konfiguration auf festgelegt ist, schlägt der Instance-Start fehl. Informationen zur Problembehebung finden Sie unter Das Starten einer IMDSv1 -fähigen Instance schlägt fehl.

  2. Alternativ können Sie die IMDSv2 Erzwingung mithilfe der folgenden IAM- oder SCP-Bedingungsschlüssel erzwingen:

    • ec2:MetadataHttpTokens

    • ec2:MetadataHttpPutResponseHopLimit

    • ec2:MetadataHttpEndpoint

    Diese Bedingungsschlüssel steuern die Verwendung der RunInstancesModifyInstanceMetadataOptions APIs und der entsprechenden. CLIs 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.