🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónLeer una política en Rego y en Cedar
4 tareas · 40 min · Principiante
Urunday decide las llamadas de Caburé con OPA, el motor de políticas de código abierto que usa el lenguaje Rego, y el equipo de canales prepara un piloto con Cedar, otro lenguaje de políticas de código abierto. Las dos versiones deberían decir lo mismo. Tienes las dos políticas, el catálogo de herramientas y tres solicitudes tal como llegan al punto de decisión. No vas a escribir políticas: vas a leerlas como lo hace quien las revisa, para saber qué permite cada una y dónde dejan de coincidir. Solo lectura; nada se evalúa.
Objetivo de la sala
Urunday decide las llamadas de Caburé con OPA, el motor de políticas de código abierto que usa el lenguaje Rego, y el equipo de canales prepara un piloto con Cedar, otro lenguaje de políticas de código abierto. Las dos versiones deberían decir lo mismo. Tienes las dos políticas, el catálogo de herramientas y tres solicitudes tal como llegan al punto de decisión. No vas a escribir políticas: vas a leerlas como lo hace quien las revisa, para saber qué permite cada una y dónde dejan de coincidir. Solo lectura; nada se evalúa.En Rego, una política es un paquete con reglas. default permitir := false fija el valor cuando ninguna regla se cumple: sin eso, la respuesta quedaría indefinida y el que pregunta tendría que interpretarla. Una misma regla puede escribirse varias veces con el mismo nombre: cada definición es un camino alternativo, y basta con que una se cumpla. Dentro de cada definición, en cambio, todas las líneas tienen que cumplirse a la vez.
Hay un detalle que conviene tener presente desde ya: si una línea lee un dato que no viene en la entrada, esa línea no se cumple y la definición entera cae. En una regla que permite, eso termina en negar; más adelante verás qué pasa cuando la regla que depende del dato es la que prohíbe. Las reglas de Urunday llevan un título en su bloque de metadatos para poder citarlas.
Responde para continuar
¿Qué regla de la política de Rego autoriza la solicitud sol-1007? Escribe su código.
Ver pista de ayuda
Compara la entrada de `solicitudes/sol-1007.json` con cada definición de `permitir` en `opa/cabure.rego`; el código va al principio de cada `title`.
Cedar escribe cada política como un permit o un forbid con un alcance —principal, acción y recurso— y condiciones opcionales en when (se tiene que cumplir) y unless (no se tiene que cumplir). La evaluación es fija: si se cumple algún forbid, la respuesta es negar; si no, y se cumple algún permit, es permitir; si no se cumple nada, es negar. Un forbid no se puede compensar con más permit.
Esa regla de combinación es lo que hace útiles las prohibiciones generales, como la que el piloto añade para un canal concreto. Lee la solicitud sol-1012 contra el borrador de Cedar.
Responde para continuar
¿Qué responde el borrador de Cedar a la solicitud sol-1012 y por qué?
Ver pista de ayuda
Mira el `canal` del contexto de `solicitudes/sol-1012.json` y la política `cab-f1` de `cedar/cabure.cedar`.
Traducir una política de un lenguaje a otro es un cambio de política, aunque nadie lo llame así. La forma segura de revisarla es regla por regla: para cada definición del original, buscar su equivalente y comparar condición por condición. La que falta no da error: la política nueva compila, las pruebas que no miran esa condición pasan y la diferencia aparece el día que llega la solicitud que la necesitaba.
Compara la regla de pagos en las dos versiones.
Responde para continuar
¿Qué atributo exige la regla de pagos de Rego que la traducción a Cedar no comprueba?
Ver pista de ayuda
Pon lado a lado la definición con título `CAB-R2` de `opa/cabure.rego` y la política `cab-r2` de `cedar/cabure.cedar`.
unless dentro de un forbid es una excepción: la prohibición se aplica salvo cuando esa condición se cumple. Sirve para no bloquear lo que debe seguir funcionando siempre, como una acción de protección del propio socio. Pero una excepción no permite nada por sí sola: solo hace que la prohibición no aplique, y la solicitud necesita además un permit que se cumpla.
Responde para continuar
¿Qué responde el borrador de Cedar a la solicitud sol-1015?
Ver pista de ayuda
Lee `solicitudes/sol-1015.json`, el `unless` de `cab-f1` y la política `cab-r4`.
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.