« Un secret dans un coffre est automatiquement gouverné. »
Sans propriétaire, dépendances, rotation, révocation et test fonctionnel, le stockage seul ne suffit pas.
01Observe les comptes de service
column -s, -t "$lab/source/services/service-accounts.csv"
column -s, -t "$lab/output/service-account-register.csv"
Les identités svc-erp, svc-backup et svc-monitor possèdent propriétaire, workload, périmètre, revue, révocation, référence de secret et finalité.
L’état initial marque svc-monitor interactif. L’état cible force les trois comptes à interactive=no.
02Utilise uniquement des références sûres
Les fixtures emploient :
secret-ref://vault/soria/erp-runtime
credential-owner://team/platform
La colonne secret_value reste vide. Aucun mot de passe, token, clé privée ou valeur ressemblant à un credential opérationnel n’est créé ou affiché.
03Manipule le registre de gouvernance
column -s, -t "$lab/output/secret-governance.csv"
SEC-002 est en retard de rotation. Le rapport exige une rotation contrôlée et une vérification des dépendances; il ne modifie pas la fixture pour obtenir un résultat vert.
04Prépare la rotation
column -s, -t "$lab/output/rotation-plan.csv"
Chaque plan contient :
propriétaire
fenêtre
précheck
ordre : issue-new → update-workload → revoke-old
test fonctionnel
critère d'arrêt
continuité
preuve attendue
Un secret compromis ne doit pas être remis en service comme simple rollback. La continuité repose sur une méthode préautorisée et bornée.
05Teste négativement la gouvernance
Une copie injecte un secret sans propriétaire et avec rotation_days=0.
Résultat obligatoire :
Negative test blocked: secret without rotation or responsible owner
Une autre copie crée un compte de service orphelin. La présence d’une référence de coffre ne compense pas l’absence de responsable.
06Vérifie la révocation
column -s, -t "$lab/output/revocation-plan.csv"
Le plan couvre départ, compromission et retrait d’un service. Il distingue compte, groupes, délégations, droits directs, secrets dépendants et preuve de revue.
La CI ne prétend pas invalider une session ou un token réel.
07Encadre le break-glass
column -s, -t "$lab/output/emergency-access-review.csv"
Chaque compte d’urgence exige :
- deux gardiens représentés ;
- condition d’activation ;
- approbation ;
- durée maximale et expiration ;
- journalisation attendue ;
- révocation ;
- revue post-usage ;
- absence d’usage quotidien.
bg-directory conserve une action : le test périodique est manquant.
08Provoque l’urgence invalide
La variante négative retire approbation, expiration et preuve de révocation, puis marque le compte comme quotidien.
Negative test blocked: emergency access lacks expiration approval or revocation evidence
Le mécanisme d’urgence est bloqué s’il devient un compte permanent non contrôlé.
09Rends la décision du Lot 2
cat "$lab/output/final-decision.txt"
cat "$lab/output/validation-summary.txt"
Résultat :
PRIVILEGED_ACCESS_WITH_ACTIONS
Les fixtures démontrent séparation, réduction, chemins, rotation planifiée, révocation et urgence encadrée. Elles ne démontrent pas MFA réel, coffre réel, rotation effective, révocation de session ni test d’urgence opérationnel.
10Nettoie sans laisser de matière sensible
bash module2-privileged-access-secrets.sh reset "$lab"
test ! -e "$lab"
Le reset exige le marqueur, rend sa propre source locale supprimable puis efface uniquement la racine autorisée.
Défends la décision d’accès privilégié
Présente les registres, explique les six rejets négatifs, justifie les actions restantes et distingue précisément ce que la CI prouve de ce qu’un environnement réel doit encore démontrer.
✓Lot 2 terminé
Tu sais séparer les identités, borner les privilèges, renforcer l’authentification, contrôler le chemin d’administration et gouverner services, secrets et urgence sans fabriquer de preuve.