Questo documento mostra come utilizzare i tag per gestire i cluster Google Kubernetes Engine (GKE) e applicare in modo condizionale le policy Identity and Access Management ai nodi.
Informazioni sui tag
I tag sono coppie chiave-valore che consentono di annotare e gestire le Cloud de Confiance risorse a livello di organizzazione o progetto. Puoi utilizzare i tag per organizzare le risorse e applicare in modo condizionale policy come firewall o policy IAM. I tag supportano il controllo dell'accesso IAM, che consente di definire chi può collegare, creare, aggiornare o eliminare i tag.
Casi d'uso dei tag in GKE
Potresti utilizzare i tag in GKE per situazioni come le seguenti:
- Applica in modo condizionale le policy firewall di rete a nodi specifici. Ad esempio, nega il traffico in entrata dalla rete internet pubblica a tutti i nodi di un cluster negli ambienti di gestione temporanea o di test. Per istruzioni, consulta Applicare in modo selettivo le policy firewall di rete in GKE.
- Concedi in modo condizionale i ruoli IAM in base ai tag. Ad esempio, concedi automaticamente ai contractor l'accesso ad ambienti specifici che normalmente sarebbero disponibili solo ai dipendenti a tempo pieno. Per istruzioni, consulta il resto di questo documento.
- Esegui l'audit e analizza i dati di fatturazione in base ai tag applicati a livello di progetto o organizzazione.
Come funziona
Per l'applicazione delle policy del firewall di rete in particolare, crea un tag e lo designi esplicitamente per l'utilizzo del firewall. Per tutti gli altri scopi, crea un tag senza impostare una designazione del firewall.
Dopo aver creato il tag, lo colleghi alle risorse GKE come coppia chiave-valore. Per le policy firewall di rete, utilizzi l'API GKE, mentre per tutti gli altri scopi utilizzi l'API Tags.
Per ogni chiave, puoi collegare 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 indicato nella tabella seguente:
| Tipo di annotazione | Descrizione | Esempio |
|---|---|---|
| Tag (non firewall) |
Per saperne di più, consulta Introduzione ai tag. |
Concedi in modo condizionale i ruoli IAM per controllare l'accesso alle risorse con tag specifici |
| Tag (firewall) |
Per saperne di più, consulta Applicare in modo selettivo le policy firewall di rete in GKE. |
Nega automaticamente il traffico in entrata dalla rete internet pubblica a tutti gli ambienti di gestione temporanea o di test |
| Tag di rete |
Per saperne di più, consulta Utilizzare i tag di rete per applicare regole firewall ai nodi. |
Nega automaticamente il traffico in entrata dalla rete internet pubblica a tutti gli ambienti di gestione temporanea o di test |
| Etichette cluster GKE |
Per saperne di più, consulta Etichette cluster. |
Differenzia i cluster di proprietà di centri di costo o team specifici nella tua organizzazione. |
| Etichette Kubernetes |
Per saperne di più, consulta Etichette e selettori Kubernetes. |
Richiedi che i workload siano pianificati sui 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à,
installala e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima
versione eseguendo il
gcloud components updatecomando. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
Assicurati di disporre dei seguenti ruoli IAM:
roles/resourcemanager.tagAdminroles/resourcemanager.tagUser
Per informazioni sulle autorizzazioni concesse da questi ruoli, consulta Autorizzazioni richieste.
Assicurati di avere un cluster GKE in esecuzione.
Collega i tag a un cluster
Puoi collegare i tag a un cluster esistente se disponi delle autorizzazioni corrette utilizzando Google Cloud CLI, la Cloud de Confiance console, l' API Tags 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 dei tag, consulta Creazione di un tag e Aggiunta di valori tag.
Per creare un'associazione di tag per collegare un tag a un cluster, esegui il comando seguente:
gcloud 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 del tag da collegare. Ad esempio,tagValues/4567890123. Per informazioni dettagliate sugli identificatori dei tag, consulta Definizioni e identificatori dei tag.CLUSTER_LOCATION: la località di Compute Engine. Per i cluster zonali, 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' Cloud de Confiance by S3NS ID progetto.CLUSTER_NAME: il nome del cluster.
Console
Prima di poter collegare un tag alle risorse GKE utilizzando la Cloud de Confiance console, devi creare il tag e configurarne i valori. Per creare chiavi e valori dei tag, consulta Creazione di un tag e Aggiunta di valori tag.
Vai alla pagina Google Kubernetes Engine nella Cloud de Confiance console.
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Nella sezione Metadati, accanto a Tag, fai clic Modifica 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 la chiave del tag da collegare dall'elenco. Puoi filtrare l'elenco digitando le parole chiave.
Seleziona il valore del tag da collegare dall'elenco. Puoi filtrare l'elenco digitando le parole chiave.
Fai clic su Salva.
Nella finestra di dialogo Conferma, fai clic su Conferma per collegare il 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 la documentazione di riferimento di TagBinding.
Utilizza il metodo tagBindings.create con l'endpoint regionale o zonale 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.
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' Cloud de Confiance by S3NS ID progetto.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, configurarne i valori e collegarlo a una risorsa utilizzando Terraform, consulta l'esempio seguente:
Per saperne di più sull'utilizzo di Terraform, consulta Supporto di Terraform per GKE.
Elenca i tag collegati a un cluster
Puoi elencare i tag collegati a un cluster utilizzando la gcloud CLI, la Cloud de Confiance console o l'API Tags.
gcloud
Per ottenere un elenco di associazioni di tag collegate a un cluster, esegui il comando seguente:
gcloud resource-manager tags bindings list \
--parent=RESOURCE_ID \
--location=CLUSTER_LOCATION
Sostituisci quanto segue:
CLUSTER_LOCATION: per i cluster regionali, specifica la regione di computing. Per i cluster zonali, 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' Cloud de Confiance by S3NS ID progetto.CLUSTER_NAME: il nome del cluster.
Console
Vai alla pagina Google Kubernetes Engine nella Cloud de Confiance console.
Nell'elenco dei cluster, fai clic sul nome del cluster che vuoi visualizzare.
Nella sezione Metadati, accanto a Tag, cerca i valori dei tag collegati.
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 cluster, ad esempio//container.googleapis.com/projects/PROJECT_ID/locations/CLUSTER_LOCATION/clusters/CLUSTER_NAME.Nell'ID risorsa:
PROJECT_ID: l' Cloud de Confiance by S3NS ID progetto.CLUSTER_NAME: il nome del 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 collegata al cluster utilizzando gcloud CLI, la Cloud de Confiance console o l'API Tags. 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 il comando seguente:
gcloud 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 informazioni dettagliate sugli identificatori dei tag, consulta Definizioni e identificatori dei tag.CLUSTER_LOCATION: per i cluster regionali, specifica la regione di computing. Per i cluster zonali, 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' Cloud de Confiance by S3NS ID progetto.CLUSTER_NAME: il nome del cluster.
Console
Vai alla pagina Google Kubernetes Engine nella Cloud de Confiance console.
Nell'elenco dei cluster, fai clic sul nome del cluster da modificare.
Nella sezione Metadati, accanto a Tag, fai clic Modifica tag.
Nel riquadro Tag, accanto al tag da scollegare, fai clic su Elimina elemento.
Fai clic su Salva.
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 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'tagBinding
oggetto 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 chiavi e valori dei tag, assicurati che i tag siano scollegati da tutte le risorse. Poi, 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 della gerarchia del progetto. Quando modifichi o elimini il tag collegato a un cluster, GKE può rimuovere l'accesso utente a quel cluster se è stata applicata una policy di autorizzazione IAM con associazioni di ruoli condizionali. Puoi utilizzare le policy di negazione IAM con i tag per raggiungere obiettivi come la protezione dei cluster critici dall'eliminazione.
L'autorizzazione per elencare e creare cluster GKE viene verificata a livello di progetto, non a livello di singolo cluster. Se utilizzi le associazioni di ruoli IAM condizionali con i tag a livello di cluster per limitare l'accesso a cluster specifici, gli 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 ruoli condizionale per concedere l'accesso all'elenco o alla creazione. Per informazioni su ruoli e autorizzazioni, consulta la documentazione di riferimento dei ruoli IAM.
Passaggi successivi
- Scopri come impostare una policy dell'organizzazione con i tag.
- Scopri di più su come gestire i tag e collegarli alle risorse.
- Scopri gli altri servizi che supportano i tag.
- Scopri come utilizzare i tag con IAM.