Gli attributi guest sono un tipo specifico di metadati personalizzati su cui le applicazioni possono scrivere durante l'esecuzione nell'istanza della macchina virtuale (VM). Qualsiasi applicazione o l'utente dell'istanza VM può leggere e scrivere dati su questi guest valori dei metadati degli attributi.
Prima di iniziare
- Per le VM Windows Server, utilizza
PowerShell 3.0 o versioni successive.
Ti consigliamo di utilizzare
ctrl v
per incollare i blocchi di codice copiati. -
Se non l'hai già fatto, configura l'autenticazione.
Autenticazione è
Il processo di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione
Compute Engine come segue.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Per abilitare gli attributi guest:
compute.instances.setMetadata
-
Per visualizzare gli attributi degli invitati:
compute.instances.getGuestAttributes
- Il numero di query è limitato a un massimo di 10 query al minuto per istanza VM.
- Le query non superano un picco di 3 query al secondo. Se questa frequenza massima viene superata, Compute Engine potrebbe rimuovere arbitrariamente gli attributi guest in fase di scrittura. Questa rimozione dei dati è necessaria per garantire che altri dati di sistema critici possano essere scritti sul server.
- Script di avvio che possono segnalare l'inizializzazione riuscita impostando un valore di stato personalizzato negli attributi guest.
- Agenti di gestione della configurazione che possono pubblicare il nome e la versione del sistema operativo ospite negli attributi ospite.
- Agenti di gestione dell'inventario che possono pubblicare un elenco di pacchetti installati l'istanza VM agli attributi guest.
- Software di orchestrazione dei carichi di lavoro in grado di segnalare il completamento di un'operazione nell'ambiente guest al piano di controllo software impostando un valore di stato personalizzato negli attributi guest.
- Sicurezza SSH: se gli attributi guest sono abilitati e OS Login è disabilitato, il ambiente guest e gcloud CLI usa attributi guest per migliorare la sicurezza SSH utilizzando l'API di Google per recuperare le chiavi host prima di poterti connettere tramite SSH.
- VM Manager: Pubblicazione dell'agente OS Config del sistema operativo in attributi guest.
Nella console Google Cloud, vai alla pagina Crea un'istanza.
Specifica i dettagli della VM.
Espandi la sezione Opzioni avanzate e segui questi passaggi:
- Espandi la sezione Gestione.
Nella sezione Metadati, fai clic su Aggiungi elemento e aggiungi le seguenti voci di metadati:
- Chiave:
enable-guest-attributes
- Valore:
TRUE
- Chiave:
Per creare la VM, fai clic su Crea.
Nella console Google Cloud, vai alla pagina Metadati.
Fai clic su Modifica.
Aggiungi una voce di metadati in cui la chiave è
enable-guest-attributes
e il valore èTRUE
. In alternativa, imposta il valore suFALSE
per disattivare il funzionalità.Fai clic su Salva per applicare le modifiche.
- Nella console Google Cloud, vai alla pagina Istanze VM.
- Fai clic sul nome della VM su cui vuoi impostare i metadati valore.
- Nella parte superiore della pagina dei dettagli dell'istanza, fai clic su Modifica per modificare le impostazioni dell'istanza.
- In Metadati personalizzati, aggiungi una voce di metadati in cui la chiave è
enable-guest-attributes
e il valore èTRUE
. In alternativa, imposta il valore suFALSE
per escludere la VM dalla funzionalità. - Nella parte inferiore della pagina dei dettagli dell'istanza, fai clic su Salva per applicare le modifiche alla VM.
NAMESPACE
: un raggruppamento logico perKEY
. Gli attributi guest devono avere uno spazio dei nomi.VALUE
: il valore che vuoi scrivere.KEY
: il percorso dei metadati inguest-attributes
in cui è memorizzato il valore.NAMESPACE
: un raggruppamento logico perKEY
. Gli attributi guest devono avere uno spazio dei nomi.VALUE
: il valore che vuoi scrivere.KEY
: il percorso dei metadati inguest-attributes
in cui è memorizzato il valore.Connettiti alla VM.
Esegui una query sugli attributi guest.
VM Linux
Ad esempio, potresti usare una richiesta
curl
dalla VM per leggere un valore dai metadatiguest-attributes
percorso:curl http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY -H "Metadata-Flavor: Google"
Sostituisci quanto segue:
NAMESPACE
: lo spazio dei nomi perguest-attributes
chiave su cui vuoi eseguire la query.KEY
: il percorso all'interno diguest-attributes
da cui vuoi leggere il valore dei metadati.
In alternativa, puoi restituire tutti i valori dell'attributo ospite in un'unica richiesta. Sostituisci
NAMESPACE
con lo spazio dei nomi perguest-attributes
chiave su cui vuoi eseguire la query.curl http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/ -H "Metadata-Flavor: Google"
VM Windows
Ad esempio, puoi utilizzare una richiesta
Invoke-RestMethod
dall'interno della VM per leggere un valore dal percorso dei metadatiguest-attributes
:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY") $value
Sostituisci quanto segue:
NAMESPACE
: lo spazio dei nomi perguest-attributes
chiave su cui vuoi eseguire la query.KEY
: il percorso all'interno diguest-attributes
da cui vuoi leggere il valore dei metadati.
In alternativa, puoi restituire tutti i valori dell'attributo ospite in un'unica richiesta. Sostituisci
NAMESPACE
con lo spazio dei nomi per la chiaveguest-attributes
su cui vuoi eseguire una query.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/") $value
VM_NAME
: il nome della VM da cui vuoi leggere il valore dei metadati dell'attributo guestNAMESPACE
: lo spazio dei nomi perguest-attributes
chiave su cui vuoi eseguire una queryKEY
: il percorso all'interno dei metadatiguest-attributes
in cui è archiviato il valoreZONE
: la zona in cui si trova la VMPROJECT_ID
: il tuo ID progettoZONE
: la zona in cui si trova la VMVM_NAME
: il nome della VM da cui vuoi leggere il valore dei metadati dell'attributo guestNAMESPACE
: lo spazio dei nomi perguest-attributes
chiave su cui vuoi eseguire una queryKEY
: il percorso all'interno dei metadatiguest-attributes
dove è memorizzato il valoreOAUTH_TOKEN
: il tuo token OAuthPROJECT_ID
: il tuo ID progettoZONE
: la zona in cui si trova la VMVM_NAME
: il nome della VM da cui vuoi leggere il valore dei metadati dell'attributo guestNAMESPACE
: lo spazio dei nomi perguest-attributes
chiave su cui vuoi eseguire una queryKEY
: il percorso all'interno dei metadatiguest-attributes
in cui è archiviato il valoreConnettiti alla VM.
Elimina gli attributi ospite.
VM Linux
Puoi anche eliminare gli attributi guest. Ad esempio, utilizza
curl
per eliminare una chiave specifica:curl -X DELETE http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY -H "Metadata-Flavor: Google"
Sostituisci quanto segue:
NAMESPACE
: lo spazio dei nomi perguest-attributes
chiave che desideri eliminareKEY
: il percorso all'interno diguest-attributes
in cui viene memorizzato
VM Windows
Puoi anche eliminare gli attributi degli ospiti. Ad esempio, usa
Invoke-RestMethod
per eliminare una chiave specifica:PS C:\> $value = (Invoke-RestMethod ` -Method DELETE ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY") $value
Sostituisci quanto segue:
NAMESPACE
: lo spazio dei nomi perguest-attributes
chiave che desideri eliminareKEY
: il percorso all'interno diguest-attributes
in cui è memorizzato il valore
- Scopri di più sui metadati della VM.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Ruoli obbligatori
Le autorizzazioni o i ruoli richiesti dipendono dal fatto che tu stia completando le attività dall'interno o dall'esterno della VM.
All'interno della VM
Se imposti, esegui una query o elimini gli attributi guest dall'interno della VM, ti servono solo i ruoli e le autorizzazioni per connetterti alla VM. Qualsiasi processo in esecuzione nell'istanza VM può scrivere i valori degli attributi guest, inclusi script e applicazioni che non dispongono dei privilegi di livello sudo o amministrativo.
Per le letture e le scritture all'interno di una VM, il server di metadati fornisce autenticazione e autorizzazione automatiche a livello di istanza. Ogni VM può in lettura o scrittura solo sul proprio server di metadati. Le altre VM non possono accedere server di metadati di un'altra VM.
Al di fuori della VM
I seguenti ruoli e autorizzazioni sono necessari per attivare gli attributi guest o visualizzarli dall'esterno della VM utilizzando la CLI o REST di Google Cloud. Non puoi impostare o eliminare gli attributi guest dall'esterno di una VM.
Per assicurarti che il tuo account utente o di servizio disponga delle autorizzazioni necessarie per attivare o visualizzare gli attributi guest, chiedi all'amministratore di concedere al tuo account utente o di servizio il ruolo IAM Amministratore istanze Compute (v1) (
roles/compute.instanceAdmin.v1
) sulla VM o sul progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.Questo ruolo predefinito contiene le autorizzazioni necessarie per attivare o visualizzare gli attributi guest. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per attivare o visualizzare gli attributi guest sono necessarie le seguenti autorizzazioni:
L'amministratore potrebbe anche assegnare queste autorizzazioni al tuo account utente o di servizio con ruoli personalizzati o altri ruoli predefiniti.
Quando utilizzare gli attributi guest
Utilizza gli attributi guest solo per casi d'uso che richiedono piccole quantità di dati che non cambiano di frequente. I migliori casi d'uso per gli attributi guest hanno le seguenti caratteristiche:
Gli attributi ospite funzionano bene nelle situazioni in cui devi pubblicare contenuti non frequenti e di volume ridotto di dati. Ad esempio, gli attributi degli ospiti sono utili per i seguenti casi d'uso:
Gli attributi guest non sostituiscono lo streaming di eventi, Pub/Sub o altre forme di repository di configurazione e archiviazione dei dati.
Attributi guest e altri servizi Google Cloud
Gli attributi guest vengono utilizzati dagli altri servizi Google Cloud nel modo seguente:
Per esaminare le voci dei metadati archiviate da questi servizi, consulta Chiavi dei metadati degli attributi guest predefiniti.
Attiva gli attributi guest sulla VM
Per impostazione predefinita, gli attributi guest sono disattivati. Per attivare gli attributi guest, imposta i valori dei metadati necessari sul tuo VM o nei metadati a livello di progetto:
Console
Imposta
enable-guest-attributes
nei metadati dell'istanza quando crei una VM:Imposta
enable-guest-attributes
nei metadati a livello di progetto in modo che si applichino a tutte le VM nel tuo progetto:Imposta
enable-guest-attributes
nei metadati di una VM esistente:gcloud
Imposta
enable-guest-attributes
nei metadati dell'istanza quando crei una VM:Utilizza la
gcloud compute instances create
in Google Cloud CLI e impostaenable-guest-attributes=TRUE
per attivare gli attributi guest. SostituisciVM_NAME
con il nome della tua VM.gcloud compute instances create VM_NAME \ --metadata=enable-guest-attributes=TRUE
Imposta
enable-guest-attributes
nei metadati a livello di progetto in modo che si applica a tutte le VM nel progetto:Utilizza la
project-info add-metadata
in Google Cloud CLI e impostaenable-guest-attributes=TRUE
per attivare gli attributi guest:gcloud compute project-info add-metadata \ --metadata=enable-guest-attributes=TRUE
In alternativa, puoi impostare
enable-guest-attributes
suFALSE
per disattivare attributi guest.Imposta
enable-guest-attributes
nei metadati di una VM esistente:Utilizza la
instances add-metadata
in Google Cloud CLI e impostaenable-guest-attributes=TRUE
per attivare gli attributi guest. SostituisciVM_NAME
con il nome della tua VM.gcloud compute instances add-metadata VM_NAME \ --metadata=enable-guest-attributes=TRUE
In alternativa, puoi impostare
enable-guest-attributes
suFALSE
per escludere la VM dall'utilizzo degli attributi guest.Impostare gli attributi guest
Qualsiasi processo in esecuzione nell'istanza VM può scrivere i valori degli attributi guest, inclusi script e applicazioni che non dispongono dei privilegi di livello sudo o amministrativo. Utenti o account di servizio al di fuori di La VM non può scrivere nei valori dei metadati degli attributi degli ospiti.
VM Linux
Ad esempio, potresti usare una richiesta
curl
dalla tua VM per scrivere un valore nei metadatiguest-attributes
percorso:curl -X PUT --data "VALUE" http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY -H "Metadata-Flavor: Google"
Sostituisci quanto segue:
Utilizza solo lettere, numeri, trattini bassi (
_
) e trattini (-
) per i campiNAMESPACE
eKEY
.VM Windows
Ad esempio, puoi utilizzare una richiesta
Invoke-RestMethod
all'interno della VM per scrivere un valore nel percorso dei metadatiguest-attributes
:PS C:\> $value = (Invoke-RestMethod ` -Method PUT -Body "VALUE" ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY") $value
Sostituisci quanto segue:
Utilizza solo lettere, numeri, trattini bassi (
_
) e trattini (-
) per i campiNAMESPACE
eKEY
.Recupera attributi guest
Gli utenti o gli account di servizio possono leggere gli attributi ospite dall'esterno di una VM se hanno il ruolo richiesto. In alternativa, qualsiasi utente o applicazione all'interno della VM può leggere i valori dei metadati per quella VM specifica.
Qualsiasi processo in esecuzione nella macchina virtuale può scrivere nel valore degli attributi guest, inclusi script e applicazioni che non dispongono dei privilegi di livello sudo o amministrativo.
Esegui una query sul server di metadati
Utilizza le seguenti istruzioni per eseguire query sugli attributi guest dall'interno di una VM.
Utilizza Google Cloud CLI o REST
Utilizza le seguenti istruzioni per visualizzare gli attributi guest dall'esterno di una VM.
gcloud
Utilizza Google Cloud CLI per leggere i metadati degli attributi guest per una VM. Ad esempio, puoi recuperare tutti i valori per la VM nel seguente modo:
gcloud compute instances get-guest-attributes VM_NAME \ --zone=ZONE
Per recuperare tutti i valori in uno spazio dei nomi specifico, includi il flag
--query-path
e lo spazio dei nomi che hai definito:gcloud compute instances get-guest-attributes VM_NAME \ --query-path=NAMESPACE \ --zone=ZONE
Per recuperare tutti i valori all'interno di uno spazio dei nomi specifico, includi il comando
--query-path
, lo spazio dei nomi e la chiave per il valore che definita:gcloud compute instances get-guest-attributes VM_NAME \ --query-path=NAMESPACE/KEY \ --zone=ZONE
Sostituisci quanto segue:
REST
Utilizza il metodo
compute.instances.getguestattributes
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/getGuestAttributes?queryPath=NAMESPACE/KEY
Sostituisci quanto segue:
Per recuperare tutte le chiavi per un
NAMESPACE
, ometti ilKEY
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/getGuestAttributes?queryPath=NAMESPACE
Per recuperare tutte le chiavi in ogni spazio dei nomi sulla VM, ometti completamente
NAMESPACE
equeryPath
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/getGuestAttributes
In alternativa, se disponi di un token OAuth, puoi utilizzare
curl
:curl -H "Authorization: Bearer OAUTH_TOKEN" https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/getGuestAttributes?queryPath=NAMESPACE/KEY
Sostituisci quanto segue:
Eliminazione attributi guest
Utilizza le seguenti istruzioni per rimuovere gli attributi guest da una VM.
Disattivazione degli attributi guest nell'organizzazione o nella cartella
Se non vuoi che nessuna delle VM nell'organizzazione o nella cartella attivare gli attributi guest, puoi ignorare e disattivare completamente la funzione.
Imposta il vincolo
constraints/compute.disableGuestAttributesAccess
sull'organizzazione o sulla cartella, sostituendoPROJECT_ID
con il nome del progetto:gcloud resource-manager org-policies enable-enforce \ constraints/compute.disableGuestAttributesAccess \ --project=PROJECT_ID
Letto Utilizzo dei vincoli per saperne di più su come impostare e gestire i vincoli per le tue organizzazioni.
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-09-29 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema di traduzione" },{ "type": "thumb-down", "id": "otherDown", "label":"Altra" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile da capire" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Il problema è stato risolto" },{ "type": "thumb-up", "id": "otherUp", "label":"Altra" }] -