🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónAuditoría de la API de Kubernetes
4 tareas · 40 min · Principiante
Martes 13 de octubre, 12:40. En el clúster de Lácteos de la Mojana alguien tocó secretos, alguien recibió dos rechazos seguidos y alguien abrió una sesión dentro de un pod. La auditoría de la API es el registro que dice quién pidió qué, desde dónde y con qué resultado. Aquí aprendes a leer sus campos, sus niveles y sus etapas, y a separar el ruido normal de lo que merece una pregunta. Todo es lectura de una exportación de ejemplo.
Objetivo de la sala
Martes 13 de octubre, 12:40. En el clúster de Lácteos de la Mojana alguien tocó secretos, alguien recibió dos rechazos seguidos y alguien abrió una sesión dentro de un pod. La auditoría de la API es el registro que dice quién pidió qué, desde dónde y con qué resultado. Aquí aprendes a leer sus campos, sus niveles y sus etapas, y a separar el ruido normal de lo que merece una pregunta. Todo es lectura de una exportación de ejemplo.Cada petición a la API de Kubernetes puede dejar un evento de auditoría. Los campos que más se leen son auditID (identifica la petición), verb (get, list, create, patch, delete...), user (la identidad: una persona, una cuenta de servicio o un componente del propio clúster), sourceIPs, userAgent, objectRef (el recurso, el namespace, el nombre y, si lo hay, el subrecurso) y responseStatus (el código de respuesta). En esta tabla, codigo es ese resultado.
El nivel de la política de auditoría decide cuánto se guarda: None no registra, Metadata guarda quién, qué y cuándo pero no el cuerpo de la petición ni de la respuesta, Request añade el cuerpo de la petición, y RequestResponse añade también el de la respuesta. Para los secretos suele convenir Metadata, justamente para que el contenido del secreto no se copie al registro.
Abre la consola. Ejecuta SELECT * FROM auditoria WHERE recurso = 'secrets' y mira los eventos a-4104 y a-4105.
Responde para continuar
El evento a-4105 está en nivel Metadata. ¿Qué se puede afirmar de él?
Una misma petición puede aparecer más de una vez en la auditoría, con el mismo auditID y una etapa distinta. RequestReceived se genera al recibirla; ResponseStarted solo en peticiones largas (como una sesión abierta o un watch) cuando salen las cabeceras de respuesta; ResponseComplete cuando termina; y Panic si algo falla. Quien cuenta eventos sin mirar la etapa cuenta de más.
Abrir un shell en un pod con kubectl exec aparece en la API como una petición sobre el subrecurso exec de un pod. Lo estable para buscarlo es el subrecurso, no una suposición sobre el verbo.
Ejecuta SELECT * FROM auditoria WHERE subrecurso = 'exec'.
Responde para continuar
Escribe el usuario que abrió la sesión de exec.
Un código 403 quiere decir que la API entendió la petición y la denegó. Dos 403 con un segundo de diferencia, hechos con la identidad de una cuenta de servicio, son un patrón: un programa (o alguien con su token) que primero lista y enseguida pide un objeto concreto. El origen que aparece es una dirección de la red de pods, no una estación de trabajo.
Ejecuta SELECT * FROM auditoria WHERE codigo = '403'.
Responde para continuar
Escribe el namespace al que apuntaban los dos intentos denegados.
Que la API haya denegado algo es buena noticia sobre el control de acceso, pero no cierra la pregunta. Alguien o algo con la identidad de esa cuenta intentó algo que no le corresponde, y falta saber qué lo provocó: una aplicación con un error, una configuración mal copiada, o una persona dentro del pod. Tampoco se declara «ataque» por un solo rechazo: lo que se hace es abrir la pregunta y buscar, en las otras capas, qué más hizo ese pod.
Responde para continuar
¿Cómo se lee el par de rechazos 403 de la cuenta de servicio de pedidos?
Ver pista de ayuda
Un rechazo dice que algo lo intentó, no por qué.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.