Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.snakysec.com/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 shareSupportAction
S1 (new)YubiKey 5 NFCEncoder via ykman openpgp keys ou app dédiée
S2 (new)KeePassXCStocker dans le master KDBX, attribut “Vault Shamir Share 2”
S3 (new)Papier QR codeImprimer (imprimante non-réseau), placer dans coffre domicile
S4 (new)Papier QR codeImprimer, sceller avec S5 dans nouvelle enveloppe Tyvek
S5 (new)Papier QR codeIdem 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

ErreurSolution
Error: rekey already in progressCancel 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 JReporter de quelques jours, conserver les shares actuelles
Vault sealed après rekeyQuelqu’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.
VersionDateAuteur
1.02026-04-26Nicolas Schiffgens