Seis límites y seis capas que los mantienen

Cómo mantiene Provisioning las llamadas a proveedores, SSH, los secretos y la autorización cada uno en un único lugar

Provisioning 4 min de lectura
Cuando la CLI llamaba directamente a las herramientas de los proveedores en la nube, las credenciales acababan en su entorno y ningún registro de auditoría recogía lo que hacía. Provisioning respondió con seis límites estrictos, cada uno aplicado en seis capas independientes.

Seis límites y seis capas que los mantienen

A medida que Provisioning pasó de ser una herramienta de línea de órdenes a un plano de control con varios servicios, apareció una y otra vez el mismo fallo: la CLI llamaba directamente a las herramientas de los proveedores en la nube. Las credenciales del proveedor terminaban en el entorno del proceso de la CLI, las llamadas hechas fuera del orquestador no dejaban rastro de auditoría, las operaciones SSH se saltaban la máquina de estados de tareas y su vuelta atrás, y las comprobaciones de autorización se duplicaban entre servicios.

La documentación no lo evitaba: con prisa, una regla escrita es una regla que se salta. La respuesta tenía que ser estructural.

Los seis límites

Cada responsabilidad vive en un único lugar:

  1. Las llamadas a las API de proveedor solo existen en el crate del orquestador.
  2. Las operaciones SSH solo existen en los crates del orquestador y de machines.
  3. La CLI nunca accede directamente a SurrealDB.
  4. Las credenciales secretas nunca viajan en mensajes de NATS.
  5. Las decisiones de autorización se toman solo en el Control Center.
  6. Los servicios nunca leen ficheros de secretos ni variables de entorno en bruto: tienen una concesión y piden el secreto al vault.

El resto de servicios llega a un proveedor a través de la API HTTP del orquestador, recibe un contexto de usuario en lugar de volver a validar tokens y trabaja con referencias de concesión en lugar de con valores secretos. Las políticas Cedar son el único mecanismo de autorización: no hay comprobaciones de rol improvisadas en la lógica de negocio.

Seis capas, y basta con una

Un límite vale lo que vale aquello que detecta su infracción. Provisioning aplica cada uno en seis capas independientes, y basta con que una sola detecte la infracción para impedir que se publique:

CapaCómo detecta la infracción
Compilaciónvisibilidad de crates: lo que es privado del orquestador no se puede llamar desde fuera
Desarrolloun hook de la herramienta rechaza la edición antes de escribirla
Antes del commitun hook de git rechaza el cambio
CIlas pruebas de arquitectura hacen fallar la canalización
Ejecuciónlas políticas Cedar deniegan la petición
Auditoría continualos eventos en un subject de auditoría de NATS dejan constancia de lo ocurrido

Por qué importa al operador

Los límites no son una regla de orden interno: deciden hasta dónde puede llegar un incidente. Comprometer un servicio que no es el orquestador no entrega credenciales de proveedor, porque ese servicio nunca las tuvo. Un flujo de eventos filtrado lleva referencias, no secretos. Y como cada llamada a un proveedor y cada sesión SSH pasan por el orquestador, todas atraviesan su máquina de estados de tareas, con rastro de auditoría y con vuelta atrás.

Usamos cookies para que este sitio funcione, entender el uso del servicio y apoyar acciones de marketing. Política de cookies para más información.