Configura Connect Gateway con Google Gruppi
Questa guida è rivolta agli amministratori di piattaforma che devono configurare il gateway Connect in modo che venga utilizzato dagli account utente del proprio progetto, utilizzando Google Gruppi per l'autorizzazione. Prima di leggere questa guida, dovresti conoscere i concetti esposti nella nostra panoramica. Per autorizzare account individuali, consulta la configurazione predefinita.
Questa configurazione consente agli utenti di accedere ai cluster del parco risorse configurati utilizzando Google Cloud CLI, il gateway Connect e la console Google Cloud.
Questa funzionalità utilizza i gruppi Google associati a Google Workspace o a qualsiasi versione di Cloud Identity.
Tipi di cluster supportati
Se utilizzi cluster GKE su Google Cloud con Connect Gateway, non è necessario seguire l'intera configurazione con GKE Identity Service per utilizzare Google Gruppi per l'autorizzazione. Segui invece le istruzioni riportate in Configurare Google Gruppi per RBAC, che consente anche agli utenti di accedere ai cluster GKE dalla console Google Cloud utilizzando Google Gruppi per il controllo dell'accesso. Al termine, segui le istruzioni riportate di seguito in Concedere ruoli IAM a Google Gruppi per consentire ai membri del gruppo di accedere ai cluster tramite il gateway Connect.
Puoi configurare il controllo dell'accesso con Google Gruppi tramite il gateway Connect per i seguenti tipi di cluster:
- Cluster GKE registrati
- Cluster nei deployment Google Distributed Cloud (on-premise) su VMware e on bare metal a partire da Anthos (GKE Enterprise) dalla versione 1.13 in poi
- GKE su AWS e GKE su Azure a partire da Kubernetes versione 1.25.
Cluster collegati delle versioni 1.26.0-gke.8, 1.27.0-gke.5, 1.28.0-gke.2 o successive.
Se devi eseguire l'upgrade dei cluster on-premise per utilizzare questa funzionalità, vedi Upgrade dei cluster su VMWare e Upgrade dei cluster su bare metal.
Per utilizzare questa funzionalità con ambienti diversi da quelli elencati in precedenza, contatta l'assistenza clienti Google Cloud o il team di Connect Gateway.
Come funziona
Come descritto nella panoramica, spesso è utile poter consentire agli utenti di accedere ai cluster sulla base della loro appartenenza a Google Gruppi, ovvero ai gruppi creati in Google Workspace. Autorizzare in base all'appartenenza ai gruppi significa che non devi impostare un'autorizzazione separata per ciascun account, il che rende i criteri più semplici da gestire e più facili da controllare. Quindi, ad esempio, puoi facilmente condividere l'accesso a un 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. Con alcune configurazioni aggiuntive mediante GKE Identity Service, puoi configurare il gateway Connect in modo da ottenere informazioni sull'iscrizione ai gruppi Google per ciascun utente che accede al cluster. Puoi quindi utilizzare le informazioni sui gruppi nei criteri di controllo dell'accesso.
Di seguito è riportato il flusso tipico per un utente che esegue l'autenticazione ed esegue i comandi su un cluster in cui questo servizio è abilitato. Affinché questo flusso abbia esito positivo, deve esistere un criterio RBAC nel cluster per un gruppo che:
Contiene l'utente
alice@example.com
come membro.È un gruppo nidificato di
gke-security-groups@example.com
.
- L'utente
alice@example.com
accede utilizzando la propria identità Google e, se intende utilizzare il cluster dalla riga di comando, ottiene il gateway del clusterkubeconfig
come descritto in Utilizzo del gateway Connect. - L'utente invia una richiesta eseguendo un comando
kubectl
oppure aprendo le pagine Carichi di lavoro o Browser oggetti di Google Kubernetes Engine nella console Google Cloud. - La richiesta viene ricevuta dal servizio Connect, che esegue un controllo di autorizzazione con IAM.
- Il servizio Connect inoltra la richiesta all'agente Connect in esecuzione sul cluster. La richiesta è accompagnata dalle informazioni delle credenziali dell'utente da utilizzare per l'autenticazione e l'autorizzazione nel cluster.
- L'agente Connect inoltra la richiesta al server API Kubernetes.
- Il server API di Kubernetes inoltra la richiesta a GKE Identity Service, che la convalida.
- GKE Identity Service restituisce le informazioni su utenti e gruppi al server API Kubernetes. Il server API Kubernetes può quindi utilizzare queste informazioni per autorizzare la richiesta in base ai criteri RBAC configurati nel cluster.
Prima di iniziare
Assicurati di avere installato i seguenti strumenti a riga di comando:
- L'ultima versione di Google Cloud CLI dello strumento a riga di comando per interagire con Google Cloud.
- Lo strumento a riga di comando di Kubernetes,
kubectl
, per interagire con i tuoi cluster.
Se utilizzi Cloud Shell come ambiente shell per interagire con Google Cloud, questi strumenti sono installati automaticamente.
Assicurati di aver inizializzato la gcloud CLI per utilizzarla con il tuo progetto.
Questa guida presuppone che nel tuo progetto siano presenti
roles/owner
. Se non sei un proprietario del progetto, potresti avere bisogno di autorizzazioni aggiuntive per eseguire alcuni dei passaggi di configurazione.Per i cluster esterni a Google Cloud, GKE Identity Service deve chiamare l'API Google Identity dal cluster. Controlla se i criteri di rete richiedono che il traffico in uscita passi attraverso un proxy.
Configura utenti e gruppi
Assicurati che i gruppi che vuoi utilizzare con questa funzionalità siano configurati come segue:
- Assicurati che esista un gruppo nel Google Workspace della tua organizzazione con il formato
gke-security-groups@YOUR-DOMAIN
. Se non hai un gruppo di questo tipo, segui le istruzioni riportate in Creare un gruppo nell'organizzazione per creare un gruppo utilizzando la Console di amministrazione Google Workspace. - Segui le istruzioni 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 digke-security-groups
.
Gli account utente che vuoi utilizzare con questa funzionalità devono avere lo stesso nome di dominio del loro gruppo.
Abilita API
Per aggiungere il gateway al progetto, abilita l'API Connect gateway e le API di dipendenza richieste. Se i tuoi utenti vogliono eseguire l'autenticazione nei cluster solo utilizzando la console Google Cloud, non è necessario abilitare connectgateway.googleapis.com
, ma le API rimanenti.
PROJECT_ID=example_project
gcloud services enable --project=${PROJECT_ID} \
connectgateway.googleapis.com \
anthos.googleapis.com \
gkeconnect.googleapis.com \
gkehub.googleapis.com \
cloudresourcemanager.googleapis.com
Configura il servizio di identità GKE
La funzionalità di supporto di Google Gruppi del gateway di Connect utilizza il servizio di identità GKE per ottenere da Google informazioni sull'iscrizione al gruppo. Scopri di più sul servizio di identità GKE in Introduzione a GKE Identity Service.
Se utilizzi cluster GKE con il gateway, non devi configurare il servizio di identità GKE per utilizzare il supporto di Google Gruppi. Segui invece le istruzioni in Configurare Google Gruppi per RBAC e passa a Concedi ruoli IAM per concedere l'accesso ai cluster attraverso il gateway.
Se utilizzi cluster collegati a GKE con il gateway, GKE Identity Service non è necessario per il supporto di Google Gruppi. Segui le istruzioni relative al tipo di cluster scelto per configurare il supporto di Google Gruppi:
- Connettiti al cluster collegato EKS
- Connettiti al cluster collegato ad AKS
- Connettiti ad altri tipi di cluster
Assicurati che il servizio di identità GKE sia installato
GKE Identity Service è installato per impostazione predefinita sui cluster GKE a partire dalla versione 1.7 (anche se il supporto di Google Gruppi richiede la versione 1.13 o successive). Puoi verificare che sia installato correttamente nel cluster eseguendo questo comando:
kubectl --kubeconfig CLUSTER_KUBECONFIG get all -n anthos-identity-service
Sostituisci CLUSTER_KUBECONFIG
con il percorso a kubeconfig del cluster.
Configurare l'assistenza per Google Gruppi
Se utilizzi GKE su AWS o GKE su Azure, il cluster viene configurato automaticamente per supportare Google Gruppi e puoi vai a Concedi ruoli IAM a Google Gruppi.
Se utilizzi Google Distributed Cloud on VMware o bare metal, come configurare il servizio di identità GKE determina in che modo è necessario configurare la funzione Google Gruppi.
Se utilizzi il servizio di identità GKE per la prima volta, puoi scegliere se configurare Google Gruppi a livello di Floet (consigliato) o Per cluster.
Se non sei un nuovo utente del servizio di identità GKE, tieni presente uno dei seguenti aspetti:
- Se hai già configurato GKE Identity Service per un altro provider di identità a livello di parco risorse, la funzionalità Google Gruppi è abilitata per impostazione predefinita. Consulta la sezione Floet di seguito per ulteriori dettagli ed eventuali configurazioni aggiuntive di cui potresti avere bisogno.
Se hai già configurato GKE Identity Service per un altro provider di identità in base al cluster, consulta la sezione Per cluster di seguito per istruzioni su come aggiornare la configurazione per la funzionalità Google Gruppi.
Parco risorse
Puoi utilizzare la console Google Cloud o la riga di comando per configurare l'accesso ai gruppi Google a livello di parco risorse.
Se hai già configurato GKE Identity Service a livello di parco risorse con un altro provider di identità (come Microsoft AD FS o Okta), il gateway La funzionalità di Google Gruppi è già abilitata per impostazione predefinita nei cluster, a condizione che il provider di identità Google sia raggiungibile senza il per utilizzare un proxy.
Console
Se non hai già configurato GKE Identity Service per un parco risorse, segui le istruzioni in Configurare i cluster per GKE Identity Service.
Seleziona i cluster e aggiorna la configurazione
- Nella console Google Cloud, vai alla pagina Gestore funzionalità.
- Fai clic su Details (Dettagli) nel riquadro Identity Service (Servizio di identità). Vengono visualizzati i dettagli del cluster del progetto.
- Fai clic su Aggiorna servizio di identità per aprire il riquadro di configurazione.
- Seleziona i cluster che vuoi configurare. Puoi scegliere singoli cluster o specificare che tutti i cluster siano configurati con la stessa configurazione dell'identità.
- Nella sezione Configura provider di identità, puoi scegliere di conservare, aggiungere, aggiornare o rimuovere un provider di identità.
- Fai clic su Continua per andare al passaggio di configurazione successivo. Se hai selezionato almeno un cluster idoneo per questa configurazione, viene visualizzata la sezione Autenticazione Google.
- 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.
- Fai clic su Aggiorna configurazione. In questo modo verrà applicata la configurazione dell'identità sui cluster selezionati.
gcloud
Se non hai già configurato GKE Identity Service per un parco risorse,
segui le istruzioni in Configurare i cluster per GKE Identity Service.
Specifica solo la configurazione seguente nel file auth-config.yaml
:
spec:
authentication:
- name: google-authentication-method
google:
disable: false
Configurazione dell'accesso a Google Gruppi mediante un proxy
Se devi accedere al provider di identità Google tramite un proxy, usa un campo proxy
nel file auth-config.yaml
. Potresti dover impostare questa opzione se, ad esempio, il cluster si trova su una rete privata e deve connettersi a un provider di identità pubblica.
Devi aggiungere questa configurazione anche se hai già configurato GKE Identity Service per un altro provider.
Per configurare proxy
, ecco come aggiornare la sezione authentication
del file di configurazione esistente auth-config.yaml
.
spec:
authentication:
- name: google-authentication-method
google:
disable: false
proxy: PROXY_URL
dove
disable
(facoltativo) indica se vuoi attivare o disattivare la funzionalità Google Gruppi per i cluster. Questo valore è impostato su false per impostazione predefinita. Se vuoi disattivare questa funzionalità, puoi impostarla su true.PROXY_URL
(facoltativo) è l'indirizzo del server proxy per la connessione all'identità Google. Ad esempio:http://user:password@10.10.10.10:8888
Applica la configurazione
Per applicare la configurazione a un cluster, esegui questo comando:
gcloud container fleet identity-service apply \ --membership=CLUSTER_NAME \ --config=/path/to/auth-config.yaml
dove
CLUSTER_NAME
è il nome univoco dell'appartenenza al cluster all'interno del parco risorse.
Una volta applicata, questa configurazione viene gestita dal servizio di identità GKE un controller di deployment. Qualsiasi modifica locale apportata alla configurazione del client di GKE Identity Service viene riconciliata con controller con la configurazione specificata in questa configurazione.
Per cluster
Per configurare il cluster in modo che utilizzi il servizio di identità GKE con la funzionalità Google Gruppi,
devi aggiornare il servizio di identità GKE ClientConfig
del cluster.
Si tratta di un tipo di risorsa personalizzata (CRD) di Kubernetes utilizzato per la configurazione del cluster.
Ogni cluster GKE Enterprise ha una risorsa ClientConfig
denominata default
nel
kube-public
che aggiorni con i dettagli di configurazione.
Per modificare la configurazione, utilizza il comando seguente.
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG -n kube-public edit clientconfig default
dove
USER_CLUSTER_KUBECONFIG
è il percorso del file kubeconfig del cluster.
Se sono presenti più contesti in kubeconfig, viene utilizzato quello attuale. Potresti dover reimpostare il contesto attuale nel cluster corretto prima di eseguire il comando.
Ecco un esempio di come puoi aggiornare ClientConfig
con una nuova
metodo di autenticazione con una configurazione di tipo google
per attivare la funzionalità Google Gruppi.
Se il campo internalServer
è vuoto, assicurati che sia impostato su https://kubernetes.default.svc
,
come mostrato di seguito.
spec:
authentication:
- google:
audiences:
- "CLUSTER_IDENTIFIER"
name: google-authentication-method
proxy: PROXY_URL
internalServer: https://kubernetes.default.svc
dove
CLUSTER_IDENTIFIER
(obbligatorio) indica i dettagli dell'iscrizione del cluster.
Puoi recuperare i dettagli dell'appartenenza al cluster utilizzando il comando:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get memberships membership -o yaml
dove
USER_CLUSTER_KUBECONFIG
è il percorso
kubeconfig per il cluster.
Nella risposta, fai riferimento al campo spec.owner.id
per recuperare i dettagli dell'appartenenza del cluster.
Ecco un esempio di risposta che mostra i dettagli dell'appartenenza a un cluster:
id: //gkehub.googleapis.com/projects/123456789/locations/global/memberships/xy-ab12cd34ef
che corrisponde al seguente formato:
//gkehub.googleapis.com/projects/PROJECT_NUMBER/locations/global/memberships/MEMBERSHIP
Concedi ruoli IAM a Google Gruppi
I gruppi devono avere i seguenti ruoli Google Cloud aggiuntivi per interagire con i cluster connessi tramite il gateway:
roles/gkehub.gatewayAdmin
. Questo ruolo consente ai membri del gruppo di accedere all'API Connect gateway.- Se i membri del gruppo hanno bisogno dell'accesso di sola lettura ai cluster connessi, puoi utilizzare invece
roles/gkehub.gatewayReader
. - Se i membri del gruppo hanno bisogno dell'accesso in lettura/scrittura ai cluster connessi, puoi utilizzare invece
roles/gkehub.gatewayEditor
.
- Se i membri del gruppo hanno bisogno dell'accesso di sola lettura ai cluster connessi, puoi utilizzare invece
roles/gkehub.viewer
. Questo ruolo consente ai membri del gruppo di visualizzare le iscrizioni ai cluster registrate.
Per concedere questi ruoli, utilizza 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 di
roles/gkehub.gatewayAdmin
,roles/gkehub.gatewayReader
ogkehub.gatewayEditor
. - PROJECT_ID è il tuo progetto
Per saperne di più sulla concessione delle autorizzazioni e dei ruoli IAM, consulta Concessione, modifica e revoca dell'accesso alle risorse.
Configurare i criteri 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 un criterio di autorizzazione RBAC che specifichi le autorizzazioni di cui il gruppo dispone sul cluster.
Nell'esempio seguente, vedrai come concedere ai membri del gruppo cluster-admin-team
le autorizzazioni cluster-admin
sul cluster, salvare il file del criterio come /tmp/admin-permission.yaml e applicarlo al cluster associato al contesto attuale. 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 ulteriori informazioni sulla specifica delle autorizzazioni RBAC, consulta Utilizzo dell'autorizzazione RBAC.
Passaggi successivi
- Scopri come utilizzare il gateway Connect per connetterti ai cluster dalla riga di comando.
- Per un esempio di come utilizzare il gateway Connect come parte dell'automazione DevOps, consulta il nostro tutorial Integrazione con Cloud Build.