Ü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 von AWS CLI und AWS SDKs unterstützen IMDSv2. Um zu verwendenIMDSv2, aktualisieren Sie Ihre EC2 Instances, sodass sie die neuesten Versionen verwenden. Die AWS SDK-Mindestversionen, die dies unterstützen IMDSv2, finden Sie unterVerwenden eines unterstützten 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.

Weitere Informationen finden Sie unter Instance-Metriken.

Starten APIs

Neue Instanzen: Verwenden Sie die RunInstancesAPI, um neue Instances zu starten, für die die Verwendung von IMDSv2 erforderlich ist. 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 Amazon EC2 Auto Scaling Scaling-Gruppen gestartet wurden: Um die Verwendung von IMDSv2 für alle neuen Instances zu verlangen, die von Amazon EC2 Auto Scaling Scaling-Gruppen gestartet wurden, können Ihre Amazon EC2 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 Amazon EC2 Auto Scaling Scaling-Gruppe startet neue Instances mit der neuen Startvorlage oder Startkonfiguration, bestehende Instances sind jedoch nicht betroffen.

Bestehende Instances in einer Amazon EC2 Auto Scaling Scaling-Gruppe: Verwenden Sie die ModifyInstanceMetadataOptionsAPI, um die Verwendung von IMDSv2 auf vorhandenen Instances vorzuschreiben, oder beenden Sie die Instances, und die Amazon EC2 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.

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 laufende 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 wählen, um die Änderung von IMDSv1 zu durchzusetzen IMDSv2. Auf der Ebene der Zugriffsverwaltung können Sie in Bezug auf die über die EC2 Rolle APIs aufgerufenen Anmeldeinformationen einen Bedingungsschlüssel entweder in IAM-Richtlinien oder in Richtlinien zur AWS Organizations Dienststeuerung verwenden (SCPs). Insbesondere wenn Sie den Bedingungsschlüssel ec2:RoleDelivery mit einem Wert von 2.0 in Ihren IAM-Richtlinien verwenden, IMDSv1 erhalten API-Aufrufe mit EC2 Rollenanmeldedaten von eine UnauthorizedOperation Antwort. 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 IMDS-Standardversion zentral festzulegen und unternehmensweit durchzusetzenIMDSv2 . Eine Beispielrichtlinie finden Sie auf der Registerkarte Standardwerte für 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 EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/.

    2. Wählen Sie im Navigationsbereich Instances aus.

    3. Um nur die Instances 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 EC2 Amazon-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 IMDSv2Erforderlich 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 EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/.

    2. Folgen Sie den Schritten, um eine Instance 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 EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/.

    2. Wählen Sie im EC2 Dashboard unter Kontoattribute die Option Datenschutz und Sicherheit aus.

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

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

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

    6. 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 Standardwerte für Instanz-Metadaten im Abschnitt Unterstützte deklarative Richtlinien im AWS Organizations Benutzerhandbuch.

Schritt 5: Erzwingen Sie, dass für Instances Folgendes erforderlich ist IMDSv2

Verwenden Sie die folgenden IAM- oder SCP-Bedingungsschlüssel, um die Verwendung zu erzwingen IMDSv2 :

  • ec2:MetadataHttpTokens

  • ec2:MetadataHttpPutResponseHopLimit

  • ec2:MetadataHttpEndpoint

Diese Bedingungsschlüssel steuern die Verwendung von RunInstancesModifyInstanceMetadataOptions APIs und den 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.