PD-7 — Plan de reprise d'activité HSM (Disaster Recovery)¶
Version : 1.0 Spec : PD-7-specification.md Audience : Crypto Officer, Infra Admin, RSSI
1. Objectif¶
Ce document décrit les procédures de reprise d'activité en cas de perte partielle ou totale du service HSM CloudHSM, conformément aux exigences de disponibilité RNF-36-02 (99,95 %) et aux invariants de sécurité INV-01 à INV-04.
2. Scénarios de défaillance¶
| # | Scénario | Impact | RTO cible | RPO |
|---|---|---|---|---|
| DR-01 | Perte d'un HSM (½) | Dégradé — pas de redondance | < 1h (recréation HSM) | 0 (sync auto) |
| DR-02 | Perte du cluster complet | Critique — aucune opération crypto | < 4h | 0 (backup cluster) |
| DR-03 | Perte VPN IPSec | Critique — backend isolé du HSM | < 30 min | N/A |
| DR-04 | Compromission credentials CU | Critique — rotation immédiate | < 1h | N/A |
| DR-05 | Perte région AWS eu-west-3 | Catastrophique | < 24h | Dernière backup |
3. Procédures de reprise¶
DR-01 : Perte d'un HSM (½)¶
Détection : Alarme CloudWatch HSM_Critical (HSMsAvailable < 2)
Procédure : 1. Vérifier l'état du cluster :
2. Créer un nouveau HSM dans l'AZ complémentaire : 3. Attendre la synchronisation (étatACTIVE) 4. Vérifier les opérations PKCS#11 : 5. Confirmer le retour de l'alarme à l'état OK Impact service : Aucun (failover automatique via client library)
DR-02 : Perte du cluster complet¶
Détection : Alarme CloudWatch + échec total des opérations PKCS#11
Procédure : 1. Évaluation : Confirmer la perte (pas juste un problème réseau) 2. Communication : Alerter l'équipe (PagerDuty/Slack) 3. Restauration :
# Lister les backups disponibles
aws cloudhsmv2 describe-backups --region eu-west-3
# Restaurer depuis la dernière backup
aws cloudhsmv2 create-cluster \
--hsm-type hsm2m.medium \
--source-backup-id <BACKUP_ID> \
--subnet-mapping SubnetId=<SUBNET_3A>,SubnetId=<SUBNET_3B>
setup_hsm_init.yml - Recréer les clés maîtres : setup_master_keys.yml 5. Vérification : - Inventaire HSM conforme - Tests PD-7 passent - Backend opérationnel Impact service : Total (aucune opération crypto possible pendant la restauration)
Note critique : Les clés générées dans le HSM ne peuvent PAS être restaurées si le cluster est entièrement détruit sans backup. AWS CloudHSM effectue des backups automatiques du cluster.
DR-03 : Perte VPN IPSec¶
Détection : Alarme CloudWatch VPN_Down + échec PKCS#11
Procédure : 1. Vérifier l'état strongSwan :
2. Redémarrer le tunnel : 3. Vérifier la connectivité : 4. Si le tunnel ne remonte pas : - Vérifier les logs :journalctl -u strongswan-starter - Vérifier la configuration : cat /etc/ipsec.conf - Vérifier le PSK : AWS peut avoir changé les endpoints 5. Re-télécharger la config VPN si nécessaire : Impact service : Total (backend isolé du HSM)
DR-04 : Compromission credentials CU¶
Détection : Alarme Auth_Failure_Spike ou alerte sécurité
Procédure : 1. Immédiat : Changer le PIN du CU compromis :
# Login CO
/opt/cloudhsm/bin/cloudhsm-cli login --username admin --role admin
# Changer le PIN
/opt/cloudhsm/bin/cloudhsm-cli user change-password --username <CU_NAME>
aws logs filter-log-events --log-group-name "/aws/cloudhsm/<CLUSTER_ID>" \
--start-time <COMPROMISE_TIMESTAMP>
Impact service : Bref (temps de rotation des credentials)
DR-05 : Perte région AWS eu-west-3¶
Détection : Indisponibilité totale AWS eu-west-3
Procédure : 1. Activer le plan de crise majeure 2. Évaluer la durée estimée de l'indisponibilité (status.aws.amazon.com) 3. Si durée > SLA : - Envisager la migration vers une autre région EU (eu-central-1) - Restaurer depuis les backups inter-régionales (si configurées) - Recréer l'infrastructure via Terraform dans la nouvelle région 4. Communiquer aux clients l'indisponibilité des opérations de signature
Impact service : Catastrophique — nécessite une re-création complète
Mitigation préventive : Évaluer la mise en place de backups CloudHSM cross-region.
4. Backups¶
Backups automatiques CloudHSM¶
- AWS CloudHSM crée des backups automatiques du cluster
- Les backups sont stockées dans la même région (eu-west-3)
- Rétention : selon la politique AWS (vérifier via
describe-backups)
Vérification des backups¶
# Lister les backups
aws cloudhsmv2 describe-backups --region eu-west-3 \
--query 'Backups[*].{Id:BackupId,State:BackupState,Date:CreateTimestamp}'
# Vérifier qu'au moins une backup récente existe
aws cloudhsmv2 describe-backups --region eu-west-3 \
--query 'Backups[?BackupState==`READY`] | sort_by(@, &CreateTimestamp) | [-1]'
5. Tests de reprise¶
| Test | Fréquence | Procédure | Responsable |
|---|---|---|---|
| Failover HSM (DR-01) | Semestriel | Supprimer un HSM, vérifier continuité | Infra + CO |
| Restauration cluster (DR-02) | Annuel | Restaurer depuis backup en env test | CO + Infra |
| Bascule VPN (DR-03) | Trimestriel | Redémarrer strongSwan, vérifier reconnexion | Infra |
| Rotation credentials (DR-04) | Annuel | Changer PIN, redéployer backend | CO + Backend |
6. Contacts d'urgence¶
| Rôle | Contact | Disponibilité |
|---|---|---|
| Crypto Officer principal | [À définir] | Heures ouvrées |
| Crypto Officer backup | [À définir] | Astreinte |
| Infra Admin | [À définir] | Astreinte |
| Support AWS CloudHSM | AWS Support (Business/Enterprise) | 24/7 |