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 ti consentono di annotare e gestire a livello di organizzazione o di progetto. Puoi utilizzare la modalità Tag per organizzare le risorse e applicarli in modo condizionale come firewall o criteri IAM. I tag supportano il controllo dell'accesso IAM, che ti consente di definire chi può collegare, creare, aggiornare o eliminare i tag.
Casi d'uso dei tag in GKE
Puoi usare i tag in GKE in situazioni come le seguenti:
- Applica in modo condizionale i criteri firewall di rete 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 contraenti 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.
- Controlla e analizza i dati di fatturazione in base ai tag applicati a livello di progetto o di 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, crea un tag senza impostare una designazione del firewall.
Dopo aver creato il tag, lo colleghi a GKE risorse come coppia chiave-valore. Per i criteri firewall di rete, utilizza l'API GKE, mentre per tutti gli altri scopi utilizzerai 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 associare 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 descritte nella tabella seguente:
Tipo di annotazione | Descrizione | Esempio |
---|---|---|
Tag (non firewall) |
Per saperne di più, vedi Panoramica dei tag. |
Concedi in modo condizionale i ruoli IAM per controllare l'accesso alle risorse con tag specifici |
Tag (firewall) |
Per scoprire di più, consulta Applicare in modo selettivo i criteri firewall di rete in GKE. |
Rifiutare automaticamente il traffico in entrata dalla rete internet pubblica a tutti gli ambienti di gestione temporanea o di test |
Tag di rete |
Per scoprire di più, consulta Utilizzare i tag di rete per applicare regole firewall ai nodi. |
Rifiutare automaticamente il traffico in entrata dalla rete internet pubblica a tutti gli ambienti di gestione temporanea o di test |
Etichette dei cluster GKE |
Per saperne di più, vedi Etichette del cluster. |
Distinguere i cluster di proprietà di centri di costo o team specifici della tua organizzazione. |
Etichette Kubernetes |
Per saperne di più, consulta 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 operazioni:
- Attiva l'API Google Kubernetes Engine. Attiva 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, ottieni la versione più recente eseguendo
gcloud components update
.
Assicurati di disporre dei seguenti ruoli IAM:
roles/resourcemanager.tagAdmin
roles/resourcemanager.tagUser
Per informazioni sulle autorizzazioni concesse da questi ruoli, consulta Autorizzazioni obbligatorie.
Assicurati di avere un cluster GKE in esecuzione.
Collega tag a un cluster
Se disponi delle autorizzazioni corrette, puoi associare i tag a un cluster esistente utilizzando Google Cloud CLI, la console Google Cloud, l'API Tags o Terraform.
gcloud
Prima di poter associare un tag alle risorse GKE utilizzando la CLI gcloud, devi creare il tag e configurarne i valori. Per creare chiavi e valori dei tag, consulta Creare un tag e Aggiungere valori dei tag.
Per creare un'associazione di tag per collegare un tag a un cluster, esegui il seguente 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 informazioni dettagliate sugli identificatori dei tag, consulta Definizioni e identificatori dei tag.CLUSTER_LOCATION
: la posizione di Compute Engine. 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 dei tag, consulta Creare un tag e Aggiungere valori dei tag.
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Nella sezione Metadati, accanto a Tag, fai clic su
Modifica i tag.Se la tua organizzazione non viene visualizzata nel riquadro Tag, fai clic su Seleziona ambito. Seleziona la tua organizzazione e fai clic su Apri.
Nel riquadro Tag, seleziona Aggiungi tag.
Seleziona dall'elenco la chiave relativa al tag che vuoi allegare. Puoi filtra l'elenco digitando parole chiave.
Seleziona dall'elenco il valore del tag che vuoi collegare. Puoi filtrare l'elenco digitando le parole chiave.
Fai clic su Salva.
Nella finestra di dialogo Conferma, fai clic su Conferma per allegare del tag.
Una notifica conferma che i tag sono stati aggiornati.
API
Per associare un tag a una risorsa, devi prima creare una rappresentazione JSON di un'associazione di tag che includa gli ID permanenti del valore del tag e della risorsa. Per ulteriori informazioni sul formato di un'associazione di tag, consulta il riferimento TagBinding.
Utilizza il metodo tagBindings.create
con l'endpoint regionale 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
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 del tuo 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 del tag da collegare. Ad esempio,tagValues/4567890123
. Per informazioni dettagliate 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"
}
}
Terraform
Per creare un tag, configurane i valori e collega un tag a una risorsa utilizzando Terraform, fai riferimento all'esempio seguente:
Per saperne di più sull'utilizzo di Terraform, consulta Supporto Terraform per GKE.
Elenco dei tag collegati a un cluster
Puoi elencare i tag associati a un cluster utilizzando gcloud CLI, la console Google Cloud o l'API Tags.
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 regionali, specifica la regione di calcolo. Per i cluster di zona, specifica la zona di calcolo.RESOURCE_ID
: il nome completo della risorsa del tuo 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
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Nell'elenco dei cluster, fai clic sul nome del cluster che vuoi visualizzare.
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 il metodo tagBindings.list
con l'endpoint regionale o zonale 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 tuo 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, devi prima scollegarlo 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 zonali, specifica la zona di calcolo.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
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Nella sezione Metadati, accanto a Tag, fai clic su
Modifica i tag.Nel riquadro Tag, accanto al tag che vuoi scollegare, fai clic su
Elimina elemento.Fai clic su Salva.
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 regionale o zonale 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 dell'oggetto tagBinding
che vuoi 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, consulta Eliminare i 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 degli utenti al cluster se è stato applicato un criterio di autorizzazione IAM con associazioni di ruoli condizionali.
L'autorizzazione per elencare e creare cluster GKE viene controllata 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, associa un tag al progetto principale e utilizza un'associazione di ruoli condizionale per concedere l'elenco o creare l'accesso. Per informazioni su ruoli e autorizzazioni, consulta il riferimento ai ruoli IAM.
Per saperne di più sulle concessioni dell'accesso condizionale in IAM, consulta Condizioni e tag di Identity and Access Management.
Passaggi successivi
- Scopri come impostare un criterio dell'organizzazione con Tag.
- Scopri di più su come gestire i tag e associarli a Google Cloud.
- Scopri gli altri servizi che supportano i tag.
- Scopri come utilizzare i tag con IAM.