Saltar al contenido
Acceso anticipadoMáquinas, CI/CD y Reglas de red

Los secretos llegan a los servidores que los usan, no al pipeline de en medio

El agente crunu funciona en tus servidores Linux, mantiene en memoria los entornos descifrados e inicia tus programas con ellos. La CI recibe un token para el entorno que compila, vinculado a un repositorio y una rama. Los valores de production no tienen por qué pasar por la CI.

Para quién esIngenieros de DevOps y de plataforma que entregan secretos a servidores Linux y a pipelines de CI.

Ejemplo. Kiteline es una empresa ficticia.

Lo que preguntan equipos como el tuyo

Las preguntas que surgen cuando un equipo como el tuyo reúne sus secretos en un solo lugar. La guía de abajo responde a cada una de ellas.

  1. ¿Cómo recibe un servidor su entorno sin un archivo en disco?
  2. ¿Cómo mantenemos los valores de production fuera de la CI?
  3. ¿Cómo atamos un token de CI a un repositorio y una rama?
  4. ¿Qué pasa con los servicios en marcha si no se puede llegar a la bóveda?
  5. ¿Cuánto tarda en surtir efecto la revocación de una máquina?
  6. ¿Podemos servir production solo a nuestras propias redes?
  7. ¿Quién puede inscribir máquinas sin ver los valores?
  8. ¿Cómo sabe un script de despliegue por qué falló crunu?
«Getting started» guía a un nuevo propietario por los cinco primeros pasos.

Las partes de Crunu que lo cubren

Todas las partes funcionan con la misma regla: el servidor guarda datos cifrados, claves públicas y documentos firmados, y nunca tiene una clave que abra tus valores.

  • Máquinas

    Inscribe un servidor con un código de un solo uso, y el agente crunu mantiene sus entornos en memoria e inicia tus programas con ellos.

    Más información

  • CI/CD

    Da a cada pipeline un token de servicio limitado a sus entornos y vincúlalo a tu proveedor de CI con OIDC, para que un token filtrado no pueda iniciar sesión por sí solo.

    Más información

  • Reglas de red

    Sirve el contenido de un entorno solo a redes IPv4 e IPv6 permitidas, con reglas firmadas que no se pueden relajar a escondidas.

    Más información

  • Registro de auditoría

    Los inicios de sesión, los permisos, las versiones, las rotaciones y los rechazos van a un registro encadenado con hashes que puedes verificar con un clic y exportar.

    Más información

  • Control de acceso

    Da a cada persona, máquina y pipeline solo los entornos que necesita, con roles respaldados por claves de cifrado y no solo por comprobaciones del servidor.

    Más información

Cómo funciona para equipos de plataforma

En esta página

Dónde se filtran los secretos de camino a un proceso

Llevar un valor hasta un proceso en marcha es el momento en que suele escaparse: un .env incrustado en una imagen, una clave de production guardada en las variables de la CI, un usuario de despliegue que puede leerlo todo.

El trabajo es que cada máquina y cada pipeline reciban exactamente sus entornos, que nada acabe en disco a menos que tú lo elijas, y que revocar sea una sola acción.

Cuatro pasos de un servidor nuevo a un servicio en marcha

  1. Crea la máquina. Elige sus entornos y cómo entregarlos: Environment key, que siempre da la última versión de cada archivo, o Selected files, una copia sellada solo de los archivos que la máquina necesita. Selected files se puede revocar sin cambiar la clave del entorno.
  2. Instala e inscribe. El diálogo «Enroll machine» muestra un comando que instala el agente, comprueba su SHA-256 e inscribe la máquina con un código de un solo uso. El código es válido 15 minutos por defecto y 24 horas como máximo, y se lee de stdin o de una variable, nunca de un argumento.
  3. Aprueba por la huella. crunu enroll muestra la huella de la máquina. Aprueba la máquina después de comprobar que coincide con la de la app.
  4. Inicia tu servicio a través del agente. El usuario del servicio debe estar en el grupo crunu. Con --restart on-change, el programa se reinicia con los valores nuevos cuando cambian.
INI
# /etc/systemd/system/payments-api.service
[Service]
User=payments
ExecStart=/usr/local/bin/crunu run --env payments-api/production --restart on-change -- /opt/payments-api/bin/server

Lo que hacen por ti el agente y los tokens

