Configurazione dei ruoli di autorizzazione

Questa pagina è dedicata agli operatori dell'infrastruttura.

In questa pagina sono descritti i ruoli di autorizzazione, le associazioni di ruoli e i diritti di accesso alle risorse per la modalità privata di Anthos.

Ruoli di autorizzazione

La modalità privata di Anthos ha quattro ruoli di autorizzazione preimpostati:

Nome del ruolo Nome ClusterRole di Kubernetes (sul cluster di amministrazione) Autorizzazioni
Operatore dell'infrastruttura operatore-infrastruttura-anthos Accesso completo in lettura/scrittura a tutte le risorse.
Operatore dell'infrastruttura (sola lettura) operatore-infrastruttura-antho-sola lettura Accesso in sola lettura alla maggior parte degli elementi in Anthos Management Center, ClusterRole/Role, ClusterRole/Role binding, definizioni di risorse personalizzate e accesso limitato in lettura ai secret.

Gli utenti hanno accesso in scrittura a Grafana per modificare le dashboard.

Amministratore di piattaforma anthos-piattaforma-amministratore
  • Accesso in lettura/scrittura a cluster utente, gestione delle funzionalità di Anthos, servizio Anthos Identity e Anthos Config Management.
  • Accesso in lettura ed eliminazione ai computer.
  • Accesso in sola lettura al servizio di avvio e alle definizioni delle risorse personalizzate.
Amministratore di piattaforma (sola lettura) anthos-platform-admin-sola lettura Accesso in sola lettura a tutto ciò che può essere visualizzato da un amministratore della piattaforma.

Gli utenti hanno accesso in scrittura a Grafana per modificare le dashboard.

Chiunque abbia accesso all'ADMIN_KUBECONFIG è autenticato come membro nel gruppo system:master di Kubernetes, il che consente qualsiasi azione sul server API Kubernetes. Ad esempio, possono elencare tutti i secret eseguendo:

kubectl get secrets --all-namespaces --kubeconfig=${ADMIN_KUBECONFIG}

Dove ${ADMIN_KUBECONFIG} è il percorso del file kubeconfig per il cluster di amministrazione.

L'accesso tramite ADMIN_KUBECONFIG è autenticato come nome utente generico admin, il che rende difficile monitorare la persona che esegue il comando. Di conseguenza, è importante conservare ADMIN_KUBECONFIG in un luogo sicuro e utilizzarlo solo quando è necessario (ad esempio, quando si impostano associazioni di ruoli iniziali per la piattaforma o si recuperano da errori OIDC).

Accesso al Centro di gestione e metriche

La modalità privata di Anthos sincronizza automaticamente tutti gli utenti associati a questi quattro ruoli nella lista consentita dell'accesso al Centro di gestione e alle metriche (Grafana).

I ruoli con diritti di accesso in sola lettura vengono rifiutati se tenti di eseguire un'azione di scrittura nel Centro di gestione.

Associazioni di ruoli

Durante la configurazione di OIDC nella Console di gestione, puoi impostare un utente iniziale associato al ruolo di amministratore della piattaforma. Una volta eseguito l'accesso a kubeconfig per l'utente amministratore di piattaforma, esistono due approcci per associare un altro utente al ruolo di amministratore della piattaforma:

(Consigliato) Configura GroupMembership nel provider OIDC e crea associazioni dei ruoli basate su Group

Questo approccio associa uno dei tuoi gruppi a un ruolo preimpostato per concedere a tutti i membri del gruppo gli stessi diritti di accesso del ruolo preimpostato.

Prima di iniziare

Prima di iniziare, verifica quanto segue:

  • Determina il provider OIDC da cui proviene il gruppo.
  • Il campo Rivendicazione di gruppo nella scheda Profilo OIDC deve corrispondere al nome della rivendicazione che contiene informazioni sull'iscrizione al gruppo sul lato OIDC. La modalità privata Anthos assegna a questo campo un valore predefinito di groups, ma se il tuo provider OIDC ha un valore diverso, assicurati di averlo impostato nella scheda Profilo OIDC
  • Prendi nota del Prefisso del gruppo nella scheda Profilo OIDC. Devi includere il prefisso del gruppo prima di tutti i nomi dei gruppi. Ad esempio, se hai specificato gid- come prefisso del gruppo e "group-admin" gruppo nel tuo provider OIDC, devi utilizzare gid-admin-group. Tieni presente che il separatore - fa parte del prefisso del gruppo e il sistema non aggiunge alcun separatore per te.

