Saltar al contenido principal

📋 Roles

Un Role es una lista de lo que está permitido hacer dentro de un namespace. Ejemplo: "puede leer pods, pero no puede eliminar". Define los permisos, pero no se los entrega a nadie. Quien los entrega es RBAC (próxima página).

TipoVale paraCuándo usar
RoleUn namespaceLa mayoría de los casos
ClusterRoleTodo el clústerRecursos sin namespace (como nodes) o permisos en todos los namespaces

Cada regla combina qué (recursos, como pods y services) con qué hacer (verbos):

VerboSignificado
get, list, watchLeer
createCrear
update, patchModificar
deleteEliminar
info

Los Roles se crean con kubectl. El Panel Nuvion no tiene una pantalla para este recurso.


🚀 Antes de comenzar​

  • Tener el acceso al clúster configurado.

🚀 1. Ver los permisos que ya existen​

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

Los ClusterRoles view, edit, admin y cluster-admin ya vienen listos:

ClusterRoleQué permite
viewSolo lectura
editLeer y modificar la mayoría de los recursos
adminControl total dentro de un namespace
cluster-adminControl total de todo el clúster

🚀 2. Crear un Role de lectura de pods​

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

Salida esperada: role.rbac.authorization.k8s.io/leitor-pods created

🚀 3. Ver los detalles​

kubectl describe role leitor-pods

La tabla muestra el recurso (pods) y los verbos permitidos (get, list, watch).

🚀 4. Entender el Role en YAML​

El comando del paso 2 equivale a este archivo:

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

apiGroups: [""] (vacío) indica el grupo principal de Kubernetes, donde están pods, services, configmaps y secrets.

🚀 5. Crear un ClusterRole​

Los nodes no pertenecen a ningún namespace, por lo que necesitan un ClusterRole:

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

✅ Cómo saber si funcionó​

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

Los dos aparecen en la lista.

🔒 Buenas prácticas​

  • Dé solo lo necesario (mínimo privilegio).
  • Evite * en verbos y recursos.
  • Sea aún más restrictivo con secrets, pues permitir lectura equivale a entregar contraseñas.

❗ Problemas comunes​

SíntomaCausaSolución
forbidden: ... cannot create resource "roles"Su usuario no puede crear RolesPida a un administrador del clúster
Error que cita escalation o attempting to grant RBAC permissions not currently heldKubernetes no deja crear un Role con permisos mayores que los suyosUse un usuario con más permisos
already existsNombre ya usadoUse otro nombre o elimine el Role existente

🧹 Limpieza​

Haga la limpieza solo después de concluir la página RBAC, que usa el Role leitor-pods:

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

➡️ Próximo paso: RBAC

🧠 ¿Dudas?​

¡Hable con nuestro equipo de soporte técnico de SaveinCloud!