Questa guida è rivolta agli amministratori della piattaforma che devono configurare il gateway di connessione per l'utilizzo da parte degli account utente del progetto, utilizzando Google Gruppi per l'autorizzazione. Prima di leggere questa pagina, assicurati che tu abbia familiarità con i concetti descritti nella nostra panoramica. Per autorizzare i singoli account, consulta la configurazione predefinita.
Questa configurazione consente agli utenti di accedere ai cluster del parco risorse configurati utilizzando la Google Cloud CLI, il gateway di connessione e la Google Cloud console.
Questa funzionalità utilizza Google Gruppi associati a Google Workspace o a qualsiasi edizione di Cloud Identity.
Tipi di cluster supportati
Puoi configurare il controllo dell'accesso con Google Gruppi tramite il gateway di connessione per i seguenti tipi di cluster:
- GKE su Google Cloud: tutte le versioni disponibili. Per configurare il gateway di connessione, configura Google Gruppi per RBAC, quindi concedi i ruoli IAM a Google Gruppi.
- Google Distributed Cloud (solo software) su VMware e bare metal: tutte le versioni disponibili.
- Google Distributed Cloud connesso: tutte le versioni disponibili.
- Cluster collegati GKE: versione 1.28.0-gke.2 e successive.
GKE su AWS e GKE su Azure: tutte le versioni disponibili.
Per utilizzare questa funzionalità con ambienti non inclusi nell'elenco precedente, 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'iscrizione al gruppo significa che non devi configurare un'autorizzazione separata per ogni account, il che semplifica la gestione e il controllo delle policy. 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. Puoi configurare il gateway di connessione per ottenere le informazioni sull'appartenenza a Google Gruppi per ogni utente che accede al cluster. Puoi quindi utilizzare queste informazioni nelle policy di controllo dell'accesso.
Di seguito è riportato il flusso tipico per un utente che esegue l'autenticazione e i comandi su un cluster con questo servizio abilitato. Affinché questo flusso vada a buon fine, nel cluster deve esistere una policy RBAC per un gruppo che:
Contiene l'utente
alice@example.comcome membro.È un gruppo nidificato di
gke-security-groups@example.com.
- L'utente
alice@example.comaccede utilizzando la propria identità Google e, se prevede di utilizzare il cluster dalla riga di comando, ottiene il gatewaykubeconfigdel cluster come descritto in Utilizzo del gateway di connessione. - L'utente invia una richiesta eseguendo un comando
kubectlo aprendo le pagine Workload o Browser oggetti di Google Kubernetes Engine nella Google Cloud console. - 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 al pod
anthos-identity-servicenel cluster, che la convalida. - Il pod
anthos-identity-servicerestituisce le informazioni sull'utente e sul gruppo al server API Kubernetes. Il server API Kubernetes può quindi utilizzare queste informazioni per autorizzare la richiesta in base alle policy RBAC configurate del cluster.
Prima di iniziare
- Accedi al tuo Google Cloud account. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Verifica di disporre delle autorizzazioni necessarie per completare questa guida.
Abilita le API Connect Gateway, GKE Connect, GKE Hub, Anthos Identity Service e Cloud Resource Manager:
Ruoli necessari per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (
roles/serviceusage.serviceUsageAdmin), che contiene l'serviceusage.services.enableautorizzazione. Scopri come concedere i ruoli.gcloud services enable connectgateway.googleapis.com
gkeconnect.googleapis.com gkehub.googleapis.com anthosidentityservice.googleapis.com cloudresourcemanager.googleapis.com -
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Verifica di disporre delle autorizzazioni necessarie per completare questa guida.
Abilita le API Connect Gateway, GKE Connect, GKE Hub, Anthos Identity Service e Cloud Resource Manager:
Ruoli necessari per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (
roles/serviceusage.serviceUsageAdmin), che contiene l'serviceusage.services.enableautorizzazione. Scopri come concedere i ruoli.gcloud services enable connectgateway.googleapis.com
gkeconnect.googleapis.com gkehub.googleapis.com anthosidentityservice.googleapis.com cloudresourcemanager.googleapis.com - Per i cluster esterni a Google Cloud, i componenti di autenticazione nel tuo cluster devono chiamare l'API Cloud Identity. Verifica se hai policy di rete che richiedono che il traffico in uscita dal cluster passi attraverso un proxy.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare il gateway di connessione e i cluster, chiedi all'amministratore di concederti il ruolo IAM Editor (roles/editor) nel progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Configura utenti e gruppi
Assicurati che i gruppi che vuoi utilizzare con questa funzionalità siano configurati come segue:
- 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 creare il gruppo utilizzando la Console di amministrazione Google. - Segui le istruzioni riportate 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 utilizzare lo stesso nome di dominio del gruppo.
Configura il supporto per i gruppi
Il gateway Connect utilizza i componenti di autenticazione nel cluster per recuperare le informazioni sull'iscrizione al gruppo. Per abilitare i componenti richiesti, consulta uno dei seguenti documenti a seconda del tipo di cluster:
- GKE su Google Cloud: configura Google Gruppi per RBAC, quindi vai alla sezione Concedi ruoli IAM ai gruppi.
- Cluster collegati GKE:
Google Distributed Cloud: abilita il supporto per i gruppi aggiornando la risorsa personalizzata ClientConfig nel cluster. Distributed Cloud crea automaticamente un ClientConfig denominato
defaultnello spazio dei nomikube-publicin ogni cluster. Per verificare che questa risorsa personalizzata esista, esegui questo comando:kubectl --kubeconfig CLUSTER_KUBECONFIG get ClientConfig default -n kube-publicSostituisci
CLUSTER_KUBECONFIGcon il percorso del kubeconfig del cluster.
Le sezioni seguenti mostrano come aggiornare la risorsa personalizzata ClientConfig per abilitare il supporto dei gruppi. Queste sezioni si applicano solo ai cluster Google Distributed Cloud. Per altri tipi di cluster, come GKE su Google Cloud; GKE su AWS; e GKE su Azure, vai alla sezione Concedi ruoli IAM ai gruppi.
Per Distributed Cloud, puoi configurare il supporto per i gruppi per i singoli cluster o per un parco risorse. Il tipo di cluster che utilizzi determina la modalità di configurazione del supporto dei gruppi, come segue:
- Distributed Cloud connesso: solo singoli cluster. La configurazione a livello di parco risorse non è supportata.
- Google Distributed Cloud (solo software) su VMware e bare metal: singoli cluster o parchi risorse.
Configura il supporto dei gruppi utilizzando l'API GKE Fleet
Per Google Distributed Cloud (solo software) su VMware e bare metal, puoi configurare il supporto dei gruppi a livello di parco risorse. Se hai già configurato l'autenticazione a livello di parco risorse, ad esempio per un altro provider di identità, l'autenticazione dei gruppi è già abilitata. Tuttavia, se la tua policy di rete richiede che il traffico in uscita passi attraverso un proxy, devi aggiornare la configurazione esistente con le informazioni relative a quel proxy.
Per configurare il supporto dei gruppi a livello di parco risorse, seleziona una delle seguenti opzioni:
Console
Nella Google Cloud console, vai alla pagina GKE Identity Service.
Fai clic su Abilita Identity Service.
Seleziona i cluster Google Distributed Cloud (solo software) su VMware e bare metal che vuoi configurare.
Fai clic su Aggiorna configurazione. Si apre il riquadro Modifica configurazione dei cluster di Identity Service.
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 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, la configurazione dell'identità viene applicata ai cluster selezionati.
gcloud
- Abilita la funzionalità del servizio di identità a livello di parco risorse e configura i cluster, come descritto in Configurare la gestione dell'autenticazione a livello di parco risorse.
Nel file
auth-config.yamlche contiene la specifica ClientConfig, aggiungi il seguente campo:spec: authentication: - name: google-authentication-method google: disable: falseIl valore
falsenel campogoogle.disableabilita il supporto dei gruppi. Per disabilitare il supporto dei gruppi, modifica questo valore intrue.(Facoltativo) Se devi accedere al provider di identità Google tramite un proxy, aggiungi il campo
proxyalla configurazione precedente:spec: authentication: - name: google-authentication-method google: disable: false proxy: PROXY_URLSostituisci
PROXY_URLcon l'indirizzo del server proxy per connetterti all'identità Google. Ad esempio:http://user:password@10.10.10.10:8888Applica la configurazione a un cluster nel parco risorse:
gcloud container fleet identity-service apply \ --membership=CLUSTER_NAME \ --config=/path/to/auth-config.yaml
Sostituisci
CLUSTER_NAMEcon il nome di appartenenza univoco del cluster all'interno del parco risorse.
Dopo aver configurato il supporto dei gruppi a livello di parco risorse, il controller del parco risorse gestisce la configurazione. La configurazione a livello di parco risorse sovrascrive le modifiche locali apportate alla configurazione in un cluster specifico.
Configura il supporto dei gruppi per i singoli cluster
Per tutti i cluster Distributed Cloud, incluso Distributed Cloud connesso, abilita il supporto dei gruppi aggiornando il ClientConfig default in ogni cluster:
Recupera i dettagli dell'appartenenza del cluster:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get memberships membership -o yamlSostituisci
USER_CLUSTER_KUBECONFIGcon il percorso del file kubeconfig per il cluster. Se nel 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.Nella risposta, fai riferimento al campo
spec.owner.idper recuperare i dettagli dell'appartenenza del cluster. L' identificatore di appartenenza ha il formato//gkehub.googleapis.com/projects/PROJECT_NUMBER/locations/global/memberships/MEMBERSHIP.L'output è simile al seguente:
id: //gkehub.googleapis.com/projects/123456789/locations/global/memberships/xy-ab12cd34efApri il ClientConfig
defaultnel cluster per la modifica:kubectl --kubeconfig USER_CLUSTER_KUBECONFIG -n kube-public edit clientconfig defaultPer abilitare il supporto dei gruppi, aggiungi il campo
googleal campospec.authentication:spec: internalServer: https://kubernetes.default.svc authentication: - google: audiences: - "CLUSTER_IDENTIFIER" name: google-authentication-methodSostituisci
CLUSTER_IDENTIFIERcon i dettagli dell'appartenenza del cluster.Assicurati che il campo
internalServerabbia il valorehttps://kubernetes.default.svc.(Facoltativo) Se devi accedere al provider di identità Google tramite un proxy, aggiungi il campo
proxyalla configurazione precedente:spec: internalServer: https://kubernetes.default.svc authentication: - google: audiences: - "CLUSTER_IDENTIFIER" name: google-authentication-method proxy: PROXY_URLSostituisci
PROXY_URLcon l'indirizzo del server proxy per connetterti all'identità Google. Ad esempio:http://user:password@10.10.10.10:8888
Concedi ruoli IAM a Google Gruppi
I gruppi hanno bisogno dei seguenti ruoli aggiuntivi Google Cloud per interagire con i cluster connessi tramite il gateway:
roles/gkehub.gatewayAdmin. Questo ruolo consente ai membri del gruppo di accedere all'API del gateway di connessione.- Se i membri del gruppo hanno bisogno solo dell'accesso in sola lettura ai cluster connessi, puoi utilizzare
roles/gkehub.gatewayReader. - Se i membri del gruppo hanno bisogno dell'accesso in lettura/scrittura ai cluster connessi, puoi utilizzare
roles/gkehub.gatewayEditor.
- Se i membri del gruppo hanno bisogno solo dell'accesso in sola lettura ai cluster connessi, puoi 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.gatewayReaderogkehub.gatewayEditor. - PROJECT_ID è il tuo progetto
Per saperne di più sulla concessione di autorizzazioni e ruoli IAM, consulta Concessione, modifica e revoca dell'accesso alle risorse.
Configura le policy 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 specifichi 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 della policy 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ù sulla specifica delle autorizzazioni RBAC, consulta Utilizzo dell'autorizzazione RBAC.
Passaggi successivi
- Scopri come utilizzare il gateway di connessione per connetterti ai cluster dalla riga di comando.
- Consulta un esempio di come utilizzare il gateway di connessione come parte dell'automazione DevOps nel nostro tutorial Integrazione con Cloud Build.