Gestire le associazioni utilizzando la Console Centro di gestione

Puoi utilizzare la scheda Accesso nella console del Centro gestione per gestire le associazioni dei ruoli in base ai gruppi. Applica il profilo identità durante la creazione del cluster

Impossibile aggiungere o aggiornare un'associazione a un ruolo con più privilegi rispetto all'account attualmente collegato. Ad esempio, se hai eseguito l'accesso come amministratore della piattaforma, non puoi associare un gruppo a un ruolo dell'operatore dell'infrastruttura.

Gestisci le associazioni utilizzando kubectl

In alternativa, esegui il comando seguente per creare un'associazione dei ruoli basata su Gruppo. Il valore passato a group= deve corrispondere al nome del tuo gruppo nel provider OIDC con il prefisso del tuo gruppo:

kubectl create clusterrolebinding anthos-platform-admin-group-binding \
--kubeconfig=ADMIN_OIDC_KUBECONFIG --clusterrole=anthos-platform-admin \
--group=gid-anthos-platform-admin-group

Qualsiasi utente che hai aggiunto a anthos-platform-admin-group nel provider OIDC ora dispone di tutte le autorizzazioni amministrative della piattaforma.

Allo stesso modo, puoi utilizzare il comando seguente per associare un gruppo al ruolo di amministratore della piattaforma (sola lettura):

kubectl create clusterrolebinding anthos-platform-admin-read-only-group-binding \
  --kubeconfig=ADMIN_OIDC_KUBECONFIG --clusterrole=anthos-platform-admin-read-only \
  --group=gid-anthos-platform-admin-read-only-group

Per impedire l'escalation dei privilegi, un amministratore della piattaforma non può associare un gruppo a un operatore dell'infrastruttura o a un operatore dell'infrastruttura (sola lettura). Per inizializzare il primo gruppo di operatori di infrastruttura, devi disporre di:ADMIN_KUBECONFIG

kubectl create clusterrolebinding anthos-platform-operator-group-binding \
  --kubeconfig=${ADMIN_KUBECONFIG} --clusterrole=anthos-infrastructure-operator --group=gid-anthos-platform-operator-group

Successivamente, puoi utilizzare un KUBECONFIG con un account operatore dell'infrastruttura connesso per associare altri gruppi a qualsiasi ruolo:

# Bind a group to infrastructure operator (read-only):
kubectl create clusterrolebinding anthos-platform-operator-read-only-binding \
  --clusterrole=anthos-infrastructure-operator-read-only --group=gid-anthos-platform-operator-read-only-group --kubeconfig=${ADMIN_OIDC_KUBECONFIG}

Creare associazioni di ruoli basate sull'utente

Puoi anche creare associazioni di ruoli in base al ruolo Utente. I comandi per creare associazioni di ruoli sono simili a quelli del gruppo. Sostituisci --group con --user.

Devi anche aggiungere il prefisso utente del tuo profilo OIDC a ogni nome utente. Ad esempio, se il tuo provider OIDC è impostato per avere un prefisso utente uid- e vuoi associare joedoe@example.com a un ruolo, utilizza uid-joedoe@example.com.

Puoi anche utilizzare la scheda Accesso nella console del Centro gestione per gestire le associazioni di ruoli per gli utenti.

Di seguito è riportato un comando di esempio per creare un'associazione dei ruoli per charlie@example.com e concedergli le autorizzazioni di amministratore della piattaforma:

kubectl create clusterrolebinding charlie-platform-admin-binding \
  --clusterrole=anthos-platform-admin --user=uid-charlie@example.com --kubeconfig=ADMIN_OIDC_KUBECONFIG

