Controllo dell'accesso basato sui ruoli

Kf fornisce un insieme di ruoli Kubernetes che consentono a più team di condividere un cluster Kf. In questa pagina vengono descritti i ruoli e le best practice da seguire per il loro utilizzo.

Quando utilizzare i ruoli Kf

I ruoli Kf consentono a più team di condividere un cluster Kubernetes con Kf installato. I ruoli forniscono l'accesso ai singoli spazi Kf.

Utilizza i ruoli Kf per condividere l'accesso a un cluster se si verificano le seguenti condizioni:

  • Il cluster è utilizzato da team attendibili.
  • I carichi di lavoro sul cluster condividono le stesse ipotesi sul livello di sicurezza fornito dall'ambiente.
  • Il cluster esiste in un progetto Google Cloud strettamente controllato.

I ruoli Kf non:

Ruoli Kf

Le seguenti sezioni descrivono i ruoli Kubernetes RBAC forniti da Kf e il modo in cui interagiscono con IAM di Google Kubernetes Engine (GKE).

Ruoli predefiniti

Kf offre vari ruoli Kubernetes predefiniti per aiutarti a fornire l'accesso a diversi soggetti con ruoli diversi. Ogni ruolo predefinito può essere associato a un soggetto all'interno di uno spazio dei nomi Kubernetes gestito da uno spazio Kf.

Quando un soggetto è associato a un ruolo all'interno di uno spazio dei nomi Kubernetes, il suo accesso è limitato agli oggetti esistenti nello spazio dei nomi che corrispondono alle concessioni elencate nel ruolo. In Kf, alcune risorse sono definite nell'ambito del cluster. Kf controlla le modifiche ai soggetti nello spazio dei nomi e concede ruoli aggiuntivi, limitati, nell'ambito del cluster.

Ruolo Titolo Descrizione Ambito
space-auditor Revisore dello spazio Consente l'accesso di sola lettura a uno spazio. Spazio
space-developer Sviluppatore dello spazio Consente agli sviluppatori di applicazioni di eseguire il deployment e gestire le applicazioni all'interno di uno spazio. Spazio
space-manager Gestore dello spazio Consente l'amministrazione e la possibilità di gestire i revisori, gli sviluppatori e i gestori in uno spazio. Spazio
SPACE_NAME-manager Gestore dello spazio dinamico Fornisce l'accesso in scrittura a un singolo oggetto Space, concesso automaticamente a tutti i soggetti con il ruolo space-manager all'interno dello Spazio denominato. Cluster
kf-cluster-reader Lettore cluster Consente l'accesso di sola lettura agli oggetti Kf con ambito cluster, concesso automaticamente a tutti i criteri space-auditor, space-developer e space-manager. Cluster

Per informazioni sulle regole dei criteri che compongono ogni ruolo predefinito, consulta la documentazione di riferimento sui ruoli Kf.

Ruoli IAM

I ruoli Kf forniscono il controllo dell'accesso agli oggetti all'interno di un cluster Kubernetes. Ai soggetti deve essere concesso anche un ruolo IAM per l'autenticazione nel cluster:

  • Agli amministratori di piattaforma deve essere concesso il ruolo IAM roles/container.admin. Ciò consentirà loro di installare, eseguire l'upgrade ed eliminare Kf, nonché di creare ed eliminare oggetti Kf con ambito cluster come Spazi o ClusterServiceBrokers.

  • Agli utenti finali Kf deve essere concesso il ruolo IAM roles/container.viewer. Questo ruolo consentirà loro di eseguire l'autenticazione in un cluster con autorizzazioni limitate che possono essere espanse utilizzando i ruoli Kf.

IAM offre ruoli predefiniti aggiuntivi per GKE per risolvere casi d'uso più avanzati:

Role Title Description Lowest resource
roles/container.admin Kubernetes Engine Admin

Provides access to full management of clusters and their Kubernetes API objects.

To set a service account on nodes, you must also have the Service Account User role (roles/iam.serviceAccountUser) on the user-managed service account that your nodes will use.

  • Project
roles/container.cloudKmsKeyUser Kubernetes Engine KMS Crypto Key User Allow the Kubernetes Engine service agent in the cluster project to call KMS with user provided crypto keys to sign payloads.
roles/container.clusterAdmin Kubernetes Engine Cluster Admin

Provides access to management of clusters.

To set a service account on nodes, you must also have the Service Account User role (roles/iam.serviceAccountUser) on the user-managed service account that your nodes will use.

  • Project
roles/container.clusterViewer Kubernetes Engine Cluster Viewer

Provides access to get and list GKE clusters.

roles/container.defaultNodeServiceAccount Kubernetes Engine Default Node Service Account Least privilege role to use as the default service account for GKE Nodes.
roles/container.developer Kubernetes Engine Developer

Provides access to Kubernetes API objects inside clusters.

  • Project
roles/container.hostServiceAgentUser Kubernetes Engine Host Service Agent User

Allows the Kubernetes Engine service account in the host project to configure shared network resources for cluster management. Also gives access to inspect the firewall rules in the host project.

roles/container.viewer Kubernetes Engine Viewer

Provides read-only access to resources within GKE clusters, such as nodes, pods, and GKE API objects.

  • Project

Mappatura dei ruoli di Cloud Foundry a Kf

I ruoli forniti da Cloud Foundry sono simili ai ruoli predefiniti di Kf. Cloud Foundry prevede due tipi principali di ruoli:

  • Ruoli assegnati dal sottosistema account utente e autenticazione (UAA) che forniscono ambiti OAuth granulari applicabili a tutti gli endpoint dell'API Cloud Foundry.
  • Ruoli concessi all'interno dell'API Cloud Controller (CAPI) che forniscono un accesso granulare alle risorse API.

Ruoli UAA

I ruoli forniti da UAA sono più simili ai ruoli IAM con ambito di progetto:

  • Gli amministratori di Cloud Foundry possono eseguire attività amministrative per tutti gli spazi e le organizzazioni Cloud Foundry. Il ruolo è più simile al ruolo IAM roles/container.admin.
  • Gli utenti amministratore di sola lettura in Cloud Foundry possono accedere a tutti gli endpoint dell'API Cloud Foundry. Il ruolo è più simile al ruolo IAM roles/container.admin.
  • Gli utenti revisore globale di Cloud Foundry hanno accesso in lettura a tutti gli endpoint dell'API Cloud Foundry, tranne i secret. Non esiste un ruolo IAM equivalente, ma puoi creare un ruolo personalizzato con autorizzazioni simili.

Ruoli API Cloud Controller

I ruoli forniti da CAPI sono più simili a quelli Kf concessi all'interno di un cluster ai soggetti che hanno il ruolo IAM roles/container.viewer nel progetto proprietario:

  • Gli auditor dello spazio in Cloud Foundry hanno accesso in lettura alle risorse in uno spazio CF. Il ruolo è più simile al ruolo Kf space-auditor.
  • Gli sviluppatori di spazi in Cloud Foundry hanno la possibilità di eseguire il deployment e gestire le applicazioni in uno spazio CF. Il ruolo è più simile al ruolo Kf space-developer.
  • I gestori dello spazio in Cloud Foundry possono modificare le impostazioni per lo spazio CF e assegnare gli utenti ai ruoli. Il ruolo è più simile al ruolo Kf space-manager.

Passaggi successivi