Informazioni sui metadati della VM

Ogni istanza di macchina virtuale (VM) archivia i propri metadati su un server metadati. La tua VM ha automaticamente accesso all'API del server metadati senza alcuna autorizzazione aggiuntiva. I metadati vengono archiviati come coppie chiave-valore.

Questo documento fornisce una panoramica sui metadati delle VM e spiega i tipi e le proprietà dei metadati.

Utilizzi dei metadati della VM

Le seguenti sezioni descrivono alcuni scenari in cui è possibile utilizzare le voci di metadati per gestire le VM.

Script di avvio e chiusura

Il server metadati è particolarmente utile se utilizzato in combinazione con gli script di avvio e chiusura, perché puoi utilizzare il server metadati per ricevere informazioni univoche su una VM in modo programmatico, senza autorizzazioni aggiuntive.

Ad esempio, puoi scrivere uno script di avvio che recupera la coppia chiave-valore dei metadati per l'IP esterno di una VM e utilizzare questo IP nello script per configurare un database. Poiché le chiavi dei metadati predefinite di Compute Engine sono le stesse su ogni VM, puoi riutilizzare il tuo script senza doverlo aggiornare per ogni VM. Questo consente di creare codice meno precario per le tue applicazioni.

Manutenzione host

Il server di metadati fornisce informazioni sull'opzione di pianificazione di una VM tramite la voce della directory di metadati scheduling/ e l'attributo maintenance-event. Puoi utilizzare questi valori dei metadati per ricevere una notifica quando sta per verificarsi un evento di manutenzione, in modo da poter preparare l'ambiente per l'evento. Per maggiori informazioni, consulta Ricevere notifiche sulla migrazione live.

Attributi ospite

Gli attributi guest sono un tipo specifico di metadati personalizzati in cui le applicazioni possono scrivere durante l'esecuzione sulle VM. Utilizza gli attributi guest solo per i casi d'uso che richiedono piccole quantità di dati che non cambiano di frequente. Per ulteriori informazioni sugli attributi guest, consulta Impostare ed eseguire query sugli attributi guest.

Considerazioni sulla sicurezza dei metadati

Quando effettui una richiesta per ottenere informazioni dal server dei metadati, la richiesta e la successiva risposta dei metadati non lasciano mai l'host fisico su cui è in esecuzione la VM.

Tuttavia, qualsiasi processo in grado di eseguire una query sull'URL dei metadati, ha accesso a tutti i valori nel server dei metadati. Sono inclusi i valori dei metadati personalizzati che scrivi sul server. Google consiglia di prestare attenzione quando scrivi valori sensibili nel server dei metadati o quando esegui processi di terze parti.

Chiavi dei metadati predefinite e personalizzate

Ogni voce di metadati è archiviata sul server dei metadati come coppie chiave-valore. Le chiavi dei metadati sono sensibili alle maiuscole. Le chiavi possono essere predefinite o personalizzate.

Chiavi dei metadati predefinite

Le chiavi dei metadati predefinite sono chiavi di metadati create da Compute Engine. Quando crei una VM, Compute Engine imposta automaticamente i valori dei metadati per alcune di queste chiavi sulla VM, ad esempio l'ID istanza VM o l'ID progetto. Per le chiavi predefinite in cui Compute Engine non imposta automaticamente un valore, puoi scegliere da un insieme di valori disponibili a seconda della configurazione di sistema. Ad esempio, per abilitare OS Login per una VM, puoi impostare il valore della chiave predefinita enable-oslogin su TRUE per quella VM. Per disabilitare OS Login per la VM, puoi aggiornare il valore della chiave in FALSE. Puoi aggiornare solo i valori per queste chiavi, ma non per le chiavi stesse.

Per ulteriori informazioni sulle chiavi dei metadati predefinite e per un elenco di queste chiavi, consulta Chiavi dei metadati predefinite.

Chiavi dei metadati personalizzate

I metadati personalizzati consentono di creare e utilizzare coppie chiave-valore di metadati su una singola VM o un singolo progetto. Puoi aggiungere nuove chiavi di metadati personalizzate, aggiornare i valori delle chiavi esistenti e rimuovere eventuali voci di metadati personalizzate quando non ti servono. L'impostazione di metadati personalizzati è utile per trasferire valori arbitrari alle VM in un progetto. È utile anche per creare script di avvio e arresto.

Per scoprire come aggiungere, aggiornare o rimuovere i metadati personalizzati per le tue VM, consulta Configurare i metadati personalizzati.

