Configura Connect Gateway con Google Gruppi

Questa guida è rivolta agli amministratori della piattaforma che devono configurare il gateway di connessione per l'utilizzo da parte degli account utente del progetto, utilizzando Google Gruppi per l'autorizzazione. Prima di leggere questa pagina, assicurati che tu abbia familiarità con i concetti descritti nella nostra panoramica. Per autorizzare i singoli account, consulta la configurazione predefinita.

Questa configurazione consente agli utenti di accedere ai cluster del parco risorse configurati utilizzando la Google Cloud CLI, il gateway di connessione e la Google Cloud console.

Questa funzionalità utilizza Google Gruppi associati a Google Workspace o a qualsiasi edizione di Cloud Identity.

Tipi di cluster supportati

Puoi configurare il controllo dell'accesso con Google Gruppi tramite il gateway di connessione per i seguenti tipi di cluster:

Per utilizzare questa funzionalità con ambienti non inclusi nell'elenco precedente, contatta l'assistenza clienti Google Cloud o il team del gateway di connessione.

Come funziona

Come descritto nella panoramica, spesso è utile poter concedere agli utenti l'accesso ai cluster in base alla loro appartenenza a Google Gruppi, ovvero ai gruppi creati in Google Workspace. L'autorizzazione basata sull'iscrizione al gruppo significa che non devi configurare un'autorizzazione separata per ogni account, il che semplifica la gestione e il controllo delle policy. Ad esempio, puoi condividere facilmente l'accesso al cluster con un team, eliminando la necessità di aggiungere/rimuovere manualmente i singoli utenti dai cluster quando entrano a far parte del team o lo lasciano. Puoi configurare il gateway di connessione per ottenere le informazioni sull'appartenenza a Google Gruppi per ogni utente che accede al cluster. Puoi quindi utilizzare queste informazioni nelle policy di controllo dell'accesso.

Di seguito è riportato il flusso tipico per un utente che esegue l'autenticazione e i comandi su un cluster con questo servizio abilitato. Affinché questo flusso vada a buon fine, nel cluster deve esistere una policy RBAC per un gruppo che:

  1. Contiene l'utente alice@example.com come membro.

  2. È un gruppo nidificato di gke-security-groups@example.com.

Diagramma che mostra il flusso di Google Gruppi del gateway

  1. L'utente alice@example.com accede utilizzando la propria identità Google e, se prevede di utilizzare il cluster dalla riga di comando, ottiene il gateway kubeconfig del cluster come descritto in Utilizzo del gateway di connessione.
  2. L'utente invia una richiesta eseguendo un comando kubectl o aprendo le pagine Workload o Browser oggetti di Google Kubernetes Engine nella Google Cloud console.
  3. La richiesta viene ricevuta dal servizio Connect, che esegue un controllo dell'autorizzazione con IAM.
  4. Il servizio Connect inoltra la richiesta all'agente Connect in esecuzione sul cluster. La richiesta è accompagnata dalle informazioni sulle credenziali dell'utente da utilizzare per l'autenticazione e l'autorizzazione sul cluster.
  5. L'agente Connect inoltra la richiesta al server API Kubernetes.
  6. Il server API Kubernetes inoltra la richiesta al pod anthos-identity-service nel cluster, che la convalida.
  7. Il pod anthos-identity-service restituisce le informazioni sull'utente e sul gruppo al server API Kubernetes. Il server API Kubernetes può quindi utilizzare queste informazioni per autorizzare la richiesta in base alle policy RBAC configurate del cluster.

