Questa pagina descrive gli ambiti di accesso predefiniti concessi ai nodi in di Google Kubernetes Engine (GKE).
Cosa sono gli ambiti di accesso?
Gli ambiti di accesso sono il metodo legacy per concedere le autorizzazioni per i nodi per i carichi di lavoro in esecuzione sui nodi se utilizzano credenziali predefinite dell'applicazione (ADC). Gli ambiti di accesso definiscono gli ambiti OAuth utilizzati nelle chiamate API dalle librerie client con gcloud CLI.
Ti consigliamo di non specificare ambiti di accesso tuoi. Dovresti invece utilizzare Autorizzazioni IAM o Controllo controllo dell'accesso basato su ruoli (RBAC) di Kubernetes per concedere l'accesso ad account di servizio IAM specifici o a Kubernetes account di servizio.
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
nodi. Questi ambiti di accesso abilitano funzionalità specifiche per GKE.
Puoi anche impostare gli ambiti di accesso manualmente utilizzando il flag --scopes
quando
crea
cluster standard.
Cluster Autopilot,
o pool di nodi. Tu
non può modificare gli ambiti di accesso sui pool di nodi esistenti. Crea invece un nuovo
pool di nodi con i nuovi ambiti ed eseguire la migrazione dei carichi di lavoro in quel pool di nodi.
Le seguenti sezioni descrivono gli ambiti di accesso predefiniti che GKE aggiunge ai nodi se hai specificato o meno un account di servizio personalizzato gli ambiti di accesso sono specificati manualmente.
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ì |
|
Configurazione di un account di servizio personalizzato per i carichi di lavoro
IAM è il controllo dell'accesso sistema per concedere i ruoli autorizzati a utenti e account di servizio all'interno del tuo progetto Google Cloud. Un account di servizio è un Account Google speciale che esegue attività come il deployment di applicazioni per conto tuo. Usa IAM per creare un account di servizio, quindi Associazioni di criteri IAM per proteggere l'account.
Se i tuoi carichi di lavoro richiedono l'accesso a Compute Engine, concedi il servizio account il ruolo Amministratore Compute Engine. Se i tuoi carichi di lavoro devono eseguire il pull di immagini private da Artifact Registry, consulta Configurazione del 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 il
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 i ruoli minima necessari
necessarie per il funzionamento del nodo GKE, esegui questo
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 ruoli aggiuntivi
Per concedere all'account di servizio l'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 agli account di servizio l'accesso alle immagini private archiviate in Artifact Registry, consulta Concedere l'accesso ai cluster Google Kubernetes Engine.
Creazione di un cluster o di un pool di nodi con l'account di servizio personalizzato
Per creare un cluster che utilizza l'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