Questa pagina mostra come configurare Google Gruppi per utilizzare il controllo dell'accesso basato sui ruoli (RBAC) di Kubernetes nei cluster Google Kubernetes Engine (GKE).
Google Gruppi per RBAC consente di assegnare autorizzazioni RBAC ai membri di Google Gruppi in Google Workspace. Gli amministratori di Google Workspace gestiscono gli utenti e i gruppi completamente al di fuori di GKE o della console Google Cloud . Pertanto, gli amministratori del cluster non avranno bisogno di informazioni dettagliate sugli utenti.
L'utilizzo di Google Gruppi per RBAC consente inoltre l'integrazione con le pratiche di gestione degli account utente esistenti, ad esempio la revoca dell'accesso quando un utente lascia l'organizzazione.
Questa pagina è rivolta a specialisti della sicurezza e operatori che vogliono utilizzare Google Gruppi con Kubernetes RBAC nei cluster GKE. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti di Google Cloud , consulta Ruoli utente e attività comuni di GKE Enterprise.
Prima di leggere questa pagina, assicurati di conoscere le limitazioni di Google Gruppi quando crei gruppi e aggiungi utenti come membri.
Per utilizzare Google Gruppi per RBAC, completa le seguenti attività:
- Soddisfare i requisiti.
- Configura Google Gruppi.
- Abilita Google Gruppi per RBAC su un cluster.
- Definisci e assegna le autorizzazioni RBAC ai gruppi Google.
Requisiti
Per utilizzare Google Gruppi per il controllo dell'accesso basato sui ruoli, devi avere accesso a Google Workspace o a qualsiasi versione di Cloud Identity.
Limitazioni
- GKE supporta gli utenti con l'iscrizione a un massimo di 2000 gruppi nel gruppo di sicurezza, incluse le iscrizioni nidificate, con Google Gruppi per RBAC.
Configurare Google Gruppi
I seguenti passaggi mostrano come configurare un gruppo in Google Gruppi che funziona con il controllo dell'accesso basato sui ruoli:
Crea un gruppo nel tuo dominio denominato
gke-security-groups
. Il nome digke-security-groups
è obbligatorio. Assicurati che per Membri del gruppo sia selezionata l'autorizzazione Visualizza membri. Per maggiori dettagli, vedi Impostare le autorizzazioni per la gestione di membri e contenuti.Crea gruppi, se non esistono già, che rappresentino insiemi di utenti che devono disporre di autorizzazioni diverse sui tuoi cluster, ad esempio sviluppatori e amministratori dei cluster. Ogni gruppo deve disporre dell'autorizzazione Visualizza membri per Membri del gruppo.
Aggiungi i tuoi gruppi come gruppi nidificati al gruppo
gke-security-groups
. Non aggiungere singoli utenti come membri digke-security-groups
.
Per ulteriori informazioni sulla gestione di Google Gruppi, consulta il Centro assistenza Google Gruppi.
Per verificare se un utente specifico può eseguire un'azione su una risorsa del cluster,
GKE controlla se l'utente è membro di un gruppo con accesso e se
questo gruppo è nidificato nel
gruppo gke-security-groups
.
Le informazioni sull'iscrizione a Google Gruppi vengono memorizzate nella cache per un breve periodo di tempo. Potrebbero essere necessari alcuni minuti prima che le modifiche alle iscrizioni ai gruppi vengano propagate a tutti i tuoi cluster. Oltre alla latenza dovuta alle modifiche ai gruppi, la memorizzazione nella cache standard delle credenziali utente sul cluster è di circa un'ora.
Abilita Google Gruppi per RBAC sui cluster
Puoi attivare Google Gruppi per RBAC sui cluster GKE Standard e Autopilot nuovi ed esistenti utilizzando Google Cloud CLI o la console Google Cloud .
Crea un nuovo cluster
gcloud
Standard
Per creare un nuovo cluster standard e abilitare Google Gruppi per RBAC, esegui questo comando:
gcloud container clusters create CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--security-group="gke-security-groups@DOMAIN"
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del nuovo cluster.CONTROL_PLANE_LOCATION
: la posizione di Compute Engine del control plane del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster zonali.DOMAIN
: il nome di dominio del gruppogke-security-groups
che hai creato.
Autopilot
Per creare un nuovo cluster Autopilot e abilitare Google Gruppi per RBAC, esegui il seguente comando:
gcloud container clusters create-auto CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--security-group="gke-security-groups@DOMAIN"
Console
Per creare un nuovo cluster e abilitare la funzionalità Google Gruppi per RBAC, segui questi passaggi:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud .
Fai clic su add_box Crea.
Fai clic su Configura per la modalità cluster che vuoi utilizzare.
Per i cluster Autopilot, espandi la sezione Opzioni avanzate per individuare le opzioni di Sicurezza.
Per i cluster standard, nella sezione Cluster, fai clic su Sicurezza.
Seleziona la casella di controllo Abilita Google Gruppi per RBAC.
Compila Gruppo di sicurezza con
gke-security-groups@DOMAIN
.Fai clic su Crea.
Aggiornare un cluster esistente
gcloud
Per aggiornare un cluster esistente in modo da abilitare Google Gruppi per RBAC, esegui il seguente comando:
gcloud container clusters update CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--security-group="gke-security-groups@DOMAIN"
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster.CONTROL_PLANE_LOCATION
: la posizione di Compute Engine del control plane del tuo cluster. Fornisci una regione per i cluster regionali o una zona per i cluster zonali.DOMAIN
: il nome di dominio del gruppogke-security-groups
che hai creato.
Console
Per aggiornare un cluster esistente in modo da abilitare Google Gruppi per RBAC, esegui questi passaggi:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud .
Fai clic sul nome del cluster da aggiornare.
Nella scheda Dettagli, individua la sezione Sicurezza.
Nel campo Google Gruppi per RBAC, fai clic su edit Modifica Google Gruppi per RBAC.
Seleziona la casella di controllo Abilita Google Gruppi per RBAC.
Compila Gruppo di sicurezza con
gke-security-groups@DOMAIN
.Fai clic su Salva modifiche.
Definisci e assegna le autorizzazioni
Dopo aver creato e configurato Google Gruppi per RBAC, utilizza ruoli e associazioni di ruoli
per definire le autorizzazioni RBAC e assegnarle ai gruppi Google
che sono membri del gruppo gke-security-groups
. Per le istruzioni, consulta
Definire e assegnare le autorizzazioni.
Verifica la configurazione di Google Gruppi per RBAC
Le seguenti sezioni mostrano come verificare che la configurazione di Google Gruppi per RBAC sia riuscita utilizzando gcloud CLI o la consoleGoogle Cloud .
Verifica utilizzando gcloud CLI
Esegui un comando kubectl can-i
per verificare se puoi eseguire un'azione specifica
su una risorsa Kubernetes specifica. Puoi utilizzare questo metodo per automatizzare
il test dell'accesso RBAC nell'ambito del flusso di lavoro CI/CDCD.Ad esempio, il seguente
comando verifica l'accesso get
alle risorse pods
nello spazio dei nomi dev
:
kubectl auth can-i get pods \
--namespace=dev \
--as=USER \
--as-group=GROUP
Sostituisci quanto segue:
USER
: il nome dell'utente da rappresentare, ad esempiogke-user@example.com
. L'utente specificato deve essere membro del gruppo per il quale stai testando l'accesso.GROUP
: il nome del gruppo da rappresentare, ad esempiogke-dev-users@example.com
.
Se USER
ha accesso, l'output è yes
. In caso
contrario, l'output è no
.
Verifica utilizzando la console Google Cloud
Puoi anche verificare l'accesso RBAC eseguendo un comando kubectl sul tuo cluster e controllando i log.
Prima di iniziare
Prima di iniziare, assicurati di:
- Non hai interagito con il cluster che vuoi testare (ad esempio, non hai eseguito comandi
kubectl
) per almeno un'ora. L'autenticazione viene memorizzata nella cache per un'ora. Se lasci scadere le credenziali memorizzate nella cache, puoi assicurarti che la richiesta venga registrata quando si verifica. - Sei membro di almeno uno dei gruppi che sono membri del gruppo
gke-security-groups
, il che garantisce la registrazione di alcune informazioni di Google Gruppi.
Abilita i log ed esegui un comando di test
Abilita il logging degli accessi ai dati per il tuo progetto Google Cloud . Per attivare il logging:
Vai alla pagina Audit log nella console Google Cloud .
Nella tabella, seleziona API Kubernetes Engine.
Nel menu Tipo di log, seleziona:
- Lettura amministratore
- Lettura dati
- Scrittura dati
Fai clic su Salva.
Per saperne di più sull'abilitazione degli audit log, consulta Configurazione dei log degli accessi ai dati con la console Google Cloud.
Esegui un comando utilizzando
kubectl
nel cluster, ad esempio:kubectl create ns helloworld
Inserisci una query personalizzata nella pagina Esplora log. Per eseguire la query:
Vai alla pagina Esplora log nella console Google Cloud .
Fai clic sulla freccia nella casella Anteprima della query nella parte superiore della pagina.
Nella casella a discesa che viene visualizzata, specifica la seguente query:
resource.type="k8s_cluster" resource.labels.location="CLUSTER_LOCATION" resource.labels.cluster_name="CLUSTER_NAME" protoPayload.resourceName="authorization.k8s.io/v1beta1/subjectaccessreviews" protoPayload.response.spec.user="EMAIL_ADDRESS"
Sostituisci quanto segue:
CLUSTER_LOCATION
: la regione o la zona del tuo cluster.CLUSTER_NAME
: il nome del tuo cluster.EMAIL_ADDRESS
: l'indirizzo email registrato del tuo Account Google.
Seleziona Esegui query. Dovrebbe essere visualizzato almeno un risultato. Se non viene visualizzato alcun risultato, prova ad aumentare l'intervallo di tempo.
Seleziona il cluster da esaminare.
Fai clic su Espandi campi nidificati.
Il campo
protoPayload.request.spec.group
contiene i gruppi in cui:- I gruppi sono membri di
gke-security-group
. - Sei un membro del gruppo.
Questo elenco deve corrispondere all'insieme dei gruppi di cui sei membro. Se non sono presenti gruppi, potrebbe esserci un problema di configurazione dei gruppi.
- I gruppi sono membri di
Facoltativamente, ripristina le impostazioni precedenti del logging degli accessi ai dati per evitare ulteriori addebiti.
Effetti dell'eliminazione dei gruppi
Dopo aver configurato Google Gruppi per RBAC, le concessioni di accesso RBAC dipendono dall'esistenza dei gruppi Google che hai creato. Tieni presente i seguenti effetti dell'eliminazione di uno dei gruppi:
gke-security-group
: GKE utilizza l'ID univoco del gruppogke-security-group
per trovare i soggetti a cui fai riferimento nelle tue norme RBAC. Se elimini questo gruppo, tutte le concessioni di accesso per Google Gruppi per RBAC non vanno a buon fine.Se ricrei il gruppo
gke-security-group
, devi riattivare Google Gruppi per RBAC sul cluster seguendo i passaggi descritti nella sezione Aggiorna un cluster esistente. La riattivazione di Google Gruppi per RBAC aggiorna il cluster in modo che utilizzi l'ID gruppo del nuovo gruppogke-security-group
.Gruppi di membri: se elimini uno dei gruppi di membri che hai configurato per Google Gruppi per RBAC, tutte le associazioni RBAC per quel gruppo non vanno a buon fine. Di conseguenza, tutti i membri del gruppo perdono l'accesso corrispondente.
Per correggere l'eliminazione involontaria di un gruppo di membri, crea un nuovo gruppo con esattamente lo stesso nome del gruppo eliminato. Rendi il nuovo gruppo membro del gruppo
gke-security-group
seguendo i passaggi descritti nella sezione Configurare Google Gruppi.