Pular para o conteúdo principal

📋 Roles

Uma Role é uma lista do que é permitido fazer dentro de um namespace. Exemplo: "pode ler pods, mas não pode apagar". Ela define as permissões, mas não as entrega a ninguém. Quem entrega é o RBAC (próxima página).

TipoVale paraQuando usar
RoleUm namespaceA maioria dos casos
ClusterRoleO cluster inteiroRecursos sem namespace (como nodes) ou permissões em todos os namespaces

Cada regra combina o quê (recursos, como pods e services) com o que fazer (verbos):

VerboSignificado
get, list, watchLer
createCriar
update, patchAlterar
deleteApagar
informação

Roles são criadas com o kubectl. O Painel Nuvion não tem uma tela para esse recurso.


🚀 Antes de começar​

  • Ter o acesso ao cluster configurado.

🚀 1. Ver as permissões que já existem​

kubectl get roles -A
kubectl get clusterrole view edit admin cluster-admin

Os ClusterRoles view, edit, admin e cluster-admin já vêm prontos:

ClusterRoleO que permite
viewSomente leitura
editLer e alterar a maioria dos recursos
adminControle total dentro de um namespace
cluster-adminControle total do cluster inteiro

🚀 2. Criar uma Role de leitura de pods​

kubectl create role leitor-pods --verb=get,list,watch --resource=pods

Saída esperada: role.rbac.authorization.k8s.io/leitor-pods created

🚀 3. Ver os detalhes​

kubectl describe role leitor-pods

A tabela mostra o recurso (pods) e os verbos permitidos (get, list, watch).

🚀 4. Entender a Role em YAML​

O comando do passo 2 equivale a este arquivo:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: leitor-pods
namespace: default
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]

O apiGroups: [""] (vazio) indica o grupo principal do Kubernetes, onde ficam pods, services, configmaps e secrets.

🚀 5. Criar uma ClusterRole​

Nodes não pertencem a nenhum namespace, então precisam de uma ClusterRole:

kubectl create clusterrole leitor-nodes --verb=get,list,watch --resource=nodes

✅ Como saber se deu certo​

kubectl get role leitor-pods
kubectl get clusterrole leitor-nodes

Os dois aparecem na lista.

🔒 Boas práticas​

  • Dê somente o necessário (menor privilégio).
  • Evite * em verbos e recursos.
  • Seja ainda mais restrito com secrets, pois permitir leitura equivale a entregar senhas.

❗ Problemas comuns​

SintomaCausaSolução
forbidden: ... cannot create resource "roles"Seu usuário não pode criar RolesPeça a um administrador do cluster
Erro citando escalation ou attempting to grant RBAC permissions not currently heldO Kubernetes não deixa criar uma Role com permissões maiores que as suasUse um usuário com mais permissões
already existsNome já usadoUse outro nome ou exclua a Role existente

🧹 Limpeza​

Faça a limpeza somente depois de concluir a página RBAC, que usa a Role leitor-pods:

kubectl delete role leitor-pods
kubectl delete clusterrole leitor-nodes

➡️ Próximo passo: RBAC

🧠 Dúvidas?​

Fale com nosso time de suporte técnico da SaveinCloud!