Prima di iniziare

  1. Accedi al tuo Google Cloud account. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  2. Installa Google Cloud CLI.

  3. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  4. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  5. Verifica di disporre delle autorizzazioni necessarie per completare questa guida.

  6. Abilita le API Connect Gateway, GKE Connect, GKE Hub, Anthos Identity Service e Cloud Resource Manager:

    Ruoli necessari per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin), che contiene l' serviceusage.services.enable autorizzazione. Scopri come concedere i ruoli.

    gcloud services enable connectgateway.googleapis.com gkeconnect.googleapis.com gkehub.googleapis.com anthosidentityservice.googleapis.com cloudresourcemanager.googleapis.com
  7. Installa Google Cloud CLI.

  8. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  9. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  10. Verifica di disporre delle autorizzazioni necessarie per completare questa guida.

  11. Abilita le API Connect Gateway, GKE Connect, GKE Hub, Anthos Identity Service e Cloud Resource Manager:

    Ruoli necessari per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin), che contiene l' serviceusage.services.enable autorizzazione. Scopri come concedere i ruoli.

    gcloud services enable connectgateway.googleapis.com gkeconnect.googleapis.com gkehub.googleapis.com anthosidentityservice.googleapis.com cloudresourcemanager.googleapis.com
  12. Per i cluster esterni a Google Cloud, i componenti di autenticazione nel tuo cluster devono chiamare l'API Cloud Identity. Verifica se hai policy di rete che richiedono che il traffico in uscita dal cluster passi attraverso un proxy.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare il gateway di connessione e i cluster, chiedi all'amministratore di concederti il ruolo IAM Editor (roles/editor) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Configura utenti e gruppi

Assicurati che i gruppi che vuoi utilizzare con questa funzionalità siano configurati come segue:

  1. Assicurati che in Google Workspace della tua organizzazione esista un gruppo con il formato gke-security-groups@YOUR-DOMAIN. Se non hai un gruppo di questo tipo, segui le istruzioni riportate in Creare un gruppo nella tua organizzazione per creare il gruppo utilizzando la Console di amministrazione Google.
  2. Segui le istruzioni riportate in Aggiungere un gruppo a un altro gruppo per aggiungere i gruppi che vuoi utilizzare per il controllo dell'accesso come gruppi nidificati di gke-security-groups. Non aggiungere singoli utenti come membri di gke-security-groups.

Gli account utente che vuoi utilizzare con questa funzionalità devono utilizzare lo stesso nome di dominio del gruppo.

Configura il supporto per i gruppi

Il gateway Connect utilizza i componenti di autenticazione nel cluster per recuperare le informazioni sull'iscrizione al gruppo. Per abilitare i componenti richiesti, consulta uno dei seguenti documenti a seconda del tipo di cluster:

Le sezioni seguenti mostrano come aggiornare la risorsa personalizzata ClientConfig per abilitare il supporto dei gruppi. Queste sezioni si applicano solo ai cluster Google Distributed Cloud. Per altri tipi di cluster, come GKE su Google Cloud; GKE su AWS; e GKE su Azure, vai alla sezione Concedi ruoli IAM ai gruppi.

Per Distributed Cloud, puoi configurare il supporto per i gruppi per i singoli cluster o per un parco risorse. Il tipo di cluster che utilizzi determina la modalità di configurazione del supporto dei gruppi, come segue:

  • Distributed Cloud connesso: solo singoli cluster. La configurazione a livello di parco risorse non è supportata.
  • Google Distributed Cloud (solo software) su VMware e bare metal: singoli cluster o parchi risorse.

Configura il supporto dei gruppi utilizzando l'API GKE Fleet

Per Google Distributed Cloud (solo software) su VMware e bare metal, puoi configurare il supporto dei gruppi a livello di parco risorse. Se hai già configurato l'autenticazione a livello di parco risorse, ad esempio per un altro provider di identità, l'autenticazione dei gruppi è già abilitata. Tuttavia, se la tua policy di rete richiede che il traffico in uscita passi attraverso un proxy, devi aggiornare la configurazione esistente con le informazioni relative a quel proxy.

Per configurare il supporto dei gruppi a livello di parco risorse, seleziona una delle seguenti opzioni:

