Configurare Google Gruppi per RBAC


Questa pagina mostra come configurare Google Gruppi per lavorare con il controllo dell'accesso basato sui ruoli (RBAC) di Kubernetes nei cluster Google Kubernetes Engine (GKE).

Google Gruppi per RBAC ti 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 ti consente anche di eseguire 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ù su i ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti di Google Cloud , consulta Ruoli e attività comuni per gli utenti di GKE Enterprise.

Prima di leggere questa pagina, assicurati di conoscere i limiti di Google Gruppi quando crei gruppi e aggiungi utenti come membri.

Per utilizzare Google Gruppi per il RBAC, completa le seguenti attività:

  1. Soddisfare i requisiti.
  2. Configura i tuoi 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 l'RBAC, devi avere accesso a Google Workspace o a qualsiasi versione di Cloud Identity.

Limitazione

  • GKE supporta gli utenti che fanno parte di un massimo di 2000 gruppi all'interno del gruppo di sicurezza, inclusi i membri nidificati, con Google Gruppi per RBAC.

Configurare Google Gruppi

I passaggi riportati di seguito mostrano come configurare un gruppo in Google Gruppi che supporti il RBAC:

  1. Crea un gruppo nel tuo dominio denominato gke-security-groups. Il nome della risorsa gke-security-groups è obbligatorio. Assicurati che per il gruppo sia selezionata l'autorizzazione Visualizza membri per Membri del gruppo. Per maggiori dettagli, consulta Impostare le autorizzazioni per la gestione di membri e contenuti.

  2. Se non esistono già, crea gruppi che rappresentano 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.

  3. Aggiungi i tuoi 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 questo gruppo è nidificato nel gruppo gke-security-groups.

Le informazioni sull'appartenenza 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 del gruppo, 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 il seguente comando:

gcloud container clusters create CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --security-group="gke-security-groups@DOMAIN"

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del nuovo cluster.
  • COMPUTE_REGION: la regione Compute Engine per il nuovo cluster. Per i cluster di zona, utilizza --zone=COMPUTE_ZONE.
  • DOMAIN: il nome di dominio del gruppo gke-security-groups che hai creato.

Autopilot

Per creare un nuovo cluster Autopilot e attivare Google Gruppi per RBAC, esegui il seguente comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --security-group="gke-security-groups@DOMAIN"

Console

Per creare un nuovo cluster e attivare la funzionalità Google Gruppi per RBAC, segui i passaggi che seguono:

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

    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.

Aggiornare un cluster esistente

gcloud

Per aggiornare un cluster esistente in modo da attivare Google Gruppi per RBAC, esegui il seguente comando:

gcloud container clusters update CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --security-group="gke-security-groups@DOMAIN"

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster.
  • COMPUTE_REGION: la regione Compute Engine del cluster. Per i cluster zonali, utilizza --zone=COMPUTE_ZONE.
  • DOMAIN: il nome di dominio del gruppo gke-security-groups che hai creato.

Console

Per aggiornare un cluster esistente in modo da attivare Google Gruppi per RBAC, segui questi passaggi:

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

    Vai a Google Kubernetes Engine

  2. Fai clic sul nome del cluster da 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.

Definire e assegnare le autorizzazioni

Dopo aver creato e configurato Google Gruppi per RBAC, utilizza i ruoli e le associazioni di ruoli per definire le autorizzazioni RBAC e assegnarle ai gruppi Google che fanno parte del gruppo gke-security-groups. Per le 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 andata a buon fine utilizzando l'interfaccia alla gcloud CLI o la consoleGoogle Cloud .

Verificare l'utilizzo di 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 di 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 usurpare, ad esempio gke-user@example.com. L'utente specificato deve essere un membro del gruppo per cui stai testando l'accesso.
  • GROUP: il nome del gruppo da rubare l'identità, ad esempio gke-dev-users@example.com.

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

Verificare 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 quanto segue:

  • 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. Lasciare che le credenziali memorizzate nella cache scadano ti consente di assicurarti che la richiesta venga registrata quando si verifica.
  • Sei membro di almeno uno dei gruppi che fanno parte del gruppo gke-security-groups, il che garantisce che alcune informazioni di Google Gruppi vengano registrate.

Attiva i log ed esegui un comando di test

  1. Abilita il logging degli accessi ai dati per il tuo progetto Google Cloud . Per attivare il logging:

    1. Vai alla pagina Log di controllo nella console Google Cloud .

      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 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 console Google Cloud .

      Vai a Esplora log

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

    3. Nella casella a discesa 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.
    4. Seleziona Esegui query. Dovrebbe essere visualizzato almeno un risultato. Se non vengono visualizzati risultati, prova ad aumentare l'intervallo di tempo.

    5. Seleziona il cluster da esaminare.

    6. Fai clic su Espandi campi nidificati.

    7. 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.

  4. Facoltativamente, ripristina le impostazioni precedenti del logging degli accessi ai dati per evitare ulteriori addebiti.

Passaggi successivi