Les secrets (sops-nix)
Tous les secrets du réseau (mots de passe, clés, jetons) vivent chiffrés dans un seul fichier, géré par sops-nix 🡕. Il est versionné dans git sous forme chiffrée ; seuls les porteurs d’une clé peuvent le déchiffrer.
# usr/secrets/secrets.yaml (chiffré au repos)default-password: ...default-password-hash: ...user: alice: password-hash: ...Les deux clés
Section intitulée « Les deux clés »Le déchiffrement repose sur deux clés age 🡕 :
| Clé | Où | Rôle |
|---|---|---|
| Clé admin | ~/.config/sops/age/keys.txt | Éditer les secrets depuis le poste admin |
| Clé d’infra | /etc/sops/age/infra.key | Déchiffrer sur chaque hôte au déploiement |
- La clé admin dérive de votre clé SSH (
~/.ssh/id_ed25519, viassh-to-age). - La clé d’infra est générée une fois, puis poussée sur chaque hôte.
- Les destinataires sont listés dans
usr/secrets/.sops.yaml(admin + infra).
Initialiser (poste admin)
Section intitulée « Initialiser (poste admin) »Une seule commande prépare tout l’appareillage de secrets :
just configure-admin-hostElle est idempotente et crée, au besoin :
- la clé SSH du déployeur (
nix) ; - la clé admin (depuis la clé SSH) et la clé d’infra (
age-keygen) ; - le fichier
.sops.yaml(destinataires) ; - un mot de passe par défaut (
just passwd-default) ; - la clé de signature du cache binaire Harmonia.
Gérer les mots de passe
Section intitulée « Gérer les mots de passe »| Commande | Effet |
|---|---|
just passwd-default | (Re)définit le mot de passe par défaut des comptes |
just passwd <user> | Définit le mot de passe d’un utilisateur |
just passwd-restic | Génère les secrets de sauvegarde (par hôte / zone) |
just sops | Édite le fichier de secrets à la main ($EDITOR) |
Après un changement, déployez pour le propager :
just passwd alicejust apply @user-alice # déploie la nouvelle empreintePousser la clé sur un hôte
Section intitulée « Pousser la clé sur un hôte »Un hôte ne déchiffre les secrets qu’avec la clé d’infra. Elle est posée
automatiquement par just configure <host>, ou à la main :
just push-key <host> # copie /etc/sops/age/infra.key sur l'hôteFaire tourner la clé d’infra
Section intitulée « Faire tourner la clé d’infra »La rotation remplace la clé d’infra sur tout le parc, en trois temps vérifiés :
-
Introduire la nouvelle clé
Fenêtre de terminal just rotate init # nouvelle clé + ré-chiffrement (ancienne + nouvelle) -
Diffuser sur tous les hôtes
Fenêtre de terminal just rotate push-keys # chaque hôte reçoit les deux clésjust apply '*' -
Finaliser
Fenêtre de terminal just rotate finalize # abandonne l'ancienne clé (après vérification)just apply '*'