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

  • Consentire o negare in modo condizionale le policy a seconda che una risorsa abbia un tag specifico.
  • Definisci le origini e le destinazioni nelle policy del 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 collegare esattamente un valore a una risorsa per una determinata chiave. Ad esempio, se colleghi il environment: development tag, non puoi collegare i tag environment: production o environment: test. A ogni risorsa è possibile associare un massimo di 50 coppie chiave-valore.

Per collegare i tag alle risorse, devi creare una risorsa di associazione di tag 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 Crea e gestisci i tag nella documentazione di Resource Manager.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione verifica la tua identità per l'accesso a Google Cloud servizi e API. 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. Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    2. Set a default region and zone.

    REST

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

      Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare e gestire i tag per le risorse Compute Engine, chiedi all'amministratore di concederti i seguenti ruoli IAM nella tua organizzazione o nel tuo progetto:

Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare e gestire i tag per le risorse Compute Engine. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare e gestire i tag per le risorse Compute Engine sono necessarie le seguenti autorizzazioni:

  • Visualizza tag:
    • resourcemanager.tagKeys.get
    • resourcemanager.tagKeys.list
    • resourcemanager.tagValues.list
    • resourcemanager.tagValues.get
    • compute.instances.listTagBindings
    • compute.instances.listEffectiveTags
    • resourcemanager.projects.get
  • Crea tag:
    • resourcemanager.tagKeys.create
    • resourcemanager.tagValues.create
    • resourcemanager.tagKeys.setIamPolicy
    • resourcemanager.tagValues.setIamPolicy
  • Gestisci i tag:
    • resourcemanager.tagKeys.update
    • resourcemanager.tagValues.update
    • resourcemanager.tagKeys.delete
    • resourcemanager.tagValues.delete
    • resourcemanager.tagKeys.getIamPolicy
    • resourcemanager.tagValues.getIamPolicy
    • resourcemanager.tagKeys.setIamPolicy
    • resourcemanager.tagValues.setIamPolicy
  • Aggiungi o rimuovi tag per un'istanza di computing:
    • compute.instances.createTagBinding
    • compute.instances.deleteTagBinding
    • resourcemanager.tagValueBindings.create
    • resourcemanager.tagValueBindings.delete

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

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 dell'integrità.
  • Durante e dopo la creazione delle risorse: istanze di macchine virtuali (VM) e dischi

Aggiunta di tag a una risorsa

Puoi collegare i tag esistenti a determinate risorse. Dopo aver creato la risorsa, collega i tag alla risorsa seguendo le istruzioni riportate di seguito.

Console

A seconda del tipo di risorsa, i passaggi esatti potrebbero variare. Ad esempio, i passaggi riportati di seguito indicano come collegare 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 Informazioni di base, fai clic su Gestisci tag e aggiungi i tag che preferisci per l'istanza.
    3. Fai clic su Salva.

gcloud

Per informazioni su come utilizzare questi flag, leggi Collegare tag alle risorse 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 che contiene la risorsa di destinazione; in questo esempio, la regione dell'istanza VM
  • TAGVALUE_ID: l'ID numerico del valore tag
  • PROJECT_NUMBER: l'ID numerico del progetto che contiene la risorsa di destinazione
  • ZONE: la zona che contiene la risorsa di destinazione; in questo esempio, la zona dell'istanza VM
  • VM_ID: l'ID istanza VM

REST

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 dello 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 tagBindings.

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

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

Il corpo della richiesta può essere una delle seguenti due opzioni:

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

Sostituisci quanto segue:

  • LOCATION_NAME: la regione che contiene la risorsa di destinazione; in questo esempio, la regione dell'istanza VM
  • PROJECT_NUMBER: l'ID numerico del progetto che contiene la risorsa di destinazione
  • ZONE: la zona che contiene la risorsa di destinazione; in questo esempio, la zona dell'istanza VM
  • VM_ID: l'ID istanza VM
  • TAGVALUE_ID: l'ID permanente del valore del tag allegato, ad esempio: 4567890123
  • TAGVALUE_NAMESPACED_NAME: il nome dello spazio dei nomi del valore tag collegato e ha il formato: parentNamespace/tagKeyShortName/tagValueShortName

Aggiunta di tag a una risorsa durante la creazione

In alcuni scenari, potresti voler taggare le risorse durante la loro creazione, piuttosto che dopo.

Console

