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 — Rotation des clés et certificats
Criticité: Haute — effectuer en maintenance window
Temps estimé: 30–60 min selon le type de rotation
1. Rotation ENCRYPTION_KEY (clés de chiffrement client secrets)
⚠️ Une rotation d’ENCRYPTION_KEY nécessite de re-chiffrer tous les secrets clients en base.
Procédure
# 1. Générer une nouvelle clé AES-256 (32 bytes = 64 hex)
NEW_KEY=$(openssl rand -hex 32)
echo "Nouvelle clé: $NEW_KEY"
# 2. Re-chiffrer tous les secrets en base AVANT de patcher Vault
# Lancer le script de migration (à créer si nécessaire)
# node platform/scripts/rotate-encryption-key.js --old-key $OLD_KEY --new-key $NEW_KEY
# 3. Mettre à jour Vault
docker exec mssp-vault vault kv patch mssp/platform \
encryption_key="$NEW_KEY"
# 4. Redémarrer la plateforme pour recharger les secrets Vault
docker compose restart platform
Certificat de l’app registration principale SnakySec sur le tenant MSSP.
# 1. Générer un nouveau certificat (365 jours)
openssl req -x509 -newkey rsa:2048 \
-keyout entra-app-new.key.pem \
-out entra-app-new.cert.pem \
-days 365 -nodes -subj "/CN=mssp-platform"
# 2. Uploader le nouveau certificat dans Azure Portal
# App registrations → SnakySec Platform → Certificates & secrets
# → Upload certificate → entra-app-new.cert.pem
# NE PAS supprimer l'ancien tant que la rotation n'est pas validée
# 3. Mettre à jour Vault
docker exec mssp-vault vault kv patch mssp/platform \
entra_cert_private_key="$(cat entra-app-new.key.pem)" \
entra_cert_pem="$(cat entra-app-new.cert.pem)"
# 4. Redémarrer
docker compose restart platform
# 5. Valider (tester un audit ou refresh token)
# 6. Supprimer l'ancien certificat dans Azure Portal
# 7. Supprimer les fichiers locaux
rm entra-app-new.key.pem entra-app-new.cert.pem
3. Rotation certificat Entra ID (client)
Pour un client spécifique :
CLIENT_SLUG="nom-client"
# 1. Générer le nouveau certificat
openssl req -x509 -newkey rsa:2048 \
-keyout ${CLIENT_SLUG}.key.pem \
-out ${CLIENT_SLUG}.cert.pem \
-days 365 -nodes -subj "/CN=snakysec-${CLIENT_SLUG}"
# 2. Uploader dans le tenant client (Azure Portal)
# 3. Mettre à jour Vault
docker exec mssp-vault vault kv patch mssp/clients/${CLIENT_SLUG} \
cert_private_key="$(cat ${CLIENT_SLUG}.key.pem)" \
cert_pem="$(cat ${CLIENT_SLUG}.cert.pem)"
# 4. Vérifier avec un audit de test
# 5. Nettoyer
rm ${CLIENT_SLUG}.key.pem ${CLIENT_SLUG}.cert.pem
4. Rotation AUTH_SECRET (NextAuth)
Invalide toutes les sessions actives — prévoir une coupure courte.
NEW_SECRET=$(openssl rand -base64 48)
# Mettre à jour .env ou Vault selon votre config
# Redémarrer la plateforme
docker compose restart platform
# Les utilisateurs devront se reconnecter
5. Rotation GitLab Token
# 1. Générer un nouveau token GitLab (Project Access Token, scopes: api, read_repository)
# 2. Mettre à jour Vault
docker exec mssp-vault vault kv patch mssp/platform \
gitlab_token="glpat-XXXX"
# 3. Mettre à jour le webhook secret si nécessaire
docker exec mssp-vault vault kv patch mssp/platform \
gitlab_webhook_secret="$(openssl rand -hex 32)"
# 4. Redémarrer
docker compose restart platform
Calendrier recommandé
| Secret | Fréquence | Prochain |
|---|
| Certificats Entra (plateforme) | Annuel | — |
| Certificats Entra (clients) | Annuel | — |
| ENCRYPTION_KEY | Tous les 2 ans ou si compromis | — |
| AUTH_SECRET | Tous les 2 ans | — |
| GitLab Token | Annuel | — |
| Vault Root Token | Jamais utilisé en prod (unsealed via Shamir) | — |