Questa pagina illustra le differenze tra Identity and Access Management (IAM) e il controllo degli accessi basato sui ruoli (RBAC) di Kubernetes in Google Kubernetes Engine per aiutarti a gestire l'accesso alle risorse all'interno del progetto.
Questa pagina è rivolta agli specialisti della sicurezza che controllano l'accesso alle autorizzazioni e vogliono comprendere le differenze e le sovrapposizioni tra IAM e RBAC. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei Google Cloud contenuti, consulta Ruoli e attività utente comuni di GKE Enterprise.
Quando crei un Google Cloud progetto, sei l'unico utente del progetto. Per impostazione predefinita, nessun altro utente ha accesso al progetto o alle sue risorse, incluse le risorse di Google Kubernetes Engine (GKE). GKE supporta più opzioni per gestire l'accesso alle risorse all'interno del progetto e dei relativi cluster utilizzando il controllo degli accessi basato sui ruoli (RBAC).
Prima di leggere questa pagina, assicurati di conoscere quanto segue:
Questi meccanismi presentano alcune sovrapposizioni funzionali, ma sono destinati a diversi tipi di risorse. Ognuna è descritta in una sezione dedicata di questa pagina, ma in breve:
Kubernetes RBAC è integrato in Kubernetes e concede autorizzazioni granulari agli oggetti all'interno dei cluster Kubernetes. Le autorizzazioni esistono come oggetti ClusterRole o Role all'interno del cluster. Gli oggetti RoleBinding assegnano ruoli a utenti Kubernetes, utenti, account di servizio IAM o gruppi Google.Google Cloud
Se utilizzi principalmente GKE e hai bisogno di autorizzazioni granulari per ogni oggetto e operazione all'interno del cluster, Kubernetes RBAC è la scelta migliore.
IAM gestisce Google Cloud le risorse, inclusi i cluster e i tipi di oggetti all'interno dei cluster. Le autorizzazioni vengono assegnate alle entità IAM.
Non esiste un meccanismo per concedere autorizzazioni per oggetti Kubernetes specifici all'interno di IAM. Ad esempio, puoi concedere a un utente l'autorizzazione per creare CustomResourceDefinitions (CRD), ma non puoi concedergli l'autorizzazione per creare un solo CustomResourceDefinition specifico o limitare la creazione a un Namespace o a un cluster specifico nel progetto. Un ruolo IAM concede i privilegi a tutti i cluster del progetto o a tutti i cluster di tutti i progetti secondari se il ruolo viene applicato a livello di cartella.
Se utilizzi più Google Cloud componenti e non devi gestire autorizzazioni granulari specifiche di Kubernetes, IAM è una buona scelta.
Kubernetes RBAC
Kubernetes ha il supporto integrato per RBAC che consente di creare ruoli granulari esistenti all'interno del cluster Kubernetes. Un ruolo può essere limitato a un oggetto Kubernetes specifico o a un tipo di oggetto Kubernetes e definisce le azioni (chiamate verbi) concesse dal ruolo in relazione a quell'oggetto. Un RoleBinding è anche un oggetto Kubernetes e concede i ruoli agli utenti. Un utente GKE può essere:
- Google Cloud user
- Account di servizio IAM
- Account servizio Kubernetes
- Utente di Google Workspace
- Gruppo Google di Google Workspace
- Utenti autenticati utilizzando certificati client X509
Per saperne di più, consulta Controllo degli accessi basato sui ruoli.
IAM
IAM ti consente di concedere ruoli alle entità. Un ruolo è una raccolta di autorizzazioni e, se concesso a un'entità, controlla l'accesso a una o più Google Cloud risorse. Puoi utilizzare i seguenti tipi di ruoli:
- I ruoli di base forniscono autorizzazioni approssimative limitate a Proprietario, Editor e Visualizzatore.
- I ruoli predefiniti, come i ruoli predefiniti per GKE, offrono un accesso più granulare rispetto ai ruoli di base e coprono molti scenari di utilizzo comuni.
- I ruoli personalizzati ti consentono di creare combinazioni uniche di autorizzazioni.
Un entità può essere una delle seguenti:
- Account utente
- Account di servizio
- Gruppo Google di Google Workspace
- Dominio Google Workspace
- Dominio Cloud Identity
Tipi di criteri IAM
IAM supporta i seguenti tipi di criteri:
- Criteri di autorizzazione: concedi i ruoli alle entità. Per maggiori dettagli, consulta Criteri di autorizzazione.
- Criteri di negazione: impediscono alle entità di utilizzare autorizzazioni IAM specifiche, indipendentemente dai ruoli a loro assegnati. Per i dettagli, consulta Policy di rifiuto.
Utilizza i criteri di rifiuto per impedire a entità specifiche di eseguire azioni specifiche nel progetto, nella cartella o nell'organizzazione anche se un criterio di autorizzazione IAM assegna a queste entità un ruolo contenente le autorizzazioni pertinenti.
Suggerimenti IAM
Valuta la possibilità di utilizzare i seguenti ruoli IAM predefiniti per semplificare gli scenari comuni:
- Visualizzatore dei cluster Kubernetes Engine (
roles/container.clusterViewer
): DevOps, ingegneri e sviluppatori di applicazioni che devono solo connettersi al cluster. - Kubernetes Engine Cluster Admin (
roles/container.clusterAdmin
): amministratori della piattaforma e operatori di cluster che devono gestire uno o più cluster in un progetto Google Cloud .
Per un elenco dei ruoli IAM predefiniti disponibili, consulta Ruoli GKE predefiniti.
GKE utilizza gli account di servizio IAM collegati ai tuoi nodi per eseguire attività di sistema come il logging e il monitoraggio. Come minimo, questi account di servizio dei nodi devono avere il ruolo Kubernetes Engine Default Node Service Account (roles/container.defaultNodeServiceAccount
) nel progetto. Per impostazione predefinita, GKE utilizza l'account di servizio predefinito di Compute Engine, creato automaticamente nel progetto, come account di servizio del nodo.
Interazione di IAM con Kubernetes RBAC
IAM e Kubernetes RBAC agiscono insieme per aiutarti a gestire l'accesso al tuo cluster. RBAC controlla l'accesso a livello di cluster e spazio dei nomi, mentre IAM funziona a livello di progetto. Un'entità deve disporre di autorizzazioni sufficienti a entrambi i livelli per lavorare con le risorse del cluster.
Passaggi successivi
- Leggi la panoramica della sicurezza di GKE.
- Scopri come utilizzare Kubernetes RBAC.
- Scopri come creare criteri IAM per GKE.
- Scopri come utilizzare le condizioni IAM per i bilanciatori del carico.