Tipi di metadati

Le voci di metadati delle VM possono fornire informazioni specifiche per una singola VM o un progetto. I metadati sono suddivisi in metadati di progetto, di zona e di istanza, in base all'ambito in cui imposti i metadati.

Metadati di progetto

I metadati del progetto sono definiti a livello di progetto e forniscono informazioni applicabili a tutte le VM in un progetto. Quando imposti questi metadati, le voci dei metadati si propagano a tutte le VM nel progetto.

Puoi utilizzare chiavi di metadati predefinite e personalizzate per impostare i metadati del progetto. Scopri di più sulle chiavi predefinite dei metadati di progetto e su come impostare i metadati di progetto personalizzati.

Metadati di zona

I metadati di zona sono definiti a livello di zona all'interno di un progetto e forniscono informazioni sulle VM in quella zona specifica del progetto. Quando imposti i metadati a livello di zona, le voci dei metadati si propagano a tutte le VM nella zona configurata all'interno del progetto. Rispetto ai metadati di progetto, quelli a livello di zona consentono l'isolamento dei guasti e offrono una maggiore affidabilità.

Compute Engine non fornisce chiavi predefinite per i metadati di zona. Devi creare le tue chiavi di metadati personalizzate per impostare i metadati a livello di zona. Scopri di più su come impostare metadati di zona personalizzati.

Metadati dell'istanza

I metadati dell'istanza forniscono informazioni su un'istanza VM specifica. I metadati dell'istanza vengono impostati separatamente per ogni singola istanza VM.

Puoi utilizzare chiavi di metadati predefinite e personalizzate per impostare i metadati dell'istanza. Scopri di più sulle chiavi dei metadati delle istanze predefinite e su come impostare i metadati delle istanze personalizzate.

Come sono organizzati i metadati

Compute Engine archivia e gestisce le chiavi e i valori dei metadati per le VM e i progetti negli elenchi di directory. A seconda del tipo di metadati, Compute Engine archivia le voci dei metadati in una delle seguenti directory:

Tipo di metadati Directory
  • Metadati di progetto
  • Metadati di zona
http://metadata.google.internal/computeMetadata/v1/project/
Metadati dell'istanza
http://metadata.google.internal/computeMetadata/v1/instance/

Ogni directory archivia le voci dei metadati sotto forma di coppie chiave-valore. Alcune voci di metadati sono anche directory che contengono altre chiavi di metadati. Le voci di metadati che fungono da directory sono contrassegnate da una barra finale (/) nel nome della chiave dei metadati. Ad esempio, /project/attributes/ è una directory nella directory project/ che contiene altre chiavi di metadati. Per creare un elenco di directory dei metadati personalizzato, devi utilizzare una barra finale (/) nel nome della chiave dei metadati quando crei la voce di metadati personalizzata.

Le voci di metadati di progetto e di zona sono archiviate nella stessa directory project/. Se imposti valori diversi per le stesse chiavi di metadati personalizzate per le VM a livello di progetto e di zona, i valori dei metadati di zona per queste chiavi hanno la precedenza sui valori dei metadati del progetto nelle rispettive zone.

  • Se aggiungi un valore di metadati a livello di zona per una chiave di metadati che ha già un valore di metadati di progetto, Compute Engine esegue l'override del valore dei metadati del progetto per le VM nella zona specificata e aggiorna la directory /project con il valore di zona.
  • Se aggiungi un nuovo valore di metadati a livello di progetto per una chiave di metadati che ha già un valore di metadati a livello di zona, non cambia nulla. Compute Engine conserva il valore dei metadati a livello di zona nella directory /project della zona specifica.
  • Se non specifichi un valore di metadati a livello di zona per una chiave di metadati personalizzata in una zona specifica, ma la chiave ha un valore di metadati di progetto, le VM continueranno ad avere i valori dei metadati del progetto in quelle zone.

Ad esempio, supponi di definire una coppia di metadati a livello di progetto di key-1=value-1. Supponi di definire anche una coppia di metadati a livello di zona di key-1=zonal-value-1 solo per la zona us-central1-a. Tutte le VM nella zona us-central1-a del tuo progetto ereditano key-1=zonal-value1 come coppia di metadati. La coppia di metadati rimane key-1=value-1 per tutte le VM in altre zone in cui non hai impostato alcun metadati di zona per key-1.

Che cosa succede dopo?