Configurazione controllo dell'accesso basato sui ruoli

I passaggi che seguono ti guideranno nella configurazione del controllo dell'accesso basato sui ruoli (RBAC) 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 Kubernetes, 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 ulteriori informazioni, 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 relativi ruoli all'interno di uno spazio.

kf space-users

Esempi:

Assegna il ruolo SpaceDeveloper a un utente.

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

Assegna il ruolo SpaceDeveloper a un gruppo.

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

Assegna 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 di app di Knowledge Factory 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

Esegui SSH in un pod Kubernetes che esegue l'app: posix-terminal kf ssh app_name

Visualizza i service broker disponibili:

kf marketplace

Visualizzare le app come SpaceManager o SpaceAuditor

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

kf apps

Visualizzare gli 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 un'autorizzazione più privilegiata può testare le autorizzazioni di un altro membro utilizzando gli indicatori di rappresentazione: --as e --as-group.

Ad esempio, in qualità di amministratore del cluster, puoi verificare se un utente (nome utente: bob) dispone dell'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