Construiu Kubernetes? Agora experimente estas 5 ferramentas RBAC para auditar permissões

Nota: O seguinte artigo irá ajudá-lo com: Construiu Kubernetes? Agora experimente estas 5 ferramentas RBAC para auditar permissões

O Kubernetes RBAC é um método de autorização baseado em função eficiente usado para fornecer acesso granular a recursos em um cluster Kubernetes.

No entanto, se não for usado corretamente, pode facilmente causar uma catástrofe de conformidade. É por isso que precisamos de ferramentas RBAC para auditar e localizar permissões arriscadas no Kubernetes.

Neste artigo, discutiremos o que é o Kubernetes RBAC, por que é importante auditar permissões arriscadas e descobrir as ferramentas que podem nos ajudar melhor na auditoria de permissões arriscadas!

O que é RBAC?

O controle de acesso baseado em função (RBAC) é um mecanismo de segurança no qual cada autorização de acesso é baseada em funções atribuídas a um usuário. Com este sistema, é possível, portanto, restringir o acesso aos recursos de um cluster Kubernetes (namespaces, pods, jobs) a aplicativos ou usuários.

No Kubernetes, as políticas RBAC podem ser usadas para gerenciar os direitos de acesso de um usuário do sistema (Usuário ou Grupo), bem como de contas de serviço (Conta de Serviço).

Existem outras formas de autorizar usuários no Kubernetes como o ABAC (Attribute-based access control), através de Webhook ou Node Authorization, mas o mecanismo de autorização mais utilizado e nativo disponível na versão estável é o RBAC.

Praticamente toda a interação com os recursos é feita através do seu servidor API, o que significa que, no final, tudo se limita a fazer requisições HTTP ao referido servidor (um componente essencial do(s) nó(s) mestre(s) ou Painel de Controle).

O Kubernetes tem quatro objetos relacionados ao RBAC que podem ser combinados para definir as permissões de acesso aos recursos do cluster. Eles são Role, ClusterRole, RoleBinding e ClusterRoleBinding. Para trabalhar com esses objetos, como todos os objetos do Kubernetes, a API do Kubernetes deve ser usada.

Funções no Kubernetes

No Kubernetes, existem dois tipos de funções chamadas Role e ClusterRole. A maior diferença entre os dois é que o Role pertence a um namespace concreto, enquanto o ClusterRole é global para o cluster. Portanto, no caso de ClusterRole, seu nome deve ser exclusivo, pois pertence ao cluster. No caso de um Role, dois namespaces diferentes podem ter um Role com o mesmo nome.

Outra diferença que deve ser mencionada é que Role permite acesso a recursos que estão dentro do mesmo namespace, enquanto ClusterRole, além de poder dar acesso a recursos em qualquer namespace, também pode dar acesso a recursos no mesmo namespace, como nós entre outros.

Agora que conhecemos os tipos de papéis, o próximo passo é saber a quem podemos atribuir esses papéis. Nesse caso, temos contas de usuário, contas de serviço e grupos.

As contas de usuário são contas atribuídas a um usuário específico, enquanto as contas de serviço são usadas por processos. Por exemplo, imagine que nosso aplicativo precise acessar recursos do cluster programaticamente, para isso usaríamos uma conta de serviço.

Por fim, precisamos da “cola” que liga um papel a uma conta (usuário ou serviço) ou grupo. Existem dois recursos no Kubernetes para isso: RoleBinding e ClusterRoleBinding. RoleBinding pode referenciar uma função que está no mesmo namespace, enquanto o ClusterRoleBinding pode referenciar qualquer Role em qualquer namespace e atribuir permissões globalmente.

Como nota, as permissões permitem apenas o acesso a recursos, pois “por padrão, tudo é negado” e é possível atribuir várias funções ao mesmo usuário

O único pré-requisito para usar o RBAC é que ele esteja habilitado em nosso cluster usando a opção “–authorization-mode=RBAC”. Podemos verificar isso usando o comando:

