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:

Role Title Description Lowest resource
roles/container.admin Kubernetes Engine Admin

Provides access to full management of clusters and their Kubernetes API objects.

To set a service account on nodes, you must also have the Service Account User role (roles/iam.serviceAccountUser) on the user-managed service account that your nodes will use.

  • Project
roles/container.cloudKmsKeyUser Kubernetes Engine KMS Crypto Key User Allow the Kubernetes Engine service agent in the cluster project to call KMS with user provided crypto keys to sign payloads.
roles/container.clusterAdmin Kubernetes Engine Cluster Admin

Provides access to management of clusters.

To set a service account on nodes, you must also have the Service Account User role (roles/iam.serviceAccountUser) on the user-managed service account that your nodes will use.

  • Project
roles/container.clusterViewer Kubernetes Engine Cluster Viewer

Provides access to get and list GKE clusters.

roles/container.defaultNodeServiceAccount Kubernetes Engine Default Node Service Account Least privilege role to use as the default service account for GKE Nodes.
roles/container.developer Kubernetes Engine Developer

Provides access to Kubernetes API objects inside clusters.

  • Project
roles/container.hostServiceAgentUser Kubernetes Engine Host Service Agent User

Allows the Kubernetes Engine service account in the host project to configure shared network resources for cluster management. Also gives access to inspect the firewall rules in the host project.

roles/container.viewer Kubernetes Engine Viewer

Provides read-only access to resources within GKE clusters, such as nodes, pods, and GKE API objects.

  • Project

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