Console

  1. Nella Google Cloud console, vai alla pagina GKE Identity Service.

    Vai a GKE Identity Service

  2. Fai clic su Abilita Identity Service.

  3. Seleziona i cluster Google Distributed Cloud (solo software) su VMware e bare metal che vuoi configurare.

  4. Fai clic su Aggiorna configurazione. Si apre il riquadro Modifica configurazione dei cluster di Identity Service.

  5. Nella sezione Configura provider di identità , puoi scegliere di conservare, aggiungere, aggiornare o rimuovere un provider di identità.

  6. Fai clic su Continua per passare al passaggio di configurazione successivo. Se hai selezionato almeno un cluster idoneo per questa configurazione, viene visualizzata la sezione Autenticazione Google.

  7. Seleziona Abilita per abilitare l'autenticazione Google per i cluster selezionati. Se devi accedere al provider di identità Google tramite un proxy, inserisci i dettagli del proxy.

  8. Fai clic su Aggiorna configurazione. In questo modo, la configurazione dell'identità viene applicata ai cluster selezionati.

gcloud

  1. Abilita la funzionalità del servizio di identità a livello di parco risorse e configura i cluster, come descritto in Configurare la gestione dell'autenticazione a livello di parco risorse.
  2. Nel file auth-config.yaml che contiene la specifica ClientConfig, aggiungi il seguente campo:

    spec:
      authentication:
      - name: google-authentication-method
        google:
          disable: false
    

    Il valore false nel campo google.disable abilita il supporto dei gruppi. Per disabilitare il supporto dei gruppi, modifica questo valore in true.

  3. (Facoltativo) Se devi accedere al provider di identità Google tramite un proxy, aggiungi il campo proxy alla configurazione precedente:

    spec:
      authentication:
      - name: google-authentication-method
        google:
          disable: false
        proxy: PROXY_URL
    

    Sostituisci PROXY_URL con l'indirizzo del server proxy per connetterti all'identità Google. Ad esempio: http://user:password@10.10.10.10:8888

  4. Applica la configurazione a un cluster nel parco risorse:

    gcloud container fleet identity-service apply \
    --membership=CLUSTER_NAME \
    --config=/path/to/auth-config.yaml

    Sostituisci CLUSTER_NAME con il nome di appartenenza univoco del cluster all'interno del parco risorse.

Dopo aver configurato il supporto dei gruppi a livello di parco risorse, il controller del parco risorse gestisce la configurazione. La configurazione a livello di parco risorse sovrascrive le modifiche locali apportate alla configurazione in un cluster specifico.

Configura il supporto dei gruppi per i singoli cluster

Per tutti i cluster Distributed Cloud, incluso Distributed Cloud connesso, abilita il supporto dei gruppi aggiornando il ClientConfig default in ogni cluster:

  1. Recupera i dettagli dell'appartenenza del cluster:

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get memberships membership -o yaml
    

    Sostituisci USER_CLUSTER_KUBECONFIG con il percorso del file kubeconfig per il cluster. Se nel kubeconfig sono presenti più contesti, viene utilizzato il contesto corrente. Prima di eseguire il comando, potrebbe essere necessario reimpostare il contesto corrente sul cluster corretto.

    Nella risposta, fai riferimento al campo spec.owner.id per recuperare i dettagli dell'appartenenza del cluster. L' identificatore di appartenenza ha il formato //gkehub.googleapis.com/projects/PROJECT_NUMBER/locations/global/memberships/MEMBERSHIP.

    L'output è simile al seguente:

    id: //gkehub.googleapis.com/projects/123456789/locations/global/memberships/xy-ab12cd34ef
    
  2. Apri il ClientConfig default nel cluster per la modifica:

    kubectl --kubeconfig USER_CLUSTER_KUBECONFIG -n kube-public edit clientconfig default
    
  3. Per abilitare il supporto dei gruppi, aggiungi il campo google al campo spec.authentication:

    spec:
      internalServer: https://kubernetes.default.svc
      authentication:
      - google:
          audiences:
          - "CLUSTER_IDENTIFIER"
        name: google-authentication-method
    

    Sostituisci CLUSTER_IDENTIFIER con i dettagli dell'appartenenza del cluster.

    Assicurati che il campo internalServer abbia il valore https://kubernetes.default.svc.

  4. (Facoltativo) Se devi accedere al provider di identità Google tramite un proxy, aggiungi il campo proxy alla configurazione precedente:

    spec:
      internalServer: https://kubernetes.default.svc
      authentication:
      - google:
          audiences:
          - "CLUSTER_IDENTIFIER"
        name: google-authentication-method
        proxy: PROXY_URL
    

    Sostituisci PROXY_URL con l'indirizzo del server proxy per connetterti all'identità Google. Ad esempio: http://user:password@10.10.10.10:8888

