La federazione delle identità della forza lavoro concede alle identità non Google l'accesso ai serviziGoogle Cloud . Nel contesto di GKE su AWS, ciò significa che puoi utilizzare identità esterne preesistenti per creare o accedere a un cluster GKE senza fare affidamento sulle credenziali Google.
I vantaggi dell'utilizzo della federazione delle identità per la forza lavoro sono i seguenti:
- Elimini la necessità di account duplicati su piattaforme o fornitori diversi.
- Imposti le autorizzazioni una sola volta, evitando la necessità di configurazioni su più piattaforme.
- Semplifichi l'accesso degli utenti, perché sono necessari meno accessi e password.
Prima di iniziare
Prima di poter consentire a utenti o gruppi esterni di accedere ai cluster GKE, devi eseguire i seguenti passaggi:
Affinché utenti o gruppi esterni possano utilizzare l'API GKE su AWS, configura la federazione delle identità per la forza lavoro:
- Per gli utenti di Azure, consulta Configurare la federazione delle identità per la forza lavoro con Azure AD.
- Per gli utenti di Okta, consulta 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.
Assegna agli utenti o ai gruppi esterni il ruolo
gkemulticloud.viewer
in modo che possano accedere ai cluster. Assegna il ruolocontainer.clusterViewer
per visualizzare i cluster nella console Google Cloud .Tieni presente che i ruoli sono raccolte di autorizzazioni. Quando assegni un ruolo a un'entità (utente, gruppo o account di servizio), le concedi tutte le autorizzazioni contenute nel ruolo.
Utenti
Per i singoli utenti, devi assegnare il ruolo
gkemulticloud.viewer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.viewer" \ --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 tuo pool di identità della forza lavoro in Google Cloud. Quando formatti l'ID, assicurati di seguire le linee guida consigliate fornite nella documentazione di IAM nella sezione 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.viewer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.viewer" \ --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 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.
(Facoltativo) Assegna agli utenti o ai gruppi 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 cluster. Non è obbligatorio per accedere semplicemente a un cluster.
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 tuo pool di identità della forza lavoro in Google Cloud. Quando formatti l'ID, assicurati di seguire le linee guida consigliate fornite nella documentazione di IAM nella sezione 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 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 sui ruoli e sulle autorizzazioni API richiesti per GKE su AWS, consulta Ruoli e autorizzazioni API.
Concedere l'accesso esterno ai cluster GKE
Esistono due metodi per configurare la federazione delle identità per la forza lavoro in modo che gli utenti o i gruppi esterni possano accedere ai tuoi cluster GKE.
Il metodo n. 1 richiede di definire un file RBAC e applicarlo al cluster. Questo metodo offre un controllo preciso sulle autorizzazioni, ad esempio consentendo agli utenti l'accesso di sola lettura alle risorse senza concedere loro un accesso più ampio.
Il metodo n. 2 richiede di specificare l'accesso per le identità esterne durante la creazione o l'aggiornamento di un cluster. Questo metodo concede privilegi amministrativi completi agli utenti o ai gruppi specificati.
Scegli il metodo più in linea con il livello di controllo dell'accesso dell'accesso che preferisci: il metodo 1 per autorizzazioni più granulari o il metodo 2 per concedere diritti di amministratore completi del cluster.
Metodo n. 1: utilizza un file RBAC
Il primo metodo per concedere l'accesso esterno ai cluster GKE prevede l'utilizzo di un file RBAC. Segui questi passaggi:
Definisci un file YAML RBAC che includa i soggetti (utenti o gruppi) e le autorizzazioni che vuoi concedere loro all'interno del cluster GKE. Di seguito sono riportate configurazioni YAML RBAC di esempio per singoli utenti e per gruppi:
Utenti
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: gateway-cluster-admin-user subjects: - kind: User name: principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_VALUE roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io
Sostituisci quanto segue:
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
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: gateway-cluster-admin-group subjects: - kind: Group name: principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io
Sostituisci quanto segue:
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.
Identifica il cluster GKE che vuoi configurare e impostalo come contesto attivo utilizzando il comando seguente:
kubectl config use-context CLUSTER_CONTEXT
Sostituisci
CLUSTER_CONTEXT
con il nome del contesto appropriato per il tuo cluster.Con il cluster GKE desiderato impostato come contesto attivo, applica la configurazione RBAC al cluster utilizzando questo comando:
kubectl apply -f RBAC_PATH
Sostituisci
RBAC_PATH
con il percorso del file RBAC che hai creato o modificato.Quando esegui questo comando, gli utenti o i gruppi specificati nella configurazione RBAC ora dispongono delle autorizzazioni per accedere e gestire il cluster GKE di destinazione, come definito nelle regole RBAC.
Se devi apportare modifiche successive alle autorizzazioni, modifica il file RBAC e riapplicalo al cluster ripetendo i passaggi precedenti.
Metodo n. 2: concedere l'accesso a identità esterne durante la creazione o l'aggiornamento del cluster
Il metodo n. 2 concede l'accesso a identità esterne durante il processo di creazione o aggiornamento del cluster.
Per creare un cluster, segui i passaggi descritti in Creare un cluster. Per aggiornare un cluster, segui i passaggi descritti in Aggiornare un cluster.
Quando esegui il comando gcloud
per creare o aggiornare un cluster, specifica i parametri
admin-users
e/o admin-groups
nel seguente modo:
gcloud container aws clusters [create|update] CLUSTER_NAME \
--location=LOCATION
--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.LOCATION
: la Google Cloud regione in cui viene gestito il 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.
Riepilogo della concessione dell'accesso di ID esterni ai cluster GKE
Dopo aver eseguito il metodo 1 o il metodo 2, gli utenti esterni o i gruppi specificati possono
utilizzare Google Cloud console
per connettersi e visualizzare i dettagli del cluster. In alternativa, possono
utilizzare kubectl
con l'identità dalla gcloud CLI
per gestire, manipolare e comunicare con il cluster.
Per eseguire i comandi kubectl
sui cluster GKE, consulta
come generare una voce kubeconfig
.