Connettere i gruppi Google a GKE su AWS

Questo documento descrive come connetterti a GKE su AWS come membro di un gruppo Google.

L'utilizzo di Google Gruppi per concedere l'accesso al cluster è più efficiente rispetto alla creazione di autorizzazioni separate per i singoli utenti. Ad esempio, supponiamo che tu voglia aggiungere 50 utenti al gruppo Amministratore cluster, 75 utenti a un gruppo Editor e 100 utenti a un gruppo Lettore. Per consentire a tutti questi utenti di connettersi al tuo cluster, devi creare regole RBAC nel file manifest Kubernetes per 225 utenti. L'attivazione dell'accesso al cluster con Google Gruppi, tuttavia, ti fa risparmiare tempo perché devi creare regole RBAC solo per tre gruppi Google.

Prima di iniziare

Per connetterti al cluster come membro di un gruppo Google, devi soddisfare i seguenti prerequisiti:

  1. Assicurati di avere l'ultima versione di Google Cloud CLI. Per informazioni sull'aggiornamento di gcloud CLI, consulta gcloud components update.

  2. Utilizza GKE su AWS versione 1.25 o successive, necessaria per l'accesso tramite Connect Gateway.kubectl

Connettiti al cluster con i gruppi Google

Per autorizzare i gruppi Google a connettersi a GKE su AWS, segui questi passaggi:

  1. Abilita le API connectgateway e cloudresourcemanager con il seguente comando:

      gcloud services enable --project=PROJECT_ID \
          connectgateway.googleapis.com \
          cloudresourcemanager.googleapis.com
    

    Sostituisci PROJECT_ID con l'ID del tuo progetto AWS.

  2. Crea un gruppo denominato gke-security-groups come gruppo nel dominio del tuo progetto, se non esiste.

  3. Crea uno o più sottogruppi all'interno del gruppo gke-security-groups per l'autenticazione del cluster.

  4. Aggiungi utenti ai sottogruppi appena creati.

  5. Per l'accesso kubectl utilizzando il gateway di connessione, devi concedere ruoli IAM ai gruppi Google:

    1. Seleziona un ruolo appropriato per un gruppo. Questo ruolo determina in che modo il gruppo interagisce con il gateway di connessione. Il ruolo può essere uno dei seguenti: roles/gkehub.gatewayAdmin, roles/gkehub.gatewayEditor, roles/gkehub.gatewayReader. Tieni presente che qui non stai concedendo autorizzazioni sul cluster. Questo passaggio verrà eseguito in un secondo momento. Qui, stai solo determinando in che modo gli utenti del gruppo possono manipolare il gateway di connessione.)

    2. Esegui questo comando per concedere il ruolo al gruppo:

      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=group:GROUP_NAME@DOMAIN \
        --role=GATEWAY_ROLE
      

      Sostituisci quanto segue:

      • PROJECT_ID: il tuo ID progetto Google
      • GROUP_NAME: il nome del gruppo a cui concedere l'accesso
      • DOMAIN: il tuo dominio Google Workspace
      • GATEWAY_ROLE: il ruolo selezionato. Ad esempio, roles/gkehub.gatewayAdmin, roles/gkehub.gatewayEditor o roles/gkehub.gatewayReader.
  6. In un manifest Kubernetes, definisci le autorizzazioni che ogni gruppo Google ha sul cluster. Ad esempio, il seguente manifest concede al gruppo Google cluster-admin-team il ruolo di amministratore del cluster:

    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
    
  7. Salva il manifest in un file e applicalo al cluster eseguendo il comando seguente:

    kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAME
    

    Sostituisci quanto segue:

    • KUBECONFIG_PATH: il percorso del file kubeconfig.
    • FILENAME: il nome del file manifest che hai creato.

Una volta eseguiti questi passaggi, gli utenti appartenenti a determinati gruppi Google possono connettersi al cluster. Nell'esempio riportato, gli utenti appartenenti al gruppo Google cluster-admin-team possono connettersi al cluster come amministratori.