Gestire i tag per le risorse

Questa guida descrive come creare e gestire i tag per le risorse Compute Engine. Un tag è una coppia chiave-valore che può essere associata a una risorsa della Google Cloud Platform. I tag vengono utilizzati per diversi scopi, tra cui:

  • Consenti o nega in modo condizionale i criteri a seconda che una risorsa abbia un tag specifico.
  • Definisci le origini e le destinazioni nei criteri firewall della rete globale e nei criteri firewall di rete a livello di regione.
  • Organizzare le risorse in modo logico

Dopo aver creato un tag e aver concesso l'accesso appropriato sia al tag sia alla risorsa, puoi associare il tag come coppia chiave-valore. Puoi collegare esattamente un valore a una risorsa per una determinata chiave. Ad esempio, se colleghi il tag environment: development, non puoi associare i tag environment: production o environment: test. A ogni risorsa possono essere collegate un massimo di 50 coppie chiave-valore.

Per collegare tag alle risorse, devi creare una risorsa TagBinding che colleghi il valore del tag alla risorsa Google Cloud. Per ulteriori informazioni sui tag e sul loro funzionamento, consulta la Panoramica dei tag.

Prima di iniziare

  • Leggi la panoramica dei tag nella documentazione di Resource Manager.
  • Leggi la sezione Creazione e gestione dei tag nella documentazione di Resource Manager.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

    Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Imposta una regione e una zona predefinite.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init

Autorizzazioni

Per gestire i tag per le risorse Compute Engine, agli utenti e agli account di servizio deve essere concesso il ruolo tagUser. Per maggiori informazioni sul ruolo tagUser, consulta Autorizzazioni richieste.

Risorse supportate

Le seguenti risorse supportano il tagging solo dopo la creazione della risorsa:

  • Istanza macchina virtuale (VM)
  • Disco
  • Gruppo di istanze gestite
  • Immagine
  • Snapshot
  • La maggior parte delle risorse di networking, ad esempio rete, subnet, firewall e controlli di integrità.

Le seguenti risorse supportano anche il tagging durante la creazione delle risorse:

  • Istanza VM
  • Disco

Aggiunta di tag a una risorsa

I tag esistenti possono essere collegati a determinate risorse dopo la creazione della risorsa, seguendo le istruzioni riportate di seguito.

Console

I passaggi esatti potrebbero essere leggermente diversi a seconda del tipo di risorsa. Ad esempio, i seguenti passaggi associano un tag a una VM:

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Seleziona il progetto e fai clic su Continua.

  3. Nella colonna Nome, fai clic sul nome della VM per cui vuoi aggiungere tag.

  4. Nella pagina dei dettagli dell'istanza VM, completa i seguenti passaggi:

    1. Fai clic su Modifica.
    2. Nella sezione Di base, fai clic su Gestisci tag e aggiungi i tag desiderati per l'istanza.
    3. Fai clic su Salva.

gcloud

Per istruzioni dettagliate su come utilizzare questi flag, consulta Collegare un tag a una risorsa nella documentazione di Resource Manager.

Ad esempio, il seguente comando collega un tag a una VM:

gcloud resource-manager tags bindings create \
    --location LOCATION_NAME \
    --tag-value=tagValues/TAGVALUE_ID \
    --parent=//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID

Sostituisci quanto segue:

  • LOCATION_NAME: la regione della risorsa di destinazione, ad esempio us-central1
  • TAGVALUE_ID: l'ID numerico del valore tag
  • PROJECT_NUMBER: l'ID numerico del tuo progetto
  • ZONE: il nome della zona, ad esempio us-central1-a
  • VM_ID: l'ID numerico dell'istanza VM

API

Per collegare un tag a una risorsa, devi prima creare una rappresentazione JSON di un'associazione di tag che includa l'ID permanente o il nome con spazio dei nomi del valore del tag e l'ID permanente della risorsa. Per ulteriori informazioni sul formato di un'associazione di tag, consulta la documentazione di riferimento di TagBinding.

