Configurare Google Gruppi per RBAC

Questa pagina mostra come configurare Google Gruppi per utilizzare 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 dei gruppi Google in Google Workspace. Gli amministratori di Google Workspace gestiscono utenti e gruppi completamente al di fuori di GKE o della Google Cloud console. Pertanto, gli amministratori dei cluster non avranno bisogno di informazioni dettagliate sugli utenti.

L'utilizzo di Google Gruppi per RBAC consente anche di integrarsi 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 RBAC di Kubernetes nei cluster GKE. Per saperne di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei Google Cloud contenuti, consulta Ruoli e attività comuni degli utenti GKE.

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à:

  1. Soddisfa i requisiti.
  2. Configura i gruppi Google.
  3. Abilita Google Gruppi per RBAC su un cluster.
  4. Definisci e assegna le autorizzazioni RBAC ai gruppi Google.

Requisiti

Per utilizzare Google Gruppi per RBAC, devi avere accesso a Google Workspace o a qualsiasi edizione di Cloud Identity.

Limitazioni

  • GKE supporta gli utenti con un massimo di 2000 gruppi nel gruppo di sicurezza, incluse le iscrizioni nidificate, con Google Gruppi per RBAC.

Configura i gruppi Google

I seguenti passaggi mostrano come configurare un gruppo in Google Gruppi che funziona con RBAC:

  1. Crea un gruppo nel tuo dominio denominato gke-security-groups. Il nome gke-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 dei membri e dei contenuti.

  2. Crea gruppi, se non esistono già, che rappresentano insiemi di utenti che devono avere autorizzazioni diverse sui cluster, ad esempio sviluppatori e amministratori dei cluster. Ogni gruppo deve avere l'autorizzazione Visualizza membri per Membri del gruppo.

  3. Aggiungi i gruppi come gruppi nidificati al gruppo gke-security-groups. Non aggiungere singoli utenti come membri di gke-security-groups.

Per saperne di più 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 il gruppo è nidificato nel gke-security-groups gruppo.

Le informazioni sull'iscrizione a Google Gruppi vengono memorizzate nella cache per un breve periodo di tempo. La propagazione delle modifiche alle iscrizioni ai gruppi a tutti i cluster potrebbe richiedere alcuni minuti. Oltre alla latenza dovuta alle modifiche dei gruppi, la memorizzazione nella cache standard delle credenziali utente sul cluster è di circa un'ora.

Abilita Google Gruppi per RBAC sui cluster

Puoi abilitare Google Gruppi per RBAC sui cluster GKE Standard e Autopilot nuovi ed esistenti utilizzando Google Cloud CLI o la Google Cloud console.

Crea un nuovo cluster

gcloud

Standard

Per creare un nuovo cluster Standard e abilitare Google Gruppi per RBAC, esegui il seguente 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 località Compute Engine del piano di controllo del cluster. Fornisci una regione per i cluster regionali o una zona per i cluster a livello di zona.
  • DOMAIN: il nome di dominio del gruppo gke-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:

  1. Vai alla pagina Google Kubernetes Engine nella Google Cloud console.

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Fai clic su Configura per la modalità cluster che vuoi utilizzare.

  4. Per i cluster Autopilot, espandi la sezione Opzioni avanzate per individuare le opzioni di Sicurezza.

  5. Per i cluster Standard, nella sezione Cluster , fai clic su Sicurezza.

  6. Seleziona la casella di controllo Abilita Google Gruppi per RBAC.

  7. Compila Gruppo di sicurezza con gke-security-groups@DOMAIN.

  8. Fai clic su Crea.

Aggiorna 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 località Compute Engine del piano di controllo del cluster. Fornisci una regione per i cluster regionali o una zona per i cluster a livello di zona.
  • DOMAIN: il nome di dominio del gruppo gke-security-groups che hai creato.

Console

Per aggiornare un cluster esistente in modo da abilitare Google Gruppi per RBAC:

  1. Vai alla pagina Google Kubernetes Engine nella Google Cloud console.

    Vai a Google Kubernetes Engine

  2. Fai clic sul nome del cluster che vuoi aggiornare.

  3. Nella scheda Dettagli, individua la sezione Sicurezza.

  4. Nel campo Google Gruppi per RBAC, fai clic su Modifica Google Gruppi per RBAC.

  5. Seleziona la casella di controllo Abilita Google Gruppi per RBAC.

  6. Compila Gruppo di sicurezza con gke-security-groups@DOMAIN.

  7. 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 istruzioni, consulta Definire e assegnare le autorizzazioni.

Verifica la configurazione di Google Gruppi per RBAC

Le sezioni seguenti mostrano come verificare che la configurazione di Google Gruppi per RBAC sia stata eseguita correttamente utilizzando gcloud CLI o la Google Cloud console.

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 di cui eseguire lo spoofing, ad esempio gke-user@example.com. L'utente specificato deve essere membro del gruppo per il quale stai testando l'accesso.
  • GROUP: il nome del gruppo di cui eseguire lo spoofing, ad esempio gke-dev-users@example.com.

Se USER ha accesso, l'output è yes. In caso contrario, l'output è no.

Verifica utilizzando la Google Cloud console

Puoi anche verificare l'accesso RBAC eseguendo un comando kubectl sul 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 alcun comando 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

  1. Abilita la registrazione degli accessi ai dati per il tuo Google Cloud progetto. Per abilitare la registrazione:

    1. Vai alla pagina Audit log nella Google Cloud console.

      Vai agli audit log

    2. Nella tabella, seleziona API Kubernetes Engine.

    3. Nel menu Tipo di log, seleziona:

      • Lettura amministratore
      • Lettura dati
      • Scrittura dati
    4. 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.

  2. Esegui un comando utilizzando kubectl nel cluster, ad esempio:

    kubectl create ns helloworld
    
  3. Inserisci una query personalizzata nella pagina Esplora log. Per eseguire la query:

    1. Vai alla pagina Esplora log nella Google Cloud console.

      Vai a Esplora log

    2. Fai clic sulla freccia nella casella Anteprima query nella parte superiore della pagina.

    3. Nella casella a discesa che viene visualizzata, specifica la query seguente:

      resource.type="k8s_cluster"
      resource.labels.location="CLUSTER_LOCATION"
      resource.labels.cluster_name="CLUSTER_NAME"
      protoPayload.resourceName="authorization.k8s.io/v1/selfsubjectaccessreviews"
      protoPayload.authenticationInfo.principalEmail="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.
    4. Seleziona Esegui query. Dovrebbe essere visualizzato almeno un risultato. Se non viene visualizzato alcun risultato, prova ad aumentare l'intervallo di tempo.

    5. Seleziona il cluster da esaminare.

    6. Fai clic su Espandi campi nidificati.

    7. Il campo labels.authorization.k8s.io/decision contiene il risultato se la richiesta è stata consentita o negata.

    8. Il campo labels."authorization.k8s.io/reason" contiene il nome di un gruppo Google. Questo gruppo è membro di gke-security-group ed è mappato al gruppo Kubernetes che determina l'accesso.

  4. (Facoltativo) Ripristina la registrazione degli accessi ai dati alle impostazioni precedenti 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 gruppo gke-security-group per trovare i soggetti a cui fai riferimento nelle tue policy 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 gruppo gke-security-group.

  • Gruppi membri: se elimini uno dei gruppi 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 membro, crea un nuovo gruppo con esattamente lo stesso nome del gruppo eliminato. Rendi il nuovo gruppo membro del gke-security-group gruppo seguendo i passaggi descritti nella sezione Configura i gruppi Google.

Passaggi successivi