Versão 2.5

Controle de acesso baseado em papéis

O Kf oferece um conjunto de papéis do Kubernetes que permitem que várias equipes compartilhem um cluster do Kf. Nesta página, descrevemos os papéis e as práticas recomendadas a serem seguidas ao usá-los.

Quando usar papéis do Kf

Os papéis do Kf permitem que várias equipes compartilhem um cluster do Kubernetes com o Kf instalado. Os papéis dão acesso a Spaces individuais do Kf.

Use papéis do Kf para compartilhar acesso a um cluster se o seguinte for verdadeiro:

  • O cluster é usado por equipes confiáveis.
  • As cargas de trabalho no cluster compartilham as mesmas suposições sobre o nível de segurança fornecido pelo ambiente.
  • O cluster existe em um projeto do Google Cloud altamente controlado.

Os papéis do Kf não irão:

Papéis do Kf

As seções a seguir descrevem os papéis de RBAC do Kubernetes fornecidos pelo Kf e como eles interagem com o IAM do Google Kubernetes Engine (GKE).

Papéis predefinidos

O Kf oferece vários papéis predefinidos do Kubernetes para ajudar você a conceder acesso a diferentes indivíduos que desempenham diferentes papéis. Cada papel predefinido pode ser vinculado a um indivíduo em um namespace gerenciado do Kubernetes por um Space do Kf.

Quando um indivíduo está vinculado a um papel em um namespace do Kubernetes, o acesso dele é limitado a objetos que existem no namespace que correspondem às concessões listadas no papel. No Kf, alguns recursos são definidos no escopo do cluster. O Kf observa as alterações nos indivíduos do namespace e concede papéis adicionais e limitados ao escopo do cluster.

Role Nome Descrição Escopo
space-auditor Auditor do Space Permite acesso somente leitura a um Space. Espaço
space-developer Desenvolvedor do Space Permite que os desenvolvedores de aplicativos implantem e gerenciem aplicativos em um Space. Espaço
space-manager Gerente do Space Permite a administração e a capacidade de gerenciar auditores, desenvolvedores e gerentes em um Space. Espaço
SPACE_NAME-manager Gerenciador dinâmico do Space Dá acesso de gravação a um único objeto do Space, concedido automaticamente a todos os indivíduos com o papel space-manager no Space nomeado. Cluster
kf-cluster-reader Leitor de cluster Permite acesso somente leitura a objetos do Kf com escopo de cluster, automaticamente concedidos a todos os space-auditor, space-developer e space-manager. Cluster

As informações sobre as regras de política que compõem cada papel predefinido podem ser encontradas na documentação de referência de papéis do Kf.

Papéis IAM

Os papéis do Kf fornecem controle de acesso para objetos em um cluster do Kubernetes. Os indivíduos também precisam receber um papel do IAM para se autenticar no cluster:

  • Os administradores da plataforma precisam receber o papel do IAM roles/container.admin. Assim, será possível instalar, fazer upgrade e excluir o Kf, além de criar e excluir objetos Kf com escopo de cluster, como Spaces ou ClusterServiceBrokers.

  • Os usuários finais do Kf precisam receber o papel roles/container.viewer do IAM. Esse papel permitirá que eles se autentiquem em um cluster com permissões limitadas que podem ser expandidas usando papéis do Kf.

O IAM oferece papéis predefinidos adicionais para o GKE para solucionar casos de uso mais avançados:

Papel Nome Descrição Menor recurso
roles/container.admin Administrador do Kubernetes Engine

Concede acesso ao gerenciamento total de clusters e dos respectivos objetos da API Kubernetes.

Para definir uma conta de serviço nos nós, você também precisa ter o papel de usuário da conta de serviço (roles/iam.serviceAccountUser) na conta de serviço padrão do Compute Engine.

  • Projeto
roles/container.clusterAdmin Administrador de cluster do Kubernetes Engine

Concede acesso ao gerenciamento de clusters.

Para definir uma conta de serviço nos nós, você também precisa ter o papel de usuário da conta de serviço (roles/iam.serviceAccountUser) na conta de serviço padrão do Compute Engine.

  • Projeto
roles/container.clusterViewer Visualizador de cluster do Kubernetes Engine Acesso para receber e listar clusters do GKE.
roles/container.developer Desenvolvedor do Kubernetes Engine

Concede acesso a objetos da API Kubernetes dentro de clusters.

  • Projeto
roles/container.hostServiceAgentUser User agent de serviço de host do Kubernetes Engine

Permite que a conta de serviço do Kubernetes Engine no projeto host configure recursos de rede compartilhados para o gerenciamento de clusters. Também concede acesso para inspecionar as regras de firewall no projeto do host.

roles/container.viewer Leitor do Kubernetes Engine

Fornece acesso somente leitura aos recursos do GKE.

  • Projeto

Como mapear papéis do Cloud Foundry para o Kf

O Cloud Foundry fornece papéis que são semelhantes aos papéis predefinidos do Kf. O Cloud Foundry tem dois tipos principais de papéis:

  • Papéis atribuídos pelo subsistema de conta de usuário e autenticação (UAA, na sigla em inglês) que fornecem escopos OAuth granulares para todos os endpoints da API Cloud Foundry.
  • Papéis concedidos na API Cloud Controller (CAPI) que fornecem acesso detalhado aos recursos da API.

Funções de UAA

Os papéis fornecidos pelas UAA são mais parecidos com os papéis do IAM com escopo do projeto:

  • Os usuários administradores no Cloud Foundry podem realizar atividades administrativas para todas as organizações e espaços do Cloud Foundry. O papel é mais semelhante ao papel roles/container.admin do IAM.
  • Os usuários administradores somente leitura no Cloud Foundry podem acessar todos os endpoints da API Cloud Foundry. O papel é mais semelhante ao papel roles/container.admin do IAM.
  • Os usuários de auditores globais no Cloud Foundry têm acesso de leitura a todos os endpoints da API Cloud Foundry, exceto para secrets. Não há um papel do IAM equivalente, mas é possível criar um papel personalizado com permissões semelhantes.

Papéis da API Cloud Controller

Os papéis fornecidos pela CAPI são mais semelhantes aos papéis do Kf concedidos em um cluster para indivíduos que têm o papel roles/container.viewer do IAM no projeto do proprietário:

  • Os auditores do Space no Cloud Foundry têm acesso de leitura aos recursos em um Space do CF. O papel é mais semelhante ao papel space-auditor do Kf.
  • Os desenvolvedores do Space no Cloud Foundry podem implantar e gerenciar aplicativos em um Space do CF. O papel é mais semelhante ao papel space-developer do Kf.
  • Os gerentes do Space no Cloud Foundry podem modificar as configurações do Space do CF e atribuir papéis aos usuários. O papel é mais semelhante ao papel space-manager do Kf.

A seguir