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 dei 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 delle VM.

Utilizzi dei metadati della VM

Le sezioni seguenti 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 utilizzarlo per ricevere in modo programmatico informazioni univoche su una VM, 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 quell'IP nel tuo script per configurare un database. Poiché le chiavi dei metadati predefinite di Compute Engine sono le stesse su tutte le VM, puoi riutilizzare lo script senza doverlo aggiornare per ogni VM. Ciò consente di creare codice meno precario per le tue applicazioni.

Manutenzione dell'host

Il server di metadati fornisce informazioni sull'opzione di pianificazione di una VM tramite la voce della directory dei 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 il tuo ambiente per l'evento. Per maggiori informazioni, vedi Ricevere notifiche sulla migrazione live.

Attributi ospite

Gli attributi guest sono un tipo specifico di metadati personalizzati su cui le applicazioni possono scrivere durante l'esecuzione sulle VM. Usa 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.

Attributi partner

Gli attributi partner sono un tipo specifico di metadati dell'istanza. I servizi Google Cloud possono utilizzare gli attributi partner per creare uno spazio dei nomi all'interno del quale possono definire le voci di metadati dell'istanza. Puoi impostare, aggiornare, eliminare e visualizzare i valori delle voci dei metadati dell'istanza per configurare il servizio.

Ad esempio, quando utilizzi le identità dei carichi di lavoro gestiti per Compute Engine, puoi specificare i dettagli della configurazione nelle voci dei metadati dello spazio dei nomi del servizio.

Considerazioni sulla sicurezza dei metadati

Quando effettui una richiesta per ottenere informazioni dal server dei metadati, la tua richiesta e la successiva risposta dei metadati non lasciano mai l'host fisico che esegue la VM.

Tuttavia, qualsiasi processo in grado di eseguire query sull'URL dei metadati ha accesso a tutti i valori nel server dei metadati. Ciò include tutti i valori dei metadati personalizzati che scrivi sul server. Google consiglia di prestare attenzione durante la scrittura di valori sensibili sul server dei metadati o l'esecuzione di processi di terze parti.

Chiavi dei metadati predefinite e personalizzate

Ogni voce di metadati viene archiviata sul server dei metadati come coppie chiave-valore. Le chiavi dei metadati sono sensibili alle maiuscole. Le chiavi possono essere chiavi di metadati 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 su quella 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 quella VM, puoi aggiornare il valore della chiave in FALSE. Puoi aggiornare solo i valori per queste chiavi, ma non le chiavi stesse.

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

Chiavi dei metadati personalizzate

I metadati personalizzati consentono di creare e utilizzare le tue 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 personalizzati 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 VM, consulta Configurare i metadati personalizzati.

Tipi di metadati

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

Metadati di progetto

I metadati di progetto vengono definiti nell'ambito del 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 del progetto.

Per impostare i metadati di progetto, puoi utilizzare chiavi di metadati sia predefinite che personalizzate. Scopri di più sulle chiavi dei metadati di progetto predefinite e su come impostare 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 nella zona specifica del progetto. Quando imposti i metadati di zona, le voci di metadati si propagano a tutte le VM nella zona configurata nel progetto. Rispetto ai metadati di progetto, i metadati di zona consentono l'isolamento dei guasti e offrono maggiore affidabilità.

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

Metadati dell'istanza

I metadati dell'istanza forniscono informazioni su una specifica istanza VM. Puoi impostare i metadati dell'istanza separatamente per ogni singola istanza VM.

Per impostare i metadati dell'istanza puoi utilizzare chiavi di metadati sia predefinite che personalizzate. Scopri di più sulle chiavi dei metadati dell'istanza predefinite e su come impostare i metadati dell'istanza personalizzati.

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 di 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 di 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 di metadati personalizzato, devi utilizzare una barra finale (/) nel nome della chiave dei metadati quando crei la voce di metadati personalizzati.

Le voci dei metadati di progetto e 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 a livello di zona, i valori dei metadati di zona per queste chiavi hanno la precedenza sui valori dei metadati di progetto nelle rispettive zone.

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

Ad esempio, supponi di definire una coppia di metadati a livello di progetto di key-1=value-1. Supponi anche di definire una coppia di metadati di zona key-1=zonal-value-1 solo per la zona us-central1-a. Tutte le VM nella zona us-central1-a per il 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 metadati di zona per key-1.

Che cosa succede dopo?