🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónDatos de entrada y esquemas
5 tareas · 40 min · Principiante
Una política escrita contra la forma equivocada de la entrada no falla: calla. Si el campo que mira no está donde ella lo busca, la condición es indefinida, la regla no produce nada y el resultado sale en verde. En Bahareque Constructora hay tres manifiestos de Kubernetes, dos políticas y un archivo de datos con los registros prohibidos. Una sola política dio un aviso; las otras dos no vieron lo que debían. Aprendes a distinguir la entrada, que cambia en cada evaluación, de los datos, que acompañan a la política, y a comprobar que la política está mirando donde cree.
Objetivo de la sala
Una política escrita contra la forma equivocada de la entrada no falla: calla. Si el campo que mira no está donde ella lo busca, la condición es indefinida, la regla no produce nada y el resultado sale en verde. En Bahareque Constructora hay tres manifiestos de Kubernetes, dos políticas y un archivo de datos con los registros prohibidos. Una sola política dio un aviso; las otras dos no vieron lo que debían. Aprendes a distinguir la entrada, que cambia en cada evaluación, de los datos, que acompañan a la política, y a comprobar que la política está mirando donde cree.Una política recibe dos orígenes de información. La entrada (input) es el documento que se evalúa: un manifiesto, un plan, una lista de componentes; cambia con cada ejecución. Los datos (data) son información que acompaña a la política y casi no cambia: una lista de registros prohibidos, el nombre de los equipos válidos, la tabla de responsables. Conftest carga los archivos de datos con la opción --data.
Separar los datos del código tiene una razón: quien mantiene la lista de registros no tiene por qué saber Rego, y una lista que cambia cada semana no debería obligar a editar una regla. El precio es que ahora hay un contrato entre los dos: el nombre de la clave que la regla lee y el nombre que el archivo de datos trae deben coincidir exactamente.
Responde para continuar
¿Qué conviene guardar como datos (`data`) y no escribir dentro de la regla?
Ver pista de ayuda
Datos son lo que acompaña a la política y cambia con otro ritmo que la lógica.
Cada tipo de recurso de Kubernetes guarda sus contenedores en un lugar distinto. En un Deployment o un StatefulSet, bajo spec.template.spec; en los recursos que lanzan trabajos programados, un nivel más abajo, bajo spec.jobTemplate. Una política que revisa input.spec.template.spec.containers solo ve los recursos que usan esa ruta. En los demás, la condición es indefinida y la política guarda silencio, no avisa de que no pudo mirar.
Lee la política de imágenes y compara su ruta con la estructura de cada manifiesto.
Responde para continuar
Escribe el tipo (kind) del manifiesto cuyos contenedores están en una ruta que la política de imágenes no recorre.
Ver pista de ayuda
Con la terminal, `cat politicas/imagenes.rego` y luego mira la sección de contenedores de cada archivo de `entrada/`.
La salida de la herramienta dice lo que se encontró, no lo que se dejó de mirar. Para medir el hueco hay que contar por separado lo que existe y lo que la política alcanza. Los contenedores de inicio (initContainers) son otro ejemplo: son contenedores reales con imágenes reales, pero viven en una lista distinta de containers.
Cuenta las imágenes con la etiqueta latest que hay en los tres manifiestos y réstales las que la política de imágenes sí inspecciona.
Responde para continuar
¿Cuántas imágenes con la etiqueta latest hay en los tres manifiestos que la política de imágenes no inspecciona?
Ver pista de ayuda
Revisa cada archivo de `entrada/`, incluidas las dos listas posibles de contenedores, y compara con la ruta que recorre la política.
La regla de registros itera sobre una clave de data. Si esa clave no existe en los datos, la iteración es indefinida y la regla no deniega nada, con la herramienta cargando el archivo sin quejarse. Es el mismo silencio de la tarea anterior, pero esta vez el error está en el contrato entre datos y código.
Compara el nombre que lee la política con el que trae el archivo de datos.
Responde para continuar
Escribe la clave del archivo de datos que no coincide con la que lee la política de registros.
Ver pista de ayuda
Abre `datos/registros.json` y compara letra por letra con `politicas/registros.rego`.
Una política que calla se descubre de una sola forma fiable: con una entrada que debería hacerla hablar. Eso es una prueba de denegación, y se escribe junto con la política. Hay además ayudas del propio ecosistema (OPA permite describir la forma de la entrada con un esquema y comprobar la política contra él), pero ninguna sustituye a la prueba con un caso conocido.
Responde para continuar
¿Qué hallazgo deja menos expuesto al equipo a una política que calla sin avisar?
Ver pista de ayuda
Busca la comprobación que falla sola cuando la regla se queda muda.
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.