Questo documento descrive tre metodi per connettersi al cluster collegato conforme a CNCF:
- Il metodo 1 si connette al cluster come utente Google.
- Il metodo 2 si connette al cluster come membro di un gruppo Google.
- Il metodo 3 si connette al cluster come utente o gruppo non Google.
Questi tre metodi di connessione a un cluster registrato sono abilitati da un servizio Google chiamato Connect Gateway. Per maggiori dettagli sulla connessione del gateway, consulta Connessione ai cluster registrati con il gateway Connect.
Prima di iniziare
Prima di eseguire uno qualsiasi dei metodi, assicurati di aver collegato il cluster. Per maggiori dettagli, consulta Collegare un cluster conforme a CNCF.
Prima di procedere con il metodo 2 o 3, devi soddisfare i prerequisiti aggiuntivi. Per maggiori dettagli, consulta le sezioni seguenti.
Prima di iniziare il metodo 2
Per utilizzare il metodo 2 per la connessione al cluster collegato, assicurati di disporre dei seguenti prerequisiti:
- La versione più recente di Google Cloud CLI. Per informazioni sull'aggiornamento dellgcloud CLI, consulta
gcloud components update
. - Versioni del cluster collegato 1.26.0-gke.8, 1.27.0-gke.5, 1.28.0-gke.2 o versioni successive.
Prima di iniziare il metodo 3
Per utilizzare il metodo 3 per la connessione al cluster collegato, assicurati di disporre dei seguenti prerequisiti:
Assicurati di avere la versione più recente di Google Cloud CLI. Per informazioni sull'aggiornamento di gcloud CLI, consulta
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 dei cluster collegati a GKE):
- Per gli utenti Azure, consulta Configurare la federazione delle identità della forza lavoro con Azure AD.
- Per gli utenti Okta, vedi Configurare la federazione delle identità per la forza lavoro con Okta.
- Per gli utenti di altre piattaforme, consulta Configurare la federazione delle identità per la forza lavoro.
(Facoltativo) Assegna ai gruppi o utenti esterni i ruoli IAM (Identity and Access Management) appropriati. Questo passaggio è necessario solo se vuoi concedere a utenti o 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 all'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 progetto Google Cloud.WORKFORCE_POOL_ID
: l'ID che identifica in modo univoco il tuo pool di identità della forza lavoro in Google Cloud. Quando formatti l'ID, assicurati di seguire 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 progetto Google Cloud.WORKFORCE_POOL_ID
: l'ID che identifica in modo univoco il tuo pool di identità della forza lavoro in Google Cloud. Quando formatti l'ID, assicurati di seguire 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 su quali autorizzazioni e ruoli API sono richiesti per i cluster collegati a GKE, consulta Autorizzazioni e ruoli API.
Metodo 1: connettiti al cluster collegato come utente Google
Per connetterti a un cluster collegato come utente Google, segui questi passaggi:
Abilita le API
connectgateway
ecloudresourcemanager
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 Google Cloud.Configura e applica le regole RBAC automaticamente o manualmente:
Metodo automatico: se, quando hai collegato il cluster, hai specificato degli utenti Google nel campo
--admin-users
del comandogcloud container attached clusters register
, a questi utenti sono stati concessi automaticamente i privilegi di amministratore per il cluster. Pertanto, puoi saltare questo passaggio.Metodo manuale: configura manualmente le regole RBAC per singoli utenti Google creando un manifest YAML di Kubernetes. Per maggiori dettagli, consulta Utilizzo dell'autorizzazione RBAC.
Ottieni un file di configurazione
kubeconfig
di Kubernetes con il seguente comando:gcloud container fleet memberships get-credentials CLUSTER_NAME
Sostituisci
CLUSTER_NAME
con il nome del cluster per cui vuoi disporre delle credenziali di connessione.
Una volta eseguiti questi passaggi, puoi connetterti al cluster collegato come utente Google.
Metodo 2: connettiti al cluster collegato con Google Gruppi
Questo metodo 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 al gruppo Google avranno accesso al cluster.
Utilizzare Google Gruppi per concedere l'accesso al cluster è più efficiente che creare autorizzazioni separate per i singoli utenti. Ad esempio, supponiamo che tu voglia aggiungere 50 utenti al gruppo di amministratori del cluster, 75 utenti a un gruppo Editor e 100 utenti a un gruppo di lettori. Il metodo 1, descritto in questo documento, richiede la creazione di regole RBAC nel file manifest di Kubernetes per 225 utenti. Il metodo 2, tuttavia, ti consente di risparmiare tempo perché devi creare solo le regole RBAC per tre gruppi Google.
Per autorizzare i gruppi Google a connettersi a un cluster collegato, segui questi passaggi:
Abilita le API
connectgateway
ecloudresourcemanager
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 Google Cloud.Se non esiste, crea un gruppo denominato
gke-security-groups
nel dominio del progetto.Crea uno o più sottogruppi all'interno del gruppo
gke-security-groups
per l'autenticazione dei cluster.Aggiungere utenti ai sottogruppi appena creati.
Concedi ruoli IAM ai 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
oroles/gkehub.gatewayReader
. Tieni presente che non stai concedendo autorizzazioni sul cluster collegato qui, questo passaggio viene eseguito più avanti. Qui devi determinare solo il modo in cui gli utenti del gruppo possono manipolare il gateway di connessione.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 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.gatewayEditor
oroles/gkehub.gatewayReader
.
In un manifest Kubernetes, definisci il tipo di autorizzazione di ogni gruppo Google sul cluster. Ad esempio, il manifest seguente 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
Salva il manifest in un file e applicalo al cluster eseguendo questo comando:
kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAME
Sostituisci quanto segue:
KUBECONFIG_PATH
: il percorso del filekubeconfig
.FILENAME
: il nome del file manifest che hai creato.
Dopo aver eseguito questi passaggi, gli utenti che appartengono a determinati gruppi Google possono connettersi al cluster collegato. Nell'esempio fornito, gli utenti che appartengono al gruppo Google cluster-admin-team
possono connettersi al cluster come amministratori.
Metodo 3: concedi l'accesso alle identità esterne quando colleghi o aggiorni un cluster
Il metodo 3 concede l'accesso alle identità esterne quando colleghi o aggiorni un cluster.
Per collegare un cluster conforme a CNCF, segui i passaggi descritti in Collegare il cluster conforme a CNCF. Per aggiornare un cluster conforme a CNCF, segui i passaggi descritti in Aggiornare il cluster conforme a CNCF.
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 tuo pool di identità della forza lavoro in Google Cloud. Quando formatti l'ID, assicurati di seguire 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 console Google Cloud con Cloud Identity, consulta Accedere con Google Cloud Identity.