Vos serveurs reçoivent leurs secrets au démarrage, en mémoire
Installez l’agent crunu sur un serveur Linux, enrôlez-le avec un code à usage unique et approuvez-le après avoir vérifié son empreinte. L’agent ne déchiffre que les environnements que vous lui accordez et les transmet à votre application au démarrage.
- Codes d’enrôlement à usage unique
- Environnements déchiffrés uniquement en mémoire
- Tient pendant une panne le temps du bail, 24 heures par défaut
Un petit binaire, trois façons de l’utiliser
L’agent est un binaire statique unique pour Linux et macOS, en amd64 et arm64, écrit en Go avec la seule bibliothèque standard.
- Une machineUn serveur qui exécute votre application se connecte avec sa propre clé après l’enrôlement. Sous Linux,
crunu daemontourne comme service systemd. - Un jeton de serviceUn job CI se connecte avec
CRUNU_TOKEN. Tout reste dans le processus et aucun fichier n’est écrit. - Une personneUn développeur exécute
crunu loginavec son mot de passe, sa Secret Key et un second facteur.crunu unlockgarde les clés en mémoire,crunu lockles en retire avant l’échéance.
Enrôlez, comparez, approuvez
Un administrateur ajoute la machine et choisit ses environnements. Crunu émet un code d’enrôlement à usage unique ; sur le serveur, crunu enroll affiche l’empreinte de la machine, et l’administrateur approuve après l’avoir comparée.
- Un code qui ne sert qu’une foisValable 15 minutes par défaut et 24 heures au plus, éventuellement lié à des adresses. L’agent ne l’accepte que par l’entrée standard ou par une variable d’environnement.
- Une réutilisation déclenche une alerteSi quelqu’un présente un code déjà utilisé, la machine est marquée comme interception possible et une alerte est envoyée.
- Les opérateurs le peuvent aussiUn opérateur, qui ne peut pas voir les valeurs, ajoute des machines et demande un accès pour elles.
Votre application démarre avec ses variables
La commande crunu run lance le programme avec un jeu vierge de variables d’environnement, auquel s’ajoutent celles de Crunu. Elle transmet les signaux, renvoie le code de sortie du programme et, avec --restart on-change, le redémarre quand les valeurs changent.
- Des fichiers, si votre application lit des fichiers
crunu pullles écrit avec le mode 0600, garde la version précédente en.prevet refuse les chemins à risque comme.bashrcou.ssh/. - Un seul fichier pour systemd
crunu pull --env-outécrit les variables dans un seul fichier, pour une ligneEnvironmentFile=. - Ses propres identifiants restent à l’écart
crunu runne transmet jamais ses propres variables, commeCRUNU_TOKEN, au programme qu’il lance.
| Code | Signification |
|---|---|
| 0 | Succès |
| 3 | Machine non enrôlée, ou session non ouverte |
| 4 | Accès révoqué ou bail expiré |
| 5 | Ni connexion ni état vérifié valide |
| 6 | Échec de la vérification de signature ou de certificat |
| 7 | Contenu non servi à cette adresse |
Ce que fait l’agent en arrière-plan
Le service se signale chaque minute et prolonge son bail toutes les 5 minutes. Les environnements déchiffrés ne vivent qu’en mémoire et parviennent à crunu run par un socket local.
- Pendant une panneSi le serveur est injoignable, l’agent sert le dernier état vérifié jusqu’à la fin du bail, 24 heures par défaut.
- En ligne, révocation en quelques minutesL’agent efface de la mémoire un environnement révoqué dès son prochain échange avec le serveur. Hors ligne, il s’arrête à la fin du bail.
- Il vérifie ce que le serveur envoieSignatures, certificats, liste de révocation et tout retour à un état antérieur. En cas d’incohérence, il refuse et quitte avec le code 6.
- Verrouillé sous LinuxLe processus est fermé aux autres processus du même utilisateur, les core dumps sont désactivés et le service tourne dans un bac à sable systemd.
Ce qu’une machine peut encore voir
Une machine lit légitimement ce que vous lui accordez. Limitez ces accès et gardez des baux courts.
- Root voit tout ce qui est accordéL’utilisateur root de ce serveur peut lire tout ce qui est accordé à la machine. N’accordez que les environnements et les fichiers dont elle a besoin.
- Les processus en cours gardent leurs variablesUn processus lancé avant la révocation de la machine garde ses variables d’environnement jusqu’à son redémarrage.
- Le service est réservé à LinuxSous macOS, l’agent est un outil en ligne de commande, sans service en arrière-plan. Il n’existe pas de version pour Windows.
- Ni Kubernetes ni SDKLes applications reçoivent leurs valeurs via
crunu runou par les fichiers decrunu pull.
Réponses aux questions fréquentes
Une autre question ? Écrivez à support@crunu.com
Les valeurs déchiffrées sont-elles écrites sur le disque ?
Pas par crunu run. Le service garde les environnements déchiffrés en mémoire et les transmet au processus. Des fichiers ne sont écrits que si vous utilisez crunu pull, avec le mode 0600.
Que se passe-t-il si notre serveur Crunu est en panne ?
L’agent continue de servir le dernier état vérifié jusqu’à la fin de son bail, 24 heures par défaut.
En combien de temps la révocation d’une machine prend-elle effet ?
En quelques minutes si la machine est en ligne. L’agent se signale chaque minute par défaut et efface de la mémoire les environnements révoqués lors de sa vérification suivante. Hors ligne, il s’arrête à la fin du bail. La révocation renouvelle aussi les clés des environnements que la machine détenait.
Une machine peut-elle lire les environnements d’une autre ?
Non. Chaque machine a ses propres clés et ses propres accès.
L’agent fonctionne-t-il sous Windows ?
Non. Il fonctionne sous Linux et macOS, en amd64 et arm64.
Donnez dès aujourd’hui son environnement à un serveur
Créez un compte, ajoutez une machine et lancez votre application avec crunu run.