🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónEl pipeline como objetivo
4 tareas · 30 min · Principiante
Hasta ahora el pipeline era la herramienta con la que protegías el código. En este módulo cambia el punto de vista: el pipeline es también un sistema con credenciales, con permisos y con código de terceros dentro, y quien lo controla controla lo que llega a producción. Empiezas en Cardamomo Envíos, una empresa de logística con su repositorio cardamomo/portal-despacho. No ejecutas nada: lees los archivos de los flujos de CI, que son texto, y aprendes a ver en ellos lo que un flujo puede hacer con las manos de la empresa.
Objetivo de la sala
Hasta ahora el pipeline era la herramienta con la que protegías el código. En este módulo cambia el punto de vista: el pipeline es también un sistema con credenciales, con permisos y con código de terceros dentro, y quien lo controla controla lo que llega a producción. Empiezas en Cardamomo Envíos, una empresa de logística con su repositorio cardamomo/portal-despacho. No ejecutas nada: lees los archivos de los flujos de CI, que son texto, y aprendes a ver en ellos lo que un flujo puede hacer con las manos de la empresa.Un repositorio guarda código; un pipeline lo actúa. Para publicar una imagen y actualizar producción, la cadena tiene que poder escribir en el registro, entrar en el entorno de despliegue y leer los secretos que lo permiten. Todo eso se concede al pipeline, no a una persona, y casi nadie lo revisa con el cuidado con el que se revisa una cuenta de administrador. Por eso, para quien quiera meter algo en producción, cambiar un flujo es más rentable que encontrar un fallo en la aplicación: el flujo ya tiene los permisos.
Defender el pipeline es tratarlo como una cuenta privilegiada: saber qué puede hacer, quién puede modificarlo y qué código de fuera corre dentro de él.
Responde para continuar
¿Por qué el propio pipeline es un objetivo valioso?
Ver pista de ayuda
Piensa en lo que el pipeline puede hacer sin que una persona lo apruebe cada vez.
Cada flujo declara cuándo se dispara. Hay disparadores comunes y poco peligrosos, como un empuje a la rama principal, que solo pueden provocar personas con permiso de escritura. Y hay disparadores privilegiados: los que corren con el contexto y los permisos del repositorio base aunque la propuesta que los activa venga de fuera del equipo. En ese caso, quien abre la propuesta decide qué entra en el flujo, y el flujo corre con los permisos de la casa.
Leer un flujo empieza siempre por la sección de disparadores: es la primera respuesta a «¿quién puede hacer que esto corra?».
Responde para continuar
Escribe el disparador del flujo construir.yml que se activa también con propuestas de bifurcaciones externas.
Ver pista de ayuda
Abre /cardamomo/.ci/construir.yml y mira la sección on.
Además de qué se ejecuta, importa dónde. Un ejecutor alojado por el proveedor es una máquina efímera, aislada de la red de la empresa. Un ejecutor propio es una máquina que mantiene la empresa, suele estar dentro de la red interna y, si no se limpia entre trabajos, un trabajo puede dejar rastros que lee el siguiente. Una máquina así rara vez debería ejecutar código que no escribió el equipo.
El nombre del ejecutor está en la línea que indica dónde corre cada trabajo.
Responde para continuar
Escribe el ejecutor en el que corre el trabajo construir de construir.yml.
Ver pista de ayuda
Busca la línea runs-on del trabajo construir.
Ningún campo es grave por sí solo. Un disparador que acepta propuestas externas es defendible si el flujo solo tiene lectura y corre en una máquina aislada. Lo grave es la combinación: quien abre la propuesta controla el código que el flujo descarga y ejecuta, el flujo trae un token con permisos amplios y la máquina está dentro de la red interna. Compara construir.yml con documentar.yml: el segundo también corre código del repositorio, pero con permisos mínimos y en una máquina del proveedor.
El informe de un flujo no se escribe con la lista de campos, sino con lo que se puede lograr juntando varios.
Responde para continuar
¿Qué hace peligroso al flujo construir-y-publicar?
Ver pista de ayuda
Piensa en tres cosas a la vez, no en una sola.
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.