Control de acceso basado en roles (RBAC)
Administre los permisos de usuarios y cuentas de servicio dentro de su clúster mediante roles y vinculaciones de roles de RBAC.
Control de acceso basado en roles (RBAC) es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.
¿Qué es RBAC en Kubernetes?
¡Bienvenido! En esta lección, profundizará en el control de acceso basado en roles (RBAC), una función de seguridad fundamental de Kubernetes.
RBAC le ayuda a gestionar quién puede hacer qué dentro de su clúster. Es como un guardia de seguridad para sus recursos de Kubernetes, que garantiza que solo los usuarios y las aplicaciones autorizados puedan realizar acciones específicas.
Por qué RBAC es esencial
Sin RBAC, cualquiera que tenga acceso al clúster podría realizar potencialmente cualquier acción, lo que provocaría riesgos de seguridad o daños accidentales.
- Seguridad: Impide los accesos y las operaciones no autorizados.
- Cumplimiento: Ayuda a cumplir los requisitos normativos de control de acceso.
- Mínimo privilegio: Garantiza que los usuarios y las aplicaciones solo tengan los permisos que necesitan estrictamente.
Conceptos clave de RBAC
RBAC en Kubernetes se basa en algunos componentes principales:
- Subjects: El «quién» (usuarios, cuentas de servicio y grupos).
- Roles: El «qué» (un conjunto de permisos).
- RoleBindings: El «cómo» (vincula un Role con un Subject).
- ClusterRoles y ClusterRoleBindings: Versiones de ámbito de clúster de Roles y RoleBindings.
Subjects: usuarios y cuentas de servicio
Kubernetes necesita saber quién solicita una acción. Estos elementos se denominan Subjects:
- Usuarios: Normalmente, administradores o desarrolladores humanos. Kubernetes no gestiona directamente a los usuarios, sino que depende de la autenticación externa.
- Cuentas de servicio: Objetos de Kubernetes utilizados por aplicaciones o procesos que se ejecutan dentro de los pods. Son fundamentales para la comunicación entre los pods y el servidor de API.
Definir permisos con Roles
Un Role define un conjunto de permisos dentro de un namespace específico. Especifica qué acciones (verbos) se pueden realizar sobre qué recursos.
Por ejemplo, un Role podría permitir «obtener» y «enumerar» pods en el namespace «default».
Ejemplo de Role: lector de pods
Aquí tiene una definición YAML para un Role llamado pod-reader. Este Role concede permisos para «obtener», «enumerar» y «observar» (supervisar) pods.
Observe apiGroups: [""], que hace referencia al grupo de API principal de Kubernetes.
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pod-reader
namespace: default
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]Conceder permisos con RoleBindings
Un RoleBinding conecta un Role específico con uno o varios Subjects (usuarios, cuentas de servicio o grupos) dentro de un namespace específico.
Es el vínculo que indica: «Este usuario o aplicación puede hacer lo que este Role permite en este namespace».
Ejemplo de RoleBinding: conceder acceso
Este RoleBinding vincula nuestro Role pod-reader con una cuenta de servicio llamada my-app-sa en el namespace default. Ahora, my-app-sa puede leer los pods.
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods-binding
namespace: default
subjects:
- kind: ServiceAccount
name: my-app-sa # The service account getting permissions
namespace: default
roleRef:
kind: Role
name: pod-reader # The Role being granted
apiGroup: rbac.authorization.k8s.ioClusterRoles y ClusterRoleBindings
A veces necesita permisos que se apliquen a todo el clúster, no solo a un namespace. Ahí es donde entran en juego los ClusterRoles y los ClusterRoleBindings.
- ClusterRole: Define permisos para recursos con ámbito de clúster (como nodos y volúmenes persistentes) o para acciones en todos los namespaces (por ejemplo, «enumerar todos los pods»).
- ClusterRoleBinding: Vincula un ClusterRole con Subjects y concede permisos para todo el clúster.
Comprobación rápida de RBAC
Un desarrollador necesita implementar nuevas aplicaciones únicamente en el namespace dev. ¿Qué dos recursos de RBAC de Kubernetes utilizaría principalmente para concederle este permiso específico?
Repaso: fundamentos de RBAC
¡Buen trabajo! Ha aprendido los conceptos fundamentales del RBAC de Kubernetes:
- RBAC controla quién puede interactuar con los recursos de su clúster.
- Los Roles definen permisos dentro de un namespace.
- Los RoleBindings vinculan Roles con Subjects (usuarios y cuentas de servicio).
- Los ClusterRoles y ClusterRoleBindings gestionan los permisos para todo el clúster.
¡Dominar RBAC es fundamental para proteger su entorno de Kubernetes!
Preguntas frecuentes
¿La lección «Control de acceso basado en roles (RBAC)» es gratis?
Sí — el texto completo de «Control de acceso basado en roles (RBAC)» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.
¿Qué aprenderé en «Control de acceso basado en roles (RBAC)»?
Administre los permisos de usuarios y cuentas de servicio dentro de su clúster mediante roles y vinculaciones de roles de RBAC. Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar DevOps Bootcamp?
No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Control de acceso basado en roles (RBAC)»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?
Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Control de acceso basado en roles (RBAC)
- Network Policies para el aislamiento
- Estándares de seguridad de los Pods
- Cuentas de servicio e identidad de cargas de trabajo