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.
Auf Instanz-Metadaten für eine EC2 Instanz zugreifen
Sie können innerhalb der EC2 Instanz selbst oder über die EC2 Konsole,API, SDKs oder die auf Instanz-Metadaten zugreifen AWS CLI. Informationen zum Abrufen der aktuellen Instance-Metadateneinstellungen für eine Instance über die Konsole oder Befehlszeile finden Sie unter Abfragen von Instance-Metadatenoptionen für vorhandene Instances.
Sie können auch Benutzerdaten für Instances mit einem EBS Root-Volume ändern. Die Instances muss angehalten werden. Eine Anleitung für die Konsole finden Sie unter Instance-Benutzerdaten aktualisieren. Ein Linux-Beispiel, das den verwendet AWS CLI, finden Sie unter modify-instance-attribute
Anmerkung
HTTPAnfragen, die zum Abrufen von Instanz-Metadaten und Benutzerdaten verwendet werden, werden Ihnen nicht in Rechnung gestellt.
Überlegungen zum Instance-Zugriff auf Instance-Metadaten
Um Probleme beim Abrufen von Instance-Metadaten zu vermeiden, sollten Sie Folgendes beachten.
- Befehlsformat
-
Das Befehlsformat ist unterschiedlich, je nachdem, ob Sie Instance Metadata Service Version 1 (IMDSv1) oder Instance Metadata Service Version 2 IMDSv2 verwenden. Standardmäßig können Sie beide Instance-Metadaten-Services verwenden. Um die Verwendung von IMDSv2 zu erzwingen, lesen Sie Instance-Metadaten-Services für den Zugriff auf Instance-Metadaten verwenden.
- Es IMDSv2 ist erforderlich, IMDSv1 funktioniert nicht
-
Wenn Sie es verwenden IMDSv1 und keine Antwort erhalten, IMDSv2 ist dies wahrscheinlich erforderlich. Um zu überprüfen, ob dies erforderlich IMDSv2 ist, wählen Sie die Instanz aus, um ihre Details anzuzeigen. Der IMDSv2Wert gibt entweder Erforderlich (Sie müssen verwendenIMDSv2) oder Optional (Sie können entweder IMDSv2 oder verwendenIMDSv1) an.
- (IMDSv2) Verwenden /latest/api/token um das Token abzurufen
-
Das Ausgeben von
PUT
-Anfragen an einen beliebigen versionsspezifischen Pfad, beispielsweise/2021-03-23/api/token
, führt dazu, dass der Metadatenservice „403-Verboten“-Fehler zurückgibt. Dieses Verhalten ist beabsichtigt. - Metadaten-Version
-
Um zu vermeiden, dass Sie Ihren Code jedes Mal aktualisieren müssen, wenn Amazon einen neuen Instance-Metadaten-Build EC2 veröffentlicht, empfehlen wir, den Pfad und nicht die Versionsnummer zu verwenden
latest
. - IPv6-Support
-
Um Instance-Metadaten mithilfe einer IPv6 Adresse abzurufen, stellen Sie sicher, dass Sie die IPv6 Adresse von aktivieren und IMDS
[fd00:ec2::254]
anstelle der IPv4 Adresse verwenden169.254.169.254
. Bei der Instance muss es sich um eine Nitro-basierte Instance handeln, die in einem Subnetz gestartet wurde, das unterstützt. IPv6 - (Windows) Erstellen Sie eine benutzerdefinierte Version AMIs mit Windows Sysprep
-
Um sicherzustellen, dass dies IMDS funktioniert, wenn Sie eine Instanz von einem benutzerdefinierten Windows aus startenAMI, AMI muss es sich um ein standardisiertes Image handeln, das mit Windows Sysprep erstellt wurde. Andernfalls funktioniert das IMDS nicht. Weitere Informationen finden Sie unter Ein Amazon-EC2-AMI mit Windows Sysprep erstellen.
- In einer Container-Umgebung das Hop-Limit auf 2 festlegen
-
Die AWS SDKs Verwendung IMDSv2 ruft standardmäßig auf. Wenn der IMDSv2 Anruf keine Antwort erhält, SDK versucht er den Anruf erneut und verwendetIMDSv1, falls er immer noch nicht erfolgreich ist. Dies kann zu einer Verzögerung führen, insbesondere in einer Container-Umgebung. Wenn in einer Containerumgebung das Hop-Limit 1 beträgt, wird die IMDSv2-Antwort nicht zurückgegeben, da das Gehen zum Container als zusätzlicher Netzwerk-Hop gilt. Um zu vermeiden, dass der Prozess auf IMDSv1 zurückfällt und somit die daraus resultierende Verzögerung vermeiden, empfehlen wir, dass Sie die Hop-Grenze in einer Containerumgebung auf 2 setzen. Weitere Informationen finden Sie unter Konfigurieren der Optionen des Instance-Metadaten-Services.
- Limit für Pakete pro Sekunde (PPS)
Es gibt ein Limit von 1024 Paketen pro Sekunde (PPS) für Dienste, die link-lokale Adressen verwenden. Dieses Limit umfasst die Summe von Route 53 DNS Resolver-Abfragen, Instance Metadata Service (IMDS) -Anfragen, Amazon Time Service Network Time Protocol (NTP) -Anfragen und Windows Licensing Service-Anfragen (für Microsoft Windows-basierte Instances)
.
Zusätzliche Überlegungen zum Zugriff auf Benutzerdaten
-
Benutzerdaten werden als Opaque-Daten behandelt: Was Sie eingeben, wird auch ausgegeben. Die Interpretation der Benutzerdaten und die Instance ist Aufgabe der Instance.
-
Benutzerdaten müssen mit Base64 codiert werden. Je nachdem, welches Tool oder SDK welches Sie verwenden, kann die Base64-Kodierung für Sie durchgeführt werden. Beispielsweise:
Die EC2 Amazon-Konsole kann die Base64-Kodierung für Sie durchführen oder Base64-kodierte Eingaben akzeptieren.
AWS CLI Version 2 führt standardmäßig die Base64-Kodierung von Binärparametern für Sie durch. AWS CLI Version 1 führt die Base64-Kodierung des Parameters für Sie durch.
--user-data
Die AWS SDK for Python (Boto3) führt die Base64-Kodierung des Parameters für Sie durch.
UserData
-
Benutzerdaten sind auf 16 KB an Rohdaten, bevor diese base64-codiert werden, begrenzt. Die Länge einer Zeichenfolge n nach base64-Codierung ist ceil(n/3)*4.
-
Benutzerdaten müssen base64-decodiert werden, wenn Sie sie abrufen. Wenn Sie die Daten über Instance-Metadaten oder die Konsole abrufen, werden sie automatisch für Sie dekodiert.
-
Wenn Sie eine Instance anhalten, ihre Benutzerdaten ändern und die Instance wieder starten, werden die aktualisierten Benutzerdaten nicht automatisch ausgeführt, wenn Sie die Instance starten. Bei Windows-Instances können Sie die Einstellungen so konfigurieren, dass aktualisierte Benutzerdatenskripte einmalig beim Starten der Instance oder bei jedem Neustart oder Start der Instance ausgeführt werden.
-
Benutzerdaten sind ein Instance-Attribut. Wenn Sie eine AMI aus einer Instanz erstellen, sind die Benutzerdaten der Instanz nicht in der enthalten. AMI
Greifen Sie von einer Instanz aus auf EC2 Instanz-Metadaten zu
Da Ihre Instance-Metadaten von Ihrer laufenden Instance aus verfügbar sind, müssen Sie weder die EC2 Amazon-Konsole noch die verwenden AWS CLI. Dies kann sehr hilfreich sein, wenn Sie ein Skript schreiben möchten, das in der Instance ausgeführt werden soll. So können Sie z. B. über die Instance-Metadaten auf die lokale IP-Adresse Ihrer Instance zugreifen, um die Verbindung zu einer externen Anwendung zu verwalten.
Alle folgenden Daten werden als Instance-Metadaten betrachtet, der Zugriff erfolgt jedoch auf unterschiedliche Weise. Wählen Sie die Registerkarte aus, die den Typ der Instance-Metadaten darstellt, auf die Sie zugreifen möchten, um weitere Informationen zu erhalten.
Abfragen von Instance-Metadatenoptionen für vorhandene Instances
Sie können die Instance-Metadatenoptionen für Ihre vorhandenen Instances mit einer der folgenden Methoden abfragen.
Antworten und Fehlermeldungen
Alle Instanzmetadaten werden als Text (HTTPInhaltstyptext/plain
) zurückgegeben.
Eine Anforderung für eine bestimmte Metadatenressource gibt den entsprechenden Wert oder einen 404 - Not Found
HTTP Fehlercode zurück, wenn die Ressource nicht verfügbar ist.
Eine Anfrage nach einer allgemeinen Metadatenressource (URIendet mit einem/) gibt eine Liste verfügbarer Ressourcen oder einen 404 - Not Found
HTTP Fehlercode zurück, falls es keine solche Ressource gibt. Die Listenelemente befinden sich in separaten Zeilen, die durch Zeilenvorschübe (ASCII10) abgeschlossen werden.
Bei Anfragen, die mit Instance Metadata Service Version 2 gestellt wurden, können die folgenden HTTP Fehlercodes zurückgegeben werden:
-
400 - Missing or Invalid Parameters
– DiePUT
-Anfrage ist nicht gültig. -
401 - Unauthorized
– DieGET
-Anfrage verwendet ein ungültiges Token. Die empfohlene Aktion ist das Erzeugen eines neuen Token. -
403 - Forbidden
— Die Anfrage ist nicht zulässig oder die IMDS ist deaktiviert. -
503
– Die Anforderung konnte nicht abgeschlossen werden. Wiederholen Sie die Anforderung.
Wenn der einen Fehler IMDS zurückgibt, wird die Fehlermeldung in der Ausgabe curl gedruckt und ein Erfolgsstatuscode zurückgegeben. Die Fehlermeldung wird in der TOKEN
-Variablen gespeichert, was dazu führt, dass curl-Befehle, die das Token verwenden, fehlschlagen. Wenn Sie curl mit der -f Option aufrufen, wird im Falle eines HTTP Serverfehlers ein Fehlerstatuscode zurückgegeben. Wenn Sie die Fehlerbehandlung aktivieren, kann die Shell den Fehler auffangen und das Skript beenden.
Drosselung abfragen
Wir drosseln Anfragen IMDS an die pro Instanz und begrenzen die Anzahl gleichzeitiger Verbindungen von einer Instanz zurIMDS.
Wenn Sie den IMDS zum Abrufen von AWS Sicherheitsanmeldeinformationen verwenden, vermeiden Sie es, bei jeder Transaktion oder gleichzeitig von einer großen Anzahl von Threads oder Prozessen aus nach Anmeldeinformationen zu fragen, da dies zu einer Drosselung führen kann. Wir empfehlen stattdessen, die Anmeldeinformationen im Cache zu speichern, bis sie sich ihrer Ablaufzeit nähern. Weitere Informationen zu IAM Rollen- und Sicherheitsanmeldedaten im Zusammenhang mit der Rolle finden Sie unter. Abrufen von Sicherheitsanmeldeinformationen aus Instance-Metadaten
Wenn Sie beim Zugriff auf gedrosselt werdenIMDS, wiederholen Sie Ihre Abfrage mit einer exponentiellen Backoff-Strategie.