Quando crei un progetto Google Cloud, sei l'unico utente del progetto. Di per impostazione predefinita, nessun altro utente ha accesso al tuo progetto o alle sue risorse, inclusi alle 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).
- Identity and Access Management (IAM)
- Controllo controllo dell'accesso basato su ruoli (RBAC) di Kubernetes
Questi meccanismi presentano alcune sovrapposizioni funzionali, ma sono rivolti a diverse tipi di risorse. Ognuna è spiegata in una sezione di seguito, 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. Concessione degli oggetti RoleBinding Ruoli per utenti Kubernetes, utenti Google Cloud, IAM account di servizio Google Gruppi
Se usi 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 Google Cloud, tra cui cluster e 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 del progetto. Un ruolo IAM concede privilegi a tutti i cluster in progetto o in 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 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'associazione dei ruoli è anch'esso un oggetto Kubernetes e assegna ruoli agli utenti. R L'utente GKE può essere:
- Utente Google Cloud
- Service account IAM
- Account di 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ù risorse Google Cloud. Tu possono utilizzare i seguenti tipi di ruoli:
- I ruoli di base forniscono autorizzazioni generiche e limitati a Proprietario, Editor e Visualizzatore.
- Ruoli predefiniti, come il ruoli predefiniti per GKE. forniscono un accesso più granulare rispetto ai ruoli di base e rispondono a molti utilizzi comuni d'uso diversi.
- 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:
- Consenti criteri: concedi ruoli alle entità. Per maggiori dettagli, vedi Criterio di autorizzazione.
- Criteri di negazione: impedisci alle entità di utilizzare IAM specifici autorizzazioni indipendentemente dai ruoli concessi a quelle entità. Per vedi Criteri di negazione.
Utilizza i criteri di negazione per impedire a entità specifiche di eseguire specifiche di azioni nel progetto, nella cartella o nell'organizzazione, anche se è un IAM il criterio concede a queste entità un ruolo contenente i autorizzazioni aggiuntive.
Suggerimenti IAM
Prendi in considerazione l'utilizzo dei seguenti ruoli IAM predefiniti per facilitare di scenari comuni:
- Visualizzatore dei cluster Kubernetes Engine (
roles/container.clusterViewer
): DevOps, ingegneri e sviluppatori di applicazioni che devono solo connettersi al cluster. - Amministratore cluster Kubernetes Engine (
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.
Inoltre, ti consigliamo di creare un account di servizio IAM personalizzato per i tuoi nodi da utilizzare al posto del service account predefinito di Compute Engine. Concedi all'account di servizio personalizzato le autorizzazioni minime necessarie per il funzionamento di GKE. Per le istruzioni, consulta Utilizzare gli account di servizio IAM con privilegi minimi.
Interazione di IAM con Kubernetes RBAC
IAM e Kubernetes RBAC lavorano insieme per aiutare a gestire l'accesso nel tuo cluster. RBAC controlla l'accesso a livello di cluster e spazio dei nomi, mentre IAM funziona a livello di progetto. Un'entità deve avere un numero sufficiente di di autorizzazioni a entrambi i livelli per lavorare con le risorse nel tuo 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.