Gestire le risorse GKE utilizzando i tag


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

Panoramica

I tag sono coppie chiave-valore che ti consentono di annotare e gestire a livello di organizzazione o di progetto. Puoi utilizzare la modalità Tag per organizzare le risorse e applicare in modo condizionale come firewall o criteri IAM. Tag supportare il controllo dell'accesso IAM, che consente di definire chi può allegare, creare, aggiornare o eliminare Tag.

Casi d'uso dei tag in GKE

Puoi usare i tag in GKE in situazioni come le seguenti:

  • Applica il firewall di rete in modo condizionale a nodi specifici. Ad esempio, nega il traffico in entrata internet pubblico a tutti i nodi di un cluster in fase di gestione temporanea o di test ambienti cloud-native. Per istruzioni, vedi Applica 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 a specifiche ambienti che normalmente sarebbero disponibili solo per i dipendenti a tempo pieno. Per istruzioni, consulta la parte restante di questo documento.
  • Controllo e analisi dei dati di fatturazione in base ai tag applicati a livello di progetto o organizzazione.

Come funziona

Per l'applicazione specifica del criterio firewall di rete, devi creare un tag designare esplicitamente il tag per l'uso del firewall. Per tutti gli altri scopi, creare un tag senza impostare una designazione di firewall.

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

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

Metodi di annotazione delle risorse in GKE

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

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

Per saperne di più, vedi Panoramica dei tag.

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

Per saperne di più, vedi Applica in modo selettivo i criteri firewall di rete in GKE.

Nega automaticamente il traffico in entrata dalla rete internet pubblica a tutti ambienti di gestione temporanea o di test
Tag di rete
  • Applica al cluster o al 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 saperne di più, vedi Utilizza i tag di rete per applicare regole firewall ai nodi.

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

Per saperne di più, vedi Etichette del cluster.

Distinguere tra cluster di proprietà di centri di costo specifici all'interno dell'organizzazione.
Etichette Kubernetes
  • Applica agli oggetti API Kubernetes
  • Associare tra loro componenti e risorse del cluster per gestire i cicli di vita delle risorse.

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

Richiedere 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à:

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

Collega tag a un cluster

Puoi collegare i tag a un cluster esistente se disponi dei token corretti le autorizzazioni utilizzando Google Cloud CLI, la console Google Cloud, o Terraform.

gcloud

Prima di poter collegare un tag alle risorse GKE utilizzando gcloud CLI, devi creare il tag e configurarne i valori. Per creare chiavi e valori di tag, consulta Creazione di un tag e Aggiunta dei valori dei tag.

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 lo spazio dei nomi del valore tag da collegare. Ad esempio, tagValues/4567890123. Per maggiori dettagli sugli identificatori tag, consulta Definizioni e identificatori dei tag.
  • CLUSTER_LOCATION: il Compute Engine località. Per i cluster di zona, e specificare la zona di computing.
  • RESOURCE_ID: il nome completo della risorsa di nel 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 tuo cluster.

Console

Prima di poter collegare un tag alle risorse GKE utilizzando il metodo nella console Google Cloud, devi creare il tag e configurarne i valori. Per creare chiavi e valori di tag, consulta Creazione di un tag e Aggiunta dei valori dei tag.

  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 i tag.

  4. Se la tua organizzazione non compare 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 relativa al tag che vuoi allegare. Puoi filtra l'elenco digitando parole chiave.

  7. Seleziona dall'elenco il valore del tag che vuoi collegare. Tu possono filtrare l'elenco digitando parole chiave.

  8. Fai clic su Salva.

  9. Nella finestra di dialogo Conferma, fai clic su Conferma per allegare del 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 include gli ID permanenti del valore del tag e risorsa. Per ulteriori informazioni sul formato di un'associazione di tag, consulta le Riferimento TagBinding.

Utilizza il metodo tagBindings.create con l'endpoint a livello di regione o 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 in un cluster Kubernetes.

Corpo della richiesta JSON:

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