Per collegare il tag a una risorsa di zona, ad esempio un'istanza VM, utilizza il metodo tagBindings.create con l'endpoint a livello di regione in cui si trova la risorsa. Ad esempio:

POST https://LOCATION-cloudresourcemanager.googleapis.com/v3/tagBindings

Il corpo della richiesta può essere uno dei seguenti:

{
  "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID",
  "tagValue": "tagValue/TAGVALUE_ID"
}

Oppure:

{
  "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID",
  "tagValueNamespacedName": TAGVALUE_NAMESPACED_NAME
}

Sostituisci quanto segue:

  • LOCATION: la località a cui appartiene la risorsa di destinazione
  • PROJECT_NUMBER: l'ID numerico del tuo progetto
  • ZONE: il nome della zona, ad esempio us-central1-a
  • VM_ID: l'ID numerico della VM
  • TAGVALUE_ID: l'ID permanente del valore tag associato, ad esempio: 4567890123
  • TAGVALUE_NAMESPACED_NAME è il nome con spazio dei nomi del valore tag associato ed è nel formato: parentNamespace/tagKeyShortName/tagValueShortName

Aggiunta di tag a una risorsa durante la creazione della risorsa

In alcuni scenari, è possibile che tu voglia taggare le risorse durante la creazione della risorsa, anziché dopo. Ad esempio, potresti voler applicare tag firewall per i criteri di rete quando crei la risorsa firewall Cloud Next Generation.

Console

I passaggi esatti potrebbero essere leggermente diversi a seconda del tipo di risorsa. I seguenti passaggi si riferiscono a una VM:

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Seleziona il progetto e fai clic su Continua.

  3. Fai clic su Crea istanza.

  4. Fai clic su Gestisci tag ed etichette.

  5. Fai clic su Aggiungi tag.

  6. Segui le istruzioni nel riquadro laterale per selezionare i tag da aggiungere all'istanza.

  7. Fai clic su Salva.

  8. Completa gli altri passaggi in Creare e avviare un'istanza VM per completare la creazione dell'istanza.

gcloud

Per collegare un tag a una risorsa durante la creazione della risorsa, aggiungi il flag --resource-manager-tags con il rispettivo comando create. Ad esempio, per collegare un tag a una VM, utilizza il seguente comando:

gcloud compute instances create INSTANCE_NAME --resource-manager-tags=tagKeys/TAGKEY_ID=tagValues/TAGVALUE_ID

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza
  • TAGKEY_ID: l'ID numerico del numero della chiave del tag
  • TAGVALUE_ID: l'ID numerico permanente del valore tag associato; ad esempio: 4567890123

Specifica più tag separandoli con una virgola, ad esempio TAGKEY1=TAGVALUE1,TAGKEY2=TAGVALUE2.

API

Invia una richiesta POST al seguente URL:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances

Includi il seguente corpo JSON della richiesta:

{
  "name": INSTANCE_NAME,
  "params": {
    "resourceManagerTags": {
      "tagKeys/TAGKEY_ID: "tagValues/TAGVALUE_ID",
    },
  }
  // other fields omitted
}

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza
  • TAGKEY_ID: l'ID numerico del numero della chiave del tag
  • TAGVALUE_ID: l'ID numerico permanente del valore tag associato; ad esempio: 4567890123

Scollegamento di un tag da una risorsa

Puoi scollegare un tag da una risorsa eliminando la risorsa di associazione di tag.

Per rivedere le istruzioni su come scollegare i tag, consulta Scollegare un tag da una risorsa nella documentazione di Resource Manager.

Console

I passaggi esatti potrebbero essere leggermente diversi a seconda del tipo di risorsa. Ad esempio, i passaggi seguenti scollegano un tag da una VM:

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Seleziona il progetto e fai clic su Continua.

  3. Nella colonna Nome, fai clic sul nome della VM per cui vuoi aggiungere tag.

  4. Nella pagina dei dettagli dell'istanza VM, completa i seguenti passaggi:

    1. Fai clic su Modifica.
    2. Nella sezione Di base, fai clic su Gestisci tag e rimuovi i tag che vuoi applicare all'istanza.
    3. Fai clic su Salva.

