Como configurar o controle de acesso com base em papéis

Veja 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 do RBAC do GKE antes de continuar com as etapas a seguir.

Configurar o gerenciamento de identidade e acesso (IAM)

Além das permissões concedidas no RBAC do Kf, usuários, grupos ou contas de serviço também precisam ser autenticados para visualizar clusters do GKE no nível do 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 gerenciamento de identidade e acesso.

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

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

Os valores de membros de exemplo 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 do 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 ver 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 apps como SpaceDeveloper

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

Para enviar um aplicativo:

kf push app_name -p [PATH_TO_APP_ROOT_DIRECTORY]

Para ver 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 apps como SpaceManager ou SpaceAuditor

Os membros com o papel SpaceManager ou SpaceAuditor podem ver os apps 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

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

kf space-users

Sinalizações de falsificação de identidade

Para verificar a permissão de um membro, um membro com permissão mais privilegiada pode testar as permissões de outro membro usando as sinalizações 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