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 autorizzazione aggiuntiva. Compute Engine conserva le chiavi dei metadati e i valori per le VM e i progetti nelle directory. Ogni directory archivia le voci di metadati sotto forma di coppie chiave/valore. Alcune directory contengono nelle sottodirectory.

Questo documento fornisce una panoramica sui metadati della VM e spiega tipi e proprietà dei metadati della VM.

Utilizzi dei metadati della VM

Le seguenti sezioni descrivono alcuni scenari in cui puoi utilizzare i metadati per gestire le VM.

Script di avvio e chiusura

Il server dei metadati è particolarmente utile quando utilizzato in combinazione con gli script di avvio e chiusura perché puoi utilizzare il server dei metadati 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 usalo nel tuo script per configurare un database. Poiché le chiavi dei metadati predefinite di Compute Engine sono le stesse su ogni VM, puoi riutilizzare lo script senza doverlo aggiornare per ogni VM. Questo 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 nella directory dei metadati scheduling/ utilizzando maintenance-event chiave. Puoi utilizzare questi valori dei metadati per ricevere una notifica quando si verifica un evento di manutenzione in modo che tu possa preparare il tuo ambiente per l'evento. Per ulteriori informazioni, vedi Ricevi notifiche sulla migrazione live.

Attributi ospite

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

Attributi partner

Gli attributi partner sono un tipo specifico di metadati dell'istanza. Google Cloud possono utilizzare gli attributi partner per creare uno spazio dei nomi all'interno del quale per definire le voci dei metadati dell'istanza. Puoi impostare, aggiornare, eliminare e visualizzare i 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 di configurazione le voci di metadati dello spazio dei nomi di quel servizio.

Considerazioni sulla sicurezza dei metadati

Quando effettui una richiesta di ottenere informazioni dal server dei metadati, il tuo e la successiva risposta dei metadati non lascia mai l'host fisico che esegue 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 eventuali account valori dei metadati, certificati client e chiavi private in cui scrivi il server. Google ti consiglia fai attenzione quando scrivi valori sensibili sul server dei metadati o quando processi di terze parti. Devi limitare tramite sandbox qualsiasi processo che non dovrebbe 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. È accessibile da tutte le VM, incluse le Shielded VM.
  • Un endpoint https: https://metadata.google.internal/computeMetadata/v1. È accessibile dalle Shielded VM.

Endpoint del server di metadati HTTPS

L'endpoint del server di metadati HTTPS (https://metadata.google.internal/computeMetadata/v1) fornisce la sicurezza per la trasmissione delle informazioni tra il server metadati e la VM. Questo endpoint è disponibile solo per le Shielded VM.

Vantaggi dell'utilizzo dell'endpoint del server di metadati HTTPS

Se utilizzi l'endpoint https per eseguire query, il server di metadati fornisce quanto segue: vantaggi:

  • Migliora la sicurezza: contribuisce a impedire l'accesso non autorizzato ai tuoi dati metadati. Impedisce a un utente malintenzionato di eseguire le seguenti azioni:

    • Spoofing o furto d'identità 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 Shielded VM in cui è installato l'ambiente guest, sulla VM vengono eseguiti questi processi:

  1. All'avvio della VM, Compute Engine completa quanto segue:

    1. 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 dei metadati.
      • Un certificato di identità client: un certificato per il client. Questo certificato non viene memorizzato nella cache nel server dei metadati e viene viene ricreato in ogni chiamata all'endpoint del certificato client dal ambiente ospite.

        Per le posizioni di archiviazione dell'identità client e dei certificati radice, vedi Dove vengono archiviati i certificati.

    2. Compute Engine trasferisce la parte pubblica dell'istanza principale all'ambiente guest della VM usando Variabile UEFI generata da Google. Il certificato radice viene quindi archiviato la VM.

  2. Periodicamente, l'ambiente guest richiede un certificato di identità client. In questo caso, l'agente ospite scarica il certificato da server metadati e lo convalida utilizzando il certificato radice corrispondente VM.

Quando effettui un eseguire una query sull'endpoint del server di metadati HTTPS, devi specificare i certificati di identità client utilizzati dai metadati server e alla VM per verificare che questa query sia autorizzata.

Dove vengono archiviati i certificati

Le sezioni seguenti elencano la posizione di archiviazione per l'identità radice e client e i certificati generati da Compute Engine.

Certificati radice

CentOS/RHEL/Rocky

Certificati radice per CentOS, Red Hat Enterprise Linux (RHEL) e Rocky Le VM Linux sono archiviate nelle seguenti posizioni:

  • /run/google-mds-mtls/root.crt
  • /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem

Debian/Ubuntu

I certificati radice per le VM Debian e Ubuntu sono archiviati località:

  • /run/google-mds-mtls/root.crt
  • /etc/ssl/certs/ca-certificates.crt

Cappello fedora

I certificati radice per le VM Fedora sono archiviati nel seguente località:

  • /run/google-mds-mtls/root.crt
  • /etc/pki/tls/certs/ca-bundle.crt

SLES

I certificati radice per le VM SUSE Linux Enterprise Server (SLES) sono archiviati in nelle seguenti posizioni:

  • /run/google-mds-mtls/root.crt
  • /etc/ssl/ca-bundle.pem

Windows

