Gestire le risorse GKE utilizzando i tag


Questa pagina mostra come utilizzare i tag per gestire i cluster Google Kubernetes Engine (GKE) e applicare in modo condizionale i criteri di Identity and Access Management ai nodi.

Panoramica

I tag sono coppie chiave-valore che consentono di annotare e gestire le risorse Google Cloud a livello di organizzazione o di progetto. Puoi utilizzare i tag per organizzare le risorse e applicare in modo condizionale criteri come firewall o criteri IAM. I tag supportano controllo dell'accesso IAM, che consente di definire chi può collegare, creare, aggiornare o eliminare i tag.

Casi d'uso dei tag in GKE

Puoi utilizzare i tag in GKE in situazioni come queste:

  • Applica in modo condizionale i criteri firewall di rete a nodi specifici. Ad esempio, nega il traffico in entrata dalla rete internet pubblica a tutti i nodi di un cluster in ambienti di gestione temporanea o test. Per le istruzioni, consulta Applicare in modo selettivo i criteri firewall di rete in GKE.
  • Concedi i ruoli IAM in modo condizionale in base ai tag. Ad esempio, concedi automaticamente ai contrattisti l'accesso ad ambienti specifici che normalmente sarebbero disponibili solo ai dipendenti a tempo pieno. Per istruzioni, vedi il resto del documento.
  • Controlla e analizza le informazioni di fatturazione in base ai tag applicati a livello di progetto o organizzazione.

Come funziona

Per l'applicazione specifica dei criteri firewall di rete, devi creare un tag e indicare esplicitamente il tag per l'uso da parte del firewall. Per tutti gli altri scopi, crei un tag senza impostare una designazione firewall.

Dopo aver creato il tag, lo colleghi alle risorse GKE come coppia chiave-valore. Per i criteri firewall di rete, si utilizza l'API GKE, mentre per tutti gli altri scopi viene utilizzata l'API Tag.

Per ogni chiave, puoi associare un valore a una risorsa. Ad esempio, se hai collegato env:dev a un cluster GKE, non puoi collegare anche env:prod o env:test. Puoi collegare fino a 50 tag non firewall e fino a cinque tag firewall a ogni risorsa.

Metodi di annotazione delle risorse in GKE

In GKE, esistono diversi metodi per annotare le risorse, come descritto nella seguente tabella:

Tipo di annotazione Descrizione Esempio
Tag (non firewall)
  • Applica alla risorsa cluster utilizzando l'API Tag
  • Organizza le risorse per monitorare l'utilizzo e la fatturazione
  • Applica i criteri IAM in modo condizionale
  • Controlla l'accesso a tag specifici con IAM

Per scoprire di più, consulta la sezione Panoramica dei tag.

Concedi in modo condizionale i ruoli IAM per controllare l'accesso alle risorse che hanno tag specifici
Tag (firewall)
  • Applica a cluster o pool di nodi utilizzando l'API GKE
  • Applica in modo condizionale i criteri firewall di rete del firewall Cloud Next Generation.
  • Controlla l'accesso a tag specifici con IAM
  • GKE collega le coppie chiave-valore alle VM di Compute Engine sottostanti.

Per saperne di più, consulta Applicare in modo selettivo i criteri firewall di rete in GKE.

Rifiuta automaticamente il traffico in entrata dalla rete internet pubblica a tutti gli ambienti di gestione temporanea o test
Tag di rete
  • Applica a cluster o pool di nodi utilizzando l'API GKE
  • Stringhe semplici senza controllo dell'accesso IAM
  • Utilizza per applicare in modo condizionale le regole firewall VPC
  • GKE collega le coppie chiave-valore alle VM di Compute Engine sottostanti

Per scoprire di più, consulta Utilizzare i tag di rete per applicare regole firewall ai nodi.

Rifiuta automaticamente il traffico in entrata dalla rete internet pubblica a tutti gli ambienti di gestione temporanea o test
Etichette dei cluster GKE
  • Applica a cluster o pool di nodi utilizzando l'API GKE
  • Organizza le risorse per monitorare l'utilizzo e la fatturazione

Per scoprire di più, consulta Etichette dei cluster.

Distinguere tra cluster di proprietà di centri di costo o team specifici nella tua organizzazione.
Etichette Kubernetes
  • Applica agli oggetti API Kubernetes
  • Associa i componenti e le risorse del cluster e gestisci i cicli di vita delle risorse.

Per saperne di più, consulta Etichette e selettori Kubernetes.