A seconda del tipo di risorsa, i passaggi esatti potrebbero variare. 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. Viene visualizzata la pagina Crea un'istanza, che mostra il riquadro Configurazione macchina.

  4. Nel menu di navigazione, fai clic su Avanzate. Nel riquadro Avanzate visualizzato, segui questi passaggi:

    1. Espandi la sezione Gestisci tag ed etichette.
    2. Fai clic su Aggiungi tag.
    3. Nel riquadro Tag che si apre, segui le istruzioni per aggiungere un tag all'istanza.
    4. Fai clic su Salva.
  5. Specifica altre opzioni di configurazione per l'istanza. Per ulteriori informazioni, consulta Opzioni di configurazione durante la creazione dell'istanza.

  6. Per creare e avviare la VM, fai clic su Crea.

gcloud

Per collegare 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 \
      --zone=ZONE \
      --resource-manager-tags=tagKeys/TAGKEY_ID=tagValues/TAGVALUE_ID

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza VM
  • ZONE: la zona che contiene l'istanza VM
  • TAGKEY_ID: l'ID numerico del numero della chiave del tag
  • TAGVALUE_ID: l'ID numerico permanente del valore del tag allegato, ad esempio: 4567890123

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

REST

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 VM
  • TAGKEY_ID: l'ID numerico del numero della chiave del tag
  • TAGVALUE_ID: l'ID numerico permanente del valore del tag allegato, ad esempio: 4567890123

Utilizzare i tag con le regole firewall

Per attivare in modo sicuro il traffico di rete verso una specifica istanza Compute Engine, puoi applicare un tag di rete o un tag sicuro all'istanza. Poi, puoi creare una regola firewall che abbia come target quel tag. Ciò è utile per gestire l'accesso alle istanze su larga scala.

Ad esempio, supponiamo di avere un'istanza di calcolo che esegue un server web e di aver creato una nuova applicazione web che deve essere accessibile al pubblico sulla porta HTTP standard (80). Puoi utilizzare un tag di rete o sicuro per implementare una regola firewall che conceda l'accesso HTTP solo all'istanza di calcolo su cui viene eseguito il server web.

Per istruzioni su come creare tag da utilizzare nelle norme firewall, vedi quanto segue:

  • Per utilizzare i tag di rete con le regole firewall VPC, consulta Aggiungere tag di rete.
  • Per utilizzare i tag sicuri con le policy firewall gerarchiche, le policy firewall di rete globali e regionali o per l'utilizzo con le origini connesse tramite il peering di rete VPC, consulta Creare e gestire tag sicuri.

Per informazioni su quando utilizzare i service account o i tag di rete per definire destinazioni e origini per le regole di ingresso di rete, consulta Filtrare per account di servizio anziché per tag di rete.

Scollegamento di 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 Scollega 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 che seguono 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 dell'istanza per cui vuoi rimuovere i tag.

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

    1. Fai clic su Modifica.
    2. Per i tag di Resource Manager, nella sezione Informazioni di base, fai clic su Gestisci tag. Rimuovi i tag che vuoi per l'istanza. Puoi rimuovere solo i tag aggiunti direttamente all'istanza.
    3. Per i tag di rete, nella sezione Networking, rimuovi il tag dall'elenco Tag di rete.
    4. Fai clic su Salva.

gcloud

Per scollegare un tag da un'istanza di computing, utilizza il comando resource-manager tags bindings delete:

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

Sostituisci quanto segue:

  • LOCATION_NAME: la zona della risorsa di destinazione, ad esempio us-central1-a
  • TAGVALUE_ID: l'ID numerico della chiave tag
  • PROJECT_NUMBER: l'ID numerico del progetto che contiene la risorsa di destinazione
  • ZONE: il nome della zona, ad esempio us-central1-a
  • INSTANCE_ID: l'ID numerico dell'istanza di computing

Per aggiornare o sostituire un'associazione di tag esistente con un'altra, scollega l'associazione di tag precedente e attacca quella nuova.

REST

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

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

Sostituisci quanto segue:

  • LOCATION: l'endpoint di regione della risorsa, ad esempio us-central1
  • TAGBINDINGS_NAME: l'ID permanente di TagBinding; ad esempio: tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F1234567890/tagValues/567890123456

Visualizzazione dei tag collegati a una risorsa

Per istruzioni dettagliate su come elencare i tag, consulta Elenco di tutti i tag collegati 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 che seguono 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 collegate 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 zona della risorsa di destinazione, ad esempio us-central1-a
  • PROJECT_NUMBER: l'ID numerico del progetto che contiene la risorsa di destinazione
  • 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.

L'output è simile al 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.

REST

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

Passaggi successivi