Configurazione del controllo dell'accesso basato sui ruoli

I passaggi seguenti ti aiuteranno a configurare il controllo dell'accesso basato sui ruoli (RBAC, Role-Based Access Control) in uno spazio Kf.

Prima di iniziare

Segui la guida RBAC di GKE prima di continuare con i passaggi successivi.

Configurare Identity and Access Management (IAM)

Oltre alle autorizzazioni concesse tramite RBAC di Kf, gli utenti, i gruppi o gli account di servizio devono essere autenticati anche per visualizzare i cluster GKE a livello di progetto. Questo requisito è lo stesso per la configurazione del RBAC di GKE, il che significa che gli utenti/gruppi devono disporre almeno dell'autorizzazione IAM container.clusters.get nel progetto contenente il cluster. Questa autorizzazione è inclusa nel ruolo container.clusterViewer e in altri ruoli con più privilegi. Per saperne di più, consulta Interazione con Identity and Access Management.

Assegna container.clusterViewer a un utente o a un gruppo.

gcloud projects add-iam-policy-binding ${CLUSTER_PROJECT_ID} \
  --role="container.clusterViewer" \
  --member="${MEMBER}"

Ecco alcuni esempi di valori membro:

  • user:test-user@gmail.com
  • group:admins@example.com
  • serviceAccount:test123@example.domain.com

Gestire l'abbonamento allo spazio come SpaceManager

Il ruolo di amministratore del cluster o i membri con il ruolo SpaceManager possono assegnare il ruolo a un utente, a un gruppo o a un account di servizio.

kf set-space-role MEMBER -t [Group|ServiceAccount|User]

Il ruolo di amministratore del cluster o i membri con il ruolo SpaceManager possono rimuovere un membro da un ruolo.

kf unset-space-role MEMBER -t [Group|ServiceAccount|User]

Puoi visualizzare i membri e i loro ruoli all'interno di uno spazio.

kf space-users

Esempi:

Assegnare il ruolo SpaceDeveloper a un utente.

kf set-space-role alice@example.com SpaceDeveloper

Assegnare il ruolo SpaceDeveloper a un gruppo.

kf set-space-role devs@example.com SpaceDeveloper -t Group

Assegnare il ruolo SpaceDeveloper a un account di servizio.

kf set-space-role sa-dev@example.domain.com SpaceDeveloper -t ServiceAccount

Sviluppo di app come SpaceDeveloper

I membri con il ruolo SpaceDeveloper possono eseguire operazioni di sviluppo dell'app Kf all'interno dello spazio.

Per inviare un'app:

kf push app_name -p [PATH_TO_APP_ROOT_DIRECTORY]

Per visualizzare i log di un'app: posix-terminal kf logs app_name

Accedi tramite SSH a un pod Kubernetes che esegue l'app: posix-terminal kf ssh app_name

Visualizza i service broker disponibili:

kf marketplace

Visualizza le app come SpaceManager o SpaceAuditor

I membri con il ruolo SpaceManager o SpaceAuditor possono visualizzare le app disponibili all'interno dello spazio:

kf apps

Visualizza spazi Kf all'interno di un cluster

Tutti i ruoli (SpaceManager, SpaceDeveloper e SpaceAuditor) possono visualizzare gli spazi Kf disponibili all'interno di un cluster:

kf spaces

Visualizzare i membri dello spazio e i relativi ruoli all'interno di uno spazio.

kf space-users

Flag di impersonificazione

Per verificare l'autorizzazione di un membro, un membro con più privilegi può testare le autorizzazioni di un altro membro utilizzando i flag di rappresentazione: --as e --as-group.

Ad esempio, in qualità di amministratore del cluster, puoi verificare se un utente (nome utente: bob) ha l'autorizzazione per eseguire il push di un'app.

kf push APP_NAME --as bob

Verifica che un gruppo (gruppo-gestore@example.com) abbia l'autorizzazione per assegnare l'autorizzazione ad altri membri.

kf set-space-role bob SpaceDeveloper --as-group manager-group@example.com