VM-Metadaten


Die Metadaten jeder VM-Instanz werden auf einem Metadatenserver gespeichert. Ihre VM hat automatisch ohne zusätzliche Autorisierung Zugriff auf die Metadatenserver-API. Metadaten werden als key:value-Paare gespeichert.

Für VMs, die auf Compute Engine ausgeführt werden, ist ein Standardsatz mit Metadatenschlüsseln verfügbar. Eine Liste dieser Standard-Metadatenschlüssel finden Sie unter Standard-Metadatenwerte. Sie können aber auch eigene benutzerdefinierte Metadatenschlüssel für einzelne VMs oder Projekte verwenden. Weitere Informationen finden Sie unter Benutzerdefinierte Metadaten einrichten.

Nachdem Sie einen standardmäßigen oder benutzerdefinierten Metadateneintrag festgelegt haben, können Sie die Metadaten für diese VM oder dieses Projekt prüfen. Informationen zum Anzeigen von Metadaten finden Sie unter VM-Metadaten abfragen.

Verwendungszwecke von VM-Metadaten

In den folgenden Abschnitten werden einige Szenarien beschrieben, in denen Sie Metadateneinträge zum Verwalten Ihrer VMs verwenden können.

Start- und Shutdown-Skripts

Der Metadatenserver ist besonders in Kombination mit Startskripts und Shutdown-Skripts von Vorteil, da Sie mit ihm programmatisch und ohne zusätzliche Autorisierung eindeutige Informationen über eine Instanz erhalten.

Sie können beispielsweise ein Startskript schreiben, das das Metadaten-key:value-Paar für die externe IP-Adresse einer VM abruft und diese in Ihrem Skript zum Einrichten einer Datenbank verwendet. Da die Standard-Metadatenschlüssel für jede VM identisch sind, können Sie Ihr Skript immer wieder neu verwenden, ohne es für jede VM aktualisieren zu müssen. So müssen Sie weniger problemanfälligen Code für Ihre Anwendungen erstellen.

Hostwartung

Der Metadatenserver stellt Informationen zu einer Planungsoption für VMs über den Metadaten-Verzeichniseintrag scheduling/ und das Attribut maintenance-event bereit. Sie können diese Metadatenwerte verwenden, um sich benachrichtigen zu lassen, wenn ein Wartungsereignis bevorsteht. So können Sie Ihre Umgebung für das Ereignis vorbereiten. Weitere Informationen finden Sie unter Live-Migrationshinweise erhalten.

Gastattribute

Gastattribute sind ein spezieller Typ benutzerdefinierter Metadaten, in die Anwendungen Daten schreiben können, während sie auf der VM ausgeführt werden. Verwenden Sie Gastattribute nur für Anwendungsfälle, in denen kleine Datenmengen erforderlich sind, die sich nicht häufig ändern. Weitere Informationen zu Gastattributen finden Sie unter Gastattribute festlegen und abfragen.

Überlegungen zur Metadatensicherheit

Wenn Sie eine Anfrage zum Abrufen von Informationen vom Metadatenserver senden, verlassen Ihre Anfragen und die nachfolgende Metadatenantwort niemals den physischen Host, auf dem die VM ausgeführt wird.

Jeder Prozess, der die Metadaten-URL abfragen kann, hat Zugriff auf alle Werte auf dem Metadatenserver. Dazu gehören auch alle benutzerdefinierten Metadatenwerte, die Sie auf den Server schreiben. Google empfiehlt, beim Schreiben vertraulicher Werte auf den Metadatenserver und bei der Ausführung von Drittanbieterprozessen vorsichtig vorzugehen.

Beschränkungen

  • Anfragen mit dem Header X-Forwarded-For werden automatisch vom Metadatenserver abgewiesen. Dieser Header zeigt normalerweise an, dass die Anfrage weitergeleitet wurde und eventuell nicht von einem autorisierten Nutzer stammt. Aus Sicherheitsgründen werden Anfragen dieser Art abgelehnt.

  • Wenn Sie den Befehl curl verwenden, um Metadaten vom Server abzurufen, beachten Sie, dass einige codierte Zeichen im Anfragepfad nicht unterstützt werden. Codierte Zeichen werden nur im Abfragepfad unterstützt.

    Die folgende Anforderung funktioniert beispielsweise eventuell nicht:

    curl "http://metadata.google.internal/computeMetadata/v1/VM/service-accounts/123456789-compute%40developer.gserviceaccount.com/?query_path=https%3A%2F%2Flocalhost%3A8200%2Fexample%2Fquery&another_param=true" -H "Metadata-Flavor: Google"

    Damit diese Anfrage funktioniert, ersetzen Sie das nicht unterstützte codierte Zeichen im Anfragepfad (%40) durch den entsprechenden zulässigen Wert (@).

    curl "http://metadata.google.internal/computeMetadata/v1/VM/service-accounts/1234567898-compute@developer.gserviceaccount.com/?query_path=https%3A%2F%2Flocalhost%3A8200%2Fexample%2Fquery&another_param=true" -H "Metadata-Flavor: Google"

    In der folgenden Tabelle sind die codierten Zeichen aufgeführt, die in Anfragepfaden nicht unterstützt werden.

    Codiertes Zeichen Zulässiger Wert
    %21
    
    !
    %24
    
    $
    %27
    
    '
    %28
    
    (
    %29
    
    )
    %2A
    
    *
    %2C
    
    ,
    %40
    
    @

Bestandteile einer Metadatenanfrage

In der folgenden Tabelle sind die wichtigsten Teile einer Metadatenabfrage zusammengefasst.

Komponenten Beschreibung
Stamm-URL

Alle Metadatenwerte werden als Subpfade unterhalb der folgenden Stamm-URL definiert:


http://metadata.google.internal/computeMetadata/v1
Anfrage-Header

Der folgende Header muss in allen Ihren Anfragen enthalten sein:


Metadata-Flavor: Google

Dieser Header weist darauf hin, dass eine Anfrage zum Aufruf von Metadatenwerten gesendet wurde und diese nicht unbeabsichtigt aus einer unsicheren Quelle kommen. Auf diese Weise kann der Metadatenserver Ihnen die entsprechenden Daten zurückgeben. Ohne diesen Header lehnt der Metadatenserver Ihre Anfrage ab.

Nächste Schritte