Kubernetes Security
medium

Kubernetes Security Question #019e3a4f

Question Statement
Kubernetes Security
#kubernetes
#authorization
#rbac
#access-control
Medium

Qual modo de autorização permite controle granular sobre as operações que diferentes entidades podem realizar em diferentes objetos em um cluster Kubernetes?

A

Controle de Autorização por Modo Webhook

B

Controle de Acesso Baseado em Funções

Correct
C

Controle de Acesso por Autorização de Nó

D

Controle de Acesso Baseado em Atributos

Official Explanation / Community Explanations

Resumo

O Controle de Acesso Baseado em Funções (RBAC) é o modo de autorização do Kubernetes que fornece controle granular sobre as operações que diferentes entidades (usuários, grupos, service accounts) podem realizar em diferentes objetos (pods, services, secrets, etc.) em um cluster. O RBAC usa roles e role bindings para definir permissões, permitindo que administradores especifiquem exatamente quais ações (get, list, create, update, delete, etc.) são permitidas em quais recursos.

Como Funciona

O RBAC funciona definindo objetos Role ou ClusterRole que contêm conjuntos de regras (verbs e resources). Esses roles são então vinculados a subjects (usuários, grupos ou service accounts) por meio de objetos RoleBinding ou ClusterRoleBinding. Por exemplo, um Role pode conceder permissões de get, list e watch em pods em um namespace específico, e um RoleBinding pode atribuir esse role a um usuário. Isso permite um controle de acesso refinado, com escopo em namespace ou em cluster.

Por que a Resposta Correta está Correta

Controle de Acesso Baseado em Funções é a resposta correta porque é especificamente projetado para permissões granulares baseadas em funções no Kubernetes. É o modo de autorização mais comumente usado em clusters de produção, oferecendo flexibilidade e precisão. O RBAC é habilitado iniciando o API server com --authorization-mode=RBAC e configurado via manifestos YAML.

Por que as Respostas Incorretas estão Erradas

  • Controle de Autorização por Modo Webhook: Este modo delega decisões de autorização a um serviço HTTP(S) externo. Embora possa ser granular, não é um mecanismo embutido para definir permissões dentro do Kubernetes; depende de um sistema externo. É tipicamente usado para lógica de autorização personalizada ou de terceiros.
  • Controle de Acesso por Autorização de Nó: Este é um autorizador de propósito especial que concede permissões a kubelets com base em sua identidade de nó. Não é projetado para controle de acesso geral de usuários ou service accounts e não fornece controle granular sobre diferentes objetos para diferentes entidades.
  • Controle de Acesso Baseado em Atributos (ABAC): O ABAC usa políticas definidas em um arquivo JSON para conceder acesso com base em atributos (usuário, grupo, recurso, etc.). Embora possa ser granular, é menos flexível e mais difícil de gerenciar do que o RBAC. As políticas ABAC são estáticas e exigem edição de um arquivo e reinicialização do API server, enquanto o RBAC é dinâmico e gerenciado via API do Kubernetes. O ABAC é considerado legado e não é recomendado para novas implantações.