In questa pagina vengono descritti gli account di servizio in Google Kubernetes Engine (GKE), che che forniscono identità per le applicazioni.
Gli account di servizio sono identità destinate all'utilizzo da parte delle applicazioni anziché alle persone. In GKE, interagisci con Account di servizio Kubernetes e account di servizio Identity and Access Management.
Account di servizio Kubernetes e account di servizio IAM
La seguente tabella descrive le principali differenze tra i servizi Kubernetes e account di servizio IAM:
Tipi di account di servizio in GKE | |
---|---|
Account di servizio Kubernetes |
|
Account di servizio IAM |
|
Account di servizio Kubernetes
Gli account di servizio Kubernetes sono gestiti a livello di cluster ed esistono
Server API Kubernetes come oggetti ServiceAccount
. Documentazione di Kubernetes
e nella documentazione di GKE viene spesso utilizzato il termine ServiceAccount per
distinguere queste risorse Kubernetes dagli account di servizio in altri
in ambienti come IAM.
Crei un ServiceAccount Kubernetes in uno spazio dei nomi e poi lo assegni
ServiceAccount a un pod utilizzando il campo serviceAccountName
nel pod
del file manifest. Il processo kubelet sul nodo riceve un token di connessione di breve durata
l'account di servizio assegnato e monta il token come volume previsto nella
all'interno del pod.
Il token di connessione di breve durata è un token web JSON (JWT) firmato dall'API.
che è un provider OpenID Connect (OIDC). Convalidare la connessione
, ottieni la chiave di convalida pubblica per il cluster chiamando
Metodo projects.locations.clusters.getJwks
nell'API GKE.
- Per apprendere le nozioni di base di Kubernetes ServiceAccounts, in Kubernetes consulta la documentazione Account di servizio.
- Per scoprire come creare nuovi account di servizio, concedi le autorizzazioni utilizzando controllo dell'accesso basato su ruoli (RBAC) e assegnare ServiceAccount ai pod, consulta Configurare gli account di servizio per i pod.
- Per le best practice per la gestione degli account di servizio Kubernetes, vedi Best practice per RBAC.
- Per leggere la configurazione OIDC del server API Kubernetes per un cluster,
chiama il metodo
projects.locations.clusters.well-known.getOpenid-configuration
nell'API GKE.
Rotazione delle credenziali dell'account di servizio Kubernetes
Se le credenziali di un account di servizio Kubernetes vengono compromesse, usa una delle seguenti opzioni per revocare le credenziali:
- Ricrea i pod: il token di connessione è associato a ciascun token univoco L'UID del pod, quindi la ricreazione dei pod rende le credenziali precedenti non valide.
- Ricrea l'account di servizio Kubernetes: il token di connessione è associato a l'UID dell'oggetto ServiceAccount nell'API Kubernetes. Elimina il ServiceAccount e crearne uno nuovo con lo stesso nome. Indietro non sono più validi perché l'UID del nuovo ServiceAccount è diverso.
- Esegui una rotazione delle credenziali: questa operazione revoca tutte le credenziali le credenziali dell'account di servizio nel tuo cluster. La rotazione modifica anche al certificato CA e all'indirizzo IP del cluster. Per maggiori dettagli, vedi rotazione delle credenziali.
Account di servizio IAM
Gli account di servizio IAM vengono gestiti a livello di progetto con l'API IAM. Puoi usare questi servizi per eseguire azioni come le chiamate programmatiche a Google Cloud API e gestione delle autorizzazioni per le applicazioni in esecuzione su Google Cloud prodotti di big data e machine learning.
Per saperne di più, consulta Panoramica degli account di servizio IAM.
Agenti di servizio GKE
Un agente di servizio IAM è un Account di servizio IAM gestito da Google Cloud.
GKE utilizza l'agente di servizio Kubernetes Engine per gestire
ciclo di vita delle risorse del cluster per tuo conto, come nodi, dischi
bilanciatori del carico
e bilanciatori del carico. Questo agente di servizio possiede il dominio
container-engine-robot.iam.gserviceaccount.com
ed è stato concesso
il
Agente di servizio Kubernetes Engine
(roles/container.serviceAgent
) nel progetto quando abiliti il
l'API GKE.
L'identificatore di questo agente di servizio è il seguente:
service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com
PROJECT_NUMBER
è il tuo numero
numero di progetto.
Se disabiliti l'agente di servizio GKE, puoi recuperarlo seguendo le istruzioni in Attivazione di un account di servizio
Se rimuovi le autorizzazioni dell'agente di servizio nel tuo progetto, puoi ripristinare seguendo le istruzioni in Errore 400/403: autorizzazioni di modifica mancanti nell'account.
Se elimini l'agente di servizio GKE, puoi annullarne l'eliminazione seguendo le istruzioni in Annullare l'eliminazione di un account di servizio.
Account di servizio del nodo GKE predefinito
Per impostazione predefinita, i nodi GKE utilizzano
Account di servizio predefinito Compute Engine.
Per impostazione predefinita, a questo account di servizio viene concesso il ruolo Editor (roles/editor
) e
ha più autorizzazioni di quelle richieste per i nodi GKE.
Potresti usare un ruolo che usa le autorizzazioni minime
necessarie per eseguire nodi nel cluster.
Non disabilitare l'account di servizio Compute Engine predefinito a meno che non migrazione a account di servizio gestiti dall'utente.
Autorizzazioni minime
GKE richiede un set minimo di autorizzazioni IAM per gestire il cluster. Per istruzioni su come creare un modello di attribuzione con privilegi minimi Account di servizio IAM: consulta Utilizza gli account di servizio Google con privilegi minimi.
Quando utilizzare un account di servizio specifico
Il tipo di account di servizio che utilizzi dipende dal tipo di identità che vuoi fornire per le tue applicazioni, come segue:
- Fornisci un'identità per i pod da utilizzare nel cluster: utilizza un'istanza
ServiceAccount (Account di servizio Kubernetes). Ogni spazio dei nomi Kubernetes ha uno
default
ServiceAccount, ma ti consigliamo di creare nuovi privilegi minimi ServiceAccount per ogni carico di lavoro in ogni spazio dei nomi. - Fornisci un'identità che i tuoi pod possono utilizzare all'esterno del cluster: usa Federazione delle identità dei carichi di lavoro per GKE. La federazione delle identità per i carichi di lavoro per GKE consente di specificare risorse Kubernetes come ServiceAccounts come entità nei criteri IAM. Ad esempio: utilizza la federazione delle identità per i carichi di lavoro per GKE quando chiami le API Google Cloud come Secret Manager o Spanner dai tuoi pod.
- Fornisci un'identità predefinita per i nodi: utilizza un'identità Servizio IAM con privilegi minimi quando crei i tuoi cluster o nodi GKE. Se non utilizzano un account di servizio IAM personalizzato, GKE utilizza l'account di servizio predefinito di Compute Engine, autorizzazioni estese all'interno del tuo progetto.
Passaggi successivi
- Scopri come utilizzare account di servizio Google con privilegi minimi.
- Scopri come concedere un ruolo a un'entità.