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 e accesso in lettura limitato ai secret.
Gli utenti hanno accesso in scrittura a Grafana per modificare le dashboard. |
Amministratore di piattaforma | anthos-piattaforma-amministratore |
|
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 di ruoli in base al gruppo
- Creare associazioni di ruoli basate sull'utente
(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 utilizzaregid-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.
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 |
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 |
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.