Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

El 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.

0 de 4 · 0%

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.

Inicia sesión para registrar tus puntos y progreso en el ranking.

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