kubectl api-versions

O que são permissões RBAC arriscadas e como corrigi-las?

Qualquer permissão que permita ou possa permitir acesso não autorizado aos recursos do pod é considerada uma permissão arriscada. Por exemplo, se um usuário tiver permissão de edição, ele poderá editar sua própria função e acessar recursos que não têm permissão de acesso. Isso pode resultar em um problema de conformidade.

Da mesma forma, se as permissões antigas não forem verificadas, alguns usuários poderão acessar recursos de que não precisam mais.

É difícil e demorado encontrar manualmente essa permissão arriscada quando você tem um grande número de funções. Para fazer esse processo, existem várias ferramentas de auditoria de permissões RBAC que ajudam a varrer todo o seu Cluster para localizar quaisquer permissões arriscadas. Também é importante entender que a eficácia do RBAC depende de uma política de RBAC atualizada que, por sua vez, requer auditoria de permissão regular.

A seguir estão algumas das melhores ferramentas RBAC para auditar permissões com base em diferentes idiomas e interfaces de usuário.

KubiScanGenericName

Construiu Kubernetes? Agora experimente estas 5 ferramentas RBAC para auditar permissões 1

KubiScan é uma ferramenta RBAC baseada em Python para verificar permissões arriscadas em um cluster Kubernetes. A ferramenta deve ser executada dentro do nó Master e, em seguida, pode ser executada diretamente do terminal para fornecer uma lista de permissões arriscadas. O Kubiscan pode ser usado para encontrar Roles, ClusterRoles, RoleBindings, ClusterBindings, Subjects, Pods e até Containers arriscados.

Krane

Krane by Appvia é uma ferramenta de visualização e análise estática Kubernetes RBAC baseada em Ruby. Ele pode ser executado localmente como uma CLI ou em um pipeline de CI/CD. Além disso, também pode funcionar como um serviço autônomo dentro de um contêiner Kubernetes. Krane oferece o recurso para analisar permissões de RBAC por meio de árvore facetada e visualizações de rede de gráficos. Ele também fornece alertas para quaisquer permissões arriscadas por meio de sua integração com o Slack.

Construiu Kubernetes? Agora experimente estas 5 ferramentas RBAC para auditar permissões 2

A ferramenta RBAC da InsightCloudSec é uma ferramenta de auditoria de permissão autônoma criada com Go. Ele não apenas permite que você verifique e destaque as permissões de RBAC arriscadas, mas também permite que você gere uma política de RBAC a partir da auditoria de permissões por meio do recurso Auditgen. A ferramenta RBAC também oferece o recurso de visualização RBAC.

Ventos justos

O Fairwinds Insight é uma ferramenta autônoma que fornece vários recursos de segurança e conformidade do Kubernetes. Seu recurso de aplicação de políticas permite auditar as permissões do RBAC e verificá-las em relação às políticas padrão e personalizadas. Fairwinds oferece uma demonstração sob demanda.

Construiu Kubernetes? Agora experimente estas 5 ferramentas RBAC para auditar permissões 3

Gerenciador de permissões

O Permission Manager by Signup é uma ferramenta de gerenciamento de permissões do Kubernetes baseada em Javascript. Ele oferece uma maneira fácil e de iniciativa de gerenciar permissões de usuário em um cluster Kubernetes. O Permission Manager também oferece uma edição corporativa da ferramenta que permite fazer auditoria básica de permissão RBAC.

Conclusão 👩‍💻

O Kubernetes RBAC é uma maneira eficiente de gerenciar o acesso a recursos em um cluster Kubernetes. No entanto, se não for implementado corretamente, pode levar a problemas de segurança e conformidade. Isso, no entanto, pode ser evitado auditando continuamente as permissões por meio de ferramentas de auditoria RBAC.

Você também pode estar interessado nas práticas recomendadas do Kubernetes.