Per eliminare un'associazione di ruolo e rimuovere i diritti di accesso di un utente, puoi aggiornare le associazioni esistenti anziché eliminarle (ad esempio, revocare il diritto di amministratore Platform di charlie@example.com):

kubectl patch clusterrolebinding charlie-platform-admin-binding \
  -p '{"subjects":[]}' --kubeconfig=${ADMIN_OIDC_KUBECONFIG}

Puoi anche chiedere al tuo operatore di infrastruttura di eliminare ClusterRoleBinding.

Note

  • Per ulteriori informazioni sull'autorizzazione, consulta la pagina Utilizzare l'autorizzazione RBAC
  • Non sono stati impostati ruoli di autorizzazione preimpostati nei cluster utente. L'accesso del server API Kubernetes in ogni accesso al cluster utente è aperto a chiunque abbia la proprietà kubeconfig.
  • Gli amministratori della piattaforma non possono eliminare un'associazione di ruolo, al fine di impedire agli amministratori della piattaforma di eliminare le associazioni per gli utenti con privilegi più elevati. Per revocare l'accesso di un utente, puoi aggiornare l'associazione di ruolo che vincola l'utente a un elenco di oggetti vuoto. L'azione di eliminazione nella pagina Identità e accesso della Console di gestione del Centro di gestione aggiorna anche le associazioni di ruoli con un elenco di oggetti vuoto, anziché eliminare le associazioni per lo stesso motivo.
  • Il nome della risorsa ClusterRoleBinding deve essere univoco. Soltanto l'ultima associazione applicata o creata viene applicata quando sono presenti più associazioni di ruoli cluster con lo stesso nome.

Diritti di accesso alle risorse Kubernetes per ogni ruolo preimpostato

Questa sezione fornisce i dettagli di tutti i diritti di accesso alle risorse Kubernetes per ciascun ruolo preimpostato.

Operatore dell'infrastruttura

Il ruolo dell'operatore dell'infrastruttura corrisponde al ruolo anthos-infrastructure-operator di Kubernetes, che può eseguire qualsiasi verbo su qualsiasi risorsa.

Operatore dell'infrastruttura (sola lettura)

Il ruolo dell'operatore dell'infrastruttura (sola lettura) corrisponde al ruolo Kubernetes anthos-infrastructure-operator-read-only, che può leggere tutte le risorse negli apiApi elencati qui con accesso in lettura limitato a Secret. L'accesso in lettura a Secret è limitato solo al token di accesso al cluster di amministrazione, al kubeconfig del cluster utente e ai secret con un'etichetta logmon in kube-system per il logging e il monitoraggio.

GruppiAPI Risorsa Verbi
"" configmaps trova, elenca, guarda
"" endpoints trova, elenca, guarda
"" richieste di volumi permanenti trova, elenca, guarda
"" richieste/stato del volume permanente trova, elenca, guarda
"" pods trova, elenca, guarda
"" replicacontroller trova, elenca, guarda
"" replicacontroller/scala trova, elenca, guarda
"" serviceaccounts trova, elenca, guarda
"" services trova, elenca, guarda
"" servizi/stato trova, elenca, guarda
"" associazioni trova, elenca, guarda
"" events trova, elenca, guarda
"" rangerange trova, elenca, guarda
"" spazi dei nomi/stato trova, elenca, guarda
"" pod/log trova, elenca, guarda
"" pod/stato trova, elenca, guarda
"" replicacontroller/status trova, elenca, guarda
"" quote delle risorse trova, elenca, guarda
"" quote/stato delle risorse trova, elenca, guarda
"" spazi dei nomi trova, elenca, guarda
apiextensions.k8s.io definizioni delle risorse personalizzate trova, elenca, guarda
app * trova, elenca, guarda
scalabilità automatica * trova, elenca, guarda
batch * trova, elenca, guarda
cert-manager.io * trova, elenca, guarda
estensioni * trova, elenca, guarda
metrics.k8s.io * trova, elenca, guarda
networking.k8s.io * trova, elenca, guarda
criterio * trova, elenca, guarda
rbac.authorization.k8s.io * trova, elenca, guarda
addons.gke.io * trova, elenca, guarda
authentication.gke.io * trova, elenca, guarda
baremetal.cluster.gke.io * trova, elenca, guarda
cluster.x-k8s.io * trova, elenca, guarda
managementcenter.anthos.cloud.google.com * trova, elenca, guarda