gcloud

L'esempio seguente scollega un tag da una VM utilizzando gcloud CLI:

gcloud resource-manager tags bindings delete \
--location LOCATION_NAME \
--tag-value=tagValues/TAGVALUE_ID \
--parent //compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID

Sostituisci quanto segue:

  • LOCATION_NAME: la regione della risorsa di destinazione, ad esempio us-central1
  • TAGVALUE_ID: l'ID numerico della chiave tag
  • PROJECT_NUMBER: l'ID numerico del tuo progetto
  • ZONE: il nome della zona, ad esempio us-central1-a
  • VM_ID: l'ID numerico dell'istanza VM

Per aggiornare o sostituire un'associazione di tag esistente con un'altra, scollega la vecchia associazione di tag e collega quella nuova.

API

Per eliminare un'associazione di tag collegata a una risorsa, ad esempio una VM, utilizza il metodo tagBindings.delete con l'endpoint a livello di regione in cui si trova la risorsa.

DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/{name=TAGBINDINGS_NAME}

Dove:

  • TAGBINDINGS_NAME è l'ID permanente di TagBinding, ad esempio: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F1234567890/tagValues/567890123456.

  • LOCATION è l'endpoint a livello di regione per la tua risorsa, ad esempio us-central1.

Visualizzazione dei tag associati a una risorsa

Per istruzioni dettagliate su come elencare i tag, consulta Elenco dei tag associati a una risorsa nella documentazione di Resource Manager.

Console

I passaggi esatti potrebbero essere leggermente diversi a seconda del tipo di risorsa. Ad esempio, i passaggi seguenti mostrano come visualizzare i tag di una VM:

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Seleziona il progetto e fai clic su Continua.

  3. Nella colonna Nome, fai clic sul nome della VM per cui vuoi visualizzare i tag.

  4. Nella pagina dei dettagli dell'istanza VM, cerca i tag nella sezione Tag.

gcloud

Per ottenere un elenco delle associazioni di tag direttamente collegate a una risorsa, utilizza il comando gcloud resource-manager tags bindings list. Se aggiungi il flag --effective, verrà restituito anche un elenco di tag ereditati da questa risorsa. Ad esempio:

gcloud resource-manager tags bindings list \
    --location=LOCATION_NAME \
    --parent //compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID

Sostituisci quanto segue:

  • LOCATION_NAME: la regione della risorsa di destinazione, ad esempio us-central1
  • PROJECT_NUMBER: l'ID numerico del tuo progetto
  • ZONE: il nome della zona, ad esempio us-central1-a
  • VM_ID: l'ID numerico dell'istanza VM

Se aggiungi il flag --effective al comando tags bindings list, verrà restituito anche un elenco di tutti i tag ereditati da questa risorsa. Dovresti ricevere una risposta simile alla seguente:

namespacedTagKey: 961309089256/environment
namespacedTagValue: 961309089256/environment/production
tagKey: tagKeys/417628178507
tagValue: tagValues/247197504380
inherited: true

Se tutti i tag valutati su una risorsa sono collegati direttamente, il campo inherited è falso e viene omesso.

API

Per elencare le associazioni di tag collegate a una risorsa di regione, ad esempio le istanze di Compute Engine, utilizza il metodo tagBindings.list con l'endpoint a livello di regione in cui si trova la risorsa. Ad esempio:

GET https://LOCATION_NAME-cloudresourcemanager.googleapis.com/v3/tagBindings

{
    "parent": "//compute.googleapis.com/projects/PROJECT_NUMBER/zones/ZONE/instances/VM_ID"
}

Sostituisci quanto segue:

  • LOCATION_NAME: la regione della risorsa di destinazione, ad esempio us-central1
  • PROJECT_NUMBER: l'ID numerico del tuo progetto
  • ZONE: il nome della zona, ad esempio us-central1-a
  • VM_ID: l'ID numerico dell'istanza VM

Passaggi successivi