Questa pagina descrive gli ambiti di accesso predefiniti concessi ai nodi nei cluster di Google Kubernetes Engine (GKE). Leggendo questa pagina, scoprirai gli ambiti di accesso predefiniti concessi ai cluster e come configurare gli ambiti di accesso personalizzati, se necessario.
Questa pagina è rivolta a specialisti della sicurezza e operatori che creano e gestiscono cluster e devono comprendere l'accesso predefinito concesso ai cluster e come modificarlo, se necessario. Per saperne di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei Google Cloud contenuti, consulta Ruoli e attività comuni degli utenti GKE.
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 i carichi di lavoro utilizzano le credenziali predefinite dell'applicazione (ADC). Gli ambiti di accesso definiscono gli ambiti OAuth utilizzati nelle chiamate API dalle librerie client o da gcloud CLI.
Ti consigliamo di non specificare i tuoi ambiti di accesso. Invece, devi utilizzare le autorizzazioni IAM o il controllo dell'accesso basato sui ruoli (RBAC) di Kubernetes per concedere l'accesso a service account IAM o service account 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 al account di servizio utilizzato dai
nodi. Questi ambiti di accesso abilitano funzionalità specifiche per GKE.
Puoi anche impostare manualmente gli ambiti di accesso utilizzando il flag --scopes quando crei cluster Standard, cluster Autopilot, o node pool. Non puoi modificare gli ambiti di accesso nei node pool esistenti. Crea invece un nuovo pool di nodi con i nuovi ambiti ed esegui la migrazione dei carichi di lavoro in quel pool di nodi.
Le sezioni seguenti descrivono gli ambiti di accesso predefiniti che GKE aggiunge ai nodi in base al fatto che tu specifichi o meno un account di servizio personalizzato e se specifichi o meno 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 Compute Engine predefinito | No |
|
| Sì | Ambiti specificati manualmente | |
| Account di servizio 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 Compute Engine predefinito | No |
|
| Sì |
|
|
| Account di servizio personalizzato | No |
|
| Sì |
|
Configurare un account di servizio personalizzato per i carichi di lavoro
IAM è il sistema di controllo dell'accesso per la concessione di ruoli autorizzati a utenti e service account all'interno del Google Cloud progetto. Un service account è uno speciale Account Google che esegue attività, come il deployment di applicazioni, per tuo conto. Utilizza IAM per creare un account di servizio, quindi utilizza i binding dei criteri IAM per proteggere l'account.
Se i tuoi carichi di lavoro richiedono l'accesso a Compute Engine, concedi al service account il ruolo Amministratore Compute Engine. Se i tuoi carichi di lavoro devono eseguire il pull di immagini private da Artifact Registry, consulta Configurare controllo dell'accesso per i repository di 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 il account di servizio con i ruoli e le autorizzazioni minimi necessari per il funzionamento del nodo GKE, esegui i seguenti
comandi, dove $PROJECT è l'
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 ruoli aggiuntivi
Per concedere al account di servizio il ruolo Amministratore Compute Engine, esegui questo comando:
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/compute.admin
Per scoprire come concedere ai service account l'accesso alle immagini private archiviate in Artifact Registry, consulta Concedere l'accesso ai cluster Google Kubernetes Engine.
Crea un cluster o pool di nodi con il account di servizio personalizzato
Per creare un cluster che utilizzi il account di servizio personalizzato, esegui questo comando:
gcloud container clusters create --service-account=$NODE_SA_EMAIL
Per creare un pool di nodi in un cluster esistente:
gcloud container node-pools create --service-account=$NODE_SA_EMAIL