Como configurar o controle de acesso baseado em papéis

Confira nas etapas a seguir como configurar o controle de acesso baseado em papéis em um espaço 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 ver clusters do GKE no projeto. Esse requisito é o mesmo da configuração do RBAC do GKE, ou seja, 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 ao 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 admin 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 admin 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 ver os membros e os papéis deles em um espaço.

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 apps como SpaceDeveloper

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

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 app: posix-terminal kf ssh app_name

Veja os agentes de serviço disponíveis:

kf marketplace

Ver apps como SpaceManager ou SpaceAuditor

Os membros com o papel SpaceManager ou SpaceAuditor podem conferir os apps disponíveis no espaço:

kf apps

Visualizar Spaces do Kf dentro de um cluster

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

kf spaces

Veja os membros e os papéis deles em um espaço.

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 sinalizações de falsificação de identidade: --as e --as-group.

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

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