Richiedi che i carichi di lavoro siano pianificati su nodi con etichette specifiche.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  • Abilita l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installa e initialize gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente eseguendo gcloud components update.

Creare chiavi e valori dei tag

Prima di poter associare un tag alle tue risorse GKE, devi crearlo e configurarne i valori. Per creare chiavi e valori dei tag, consulta Creazione di un tag e Aggiunta di valori dei tag.

Collega tag a un cluster

Puoi collegare i tag a un cluster esistente se disponi delle autorizzazioni corrette utilizzando Google Cloud CLI, la console Google Cloud o l'API Tag.

gcloud

Per creare un'associazione di tag per collegare un tag a un cluster, esegui questo comando:

gcloud alpha resource-manager tags bindings create \
    --tag-value=TAG_VALUE_ID \
    --parent=RESOURCE_ID \
    --location=CLUSTER_LOCATION

Sostituisci quanto segue:

  • TAG_VALUE_ID: l'ID permanente o il nome con spazio dei nomi del valore tag da collegare. Ad esempio, tagValues/4567890123. Per maggiori dettagli sugli identificatori dei tag, consulta Definizioni e identificatori dei tag.
  • CLUSTER_LOCATION: per i cluster a livello di regione, specifica la regione di computing, ad esempio us-central1. Per i cluster di zona, specifica la zona di computing, ad esempio us-central1-a.
  • RESOURCE_ID: il nome completo della risorsa del cluster, ad esempio //container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME.

    Nell'ID risorsa:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud.
    • CLUSTER_NAME: il nome del cluster.

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.

  3. Nella sezione Metadati, accanto a Tag, fai clic su Modifica tag.

  4. Se la tua organizzazione non appare nel riquadro Tag, fai clic su Seleziona ambito. Seleziona la tua organizzazione e fai clic su Apri.

  5. Nel riquadro Tag, seleziona Aggiungi tag.

  6. Seleziona dall'elenco la chiave del tag che vuoi allegare. Puoi filtrare l'elenco digitando parole chiave.

  7. Seleziona dall'elenco il valore del tag che vuoi allegare. Puoi filtrare l'elenco digitando parole chiave.

  8. Fai clic su Salva.

  9. Nella finestra di dialogo Conferma, fai clic su Conferma per allegare il tag.

    Una notifica conferma che i tag sono stati aggiornati.

API

Per collegare un tag a una risorsa, devi prima creare una rappresentazione JSON di un'associazione di tag che includa gli ID permanenti del valore tag e della risorsa. Per ulteriori informazioni sul formato di un'associazione di tag, consulta la documentazione di riferimento di TagBinding.

Utilizza il metodo tagBindings.create con l'endpoint a livello di regione o di zona in cui si trova il cluster.

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

Sostituisci LOCATION con la regione o la zona in cui si trova il cluster, ad esempio us-central1.

Corpo della richiesta JSON:

{
  "parent": "RESOURCE_ID",
  "tagValue": "TAG_VALUE_ID"
}

Sostituisci quanto segue:

  • RESOURCE_ID: il nome completo della risorsa del cluster, ad esempio //container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME.

    Nell'ID risorsa:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud.
    • CLUSTER_NAME: il nome del cluster.
  • TAG_VALUE_ID: l'ID permanente o il nome con spazio dei nomi del valore tag da collegare. Ad esempio, tagValues/4567890123. Per maggiori dettagli sugli identificatori dei tag, consulta Definizioni e identificatori dei tag.

L'output è simile al seguente:

{
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.TagBinding",
    "name": "tagBindings///container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME/tagValues/TAG_VALUE_ID",
    "parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME",
    "tagValue": "TAG_VALUE_ID"
  }
}

Elenca i tag collegati a un cluster

Puoi elencare i tag collegati a un cluster utilizzando gcloud CLI, la console Google Cloud o l'API Tag.

gcloud

Per ottenere un elenco delle associazioni di tag associate a un cluster, esegui questo comando:

gcloud alpha resource-manager tags bindings list \
    --parent=RESOURCE_ID \
    --location=CLUSTER_LOCATION

Sostituisci quanto segue:

  • CLUSTER_LOCATION: per i cluster a livello di regione, specifica la regione di computing, ad esempio us-central1. Per i cluster di zona, specifica la zona di computing, ad esempio us-central1-a.

  • RESOURCE_ID: il nome completo della risorsa del cluster, ad esempio //container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME.

    Nell'ID risorsa:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud.

    • CLUSTER_NAME: il nome del cluster.

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster che vuoi visualizzare.

  3. Nella sezione Metadati, accanto a Tag, cerca i valori dei tag attualmente associati.