I certificati radice per le VM Windows sono archiviati nelle seguenti posizioni:

  • C:\ProgramData\Google\ComputeEngine\mds-mtls-root.crt
  • Cert:\LocalMachine\Root
Certificati di identità client

I certificati di identità client sono accessibili a tutti i processi in esecuzione sulla VM. Questa operazione è necessaria per consentire a tutti i processi di accedere utilizzando l'endpoint https, simile all'endpoint http. Per ulteriori informazioni, vedi Considerazioni sulla sicurezza dei metadati.

Linux

I certificati di identità client per le VM Linux sono archiviati nel seguente località:

/run/google-mds-mtls/client.key

Windows

I certificati di identità client per le VM Windows sono archiviati nel località:

  • C:\ProgramData\Google\ComputeEngine\mds-mtls-client.key
  • Cert:\LocalMachine\My

Chiavi dei metadati predefinite e personalizzate

Ogni voce di metadati viene archiviata sul server dei metadati come coppia chiave-valore in coppia. Le chiavi dei metadati sono sensibili alle maiuscole. Le chiavi possono essere predefinite o chiavi di metadati 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 la VM l'ID istanza o l'ID progetto. Per le chiavi predefinite in cui Compute Engine impostare automaticamente un valore, puoi scegliere tra una serie di valori disponibili a seconda della configurazione del sistema. Per Ad esempio, per abilitare OS Login per una VM, puoi impostare il valore enable-oslogin chiave predefinita TRUE per quella VM. Per disabilitare OS Login per quella VM, puoi aggiornare il valore della chiave per FALSE. Puoi aggiornare solo i valori per queste chiavi, ma non le chiavi stesse.

Per ulteriori informazioni sulle chiavi di metadati predefinite e per l'elenco di queste chiavi, vedi Chiavi dei metadati predefinite.

Chiavi dei metadati personalizzate

I metadati personalizzati consentono di creare e utilizzare le tue coppie chiave-valore di metadati su di una singola VM o di un progetto. Puoi aggiungere nuove chiavi di metadati personalizzate, aggiornare i valori dei tuoi chiavi esistenti e rimuovi tutte 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 startup e script di arresto.

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

Tipi di metadati

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

Metadati di progetto

I metadati di progetto sono definiti nell'ambito del progetto e forniscono informazioni si applica a tutte le VM in un progetto. Quando imposti questi metadati, si propagano a tutte le VM nel progetto.

Per impostare i metadati di progetto, puoi utilizzare chiavi di metadati sia predefinite che personalizzate. Scopri di più sulle chiavi di metadati di progetto predefinite e 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 e informazioni sulle VM nella zona specifica del progetto. Quando imposti i criteri di zona metadati, le voci dei metadati si propagano a tutte le VM nella zona configurata quel progetto. Rispetto ai metadati di progetto, i metadati di zona ti aiutano e offre una maggiore affidabilità.

Compute Engine non fornisce chiavi predefinite per i metadati di zona. Tu 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. Hai impostato 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 delle istanze predefinite e su come Imposta metadati dell'istanza personalizzati.

Come sono organizzati i metadati

Compute Engine archivia e conserva le chiavi e i valori dei metadati e i tuoi progetti e VM negli elenchi delle directory. In base al tipo di di metadati, Compute Engine archivia le voci di metadati in uno dei seguenti directory:

Tipo di metadati Directory
Metadati a livello di progetto e di zona del progetto
  • Endpoint http:
    http://metadata.google.internal/computeMetadata/v1/project
  • Endpoint https (anteprima):
    https://metadata.google.internal/computeMetadata/v1/project
Metadati dell'istanza
  • Endpoint http:
    http://metadata.google.internal/computeMetadata/v1/instance
  • Endpoint https:
    https://metadata.google.internal/computeMetadata/v1/instance

Ogni directory archivia le voci di metadati sotto forma di coppie chiave/valore. Alcune Le voci di metadati sono anche directory che contengono altre chiavi di metadati. La le voci di metadati che fungono da directory sono contrassegnate da una barra finale. (/) nel nome della chiave dei metadati. Ad esempio, /project/attributes/ è un all'interno della directory project/ che contiene altre chiavi di metadati. A crea il tuo elenco di directory di metadati, devi utilizzare una barra finale (/) nel nome della chiave dei metadati quando crei la voce dei metadati personalizzati.

Le voci dei metadati di progetto e zona vengono archiviate nello stesso Directory project/. Se imposti valori diversi per lo stesso di metadati 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 di progetto nelle rispettive zone.

  • Se aggiungi un valore dei metadati di zona per una chiave di metadati che ha un valore di metadati di progetto, Compute Engine esegue l'override dei metadati di 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 un valore di metadati di zona, non cambia nulla. Compute Engine conserva valore dei metadati di zona nella directory /project della zona specifica.
  • Se non specifichi un valore dei metadati di zona per una chiave di metadati personalizzata in un una zona specifica, ma la chiave ha un valore di metadati di progetto, le VM continuano i valori dei metadati di progetto in quelle zone.

Ad esempio, supponiamo che tu definisca una coppia di metadati a livello di progetto key-1=value-1. Supponi di definire anche un metadato di zona coppia di key-1=zonal-value-1 solo per us-central1-a zona di destinazione. Tutte le VM nella zona us-central1-a per il tuo progetto eredita 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 imposta qualsiasi metadato di zona per key-1.

Passaggi successivi