Configurar o controlo de acesso baseado em funções

Os passos seguintes explicam como configurar o controlo de acesso baseado em funções (RBAC) num espaço do Kf.

Antes de começar

Siga o guia RBAC do GKE antes de continuar com os passos seguintes.

Configure a gestão de identidade e de acesso (IAM)

Além das autorizações concedidas através do RBAC do Kf, os utilizadores, os grupos ou as contas de serviço também têm de ser autenticados para ver clusters do GKE ao nível do projeto. Este requisito é o mesmo que para configurar o RBAC do GKE, o que significa que os utilizadores/grupos têm de ter, pelo menos, a autorização do IAM container.clusters.get no projeto que contém o cluster. Esta autorização está incluída na função container.clusterViewer e noutras funções com mais privilégios. Para mais informações, reveja o artigo Interação com a gestão de identidades e acessos.

Atribua container.clusterViewer a um utilizador ou grupo.

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

Os valores de membro de exemplo são:

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

Faça a gestão da subscrição do espaço como gestor do espaço

A função de administrador do cluster ou os membros com a função SpaceManager podem atribuir uma função a um utilizador, um grupo ou uma conta de serviço.

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

A função de administrador do cluster ou os membros com a função SpaceManager podem remover um membro de uma função.

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

Pode ver os membros e as respetivas funções num espaço.

kf space-users

Exemplos:

Atribua a função SpaceDeveloper a um utilizador.

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

Atribua a função SpaceDeveloper a um grupo.

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

Atribua a função SpaceDeveloper a uma conta de serviço.

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

Programação de apps como SpaceDeveloper

Os membros com a função SpaceDeveloper podem realizar operações de desenvolvimento de apps Kf no espaço.

Para enviar uma app:

kf push app_name -p [PATH_TO_APP_ROOT_DIRECTORY]

Para ver os registos de uma app: posix-terminal kf logs app_name

SSH para um pod do Kubernetes que executa a app: posix-terminal kf ssh app_name

Veja os mediadores de serviços disponíveis:

kf marketplace

Veja apps como SpaceManager ou SpaceAuditor

Os membros com a função de Gestor do espaço ou Auditor do espaço podem ver as apps disponíveis no espaço:

kf apps

Veja espaços Kf num cluster

Todas as funções (SpaceManager, SpaceDeveloper e SpaceAuditor) podem ver os espaços Kf disponíveis num cluster:

kf spaces

Veja os membros do espaço e as respetivas funções num espaço.

kf space-users

Sinalizações de roubo de identidade

Para validar a autorização de um membro, um membro com uma autorização mais privilegiada pode testar as autorizações de outro membro através das flags de roubo de identidade: --as e --as-group.

Por exemplo, como administrador do cluster, pode verificar se um utilizador (nome de utilizador: bob) tem autorização para enviar uma app.

kf push APP_NAME --as bob

Verificar se um grupo (manager-group@example.com) tem autorização para atribuir autorizações a outros membros.

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