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 collegata a una risorsa Google Cloud. I tag vengono utilizzati per diversi scopi, tra cui:

  • Consentire o negare in modo condizionale i criteri a seconda che una risorsa abbia un tag specifico.
  • Definisci le origini e le destinazioni nei criteri firewall di rete globali e regionali.
  • Organizzazione delle risorse in modo logico.

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

Per collegare i tag alle risorse, devi creare una risorsa TagBinding che colleghi il valore del tag alla risorsa Google Cloud. Per saperne di più sui tag e sul loro funzionamento, consulta il documento Panoramica dei tag.

Prima di iniziare

  • Leggi la panoramica dei tag nella documentazione di Resource Manager.
  • Leggi la sezione Creare e gestire i tag nella documentazione di Resource Manager.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Autorizzazioni

Per gestire i tag per le risorse Compute Engine, gli utenti e gli account di servizio devono essere assegnati al ruolo tagUser. Per ulteriori informazioni sul ruolo tagUser, consulta Autorizzazioni richieste.

Risorse supportate

Compute Engine supporta il tagging per le seguenti risorse:

  • Solo dopo la creazione della risorsa:

    • Gruppi di istanze gestite (MIG)
    • Immagini
    • Snapshot
    • La maggior parte delle risorse di networking, come rete, subnet, firewall e risorse di controllo di integrità.
  • Durante e dopo la creazione delle risorse: istanze di macchine virtuali (VM) e dischi

Aggiunta di tag a una risorsa

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

Console

A seconda del tipo di risorsa, i passaggi esatti potrebbero essere leggermente diversi. Ad esempio, i passaggi riportati di seguito aggiungono 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 i tag.

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

    1. Fai clic su Modifica.
    2. Nella sezione Base, fai clic su Gestisci tag e aggiungi i tag che preferisci per l'istanza.
    3. Fai clic su Salva.

gcloud

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

Ad esempio, il seguente comando associa 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 del tag
  • PROJECT_NUMBER: l'ID numerico del progetto
  • ZONE: il nome della zona, ad esempio us-central1-a
  • VM_ID: l'ID numerico dell'istanza VM

API

Per associare 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 sezione Riferimento a TagBinding.

Per collegare il tag a una risorsa di zona, ad esempio un'istanza VM, utilizza il metodo tagBindings.create con l'endpoint regionale 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 posizione a cui appartiene la risorsa di destinazione
  • PROJECT_NUMBER: l'ID numerico del 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 del tag allegato; ad esempio: 4567890123
  • TAGVALUE_NAMESPACED_NAME è il nome con spazio dei nomi del valore tag collegato e ha il formato: parentNamespace/tagKeyShortName/tagValueShortName

Aggiungere tag a una risorsa durante la creazione

In alcuni scenari, potrebbe essere opportuno taggare le risorse durante la loro creazione, piuttosto che dopo. Ad esempio, potresti voler applicare i tag firewall per i criteri di rete quando crei la risorsa Cloud Next Generation Firewall.

Console

A seconda del tipo di risorsa, i passaggi esatti potrebbero essere leggermente diversi. I passaggi riportati di seguito 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 descritti in Creare e avviare un'istanza VM per completare la creazione dell'istanza.

gcloud

Per associare un tag a una risorsa durante la creazione, aggiungi il --resource-manager-tags flag 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 della chiave del tag
  • TAGVALUE_ID: l'ID numerico permanente del valore del tag collegato; 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 della chiave del tag
  • TAGVALUE_ID: l'ID numerico permanente del valore del tag collegato; ad esempio: 4567890123

Scollegare un tag da una risorsa

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

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

Console

A seconda del tipo di risorsa, i passaggi esatti potrebbero essere leggermente diversi. Ad esempio, i passaggi riportati di seguito 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 i tag.

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

    1. Fai clic su Modifica.
    2. Nella sezione Base, fai clic su Gestisci tag e rimuovi i tag che vuoi per l'istanza.
    3. Fai clic su Salva.

gcloud

Il seguente esempio 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 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 l'associazione di tag precedente e attacca 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 regionale 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 regionale della risorsa, ad esempio us-central1.

Visualizzazione dei tag associati a una risorsa

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

Console

A seconda del tipo di risorsa, i passaggi esatti potrebbero essere leggermente diversi. Ad esempio, i passaggi riportati di seguito mostrano come visualizzare i tag per 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 di associazioni di tag direttamente associate a una risorsa, utilizza il comando gcloud resource-manager tags bindings list. Se aggiungi il flag --effective, restituirai 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 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, restituirai 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 in una risorsa sono collegati direttamente, il campo inherited è falso e viene omesso.

API

Per elencare le associazioni di tag allegate a una risorsa di regione, come le istanze Compute Engine, utilizza il metodo tagBindings.list con l'endpoint regionale 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 progetto
  • ZONE: il nome della zona, ad esempio us-central1-a
  • VM_ID: l'ID numerico dell'istanza VM

Passaggi successivi