Controllo dell'accesso


Quando crei un progetto Google Cloud, sei l'unico utente del progetto. Per impostazione predefinita, nessun altro utente ha accesso al tuo progetto o alle sue risorse, incluse le risorse di Google Kubernetes Engine (GKE). GKE supporta diverse opzioni per la gestione dell'accesso alle risorse all'interno del progetto e dei relativi cluster utilizzando controllo dell'accesso basato sui ruoli (RBAC).

Questi meccanismi hanno alcune sovrapposizioni funzionali, ma sono destinati a diversi tipi di risorse. Ciascuna è descritta nella sezione di seguito, ma brevemente:

  • 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 concedono ruoli a utenti Kubernetes, utenti Google Cloud, account di servizio IAM o Google Gruppi.

    Se utilizzi principalmente GKE e hai bisogno di autorizzazioni granulari per ogni oggetto e operazione all'interno del tuo cluster, Kubernetes RBAC è la scelta migliore.

  • IAM gestisce le risorse di Google Cloud, 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 concedere all'utente l'autorizzazione per creare solo una specifica CustomResourceDefinition o limitare la creazione a uno spazio dei nomi specifico o a un cluster specifico nel progetto. Un ruolo IAM concede privilegi a tutti i cluster del progetto o a tutti i cluster di tutti i progetti figlio, se il ruolo viene applicato a livello di cartella.

    Se utilizzi più componenti Google Cloud e non hai bisogno di gestire autorizzazioni granulari specifiche di Kubernetes, IAM è una buona scelta.

Kubernetes RBAC

Kubernetes offre il supporto integrato per RBAC, che consente di creare ruoli granulari esistenti all'interno del cluster Kubernetes. Un Ruolo può limitare l'ambito a un oggetto Kubernetes specifico o a un tipo di oggetto Kubernetes e definisce quali azioni (chiamate verbi) vengono concesse in relazione all'oggetto. Un oggetto RoleBinding è anche un oggetto Kubernetes e concede ruoli agli utenti. Un utente GKE può essere:

  • Utente Google Cloud
  • Account di servizio IAM
  • Account di servizio Kubernetes
  • Utente di Google Workspace
  • Gruppo Google di Google Workspace
  • Utenti autenticati mediante certificati client X509

Per scoprire di più, consulta Controllo degli accessi basato sui ruoli.

IAM

IAM consente di concedere i ruoli alle entità. Un ruolo è una raccolta di autorizzazioni e, se concesso a un'entità, controlla l'accesso a una o più risorse Google Cloud. Puoi utilizzare i seguenti tipi di ruoli:

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:

  • Consenti criteri: concedi ruoli alle entità. Per maggiori dettagli, vedi Criteri relativi all'autorizzazione.
  • Criteri di negazione: impedisci alle entità di utilizzare autorizzazioni IAM specifiche, indipendentemente dai ruoli loro concessi. Per i dettagli, vedi Criteri di negazione.

Utilizza i criteri di negazione per impedire a entità specifiche di eseguire azioni specifiche nel progetto, nella cartella o nell'organizzazione anche se un criterio di autorizzazione IAM concede 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:

Per un elenco dei ruoli IAM predefiniti disponibili, consulta Ruoli GKE predefiniti.

Inoltre, valuta la possibilità di creare un account di servizio IAM personalizzato per i nodi da utilizzare al posto dell'account di servizio predefinito di Compute Engine. Concedi all'account di servizio personalizzato le autorizzazioni minime necessarie per il funzionamento di GKE. Per le istruzioni, consulta Utilizzare account di servizio IAM con privilegi minimi.

Interazione IAM con RBAC di Kubernetes

IAM e Kubernetes RBAC lavorano insieme per aiutarti a gestire l'accesso al 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 nel cluster.

Passaggi successivi