Sostituisci quanto segue:

  • RESOURCE_ID: il nome completo della risorsa di nel 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 tuo cluster.
  • TAG_VALUE_ID: l'ID permanente o lo spazio dei nomi del valore tag da collegare. Ad esempio, tagValues/4567890123. Per maggiori dettagli sugli identificatori 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"
  }
}

Terraform

Per creare un tag, configurane i valori e collega un tag a una risorsa utilizzando Terraform, fai riferimento all'esempio seguente:

resource "google_container_cluster" "default" {
  name     = "gke-autopilot-tag"
  location = "us-central1"

  enable_autopilot = true

  # Set `deletion_protection` to `true` will ensure that one cannot
  # accidentally delete this instance by use of Terraform.
  deletion_protection = false
}

data "google_project" "default" {}

resource "google_tags_tag_key" "default" {
  parent      = "projects/${data.google_project.default.project_id}"
  short_name  = "env"
  description = "Environment tag key"
}

resource "google_tags_tag_value" "default" {
  parent      = "tagKeys/${google_tags_tag_key.default.name}"
  short_name  = "dev"
  description = "Development environment tag value."
}

resource "google_tags_location_tag_binding" "default" {
  parent    = "//container.googleapis.com/${google_container_cluster.default.id}"
  location  = google_container_cluster.default.location
  tag_value = "tagValues/${google_tags_tag_value.default.name}"
}

Per saperne di più sull'utilizzo di Terraform, consulta Supporto Terraform per GKE.

Elenco dei tag collegati a un cluster

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

gcloud

Per ottenere un elenco di associazioni di tag collegate 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. Per i servizi a livello di zona di Compute Engine, specifica la zona di computing.

  • 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 tuo 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 gli elementi attualmente valori tag associati.

API

Per ottenere un elenco di associazioni di tag per un cluster, utilizza tagBindings.list con l'endpoint a livello di regione o 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 tuo cluster.

L'output è simile al seguente:

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

Scollega i tag da un cluster

Puoi scollegare un tag da un cluster eliminando la risorsa di associazione di tag collegate al cluster tramite gcloud CLI, console Google Cloud o l'API Tag. Se devi eliminare un tag, deve prima scollegarsi 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 lo spazio dei nomi del valore del tag da scollegare. Ad esempio, tagValues/4567890123. Per maggiori dettagli sugli identificatori dei tag, consulta la sezione Definizioni dei tag e identificatori.

  • CLUSTER_LOCATION: per i cluster a livello di regione, specifica la regione di computing. Per i cluster di zona, specifica la zona di computing.

  • 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 tuo 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 i tag.

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

  5. Fai clic su Salva.

  6. Nella finestra di dialogo Conferma, fai clic su Conferma per scollegare il token del 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 zona in cui si trova il cluster.

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

Sostituisci TAG_BINDING_NAME con la risorsa completa nome di tagBinding da scollegare. Ad esempio: tagBindings/container.googleapis.com/projects/PROJECT_ID/locations/LOCATION/tagValues/TAG_VALUE_ID.

Elimina chiavi e valori dei tag

Prima di eliminare le chiavi e i valori dei tag, assicurati che i tag siano scollegati a tutte le risorse. Quindi, vedi Eliminare i tag per eliminare le chiavi e i valori.

Condizioni e tag di Identity and Access Management

Puoi utilizzare tag e condizioni IAM per concedere il ruolo in modo condizionale associazioni a utenti nella gerarchia del progetto. Quando modifichi o elimini il tag collegato a un cluster, GKE può rimuovere l'accesso degli utenti a quel cluster se è stato eseguito un criterio di autorizzazione IAM con associazioni di ruoli condizionali applicati.

L'autorizzazione a elencare e creare cluster GKE è verificata in a livello di progetto, non a livello di singolo cluster. Se utilizzi le regole Associazioni di ruoli IAM 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, allega un tag alla progetto padre e utilizza un'associazione condizionale di ruoli per concedere l'elenco o creare l'accesso. Per informazioni su ruoli e autorizzazioni, consulta Riferimento per i ruoli IAM.

Per saperne di più sulle concessioni dell'accesso condizionale in IAM, consulta Condizioni e tag di Identity and Access Management.

Passaggi successivi