NecesidadLo que hace Crunu
Ningún secreto en discoEl servicio del agente mantiene los entornos descifrados solo en memoria y se los entrega a crunu run mediante un socket local abierto al grupo crunu. Consulta systemd.
Archivos donde una herramienta los esperacrunu pull escribe los archivos con permisos 0600 en dos fases, conserva la versión anterior como .prev, no sigue enlaces simbólicos y se niega a escribir en los archivos de inicio del shell, en .ssh/ y en los directorios de systemd. --env-out escribe un archivo env para EnvironmentFile=.
Un agente que puedes auditarUn binario estático de Go que solo usa la biblioteca estándar. En Linux está protegido de otros procesos del mismo usuario, los volcados de memoria están desactivados y el servicio se ejecuta en un sandbox de systemd. Las actualizaciones comprueban una firma Ed25519.
Servidores que aguantan una caídaEl agente consulta el servidor cada minuto y renueva su concesión cada 5 minutos. Si no puede llegar al servidor, entrega el último estado verificado hasta que vence la concesión, 24 horas por defecto.
CI sin productionLos tokens de servicio reciben solo los entornos que concedes, con una concesión, un límite de usos y redes. Una vinculación de CI (OIDC) ata un token a un repositorio, una rama y un entorno de despliegue en GitHub Actions, GitLab CI, Bitbucket Pipelines o cualquier emisor OIDC. Un token de CI reutilizado se rechaza.
Production solo desde redes conocidasListas de redes firmadas y políticas de red del entorno para IPv4 e IPv6. Endurecer se aplica al instante; relajar espera 15 minutos con una alerta y la opción de deshacer, o se aplica al instante con una segunda firma. Los pases de máquina cubren los cambios de dirección, 24 horas por defecto.
Revocar con una sola acciónRevocar una máquina borra sus entornos de la memoria en cuestión de minutos mientras la máquina está en línea, y rota las claves de los entornos que tenía. Un código de inscripción reutilizado señala una posible interceptación.
SeñalesAlertas por inicios de sesión desde dispositivos nuevos, códigos de inscripción reutilizados, máquinas en direcciones nuevas, tokens de CI reutilizados, concesiones vencidas y eventos de red, enviadas a un webhook firmado con HMAC o por correo. Slack, Microsoft Teams y PagerDuty se conectan mediante sus webhooks entrantes.

Fallos que puedes distinguir

Cuando crunu no puede entregar las variables, su código de salida indica por qué, para que un script de despliegue pueda reaccionar. En los demás casos, crunu run devuelve el propio código de salida de tu programa.

CódigoSignificado
3La máquina no está inscrita o nadie ha iniciado sesión
4Se revocó el acceso o venció la concesión
5No hay conexión ni un estado verificado válido
6Falló la comprobación de una firma o de un certificado
7La política de red del entorno no permite esta dirección

Dónde se detiene el agente

  • El servicio funciona en Linux con systemd. En macOS, crunu funciona como herramienta de línea de comandos, sin servicio en segundo plano. No hay versión para Windows.
  • No hay operador de Kubernetes, chart de Helm ni driver CSI, ni proveedor de Terraform, ni SDK. Los programas reciben los valores mediante crunu run.
  • No hay sincronización integrada con Vercel, Cloudflare, AWS Secrets Manager ni GitHub Secrets. Puedes enviar valores desde la CI con crunu run y la CLI de la propia plataforma.
  • Sin secretos dinámicos. Crunu no genera contraseñas de base de datos de corta duración; eso requeriría una clave en el servidor.
  • Una máquina es un destinatario legítimo. Quien tenga root en ella puede leer lo que se le entregó, y un proceso en marcha conserva sus variables hasta que se reinicia.
  • Las restricciones de red las aplica el servidor, no el cifrado. Un servidor comprometido no las respetaría, y todas las máquinas detrás de un mismo NAT tienen la misma dirección.

Cada limitación, con lo que puedes hacer al respecto, está en la página de limitaciones.

Si también operas el servidor

Los equipos que quieren el servidor en su propia infraestructura pueden ejecutarlo en Docker, Cloudflare Workers, Vercel o Google Cloud Run, y pasar de uno a otro con un solo archivo de exportación que no contiene valores sin cifrar. Un comando doctor comprueba un despliegue, y un endpoint de estado expone métricas en formato Prometheus. El servidor no se publica como descarga pública. Escribe a support@crunu.com. La página de autoalojamiento compara las plataformas.

Documentación e integraciones relacionadas

Dudas frecuentes

¿No está aquí? Escribe a support@crunu.com y te responderá una persona.

¿Qué pasa con los servicios en marcha si no se puede llegar a Crunu?

Siguen funcionando. El agente entrega el último estado verificado hasta que vence su concesión, 24 horas por defecto. Si no hay un estado válido, crunu run termina con el código 5.

¿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 el servidor cada minuto y borra sus entornos en cuanto se revoca. Una máquina que sigue sin conexión pierde el acceso cuando vence su concesión.

¿Puede la CI desplegar en production sin ver los secretos de production?

Sí, y es la configuración que recomienda Crunu. El servidor de production ejecuta el agente y obtiene su propio entorno; el pipeline entrega el código y reinicia el servicio.

¿crunu funciona en contenedores?

El script de instalación tiene un modo sin root pensado para la CI y los contenedores, probado en las imágenes node:24, Ubuntu 24.04 y Alpine 3.22. Con un token de servicio, crunu inicia sesión y descifra dentro de su propio proceso, sin archivos de estado.

¿Alguien puede inscribir máquinas sin ver ningún valor?

Sí. El rol Operator en un entorno no tiene clave: añade máquinas y solicita acceso para ellas, y un propietario o un administrador lo aprueba.

¿Hay soporte para Kubernetes?

No. No hay operador, chart de Helm ni driver CSI.

Pon un servicio en el agente

Crea una máquina, ejecuta el comando de instalación y apruébala por su huella. Gratis durante el acceso anticipado.