📋 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).
| Tipo | Vale para | Quando usar |
|---|---|---|
Role | Um namespace | A maioria dos casos |
ClusterRole | O cluster inteiro | Recursos 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):
| Verbo | Significado |
|---|---|
get, list, watch | Ler |
create | Criar |
update, patch | Alterar |
delete | Apagar |
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:
| ClusterRole | O que permite |
|---|---|
view | Somente leitura |
edit | Ler e alterar a maioria dos recursos |
admin | Controle total dentro de um namespace |
cluster-admin | Controle 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
| Sintoma | Causa | Solução |
|---|---|---|
forbidden: ... cannot create resource "roles" | Seu usuário não pode criar Roles | Peça a um administrador do cluster |
Erro citando escalation ou attempting to grant RBAC permissions not currently held | O Kubernetes não deixa criar uma Role com permissões maiores que as suas | Use um usuário com mais permissões |
already exists | Nome já usado | Use 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!