Informazioni sui metadati della VM

Ogni istanza di Compute Engine archivia i propri metadati su un server di metadati. Questi metadati sono fondamentali per la configurazione e la gestione delle istanze di calcolo. I metadati memorizzano dettagli come le proprietà dell'istanza, le impostazioni di rete e i dati definiti dall'utente. Le istanze di calcolo accedono automaticamente all'API del server di metadati senza autorizzazioni aggiuntive.

Puoi recuperare in modo programmatico i dettagli univoci dell'istanza di computing e automatizzare attività come l'allocazione delle risorse, l'ottimizzazione delle prestazioni e la risoluzione dei problemi relativi alle configurazioni delle istanze. Compute Engine organizza queste chiavi e questi valori dei metadati per le istanze di calcolo e i progetti in una struttura di directory gerarchica, memorizzando le voci come coppie chiave-valore.

Questa panoramica spiega i tipi e le proprietà dei metadati a livello di istanza e a livello di progetto, aiutandoti a gestire e automatizzare in modo efficace i tuoi ambienti.

Utilizzi dei metadati delle VM

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

Script di avvio e arresto

Il server di metadati è particolarmente utile in combinazione con gli script di avvio e di arresto, perché puoi utilizzare questo server per ricevere informazioni specifiche 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'indirizzo IP esterno di una VM e utilizzare questo indirizzo IP nel tuo script per configurare un database. Poiché le chiavi dei metadati predefinite di Compute Engine sono le stesse per ogni VM, puoi riutilizzare lo script senza doverlo aggiornare per ogni VM. Questo contribuisce a 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 la chiave 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 all'evento. Per saperne di più, consulta Ricevi notifiche relative alla migrazione live.

Attributi guest

Gli attributi guest sono un tipo specifico di metadati personalizzati su cui le applicazioni possono scrivere durante l'esecuzione sulle tue VM. Utilizza gli attributi guest solo per casi d'uso che richiedono piccole quantità di dati che non cambiano di frequente. Per saperne di più sugli attributi guest, consulta Imposta ed esegui query sugli attributi guest.

Attributi partner

Gli attributi partner sono un tipo specifico di metadati delle istanze. 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 delle istanze. Puoi impostare, aggiornare, eliminare e visualizzare i valori delle voci dei metadati delle istanze per configurare il servizio.

Considerazioni sulla sicurezza dei metadati

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

Tuttavia, qualsiasi processo che può eseguire query sull'URL dei metadati ha accesso a tutti i valori nel server di metadati, compresi tutti i valori dei metadati personalizzati, i certificati client e le chiavi private scritti sul server. Google consiglia prudenza quando si scrivono valori sensibili sul server di metadati o quando si eseguono processi di terze parti. Devi limitare tramite sandbox qualsiasi processo a cui non vuoi consentire di accedere al server di metadati.

Prezzi

L'interazione con il server di metadati dall'interno di una VM non comporta costi né influisce sulle quote dell'API Compute Engine. Questo vale sia per le query sulle voci dei metadati sia per la scrittura degli attributi guest.

Tuttavia, la gestione dei metadati utilizzando la CLI gcloud o l'API Compute Engine dall'esterno della VM è comunque soggetta alle quote API standard per il tuo progetto.

Il seguente elenco descrive come il server di metadati gestisce i costi e le quote per le chiamate effettuate dall'interno della VM:

  • Costi: le chiamate al server di metadati, incluse quelle che utilizzano il nome DNS (metadata.google.internal) o gli indirizzi IP (169.254.169.254 o fd20:ce::254), non comportano costi in uscita o di servizio.
  • Quota dell'API Compute Engine: le chiamate al server di metadati non consumano compute.googleapis.com i limiti di frequenza dell'API o le quote regionali.
  • Quota dell'API IAM: il server di metadati non interagisce con le quote dell'API Identity and Access Management globale.
  • Limitazione: il server di metadati ha limiti interni, ma i pattern di polling standard non dovrebbero causare limitazioni.

Endpoint del server di metadati

Il server di metadati è accessibile sia dagli endpoint HTTP che HTTPS.

Endpoint del server di metadati HTTP

Gli endpoint HTTP sono accessibili da tutti i tipi di istanze di computing, incluse le Shielded VM.

