Configura Connect Gateway con Google Gruppi
Questa guida è destinata agli amministratori della piattaforma che devono configurare il gateway Connect per l'utilizzo da parte degli account utente del progetto, utilizzando Google Gruppi per l'autorizzazione. Prima di leggere questa pagina, assicurati di conoscere i concetti descritti nella nostra panoramica. Per autorizzare i singoli account, consulta la configurazione predefinita.
Questa configurazione consente agli utenti di accedere ai cluster fleet configurati utilizzando Google Cloud CLId, 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 devi 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 controllo dell'accesso'accesso. Una volta fatto, 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 Connect Gateway per i seguenti tipi di cluster:
- Cluster GKE registrati
- Cluster nelle implementazioni Google Distributed Cloud (on-premise) su VMware e su bare metal da Anthos (GKE Enterprise) versione 1.13 in poi
- GKE su AWS e GKE su Azure a partire dalla versione 1.25 di Kubernetes.
Cluster collegati dalle 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à, consulta Upgrade dei cluster su VMware e Upgrade dei cluster on bare metal.
Per utilizzare questa funzionalità con ambienti diversi da quelli elencati in questa sezione, contatta l'assistenza clienti Google Cloud o il team del gateway di connessione.
Come funziona
Come descritto nella panoramica, spesso è utile poter concedere agli utenti l'accesso ai cluster in base alla loro appartenenza a Google Gruppi, ovvero ai gruppi creati in Google Workspace. L'autorizzazione basata sull'appartenenza a un gruppo significa che non devi configurare un'autorizzazione separata per ogni account, il che rende le norme più semplici da gestire e controllare. Ad esempio, puoi condividere facilmente l'accesso al 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 che utilizzano GKE Identity Service, puoi configurare il gateway Connect per ottenere informazioni sull'appartenenza a Google Gruppi per ogni utente che accede al cluster. Puoi quindi utilizzare queste informazioni sui gruppi nelle tue norme di controllo dell'accesso.
Di seguito è riportato il flusso tipico per un utente che esegue l'autenticazione e i comandi in un cluster con questo servizio abilitato. Affinché questo flusso vada a buon fine, nel cluster deve esistere un criterio RBAC 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
esegue l'accesso utilizzando la propria identità Google e, se prevede di 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
o 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 dell'autorizzazione con IAM.
- Il servizio Connect inoltra la richiesta all'agente Connect in esecuzione sul cluster. La richiesta è accompagnata dalle informazioni sulle credenziali dell'utente da utilizzare per l'autenticazione e l'autorizzazione sul cluster.
- L'agente Connect inoltra la richiesta al server API Kubernetes.
- Il server API 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 del cluster.
Prima di iniziare
Assicurati di aver installato i seguenti strumenti a riga di comando:
- L'ultima versione di Google Cloud CLI, lo strumento a riga di comando per interagire con Google Cloud.
- Lo strumento a riga di comando Kubernetes,
kubectl
, per interagire con i cluster.
Se utilizzi Cloud Shell come ambiente shell per interagire con Google Cloud, questi strumenti vengono installati automaticamente.
Assicurati di aver inizializzato gcloud CLI per l'utilizzo con il tuo progetto.
Questa guida presuppone che tu abbia
roles/owner
nel tuo progetto. Se non sei il proprietario di un progetto, potresti aver bisogno di autorizzazioni aggiuntive per eseguire alcuni passaggi di configurazione.Per i cluster esterni a Google Cloud, GKE Identity Service deve chiamare l'API Google Identity dal cluster. Controlla se la tua policy di rete richiede 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 nel seguente modo:
- Assicurati che in Google Workspace della tua organizzazione esista un gruppo con il formato
gke-security-groups@YOUR-DOMAIN
. Se non hai un gruppo di questo tipo, segui le istruzioni riportate in Creare un gruppo nella tua organizzazione per crearlo utilizzando la Console di amministrazione Google Workspace. - Segui le istruzioni riportate in Aggiungere un gruppo a un altro gruppo per aggiungere i gruppi che vuoi utilizzare per controllo dell'accesso 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 utilizzare lo stesso nome di dominio del gruppo.
Abilita API
Per aggiungere il gateway al tuo progetto, abilita l'API Connect Gateway e le relative API di dipendenza richieste. Se gli utenti vogliono autenticarsi solo ai cluster utilizzando la Google Cloud console, non è necessario abilitare connectgateway.googleapis.com
, ma è necessario abilitare 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 GKE Identity Service
La funzionalità di supporto di Google Gruppi di Connect Gateway utilizza GKE Identity Service per ottenere informazioni sull'appartenenza ai gruppi da Google. Per scoprire di più su GKE Identity Service, consulta l'articolo Presentazione di GKE Identity Service.
Se utilizzi cluster GKE con il gateway, non devi configurare GKE Identity Service per utilizzare il supporto di Google Gruppi. Segui invece le istruzioni riportate in Configurare Google Gruppi per RBAC e continua con Concedere ruoli IAM per concedere l'accesso ai cluster tramite il gateway.
Se utilizzi i cluster GKE collegati con il gateway, GKE Identity Service non è necessario per il supporto di Google Gruppi. Segui le istruzioni per il tipo di cluster scelto per configurare il supporto di Google Gruppi:
- Connettiti al cluster EKS collegato
- Connettiti al tuo cluster AKS collegato
- Connettiti ad altri tipi di cluster
Assicurati che GKE Identity Service 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 sul cluster eseguendo questo comando:
kubectl --kubeconfig CLUSTER_KUBECONFIG get all -n anthos-identity-service
Sostituisci CLUSTER_KUBECONFIG
con il percorso del file kubeconfig del cluster.
Configurare l'assistenza Google Gruppi
Se utilizzi GKE su AWS o GKE su Azure, il cluster viene configurato automaticamente per supportare Google Gruppi e puoi passare a Concedere ruoli IAM a Google Gruppi.
Se utilizzi Google Distributed Cloud su VMware o bare metal, il modo in cui configuri GKE Identity Service determina come devi configurare la funzionalità Gruppi Google.
Se utilizzi GKE Identity Service per la prima volta, puoi scegliere tra la configurazione di Google Gruppi a livello di flotta (consigliato) o la configurazione per cluster.
Se non utilizzi GKE Identity Service per la prima volta, tieni presente quanto segue:
- Se hai già configurato GKE Identity Service per un altro provider di identità a livello di parco risorse, la funzionalità Gruppi Google è abilitata per impostazione predefinita. Per ulteriori dettagli e per la configurazione aggiuntiva necessaria, consulta la sezione Flotta di seguito.
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à Gruppi Google.
Parco risorse
Puoi utilizzare la console Google Cloud o la riga di comando per configurare l'accesso ai gruppi Google a livello di parco auto.
Se hai già configurato GKE Identity Service a livello di parco progetti con un altro provider di identità (ad esempio Microsoft AD FS o Okta), la funzionalità Google Gruppi del gateway Connect è già abilitata per impostazione predefinita sui cluster configurati, a condizione che il provider di identità Google sia raggiungibile senza la necessità di utilizzare un proxy.
Console
Se non hai ancora configurato GKE Identity Service per un parco progetti, segui le istruzioni riportate in Configurare i cluster per GKE Identity Service.
Seleziona i cluster e aggiorna la configurazione
- Nella console Google Cloud , vai alla pagina Feature Manager.
- Fai clic su Dettagli nel riquadro 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 devono essere 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 passare al passaggio di configurazione successivo. Se hai selezionato almeno un cluster idoneo per questa configurazione, viene visualizzata la sezione Autenticazione Google.
- Seleziona Abilita per attivare 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, la configurazione dell'identità viene applicata ai cluster selezionati.
gcloud
Se non hai ancora configurato GKE Identity Service per un parco progetti,
segui le istruzioni riportate in Configurare i cluster per GKE Identity Service.
Specifica solo la seguente configurazione nel file auth-config.yaml
:
spec:
authentication:
- name: google-authentication-method
google:
disable: false
Configurare l'accesso a Google Gruppi utilizzando un proxy
Se devi accedere al provider di identità Google tramite un proxy, utilizza un campo proxy
nel file auth-config.yaml
. Potresti dover impostare questo valore se, ad esempio, il tuo cluster si trova in una rete privata e deve connettersi a un provider di identità pubblico.
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. Per impostazione predefinita, questo valore è impostato su false. Se vuoi disattivare questa funzionalità, puoi impostarla su true.PROXY_URL
(facoltativo) è l'indirizzo del server proxy a cui connettersi 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 del cluster all'interno del parco risorse.
Una volta applicata, questa configurazione viene gestita dal controller GKE Identity Service. Eventuali modifiche locali apportate alla configurazione del client GKE Identity Service vengono riconciliate dal controller alla configurazione specificata in questa configurazione.
Per cluster
Per configurare il cluster in modo che utilizzi GKE Identity Service con la funzionalità Gruppi Google,
devi aggiornare ClientConfig
di GKE Identity Service 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
nello spazio dei nomi 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 in kubeconfig sono presenti più contesti, viene utilizzato il contesto corrente. Prima di eseguire il comando, potrebbe essere necessario reimpostare il contesto corrente sul cluster corretto.
Ecco un esempio di come puoi aggiornare ClientConfig
con un nuovo
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'appartenenza al cluster.
Puoi recuperare i dettagli dell'abbonamento del cluster utilizzando il comando:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get memberships membership -o yaml
dove
USER_CLUSTER_KUBECONFIG
è il percorso del file kubeconfig per il cluster.
Nella risposta, fai riferimento al campo spec.owner.id
per recuperare i dettagli dell'abbonamento del cluster.
Ecco un esempio di risposta che mostra i dettagli dell'appartenenza di 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 ai Gruppi Google
I gruppi hanno bisogno dei 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 gateway Connect.- Se i membri del gruppo hanno bisogno solo dell'accesso in sola lettura ai cluster connessi, è possibile utilizzare
roles/gkehub.gatewayReader
. - Se i membri del gruppo hanno bisogno dell'accesso in lettura/scrittura ai cluster connessi, è possibile utilizzare
roles/gkehub.gatewayEditor
.
- Se i membri del gruppo hanno bisogno solo dell'accesso in sola lettura ai cluster connessi, è possibile utilizzare
roles/gkehub.viewer
. Questo ruolo consente ai membri del gruppo di visualizzare le appartenenze ai cluster registrati.
Concedi questi ruoli utilizzando 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 tra
roles/gkehub.gatewayAdmin
,roles/gkehub.gatewayReader
ogkehub.gatewayEditor
. - PROJECT_ID è il tuo progetto
Puoi scoprire di più sulla concessione di ruoli e autorizzazioni IAM in 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 una policy delle autorizzazioni RBAC che specifica le autorizzazioni del gruppo sul cluster.
Nell'esempio seguente, vedrai come concedere ai membri del gruppo cluster-admin-team
le autorizzazioni cluster-admin
sul cluster, salvare il file delle norme come /tmp/admin-permission.yaml e applicarlo al cluster associato al contesto corrente. 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 saperne di più su come specificare le autorizzazioni RBAC, consulta Utilizzo dell'autorizzazione RBAC.
Passaggi successivi
- Scopri come utilizzare Connect Gateway per connetterti ai cluster dalla riga di comando.
- Consulta un esempio di come utilizzare il gateway Connect nell'ambito dell'automazione DevOps nel nostro tutorial Integrazione con Cloud Build.