Aller au contenu

Gestion des secrets

L’installeur génère les secrets une fois et les conserve dans un coffre chiffré, plutôt qu’en clair dans un fichier d’environnement.

  • Les secrets sont scellés dans <install_dir>/secrets.enc, chiffrés en AES-256-GCM.
  • La clé maître vit dans /etc/vuisio/secrets.key, volontairement en dehors du répertoire d’installation : ainsi, une sauvegarde ou un instantané de ce répertoire ne suffit pas à divulguer les secrets.
  • L’accès aux commandes de secrets est protégé par une phrase de passe administrateur, stockée uniquement sous forme de condensat Argon2id dans /etc/vuisio/secrets.meta.
  • Au démarrage, les secrets sont déchiffrés vers un tmpfs (/run/vuisio/secrets) avant le lancement des services.
Fenêtre de terminal
vuisio secrets # affiche les secrets, masqués
vuisio secrets show --reveal # affiche les valeurs en clair
vuisio secrets set NOTION_TOKEN # ajoute un secret personnalisé (valeur demandée sans écho)
vuisio secrets rotate REDIS_PASSWORD # régénère un secret, rescelle, redémarre

La commande set ajoute un secret personnalisé au coffre, puis redémarre la pile pour le livrer. Ces secrets sont mis à disposition du client web via process.env.<CLÉ> (par exemple un jeton pour brancher un service externe). Si vous omettez la valeur, elle est demandée sans être affichée à l’écran.

Plutôt que par variable d’environnement, un secret peut être fourni par un fichier : pour la variable concernée, définissez <VARIABLE>_FILE avec le chemin du fichier (la convention des secrets Docker et des tmpfs systemd). La valeur est lue depuis le fichier, le saut de ligne final est ignoré, et un fichier vide est traité comme absent.

Par exemple : VUISIO_REDIS_URL_FILE, VUISIO_ENCRYPTION_KEY_FILE, VUISIO_METRICS_TOKEN_FILE.