Puoi utilizzare i seguenti endpoint per accedere al server di metadati utilizzando HTTP:

  • Nome DNS (consigliato): http://metadata.google.internal/computeMetadata/v1
  • Indirizzo IPv4: http://169.254.169.254/computeMetadata/v1
  • Indirizzo IPv6 (solo per le VM solo IPv6): http://[fd20:ce::254]/computeMetadata/v1

Endpoint del server di metadati HTTPS

Gli endpoint del server di metadati HTTPS offrono una maggiore sicurezza per la trasmissione delle informazioni tra il server di metadati e la VM. Questi endpoint sono disponibili solo per le Shielded VM.

Puoi utilizzare i seguenti endpoint per accedere al server di metadati da una Shielded VM utilizzando HTTPS:

  • Nome DNS (consigliato): https://metadata.google.internal/computeMetadata/v1
  • Indirizzo IPv4: https://169.254.169.254/computeMetadata/v1
  • Indirizzo IPv6 (solo per le VM solo IPv6): https://[fd20:ce::254]/computeMetadata/v1

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

L'utilizzo dell'endpoint HTTPS per eseguire query sul server di metadati offre i seguenti vantaggi:

  • Migliora la sicurezza: contribuisce a impedire l'accesso non autorizzato ai metadati sensibili. Impedisce a malintenzionati di poter eseguire azioni come:

    • 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.

Funzionamento del processo

Per le Shielded VM in cui è installato l'ambiente guest, sulla VM vengono eseguiti i processi elencati di seguito:

  1. Compute Engine crea tre certificati:

    • Un certificato radice autofirmato: un certificato univoco generato da Compute Engine per la VM. Compute Engine genera questo certificato solo al primo avvio della VM ed è valido per 50 anni.
    • Un certificato di identità server: un certificato per il server di metadati.
    • Un certificato di identità client: un certificato per il client. Il server di metadati non memorizza nella cache questo certificato. L'ambiente guest riceve un nuovo certificato dal server di metadati a ogni chiamata all'endpoint del certificato client. Questo certificato è valido per 7 giorni. L'ambiente guest deve chiamare l'endpoint almeno ogni 7 giorni per ottenere un nuovo certificato e mantenerne uno valido.

      Per le posizioni di archiviazione dei certificati di identità client e dei certificati radice, consulta Dove sono archiviati i certificati.

  2. Al primo avvio, Compute Engine trasferisce la parte pubblica del certificato radice nell'ambiente guest della VM utilizzando una variabile UEFI generata da Google. Questo certificato radice viene poi archiviato sulla VM.

  3. 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 radice 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 la query sia autorizzata.

Attiva la configurazione automatica dei certificati

Se vuoi che le istanze o i progetti configurino automaticamente i certificati HTTPS MDS, imposta la chiave dei metadati disable-https-mds-setup sull'istanza o sul progetto su FALSE.

Per saperne di più, consulta Chiavi dei metadati predefinite.

Dove sono archiviati i certificati

Le sezioni seguenti elencano le posizioni di archiviazione dei certificati radice e di identità 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 memorizzati nella seguente posizione:

/run/google-mds-mtls/root.crt

Debian/Ubuntu

I certificati radice per le VM Debian e Ubuntu sono memorizzati nella seguente posizione:

/run/google-mds-mtls/root.crt

Fedora

I certificati radice per le VM Fedora sono memorizzati nella seguente posizione:

/run/google-mds-mtls/root.crt

SLES

I certificati radice per le VM SUSE Linux Enterprise Server (SLES) sono memorizzati nella seguente posizione:

/run/google-mds-mtls/root.crt

Windows

I certificati radice per le VM Windows sono memorizzati nella seguente posizione:

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. Questo è necessario affinché tutti i processi abbiano accesso al server di metadati utilizzando l'endpoint HTTPS, in modo simile all'endpoint HTTP. Per saperne di più, consulta Considerazioni sulla sicurezza dei metadati.

Linux

I certificati di identità client per le VM Linux sono memorizzati nella seguente posizione:

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

Windows

I certificati di identità client per le VM Windows sono memorizzati nelle seguenti posizioni:

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

Attivare l'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 attendibilità del sistema operativo, imposta la chiave dei 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 alla posizione predefinita.

CentOS/RHEL/Rocky

/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem

Debian/Ubuntu

/etc/ssl/certs/ca-certificates.crt

Fedora