Documentation Index
Fetch the complete documentation index at: https://snakysec.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Runbook 06 — Rotation annuelle des shares Shamir Vault
1. Objectif
Rotation préventive annuelle des 5 shares Shamir du Vault de production,
selon la politique 01-keyholders.md §6. Pas une opération
DR (pas d’incident en cours), mais opération sensible qui peut bricker le
Vault si mal exécutée → traitée comme un runbook formel.
2. Quand exécuter
- Annuel obligatoire : Q3 chaque année (juillet-août)
- Immédiat : suspicion de compromission d’une share (vol YubiKey, perte laptop, intrusion domicile, fuite KeePass)
- Pré-test trustee : 1 mois avant un test de récupération de l’enveloppe notaire (pour éviter de désynchroniser)
3. Prérequis
- 3 shares actives accessibles (DR Owner peut faire seul)
- RDV programmé avec le notaire pour récupération + re-dépôt enveloppe
- Vault opérationnel + unsealed
- Token root ou token avec policy
sys/rekey
- Imprimante propre (pas réseau / pas mémoire) pour QR codes
- Broyeur DIN P-7 disponible
4. Procédure
4.1 Préparation (J-7)
1. Confirmer RDV notaire (date + heure)
2. Tester YubiKey et KeePass : décodage des shares actuelles fonctionne
3. Imprimer 5 papiers QR codes vierges + 1 papier carbone pour numérotation
4. Charger le broyeur DIN P-7
5. Vérifier qu'on a un Vault snapshot récent (vault-snapshot.sh tournée la veille)
4.2 Récupération enveloppe trustee (J0)
1. Présenter au notaire la demande conjointe (DR Owner + mandataire SASU)
2. Notaire ouvre l'enveloppe avec procès-verbal
3. Vérifier que les 2 shares S4 + S5 sont lisibles (test scan QR offline)
4. Reprendre les shares (l'enveloppe sera re-scellée avec les nouvelles à la fin)
4.3 Initiation du rekey (depuis VPS prod)
ssh mssp@vps.snakysec.com
cd /opt/mssp/app/platform
# Login token root
docker exec -it mssp-vault sh -c "vault login"
# Saisir token root (depuis KeePass)
# Initier le rekey
docker exec mssp-vault vault operator rekey -init \
-key-shares=5 \
-key-threshold=3 \
-nonce-suffix="rotation-$(date +%Y%m%d)"
Vault retourne un nonce à conserver pour les étapes suivantes.
4.4 Fournir les 5 shares actuelles
docker exec -it mssp-vault vault operator rekey -nonce="${NONCE}"
# Saisir share 1 (depuis YubiKey décodée)
docker exec -it mssp-vault vault operator rekey -nonce="${NONCE}"
# Saisir share 2 (depuis KeePass)
docker exec -it mssp-vault vault operator rekey -nonce="${NONCE}"
# Saisir share 3 (depuis papier coffre domicile)
# Vault peut fonctionner avec 3/5, mais pour rekey, il en faut le quorum d'origine
docker exec -it mssp-vault vault operator rekey -nonce="${NONCE}"
# Saisir share 4 (depuis enveloppe trustee)
docker exec -it mssp-vault vault operator rekey -nonce="${NONCE}"
# Saisir share 5 (depuis enveloppe trustee)
À la fin, Vault génère 5 NOUVELLES shares + nouveau root token. NE PAS
LES PERDRE — elles s’affichent une seule fois.
4.5 Distribution des nouvelles shares
| Nouvelle share | Support | Action |
|---|
| S1 (new) | YubiKey 5 NFC | Encoder via ykman openpgp keys ou app dédiée |
| S2 (new) | KeePassXC | Stocker dans le master KDBX, attribut “Vault Shamir Share 2” |
| S3 (new) | Papier QR code | Imprimer (imprimante non-réseau), placer dans coffre domicile |
| S4 (new) | Papier QR code | Imprimer, sceller avec S5 dans nouvelle enveloppe Tyvek |
| S5 (new) | Papier QR code | Idem S4 |
4.6 Re-dépôt chez le notaire
1. Apporter au notaire l'enveloppe Tyvek scellée contenant S4+S5 (new)
2. Procès-verbal de dépôt avec mention "remplace l'enveloppe du [date précédente]"
3. Notaire récupère et détruit l'ancienne enveloppe (ou conserve verrouillée 30j puis détruit)
4. Coût : ~50-100 € (acte simple, pas un acte de dépôt initial)
4.7 Destruction sécurisée des anciennes shares
1. Anciennes papiers de S3 (coffre domicile) : broyeur DIN P-7
2. Anciennes shares dans KeePass : supprimer l'attribut, vider la corbeille
3. Anciennes shares YubiKey : reset OpenPGP slot, ré-encoder avec S1 (new)
4. Anciennes shares enveloppe trustee : déjà détruites par notaire (§4.6)
4.8 Validation
# Re-tester un unseal complet (sealed → unsealed)
docker exec mssp-vault vault operator seal
docker exec -it mssp-vault vault operator unseal # share 1 (new)
docker exec -it mssp-vault vault operator unseal # share 2 (new)
docker exec -it mssp-vault vault operator unseal # share 3 (new)
docker exec mssp-vault vault status
# attendu : Sealed: false
4.9 Mise à jour documentaire
- Mettre à jour
docs/dr/01-keyholders.md §7 (journal des rotations)
- Procès-verbal dans
docs/dr/test-results/YYYY-Q3-shamir-rotation.md
- Sauvegarder le procès-verbal notaire avec les statuts SnakySec
5. Erreurs courantes
| Erreur | Solution |
|---|
Error: rekey already in progress | Cancel le rekey en cours : vault operator rekey -cancel |
| Une nouvelle share illisible (papier mal imprimé) | Re-générer un nouveau rekey, refaire la procédure |
| Notaire indisponible le jour J | Reporter de quelques jours, conserver les shares actuelles |
| Vault sealed après rekey | Quelqu’un a saisi une mauvaise share — re-essayer unseal avec les bonnes |
6. Rollback
Si la rotation échoue à mi-chemin et qu’on ne peut pas terminer :
docker exec mssp-vault vault operator rekey -cancel
Vault revient aux anciennes shares. Re-essayer plus tard.
| Version | Date | Auteur |
|---|
| 1.0 | 2026-04-26 | Nicolas Schiffgens |