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. Compute Engine gestisce le chiavi e i valori dei metadati per le tue VM e i tuoi progetti nelle directory. Ogni directory memorizza voci di metadati sotto forma di coppie chiave-valore. Alcune directory contengono sottodirectory.
Questo documento fornisce una panoramica dei metadati delle VM e spiega i tipi e le proprietà dei metadati delle VM.
Utilizzi dei metadati VM
Le sezioni seguenti descrivono alcuni scenari in cui puoi utilizzare le voci di metadati per gestire le tue 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 ottenere informazioni uniche 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 nel tuo script per configurare un database. Poiché le chiavi dei metadati predefinite di Compute Engine sono le stesse per tutte le VM, puoi riutilizzare lo script senza doverlo aggiornare per ogni VM. Questo contribuisce a creare codice meno precario per le tue applicazioni.
- Per saperne di più sugli script di avvio, consulta la panoramica degli script di avvio.
- Per ulteriori informazioni sugli script di arresto, consulta Esecuzione di script di arresto.
Manutenzione dell'host
Il server dei metadati fornisce informazioni sull'opzione di pianificazione di una VM
nella directory dei metadati scheduling/
utilizzando la chiave maintenance-event
. Puoi utilizzare questi valori dei metadati per ricevere una notifica quando un evento di manutenzione
sta per verificarsi, in modo da preparare l'ambiente per l'evento.
Per maggiori informazioni, consulta la sezione
Ricevere notifiche relative alla 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. Utilizza gli attributi ospite solo per i casi d'uso che richiedono piccole quantità di dati che non cambiano di frequente. Per maggiori informazioni sugli attributi guest, consulta Imposta ed esegui query sugli attributi guest.
Attributi partner
Gli attributi partner sono un tipo specifico di metadati dell'istanza. Google Cloud I servizi possono utilizzare gli attributi partner per creare uno spazio dei nomi all'interno del quale possono definire le voci dei 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 gestite per Compute Engine, puoi specificare i dettagli di configurazione nelle voci dei metadati dello spazio dei nomi del servizio.
Considerazioni sulla sicurezza dei metadati
Quando invii una richiesta per ottenere informazioni dal server di metadati, la tua richiesta e la successiva risposta dei metadati non escono mai dall'host fisico che esegue la VM.
Tuttavia, qualsiasi processo in grado di interrogare l'URL dei metadati, ha accesso a tutti i valori nel server metadati. Sono inclusi eventuali valori di metadati personalizzati, certificati client e chiavi private che scrivi sul server. Google consiglia di prestare attenzione quando scrivi valori sensibili nel server dei metadati o quando esegui processi di terze parti. Devi isolare in un ambiente sandbox qualsiasi processo che non deve essere in grado di accedere al server dei metadati.
Endpoint del server di metadati
Il server di metadati è accessibile dai seguenti endpoint:
- Un endpoint HTTP:
http://metadata.google.internal/computeMetadata/v1
. Questo endpoint è accessibile da tutte le VM, incluse le Shielded VM. - Un endpoint HTTPS:
https://metadata.google.internal/computeMetadata/v1
. Questo endpoint è accessibile solo dalle VM schermate.
Endpoint del server di metadati HTTPS
L'endpoint del server dei metadati HTTPS (https://metadata.google.internal/computeMetadata/v1
) fornisce una maggiore
sicurezza per la trasmissione di informazioni tra il server dei metadati e la VM.
Questo endpoint è disponibile solo per le VM schermate.
Vantaggi dell'utilizzo dell'endpoint del server di metadati HTTPS
L'utilizzo dell'endpoint HTTPS per eseguire query sul server dei metadati offre i seguenti vantaggi:
Migliora la sicurezza: contribuisce a impedire l'accesso non autorizzato ai tuoi metadati sensibili. Impedisce a un malintenzionato di eseguire una delle seguenti azioni:
- Spoofing o rappresentazione del server di metadati per ottenere l'accesso a una VM
- Visualizzazione o manomissione di metadati sensibili prima che raggiungano la VM
Riduce i costi: ti aiuta a evitare i costi associati alle violazioni della sicurezza
Come funziona la procedura
Per le VM schermate in cui è installato l'ambiente guest, sulla VM vengono eseguiti i seguenti processi:
All'avvio della VM, Compute Engine completa le seguenti operazioni:
Compute Engine crea tre certificati come segue:
- Un certificato radice autofirmato: un certificato univoco generato per la VM.
- Un certificato di identità del server: un certificato per il server di metadati.
Un certificato di identità client: un certificato per il client. Questo certificato non viene memorizzato nella cache del server di metadati e viene ricreato a ogni chiamata all'endpoint del certificato client dall'ambiente guest.
Per le posizioni di archiviazione dell'identità client e dei certificati root, vedi Dove vengono archiviati i certificati.
Compute Engine trasferisce la parte pubblica del certificato radice all'ambiente guest della VM utilizzando una variabile UEFI generata da Google. Questo certificato radice viene quindi archiviato nella VM.
Periodicamente, l'ambiente guest richiede un certificato di identità client. In questo caso, l'agente guest scarica questo certificato dal server di metadati e lo convalida utilizzando il certificato root per la VM.
Quando esegui una query all'endpoint del server di metadati HTTPS, specifichi i certificati di identità client che vengono poi utilizzati dal server di metadati e dalla VM per verificare che questa query sia autorizzata.
Dove vengono archiviati i certificati
Le sezioni seguenti elencano la posizione di archiviazione dei certificati di identità root e client generati da Compute Engine.
Certificati radice
CentOS/RHEL/Rocky
I certificati radice per le VM CentOS, Red Hat Enterprise Linux (RHEL) e Rocky Linux sono archiviati nella seguente posizione:
/run/google-mds-mtls/root.crt
Debian/Ubuntu
I certificati radice per le VM Debian e Ubuntu sono archiviati nella seguente posizione:
/run/google-mds-mtls/root.crt
Fedora
I certificati radice per le VM Fedora sono archiviati nella seguente posizione:
/run/google-mds-mtls/root.crt
SLES
I certificati radice per le VM SUSE Linux Enterprise Server (SLES) sono archiviati nella seguente posizione:
/run/google-mds-mtls/root.crt
Windows
I certificati radice per le VM Windows sono archiviati nel seguente percorso:
C:\ProgramData\Google\ComputeEngine\mds-mtls-root.crt
Certificati di identità client
I certificati di identità client sono accessibili a tutti i processi in esecuzione sulla VM. Ciò è necessario affinché tutti i processi abbiano accesso al server dei metadati utilizzando l'endpoint HTTPS, in modo simile all'endpoint HTTP. Per ulteriori informazioni, consulta Considerazioni sulla sicurezza dei metadati.
Linux
I certificati di identità client per le VM Linux sono archiviati nella seguente posizione:
/run/google-mds-mtls/client.key
Windows
I certificati di identità client per le VM Windows sono archiviati nelle seguenti posizioni:
C:\ProgramData\Google\ComputeEngine\mds-mtls-client.key
Abilitare la configurazione automatica dei certificati
Se vuoi che le tue istanze o i tuoi progetti
configurino automaticamente i certificati HTTPS MDS,
imposta la chiave di metadati disable-https-mds-setup
sull'istanza o sul progetto
su FALSE
.
Per maggiori informazioni, consulta la sezione Chiavi dei metadati predefinite.
Attivazione dell'archiviazione dei certificati radice nell'archivio attendibilità del sistema operativo
Se vuoi che Compute Engine aggiunga automaticamente il certificato radice del server di metadati HTTPS all'archivio attendibile del sistema operativo, imposta la chiave di metadati enable-https-mds-native-cert-store
sull'istanza o sul progetto su TRUE
.
Se attivi questa opzione, Compute Engine aggiunge il certificato radice alle seguenti posizioni oltre a quella predefinita.
CentOS/RHEL/Rocky
/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
Debian/Ubuntu
/etc/ssl/certs/ca-certificates.crt
Fedora
/etc/pki/tls/certs/ca-bundle.crt
SLES
/etc/ssl/ca-bundle.pem
Windows
Cert:\LocalMachine\Root
Per maggiori informazioni, consulta la sezione Chiavi dei metadati predefinite.
Chiavi dei metadati predefinite e personalizzate
Ogni voce di metadati viene archiviata sul server metadati come coppie chiave-valore. Le chiavi dei metadati sono sensibili alle maiuscole. Le chiavi possono essere chiavi dei metadati predefinite o personalizzate.
Chiavi dei metadati predefinite
Le chiavi dei metadati predefinite sono chiavi dei 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 tra un insieme di valori disponibili
a seconda della configurazione del 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 disattivare OS Login per la VM, puoi aggiornare
il valore della chiave a FALSE
.
Puoi aggiornare solo i valori di queste chiavi, non le chiavi stesse.
Per ulteriori informazioni sulle chiavi dei metadati predefinite e un elenco di queste chiavi, vedi Chiavi dei metadati predefinite.
Chiavi dei metadati personalizzati
I metadati personalizzati ti 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 personalizzati, aggiornare i valori delle chiavi esistenti e rimuovere le 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 metadati personalizzati per le tue VM, consulta Configurare i metadati personalizzati.
Tipi di metadati
Le voci dei metadati della 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 li imposti.
Metadati di progetto
I metadati di progetto sono definiti nell'ambito del progetto e forniscono informazioni che si applicano a tutte le VM di un progetto. Quando imposti questi metadati, le voci dei metadati si propagano a tutte le VM del progetto.
Per impostare i metadati del progetto, puoi utilizzare chiavi di metadati sia predefinite che personalizzate. Scopri di più sulle chiavi di metadati del progetto predefinite e su come impostare metadati del progetto personalizzati.
Metadati di zona
I metadati di zona sono definiti con un ambito di zona all'interno di un progetto e forniscono informazioni sulle VM in quella zona specifica del progetto. Quando imposti i metadati di zona, le voci di metadati si propagano a tutte le VM nella zona configurata del progetto. Rispetto ai metadati di progetto, i metadati di zona ti aiutano con l'isolamento dei guasti e offrono una maggiore affidabilità.
Compute Engine non fornisce chiavi predefinite per i metadati di zona. Per impostare i metadati di zona, devi creare chiavi di metadati personalizzate. Scopri di più su come impostare metadati zonali personalizzati.
Metadati dell'istanza
I metadati dell'istanza forniscono informazioni su una specifica istanza VM. Imposti 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 di metadati dell'istanza predefinite e su come impostare metadati dell'istanza personalizzati.
Come sono disposti i metadati
Compute Engine archivia e gestisce le chiavi e i valori dei metadati per le tue VM e i tuoi 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 e di zona |
|
Metadati dell'istanza |
|
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 di metadati. Ad esempio, /project/attributes/
è una
directory nella directory project/
che contiene altre chiavi di metadati. Per
creare il tuo elenco di directory di metadati, devi utilizzare una barra finale (/
)
nel nome della chiave di metadati quando crei la voce di metadati personalizzata.
Le voci di metadati del progetto e della zona vengono archiviate nella stessa directory project/
. Se imposti valori diversi per le stesse chiavi di metadati personalizzati 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 del progetto nelle rispettive zone.
- Se aggiungi un valore dei metadati di zona per una chiave dei metadati che ha già
un valore dei metadati di progetto, Compute Engine esegue l'override del valore dei metadati di progetto
per le VM in questa zona specificata e aggiorna la directory
/project
con il valore di zona. - Se aggiungi un nuovo valore dei metadati del progetto per una chiave dei metadati che ha già
un valore dei metadati zonali, non cambia nulla. Compute Engine conserva il valore dei metadati
di zona nella directory
/project
nella 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 tue VM continuano ad avere i valori dei metadati di progetto in quelle zone.
Ad esempio, supponiamo di definire una coppia di metadati di progetto
key-1=value-1
. Supponiamo di definire anche 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 nelle altre zone in cui non hai
impostato metadati di zona per key-1
.
Passaggi successivi
- Scopri le chiavi di metadati predefinite offerte da Google Cloud .
- Scopri come configurare le voci di metadati personalizzati.
- Scopri come impostare ed eseguire query sugli attributi guest.
- Dopo aver impostato i valori per le chiavi di metadati, scopri come visualizzare ed eseguire query sulle informazioni sui metadati della VM per una VM o un progetto.
- Scopri come ricevere notifiche relative alla migrazione live dal server di metadati.