runbook + coffre : le jeton SAS de l'archive de secours (#70) #239
No reviewers
Labels
No labels
Compat/Breaking
EC01
EC02
EC03
EC04
EC05
EC06
Kind/BDD
Kind/Back
Kind/Bug
Kind/CICD
Kind/Cloud
Kind/Contenu
Kind/Data
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Front
Kind/IA
Kind/Infra
Kind/Monitoring
Kind/Security
Kind/Testing
Portée/Post-jury
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
ops/alerte
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
g2/enervision!239
Loading…
Reference in a new issue
No description provided.
Delete branch "marvin/70-sas-archive"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Le jeton SAS de l'archive de secours (#70)
Donne au serveur de la salle de quoi deposer l'archive quotidienne sur
Azure Blob -- ecriture seule, revocable sans toucher a la cle du compte.
Contenu
docs/runbooks/secrets.md-- generation, rotation, revocation par la storedaccess policy, recette, retour arriere
infra/ansible/group_vars/all/vault.yml--vault_sas_archive_depot(jetonSAS de service, adosse a la policy
depot-archive:cwl, HTTPS, exp.2026-10-05)
vault.yml.example-- la variable, nom seuldocs/runbooks/README.mdFait sur Azure (09/09)
Devopssur le comptestenervisiong2tfstate+Readersur
rg-FHeuze2023...(le roleDevopsest cantonne par membre a son RG)archive(#223 mergeejamais appliquee) -- import compte + conteneur, via
apply -targetdepot-archiveposee, jeton SAS genereCriteres du ticket
w c l, HTTPS, expiration 2026-10-05(critere 3 amende, accord obtenu -- voir commentaire du ticket)
docs/runbooks/secrets.md: rotation, jeton adosse a la cle du compteHors de cette PR
backupqui utilisevault_sas_archive_depotapplicables par personne (
Microsoft.Insights/metricAlertsetmanagementPolicies/writeabsents du roleDevops). #69 reste a moitieapplique.
Closes #70. Depend de #69 (#223).
WIP: runbook du jeton SAS de l'archive de secours (#70)to runbook + coffre : le jeton SAS de l'archive de secours (#70)Relu les trois commits. Le fond est bon : le choix ansible-vault plutôt que SOPS/age est le bon, et il est cohérent avec le projet (docs/api/securite.md:35 pose déjà la même règle pour vault_api_jwt_secret, et .gitignore:33 acte que vault.yml est commité chiffré — précédents #42 et #113). Le raisonnement policy → révocation sans rotation de clé, et la section « le jeton est adossé à la clé du compte », sont justes. La recette en commentaire du #70 (PUT 201 / GET 403 AuthorizationPermissionMismatch / LIST 200) sert le critère de vérification, et le test direct en HTTP est plus probant que az storage, dont l'auto-détection d'auth aurait pu masquer une retombée sur la clé.
Ce qui cloche, par ordre de criticité.
🔴 Bloquant — le critère 3 est proposé, pas acté -> je m'en occupe
La description dit « accord obtenu — voir commentaire du ticket », mais le commentaire du #70 se termine par « si quelqu'un tient au critère d'origine, on en discute — sinon je considère le critère 3 amendé ». Un silence n'est pas un accord obtenu, et c'est un critère d'acceptation. L'argumentaire est convaincant ; il lui manque une trace. Au choix : un « OK » explicite d'un pair en commentaire du #70, ou dans secrets.md la mention «critère 3 amendé, proposé le 09/09, sans objection au ». Sans ça, une relecture du dossier EC01 verra un critère non tenu et non levé. -> je vais mettre un OK en commentaire
🟠 Important — secrets.md décrit un état antérieur à son propre commit
7b78f28a posé vault_sas_archive_depot dans le coffre, mais trois passages parlent encore au futur :Un lecteur en conclut que le jeton n'est pas au coffre, c'est-à-dire l'inverse de ce que la PR livre.
🟠 Important — l'exemple de jeton n'a pas la forme du jeton réel
secrets.md illustre la valeur par se=2026-10-05T00%3A00%3A00Z&sp=cwl&sr=c&sig=… : c'est un SAS ad hoc. Le jeton posé est adossé à la policy — le commentaire du #70 le dit lui-même, si=depot-archive — donc il porte si= et, avec --https-only, spr=https, et ne porte ni sp ni se, qui viennent de la policy. La section « Vérifier la sortie » deux lignes plus bas demande justement spr=https : en l'état, la doc invalide son propre exemple.
🟡 À corriger dans cette PR — deux renvois devenus faux
46b7446a réécrit le corps sans l'index.🟢 Détails
manqué.
Merci pour la relecture. Corrige en
37677d2.secrets.md
vault_sas_archive_depot, sans « a ajouter ».ansible-vault view/edit, et la forme reelle de la valeur.spr=https&sv=...&si=depot-archive&sr=c&sig=...partout. Ajoute une phrase :sp/sepresents = jeton qui ne s'adosse pas a la policy. La section « Verifier la sortie » demande maintenantsi=depot-archiveet l'absence desp/se, coherente avec l'exemple.curlpour rejouer.Renvois
README.md:26: « age/SOPS » -> « coffre ansible-vault ».securite.md: la note « SOPS nulle part » devient la decision, prise dans cette PR.stockage-secours.md:30: lien[secrets.md]sur la ligne du client de depot.Detail archive vs daily-archive : note ajoutee au tableau d'entete de secrets.md. Une ligne ira aussi au #70.
Pour le 🔴 : j'attends ton OK sur le critere 3 en commentaire du #70, ou je date la mention dans secrets.md apres 24 h sans objection.