[infra] Jeton SAS écriture-seule pour l'archive de secours, chiffré SOPS/age #70
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 project
No assignees
3 participants
Notifications
Due date
Dependencies
No dependencies set
Reference
g2/enervision#70
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Exigence couverte
ENF-12
Épreuve servie
EC04 · Cloud et sécurisation
Charge estimée
0,5 j.h
Ce qu'on veut obtenir
Donner au serveur de la salle juste de quoi déposer l'archive, sans identité humaine ni service principal, et pouvoir révoquer ce droit sans toucher à la clé du compte.
Critères d'acceptation
daily-archive, qui permet la révocation sans rotation de clé.wcl, HTTPS obligatoire, expiration au-delà de la fin du projet (ex. 2026-10-05).ageet versionné via SOPS ;.sops.yamldéclare au moins deux destinataires (Gabriel et un pair).docs/runbooks/secrets.mddécrit la rotation et note que le jeton est adossé à la clé du compte.Comment on le vérifie
Manuel d'exploitation à mettre à jour
docs/runbooks/secrets.md(créé), procédure de rotationRisque et retour arrière
Fuite du jeton : supprimer la stored access policy, régénérer, mettre à jour SOPS. Expiration en plein projet : le cron casse, d'où l'échéance post-projet.
Dépendances
Dépend de #69 (conteneur
daily-archiveet clé du compte).marvin referenced this issue2026-09-09 09:45:34 +00:00
Noeud de droits, resolu, et un ecart a acter.
Les criteres 1 et 2 : stored access policy + SAS de service
Faisables, mais pas avec mes droits initiaux. Le role
Devops-cours-projet-eadlporte
Microsoft.Storage/storageAccounts/listkeys/action-- mais il estattribue a chaque membre a la portee de son seul groupe de ressources. Le
compte
stenervisiong2tfstateest dansrg-FHeuze2023_cours-projet-eadl, ou jen'avais rien :
Florian a ouvert l'acces nominativement :
Devopsa la portee du compte +Readersur le groupe. Ensuite : stored access policydepot-archive(cwl,HTTPS, expiration 2026-10-05) posee, jeton SAS genere.
Le conteneur n'existait pas
#223 (le #69) a ete mergee mais jamais
terraform apply-- le conteneurarchiven'existait que dans le code. Applique partiellement (import du compte +creation du conteneur,
apply -target). L'alerte de capacite et la politiquede retention de #69 ne sont applicables par personne : le role
Devopsn'a niMicrosoft.Insights/metricAlerts/writenimanagementPolicies/write. A traitersur #223/#69.
Critere 3 : SOPS/age -> ansible-vault (a acter)
Je propose d'ecarter SOPS +
ageau profit du coffreansible-vaultexistant :group_vars/all/vault.ymlcommite chiffrebackup(#71), natifPour un seul jeton, le second outil ne se justifie pas. Le jeton rejoint
vault_sas_archive_depotdansvault.yml. Si quelqu'un tient au critered'origine, on en discute -- sinon je considere le critere 3 amende.
Suite
PR #239 (brouillon). Reste : renseigner le jeton dans
vault.yml, jouer larecette (upload OK / download refuse), #71 pour la consommation.
Recette -- ecriture autorisee, lecture refusee
Jouee le 09/09/2026 avec le jeton SAS
si=depot-archive(adosse a la storedaccess policy, permissions
cwl). Test direct en HTTP sur le blob, sans passerpar l'auto-detection d'auth de
az storage:az storage blob uploadvia le jeton reussit aussi (etag, lastModified,version_id renvoyes). Les blobs
verif/*ont ete supprimes apres coup avec lacle de compte.
Ecriture + liste OK, lecture refusee : conforme au critere de recette.
Etat de #70
depot-archivecwlHTTPS exp. 2026-10-05vault.yml(ansible-vault, critere 3 amende)vault_sas_archive_depot, commit7b78f28docs/runbooks/secrets.mdPR #239, prete a relire. Consommation cote serveur = #71.
Ok pour le critère 3
Precision de nommage : le conteneur s'appelle
archive, pasdaily-archivecomme l'ecrit le critere 1. C'est le nom reel depuis le #43 (infra/terraform/variables.tf,nom_conteneur_archivepar defautarchive). Le critere 1 est tenu, la stored access policydepot-archiveporte bien sur ce conteneur.