Saltar al contenido

Los servidores reciben sus secretos al arrancar, en memoria

Instala el agente crunu en un servidor Linux, inscríbelo con un código de un solo uso y apruébalo después de comprobar su huella. El agente descifra solo los entornos que le concedes y se los pasa a tu aplicación cuando arranca.

  • Códigos de inscripción de un solo uso
  • Entornos descifrados solo en memoria
  • Funciona sin conexión durante la concesión, 24 horas por defecto
Ejemplo. Kiteline es una empresa ficticia.

Un binario pequeño, tres formas de usarlo

El agente es un único binario estático para Linux y macOS, en amd64 y arm64, escrito en Go solo con la biblioteca estándar.

  • MáquinaUn servidor que ejecuta tu aplicación inicia sesión con su propia clave después de la inscripción. En Linux, crunu daemon se ejecuta como servicio de systemd.
  • Token de servicioUn trabajo de CI inicia sesión con CRUNU_TOKEN. Todo se queda en el proceso y no se escribe ningún archivo.
  • PersonaUn desarrollador ejecuta crunu login con su contraseña, su Secret Key y un segundo factor. crunu unlock mantiene las claves en memoria y crunu lock lo termina antes.

Leer la documentación

Inscribe, compara, aprueba

Un administrador añade la máquina y elige sus entornos. Crunu emite un código de inscripción de un solo uso; en el servidor, crunu enroll muestra la huella de la máquina, y el administrador la aprueba después de compararla.

  • Un código que sirve una vezVálido 15 minutos por defecto y 24 horas como máximo, opcionalmente limitado a ciertas direcciones. El agente solo lo acepta por la entrada estándar o por una variable de entorno.
  • Reutilizarlo genera una alertaSi alguien presenta un código que ya se usó, la máquina se marca como posible interceptación y se envía una alerta.
  • Los operadores también pueden hacerloUn usuario con el rol Operator, que no ve los valores, añade máquinas y solicita acceso para ellas.

Leer la documentación

Ejemplo. Kiteline es una empresa ficticia.

Tu aplicación arranca con sus variables

crunu run inicia el programa con un conjunto limpio de variables de entorno más las de Crunu. Reenvía las señales, devuelve el código de salida del programa y, con --restart on-change, lo reinicia cuando cambian los valores.

  • Archivos, si tu aplicación lee archivoscrunu pull los escribe con permisos 0600, guarda la versión anterior como .prev y rechaza rutas de riesgo como .bashrc o .ssh/.
  • Un archivo para systemdcrunu pull --env-out escribe las variables en un único archivo para una línea EnvironmentFile=.
  • Sus propias credenciales se quedan fueracrunu run nunca pasa sus propias variables, como CRUNU_TOKEN, al programa que inicia.
Códigos de salida de crunu
CódigoSignificado
0Éxito
3Máquina no inscrita o sesión no iniciada
4Acceso revocado o concesión vencida
5Sin conexión y sin un estado verificado válido
6Falló la comprobación de una firma o un certificado
7El contenido no se entrega a esta dirección

Leer la documentación

Qué hace el agente en segundo plano

El servicio consulta al servidor cada minuto y renueva su concesión cada 5 minutos. Los entornos descifrados viven solo en memoria y llegan a crunu run por un socket local.

  • Durante una caídaSi no se puede contactar con el servidor, el agente entrega el último estado verificado hasta que vence la concesión, 24 horas por defecto.
  • Revocación en minutos mientras está en líneaEl agente borra de la memoria un entorno revocado la próxima vez que tiene noticias del servidor. Sin conexión, se detiene cuando vence la concesión.
  • Comprueba lo que envía el servidorFirmas, certificados, la lista de revocación y la vuelta a estados anteriores. Si algo no coincide, lo rechaza y sale con el código 6.
  • Blindado en LinuxEl proceso queda cerrado a otros procesos del mismo usuario, los volcados de memoria están desactivados y el servicio se ejecuta en un sandbox de systemd.

Leer la documentación

Ejemplo. Kiteline es una empresa ficticia.

Lo que una máquina sigue pudiendo ver

Una máquina es un lector legítimo de lo que le concedes. Concede solo lo necesario y mantén cortas las concesiones.

  • Root ve lo que se concedeRoot en ese servidor puede leer todo lo que se concede a la máquina. Concede solo los entornos y los archivos que necesita.
  • Los procesos en marcha conservan sus variablesUn proceso iniciado antes de que revocaras la máquina conserva su entorno hasta que se reinicia.
  • El servicio es solo para LinuxEn macOS, el agente es una herramienta de línea de comandos sin servicio en segundo plano. No hay versión para Windows.
  • Sin Kubernetes ni SDKLas aplicaciones reciben sus valores mediante crunu run o archivos de crunu pull.

Todas las limitaciones conocidas

Respuestas a preguntas frecuentes

¿Algo más? Escríbenos a support@crunu.com

¿Se escriben en el disco los valores descifrados?

crunu run no los escribe. El servicio mantiene los entornos descifrados en memoria y se los pasa al proceso. Solo se escriben archivos cuando usas crunu pull, con permisos 0600.

¿Qué pasa si nuestro servidor de Crunu se cae?

El agente sigue entregando el último estado verificado hasta que vence su concesión, 24 horas por defecto.

¿Cuánto tarda en surtir efecto la revocación de una máquina?

Unos minutos mientras la máquina está en línea. El agente consulta al servidor cada minuto por defecto y borra de la memoria los entornos revocados en la siguiente consulta. Sin conexión, se detiene cuando vence la concesión. Revocar también rota las claves de los entornos que tenía la máquina.

¿Puede una máquina leer los entornos de otra?

No. Cada máquina tiene sus propias claves y sus propios permisos.

¿El agente funciona en Windows?

No. Funciona en Linux y macOS, en amd64 y arm64.

Dale hoy a un servidor su entorno

Crea una cuenta, añade una máquina y ejecuta tu aplicación con crunu run.

Gratis durante el acceso anticipado. Lee el modelo de seguridad