Questa pagina descrive gli ambiti di accesso predefiniti concessi ai nodi dei cluster di Google Kubernetes Engine (GKE). In questa pagina scoprirai gli ambiti di accesso predefiniti concessi ai cluster e come configurare ambiti di accesso personalizzati, se necessario.
Questa pagina è rivolta a esperti di sicurezza e operatori che creano e gestiscono i cluster e devono comprendere l'accesso predefinito concesso ai cluster e come modificarlo, se necessario. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei Google Cloud contenuti, consulta Ruoli e attività utente comuni di GKE Enterprise.
Che cosa sono gli ambiti di accesso?
Gli ambiti di accesso sono il metodo legacy per concedere le autorizzazioni per i nodi e per i carichi di lavoro in esecuzione sui nodi, se questi utilizzano le credenziali predefinite dell'applicazione (ADC). Gli ambiti di accesso definiscono gli ambiti OAuth utilizzati nelle chiamate API dalle librerie client o dall'interfaccia a riga di comando gcloud.
Ti consigliamo di non specificare i tuoi ambiti di accesso. Devi invece utilizzare autorizzazioni IAM o controllo dell'controllo dell'accesso basato su ruoli (RBAC) di Kubernetes per concedere l'accesso a account di servizio IAM o Kubernetes specifici.
Ambiti di accesso predefiniti
Quando crei un nuovo cluster GKE, Google Cloud assegna un insieme predefinito di ambiti di accesso ai nodi in base all'account di servizio utilizzato dai nodi. Questi ambiti di accesso attivano funzionalità specifiche per GKE.
Puoi anche impostare gli ambiti di accesso manualmente utilizzando il flag --scopes
quando crei cluster standard.
Cluster Autopilot o pool di nodi. Non puoi modificare gli ambiti di accesso nei pool di nodi esistenti. Crea invece un nuovo
pool di nodi con i nuovi ambiti ed esegui la migrazione dei workload al nuovo pool di nodi.
Le sezioni seguenti descrivono gli ambiti di accesso predefiniti che GKE aggiunge ai nodi in base al fatto che tu specifichi un account di servizio personalizzato e se specifichi manualmente gli ambiti di accesso.
Cluster Autopilot
Service account | Hai specificato manualmente gli ambiti di accesso? | Ambiti di accesso aggiunti da GKE |
---|---|---|
Account di servizio predefinito Compute Engine | No |
|
Sì | Ambiti specificati manualmente | |
Service account personalizzato | No | https://www.googleapis.com/auth/cloud-platform |
Sì | Ambiti specificati manualmente |
Cluster standard
Service account | Ambiti di accesso specificati manualmente? | Ambiti di accesso GKE |
---|---|---|
Account di servizio predefinito Compute Engine | No |
|
Sì |
|
|
Service account personalizzato | No |
|
Sì |
|
Configurare un account di servizio personalizzato per i carichi di lavoro
IAM è il sistema di controllo dell'accesso per concedere ruoli autorizzati a utenti e account di servizio all'interno del tuoGoogle Cloud progetto. Un account di servizio è un Account Google speciale che esegue attività per tuo conto, ad esempio il deployment di applicazioni. Utilizza IAM per creare un account di servizio, quindi utilizza le associazioni dei criteri IAM per proteggere l'account.
Se i tuoi carichi di lavoro richiedono l'accesso a Compute Engine, concedi all'account di servizio il ruolo Amministratore Compute Engine. Se i tuoi workload devono estrarre immagini private da Artifact Registry, consulta Configurare controllo dell'accesso per i repository Artifact Registry.
Crea un account di servizio
Per creare un account di servizio personalizzato denominato kubernetes-engine-node-sa
, esegui i seguenti comandi:
export NODE_SA_NAME=kubernetes-engine-node-sa
gcloud iam service-accounts create $NODE_SA_NAME \
--display-name "GKE Node Service Account"
export NODE_SA_EMAIL=`gcloud iam service-accounts list --format='value(email)' \
--filter='displayName:GKE Node Service Account'`
Concedi ruoli minimi
Per configurare l'account di servizio con i ruoli e le autorizzazioni minimi necessari per il funzionamento del tuo nodo GKE, esegui i seguenti comandi, dove $PROJECT
è il tuo
ID progetto:
export PROJECT=`gcloud config get-value project`
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/monitoring.metricWriter
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/monitoring.viewer
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/logging.logWriter
Concedi altri ruoli
Per concedere all'account di servizio il ruolo Amministratore Compute Engine, esegui il seguente comando:
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/compute.admin
Per scoprire come concedere agli account di servizio l'accesso alle immagini private archiviate in Artifact Registry, consulta Concedere l'accesso ai cluster Google Kubernetes Engine.
Crea un cluster o un pool di nodi con l'account di servizio personalizzato
Per creare un cluster che utilizza l'account di servizio personalizzato, esegui il seguente comando:
gcloud container clusters create --service-account=$NODE_SA_EMAIL
Per creare un node pool in un cluster esistente:
gcloud container node-pools create --service-account=$NODE_SA_EMAIL