Concedi ruoli IAM a Google Gruppi

I gruppi hanno bisogno dei seguenti ruoli aggiuntivi Google Cloud per interagire con i cluster connessi tramite il gateway:

  • roles/gkehub.gatewayAdmin. Questo ruolo consente ai membri del gruppo di accedere all'API del gateway di connessione.
    • Se i membri del gruppo hanno bisogno solo dell'accesso in sola lettura ai cluster connessi, puoi utilizzare roles/gkehub.gatewayReader.
    • Se i membri del gruppo hanno bisogno dell'accesso in lettura/scrittura ai cluster connessi, puoi utilizzare roles/gkehub.gatewayEditor.
  • roles/gkehub.viewer. Questo ruolo consente ai membri del gruppo di visualizzare le appartenenze ai cluster registrati.

Concedi questi ruoli utilizzando il comando gcloud projects add-iam-policy-binding, come segue:

gcloud projects add-iam-policy-binding --member=group:GROUP_NAME@DOMAIN --role=GATEWAY_ROLE PROJECT_ID
gcloud projects add-iam-policy-binding --member=group:GROUP_NAME@DOMAIN --role=roles/gkehub.viewer PROJECT_ID

dove

  • GROUP_NAME è il gruppo Google a cui vuoi concedere il ruolo
  • DOMAIN è il tuo dominio Google Workspace
  • GROUP_NAME@DOMAIN è un gruppo nidificato in gke-security-groups@DOMAIN
  • GATEWAY_ROLE è uno tra roles/gkehub.gatewayAdmin, roles/gkehub.gatewayReader o gkehub.gatewayEditor.
  • PROJECT_ID è il tuo progetto

Per saperne di più sulla concessione di autorizzazioni e ruoli IAM, consulta Concessione, modifica e revoca dell'accesso alle risorse.

Configura le policy di controllo dell'accesso basato sui ruoli (RBAC)

Infine, il server API Kubernetes di ogni cluster deve essere in grado di autorizzare i comandi kubectl che arrivano tramite il gateway dai gruppi specificati. Per ogni cluster, devi aggiungere una policy delle autorizzazioni RBAC che specifichi le autorizzazioni del gruppo sul cluster.

Nell'esempio seguente, vedrai come concedere ai membri del gruppo cluster-admin-team le autorizzazioni cluster-admin sul cluster, salvare il file della policy come /tmp/admin-permission.yaml e applicarlo al cluster associato al contesto corrente. Assicurati di includere anche il gruppo cluster-admin-team nel gruppo gke-security-groups.

cat <<EOF > /tmp/admin-permission.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: gateway-cluster-admin-group
subjects:
- kind: Group
  name: cluster-admin-team@example.com
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io
EOF
# Apply permission policy to the cluster.
kubectl apply --kubeconfig=KUBECONFIG_PATH -f /tmp/admin-permission.yaml

Per saperne di più sulla specifica delle autorizzazioni RBAC, consulta Utilizzo dell'autorizzazione RBAC.

Passaggi successivi