Aller au contenu

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
Exemple. Kiteline est une entreprise fictive.

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 daemon tourne 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 login avec son mot de passe, sa Secret Key et un second facteur. crunu unlock garde les clés en mémoire, crunu lock les en retire avant l’échéance.

Lire la documentation

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.

Lire la documentation

Exemple. Kiteline est une entreprise fictive.

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 fichierscrunu pull les écrit avec le mode 0600, garde la version précédente en .prev et refuse les chemins à risque comme .bashrc ou .ssh/.
  • Un seul fichier pour systemdcrunu pull --env-out écrit les variables dans un seul fichier, pour une ligne EnvironmentFile=.
  • Ses propres identifiants restent à l’écartcrunu run ne transmet jamais ses propres variables, comme CRUNU_TOKEN, au programme qu’il lance.
Codes de sortie de crunu
CodeSignification
0Succès
3Machine non enrôlée, ou session non ouverte
4Accès révoqué ou bail expiré
5Ni connexion ni état vérifié valide
6Échec de la vérification de signature ou de certificat
7Contenu non servi à cette adresse

Lire la documentation

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.

Lire la documentation

Exemple. Kiteline est une entreprise fictive.

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 run ou par les fichiers de crunu pull.

Toutes les limites connues

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.

Gratuit pendant l’accès anticipé. Lire le modèle de sécurité