Como configurar o controle de acesso baseado em papéis

Confira nas etapas a seguir como configurar o controle de acesso baseado em função (RBAC) em um Space do Kf.

Antes de começar

Siga o guia de RBAC do GKE antes de continuar com as etapas a seguir.

Configurar o Identity and Access Management (IAM)

Além das permissões concedidas pelo RBAC do Kf, usuários, grupos ou contas de serviço também precisam ser autenticados para visualizar clusters do GKE no projeto. Esse requisito é o mesmo da configuração do RBAC do GKE, o que significa que os usuários/grupos precisam ter pelo menos a permissão container.clusters.get do IAM no projeto que contém o cluster. Essa permissão é incluída pelo papel container.clusterViewer e outros papéis mais privilegiados. Para mais informações, consulte Interação com o Identity and Access Management.

Atribua container.clusterViewer a um usuário ou grupo.

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

Os exemplos de valores de membros são:

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

Gerenciar a assinatura do Space como SpaceManager

O papel de administrador de cluster, ou membros com o papel SpaceManager, pode atribuir um papel a um usuário, grupo ou conta de serviço.

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

O papel de administrador de cluster, ou membros com o papel SpaceManager, pode remover um membro de um papel.

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

É possível conferir os membros e os papéis deles em um Space.

kf space-users

Exemplos:

Atribuir o papel SpaceDeveloper a um usuário.

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

Atribuir o papel SpaceDeveloper a um grupo.

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

Atribuir o papel SpaceDeveloper a uma conta de serviço.

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

Desenvolvimento de aplicativos como SpaceDeveloper

Membros com o papel SpaceDeveloper podem executar operações de desenvolvimento de aplicativos do Kf dentro do Space.

Para enviar um aplicativo:

kf push app_name -p [PATH_TO_APP_ROOT_DIRECTORY]

Para conferir os registros de um aplicativo: posix-terminal kf logs app_name

SSH em um pod do Kubernetes executando o aplicativo: posix-terminal kf ssh app_name

Visualizar os agentes de serviço disponíveis:

kf marketplace

Visualizar aplicativos como SpaceManager ou SpaceAuditor

Os membros com o papel SpaceManager ou SpaceAuditor podem visualizar os aplicativos disponíveis no Space:

kf apps

Visualizar Spaces do Kf dentro de um cluster

Todos os papéis (SpaceManager, SpaceDeveloper e SpaceAuditor) podem visualizar os Spaces do Kf disponíveis em um cluster:

kf spaces

Confira os membros e os papéis deles em um Space.

kf space-users

Flags de falsificação de identidade

Um membro com mais privilégio pode testar as permissões de outro membro usando as flags de falsificação de identidade: --as e --as-group.

Por exemplo, como administrador de cluster, você pode verificar se um usuário (nome de usuário: bob) tem permissão para enviar um aplicativo.

kf push APP_NAME --as bob

Verifique se um grupo (manager-group@example.com) tem permissão para atribuir permissão a outros membros.

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