Questo documento descrive tre metodi per connetterti al cluster EKS collegato:
- Il metodo n. 1 ti consente di connetterti al cluster come utente Google.
- Il metodo n. 2 ti consente di connetterti al cluster come membro di un gruppo Google.
- Il metodo n. 3 ti consente di connetterti al cluster come utente o gruppo non Google.
Questi tre metodi di connessione a un cluster registrato sono abilitati da un servizio Google chiamato gateway di connessione. Per informazioni dettagliate sul gateway di connessione, vedi Connessione ai cluster registrati con il gateway di connessione.
Questa pagina è rivolta agli amministratori IT e agli operatori che vogliono configurare, monitorare e gestire l'infrastruttura cloud. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei Google Cloud contenuti, vedi Ruoli e attività comuni degli utenti GKE.
Prima di iniziare
Prima di eseguire uno dei metodi, assicurati di aver collegato il cluster. Per maggiori dettagli, vedi Collegare il cluster EKS.
Prima di procedere con il metodo n. 2 o il metodo n. 3, devi soddisfare prerequisiti aggiuntivi. Per maggiori dettagli, vedi le sezioni seguenti.
Prima di iniziare il metodo n. 2
Per utilizzare il metodo n. 2 per connetterti al cluster collegato, assicurati di soddisfare i seguenti prerequisiti:
- Ultima versione di Google Cloud CLI. Per informazioni sull'aggiornamento
di gcloud CLI, vedi
gcloud components update. - Versioni del cluster collegato 1.26.0-gke.8, 1.27.0-gke.5, 1.28.0-gke.2 o successive.
Prima di iniziare il metodo n. 3
Per utilizzare il metodo n. 3 per connetterti al cluster collegato, assicurati che soddisfi i seguenti prerequisiti:
Assicurati di avere l'ultima versione di Google Cloud CLI. Per informazioni sull'aggiornamento di gcloud CLI, vedi
gcloud components update.Assicurati di utilizzare le versioni del cluster collegato 1.27.0-gke.5, 1.28.0-gke.2 o successive.
Configura la federazione delle identità per la forza lavoro (in modo che gli utenti o i gruppi esterni possano utilizzare l'API GKE Attached Clusters):
- Per gli utenti di Azure, vedi Configurare la federazione delle identità per la forza lavoro con Azure AD.
- Per gli utenti di Okta, vedi Configurare la federazione delle identità per la forza lavoro con Okta.
- Per gli utenti di altre piattaforme, vedi Configurare la federazione delle identità per la forza lavoro.
(Facoltativo) Assegna agli utenti o ai gruppi esterni i ruoli IAM (Identity and Access Management) appropriati. Questo passaggio è necessario solo se vuoi concedere agli utenti o ai gruppi la possibilità di creare o aggiornare i cluster; non è necessario per accedere semplicemente a un cluster.
Tieni presente che i ruoli sono raccolte di autorizzazioni. Quando assegni un ruolo a un'entità (utente, gruppo o account di servizio), concedi a quell'entità tutte le autorizzazioni incluse nel ruolo.
Utenti
Per i singoli utenti, devi assegnare il ruolo
gkemulticloud.admin:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.admin" \ --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE"Sostituisci quanto segue:
PROJECT_ID: l'ID del tuo Google Cloud progetto.WORKFORCE_POOL_ID: l'ID che identifica in modo univoco il pool di identità per la forza lavoro in Google Cloud. Quando formatti l'ID, assicurati che segui le linee guida consigliate fornite nella documentazione IAM in Parametri di query.SUBJECT_VALUE: l'ID che identifica in modo univoco un utente esterno. Ad esempio, l'ID può essere un indirizzo email comealex@cymbalgroup.com.
Gruppi
Per i gruppi, devi assegnare il ruolo
gkemulticloud.admin:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.admin" \ --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"Sostituisci quanto segue:
PROJECT_ID: l'ID del tuo Google Cloud progetto.WORKFORCE_POOL_ID: l'ID che identifica in modo univoco il pool di identità per la forza lavoro in Google Cloud. Quando formatti l'ID, assicurati che segui le linee guida consigliate fornite nella documentazione IAM in Parametri di query.GROUP_ID: un ID che identifica in modo univoco un gruppo esterno.
Per ulteriori informazioni sui ruoli e sulle autorizzazioni API richiesti per i cluster collegati GKE, vedi Ruoli e autorizzazioni API.
Metodo n. 1: connettersi al cluster collegato come utente Google
Per connetterti a un cluster collegato come utente Google, segui questi passaggi:
Attiva le API
connectgatewayecloudresourcemanagercon il seguente comando:gcloud services enable --project=PROJECT_ID \ connectgateway.googleapis.com \ cloudresourcemanager.googleapis.comSostituisci
PROJECT_IDcon l'ID del tuo Google Cloud progetto.Configura e applica le regole RBAC automaticamente o manualmente:
Metodo automatico: se, quando hai collegato il cluster, hai specificato gli utenti Google nel campo
--admin-usersdel comandogcloud container attached clusters register, a questi utenti sono stati concessi automaticamente i privilegi di amministratore sul cluster. Puoi quindi saltare questo passaggio.Metodo manuale: configura manualmente le regole RBAC per i singoli utenti Google creando un manifest YAML di Kubernetes. Per maggiori dettagli, vedi Utilizzo dell'autorizzazione RBAC.
Ottieni un file di configurazione
kubeconfigdi Kubernetes con il seguente comando:gcloud container fleet memberships get-credentials CLUSTER_NAMESostituisci
CLUSTER_NAMEcon il nome del cluster di cui vuoi ottenere le credenziali di connessione.
Una volta eseguiti questi passaggi, puoi connetterti al cluster collegato come utente Google.
Metodo n. 2: connettersi al cluster collegato con i gruppi Google
Questo metodo ti consente di connetterti a un cluster collegato come membro di un gruppo Google. In altre parole, concedi a un gruppo Google l'accesso a un cluster e tutti gli utenti appartenenti a quel gruppo Google hanno accesso al cluster.
L'utilizzo di Gruppi Google 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. Il metodo n. 1, descritto in questo documento, richiederebbe la creazione di regole RBAC nel file manifest di Kubernetes per 225 utenti. Il metodo n. 2, tuttavia, ti fa risparmiare tempo perché devi creare regole RBAC solo per tre gruppi Google.
Per autorizzare i gruppi Google a connettersi a un cluster collegato, segui questi passaggi:
Attiva le API
connectgatewayecloudresourcemanagercon il seguente comando:gcloud services enable --project=PROJECT_ID \ connectgateway.googleapis.com \ cloudresourcemanager.googleapis.comSostituisci
PROJECT_IDcon l'ID del tuo Google Cloud progetto.Crea un gruppo denominato
gke-security-groupscome gruppo nel dominio del tuo progetto, se non esiste.Crea uno o più sottogruppi all'interno del gruppo
gke-security-groupsper l'autenticazione del cluster.Aggiungi utenti ai sottogruppi appena creati.
Concedi ruoli IAM a Gruppi Google:
Seleziona un ruolo appropriato per un gruppo. Questo ruolo determina il modo in cui 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 collegato. 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).Esegui il seguente comando per concedere il ruolo al gruppo:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=group:GROUP_NAME@DOMAIN \ --role=GATEWAY_ROLESostituisci quanto segue:
PROJECT_ID: l'ID del tuo progetto GoogleGROUP_NAME: il nome del gruppo a cui concedere l'accessoDOMAIN: il tuo dominio Google WorkspaceGATEWAY_ROLE: il ruolo selezionato. Ad esempioroles/gkehub.gatewayAdmin,roles/gkehub.gatewayEditororoles/gkehub.gatewayReader.
In un manifest di Kubernetes, definisci il tipo di autorizzazione che ogni gruppo Google ha sul cluster. Ad esempio, il seguente manifest concede al gruppo Google
cluster-admin-teamil 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.ioSalva il manifest in un file e applicalo al cluster eseguendo il seguente comando:
kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAMESostituisci quanto segue:
KUBECONFIG_PATH: il percorso del filekubeconfig.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 collegato. Nell'esempio fornito, gli utenti appartenenti al gruppo Google cluster-admin-team possono connettersi al cluster come amministratori.
Metodo n. 3: concedere l'accesso a identità esterne quando si collega o si aggiorna un cluster
Il metodo n. 3 concede l'accesso a identità esterne quando colleghi o aggiorni un cluster.
Per collegare un cluster EKS, segui i passaggi descritti in Collegare il cluster EKS. Per aggiornare un cluster EKS, segui i passaggi descritti in Aggiornare il cluster EKS.
Quando esegui il comando gcloud CLI per registrare o aggiornare un cluster, specifica i parametri admin-users e/o admin-groups come segue:
gcloud container attached clusters [register|update] CLUSTER_NAME \
--admin-users=principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE \
--admin-groups=principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID
Sostituisci quanto segue:
CLUSTER_NAME: il nome del tuo cluster.WORKFORCE_POOL_ID: l'ID che identifica in modo univoco il pool di identità per la forza lavoro in Google Cloud. Quando formatti l'ID, assicurati che segui le linee guida consigliate fornite nella documentazione IAM in Parametri di query.SUBJECT_VALUE: l'ID che identifica in modo univoco un utente esterno. Ad esempio, l'ID può essere un indirizzo email comealex@cymbalgroup.com.GROUP_ID: un ID che identifica in modo univoco un gruppo esterno.
Passaggi successivi
Per gestire il cluster dalla Google Cloud console con Cloud Identity, vedi Accedere utilizzando la tua Google Cloud identità.