¿Qué es Role-Based Access Control (RBAC)?
Role-Based Access Control (RBAC) es un modelo control acceso donde los permisos se otorgan a roles (ej. "admin", "editor", "viewer") y los usuarios son asignados a roles. En vez de otorgar permisos a cada usuario individualmente, los otorgas a roles, luego pones usuarios en roles.
RBAC es el fundamento de IAM moderno.
Conceptos core RBAC
| Concepto | Descripción |
|---|---|
| Usuario | Una identidad |
| Rol | Colección named de permisos |
| Permiso | Una acción permitida en un recurso |
| Asignación rol | Vincular usuario a rol |
| Jerarquía rol | Roles pueden heredar de otros |
| Constraints | Reglas limitando asignación rol |
Ejemplo: RBAC app SaaS
# Roles
admin: [users.create, users.delete, billing.view, billing.edit]
editor: [content.create, content.edit, content.publish]
viewer: [content.view]
# Asignaciones usuario
alice@example.com: [admin]
bob@example.com: [editor]RBAC vs ABAC vs ACL
| Modelo | Decisión basada en | Mejor para |
|---|---|---|
| RBAC | Rol(es) usuario | La mayoría de apps |
| ABAC | Atributos | Políticas fine-grained dinámicas |
| ACL | Permisos per-recurso | Pocos recursos |
| PBAC | Engine policy centralizado | Moderno, desacoplado |
RBAC en sistemas mayores
| Sistema | Implementación RBAC |
|---|---|
| AWS IAM | Roles + policies managed |
| Kubernetes | Roles, ClusterRoles, RoleBindings |
| Azure RBAC | Built-in + custom roles |
| Google Cloud IAM | Predefinidos + custom roles |
| GitHub | Roles org/repo + teams |
| Slack | Roles workspace + channel |
| Salesforce | Profiles + permission sets |
Ejemplo Kubernetes RBAC
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: production
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]Mejores prácticas RBAC
- Least privilege.
- Separation of duties.
- Limitar conteo roles.
- Usar jerarquía rol con cuidado.
- Auditar asignaciones rol trimestralmente.
- Documentar cada rol.
- Evitar sprawl "super admin".
- Usar grupos para asignación.
- Elevación just-in-time.
- Loguear cambios rol.
Pitfalls RBAC comunes
- Explosión roles.
- Permission creep.
- Muy pocos roles.
- Roles atados a job titles.
- Asignaciones rol olvidadas.
- Role-based pero ACLs debajo.
- Sin audit trail.
- Checks rol hardcoded.
RBAC vs otros patterns autorización
Cuándo RBAC es suficiente
- Roles predecibles
- Permisos no dependen de atributos recurso
- 10-50 roles distintos encajan en tu org
Cuándo necesitas ABAC en su lugar
- Permisos dependen de atributos
- SaaS multi-tenant
- Fine-grained
- Acceso condicional necesario
FAQ: RBAC
¿RBAC vs ABAC: cuál usar?
RBAC para roles claros. ABAC para fine-grained.
¿Cuántos roles son demasiados?
10-30 es sweet spot.
¿Debería usar Kubernetes RBAC o service mesh?
Ambos.
¿Qué es jerarquía rol?
Roles pueden heredar de otros roles.
¿Cómo migrar de ACLs a RBAC?
Identificar patterns acceso comunes, agrupar en roles.
¿Son roles lo mismo que grupos?
A veces usados intercambiablemente.
¿Cómo se relaciona RBAC con SSO?
SSO autentica. RBAC autoriza.
Testea APIs RBAC-protegidas con LoadFocus
LoadFocus corre scripts JMeter y k6 que simulan usuarios con roles diferentes. Regístrate en loadfocus.com/signup.
Herramientas LoadFocus relacionadas
Lleva este concepto a la práctica con LoadFocus — la misma plataforma que potencia todo lo que acabas de leer.