Amministratore di piattaforma

Il ruolo di amministratore della piattaforma è in possesso dei seguenti diritti di accesso:

Risorsa Verbi
spazi dei nomi trova, elenca, guarda, crea, aggiorna
pods trova, elenca, guarda
services trova, elenca, guarda
events trova, elenca, guarda
configmaps trova, elenca, guarda
deployment trova, elenca, guarda
daemonsets trova, elenca, guarda
set di repliche trova, elenca, guarda
statefulsets trova, elenca, guarda
job trova, elenca, guarda
cronjobs trova, elenca, guarda
memberships.managementcenter.anthos.cloud.google.com get, list, watch, create, update, delete
onpremuserclusters.managementcenter.anthos.cloud.google.com get, list, watch, create, update, delete
clusters.baremetal.cluster.gke.io trova, elenca, guarda, crea
nodepools.baremetal.cluster.gke.io trova, elenca, guarda, crea
clusters.cluster.x-k8s.io trova, elenca, guarda
machines.baremetal.cluster.gke.io trova, elenca, guarda
inventorymachines.baremetal.cluster.gke.io trova, elenca, guarda
addresspools.managementcenter.anthos.cloud.google.com trova, elenca, guarda
bootstrapservicebindings.managementcenter.anthos.cloud.google.com get, list, watch, create, update, delete
bootstrapservices.managementcenter.anthos.cloud.google.com trova, elenca, guarda
bootstrapservicebindingitems.managementcenter.anthos.cloud.google.com trova, elenca, guarda
adminoperators.managementcenter.anthos.cloud.google.com trova, elenca, guarda
clientconfigs.authentication.gke.io get, list, watch, create, update, delete
configmanagementbindings.managementcenter.anthos.cloud.google.com get, list, watch, create, update, delete
configmanagementfeaturespecs.managementcenter.anthos.cloud.google.com get, list, watch, create, update, delete
configmanagementbindingitems.managementcenter.anthos.cloud.google.com get, list, watch, create, update, delete
servicemeshbindings.managementcenter.anthos.cloud.google.com get, list, watch, create, update, delete
servicemeshfeaturespecs.managementcenter.anthos.cloud.google.com get, list, watch, create, update, delete
servicemeshbindingitems.managementcenter.anthos.cloud.google.com get, list, watch, create, update, delete
identityservicebindings.managementcenter.anthos.cloud.google.com get, list, watch, create, update, delete
identityservicefeaturespecs.managementcenter.anthos.cloud.google.com get, list, watch, create, update, delete
identityservicebindingitems.managementcenter.anthos.cloud.google.com get, list, watch, create, update, delete
updatablecomponents.managementcenter.anthos.cloud.google.com trova, elenca, guarda
domainconfigs.managementcenter.anthos.cloud.google.com get, list, watch, create, update, delete
logmons.addons.gke.io get, list, watch, create, update, delete
clusterrolebindings.rbac.authorization.k8s.io trova, elenca, guarda, crea, aggiorna
customresourcedefinitions.apiextensions.k8s.io trova, elenca, guarda

Gli amministratori della piattaforma hanno accesso in lettura a secrets per consentire loro di ottenere un kubeconfig che viene autenticato come ruolo cluster-admin in un cluster utente.

Gli amministratori delle piattaforme possono leggere e scrivere secrets e configmaps con un'etichetta logmon in kube-system per configurare Logmon.

Amministratore di piattaforma (sola lettura)

Il ruolo di amministratore della piattaforma (sola lettura) ha gli stessi diritti di accesso di un amministratore della piattaforma, ad eccezione di quanto segue:

  • Tutti i verbi relativi alla scrittura (creazione, aggiornamento ed eliminazione) non sono consentiti.
  • Per accedere a un cluster utente, un amministratore della piattaforma (sola lettura) può leggere solo un kubeconfig che viene autenticato come ruolo view nel cluster utente.

Passaggi successivi