API

Per ottenere un elenco delle associazioni di tag per un cluster, utilizza il metodo tagBindings.list con l'endpoint a livello di regione o di zona in cui si trova il cluster.

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

Corpo della richiesta JSON:

{
  "parent": RESOURCE_ID,
}

Sostituisci quanto segue:

  • RESOURCE_ID: il nome completo della risorsa del cluster, ad esempio //container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME.

    Nell'ID risorsa:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud.
    • CLUSTER_NAME: il nome del cluster.

L'output è simile al seguente:

"tagBindings": [
  {
    "name": "tagBindings/%2F%2Fcontainer.googleapis.com%2Fprojects%2Ftags-bugbash-project%2Flocations%2Fus-central1%2Fclusters%2Ftestcluster/tagValues/758072120217",
    "parent": "//container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME",
    "tagValue": "TAG_VALUE_ID"
  }
]

Scollegare i tag da un cluster

Puoi scollegare un tag da un cluster eliminando la risorsa di associazione di tag collegata al cluster utilizzando gcloud CLI, la console Google Cloud o l'API Tag. Se devi eliminare un tag, devi prima scollegarti da tutte le risorse collegate.

gcloud

Per scollegare un'associazione di tag collegata a un cluster, esegui questo comando:

gcloud alpha resource-manager tags bindings delete \
    --tag-value=TAG_VALUE_ID \
    --parent=RESOURCE_ID \
    --location=CLUSTER_LOCATION

Sostituisci quanto segue:

  • TAG_VALUE_ID: l'ID permanente o il nome con spazio dei nomi del valore del tag da scollegare. Ad esempio, tagValues/4567890123. Per maggiori dettagli sugli identificatori dei tag, consulta Definizioni e identificatori dei tag.

  • CLUSTER_LOCATION: per i cluster a livello di regione, specifica la regione di calcolo, ad esempio us-central1. Per i cluster di zona, specifica la zona di computing, ad esempio us-central1-a.

  • RESOURCE_ID: il nome completo della risorsa del cluster, ad esempio //container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME.

    Nell'ID risorsa:

    • PROJECT_ID: l'ID del tuo progetto Google Cloud.

    • CLUSTER_NAME: il nome del cluster.

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.

  3. Nella sezione Metadati, accanto a Tag, fai clic su Modifica tag.

  4. Nel riquadro Tag, accanto al tag da scollegare, fai clic su Elimina elemento.

  5. Fai clic su Salva.

  6. Nella finestra di dialogo Conferma, fai clic su Conferma per scollegare il tag.

    Una notifica conferma che i tag sono stati aggiornati.

API

Per eliminare le associazioni di tag per un cluster, utilizza il metodo tagBindings.delete con l'endpoint a livello di regione o di zona in cui si trova il cluster.

DELETE https://LOCATION-cloudresourcemanager.googleapis.com/v3/TAG_BINDING_NAME

Sostituisci TAG_BINDING_NAME con il nome completo della risorsa tagBinding dell'oggetto che vuoi scollegare. Ad esempio, tagBindings/container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/tagValues/TAG_VALUE_ID.

Elimina chiavi tag e valori tag

Prima di eliminare chiavi e valori dei tag, assicurati che i tag siano scollegati da tutte le risorse. Poi, consulta la sezione Eliminazione dei tag per eliminare le chiavi e i valori.

Condizioni e tag di Identity and Access Management

Puoi utilizzare i tag e le condizioni IAM per concedere in modo condizionale le associazioni di ruoli agli utenti nella gerarchia del progetto. Quando modifichi o elimini il tag associato a un cluster, GKE può rimuovere l'accesso utente al cluster se è stato applicato un criterio IAM con associazioni di ruoli condizionali.

L'autorizzazione per elencare e creare cluster GKE viene verificata a livello di progetto, non a livello di singolo cluster. Se utilizzi associazioni di ruoli IAM condizionali con tag a livello di cluster per limitare l'accesso a cluster specifici, questi utenti potrebbero riscontrare errori quando tentano di elencare o creare cluster nel progetto. Per evitare questi errori, collega un tag al progetto principale e utilizza un'associazione di ruolo condizionale per concedere l'elenco o creare l'accesso. Per informazioni su ruoli e autorizzazioni, consulta la pagina di riferimento sui ruoli IAM.

Per maggiori informazioni sulle concessioni di accesso condizionale in IAM, consulta Condizioni e tag di Identity and Access Management.

Passaggi successivi