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
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 daemonse 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 logincon su contraseña, su Secret Key y un segundo factor.crunu unlockmantiene las claves en memoria ycrunu locklo termina antes.
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.
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 archivos
crunu pulllos escribe con permisos 0600, guarda la versión anterior como.prevy rechaza rutas de riesgo como.bashrco.ssh/. - Un archivo para systemd
crunu pull --env-outescribe las variables en un único archivo para una líneaEnvironmentFile=. - Sus propias credenciales se quedan fuera
crunu runnunca pasa sus propias variables, comoCRUNU_TOKEN, al programa que inicia.
| Código | Significado |
|---|---|
| 0 | Éxito |
| 3 | Máquina no inscrita o sesión no iniciada |
| 4 | Acceso revocado o concesión vencida |
| 5 | Sin conexión y sin un estado verificado válido |
| 6 | Falló la comprobación de una firma o un certificado |
| 7 | El contenido no se entrega a esta direcció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.
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 runo archivos decrunu pull.
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.