docs(adr): constate que la machine ENI est un conteneur LXC, LUKS y est impossible
La garde de scripts/coffre-luks.sh refuse un conteneur LXC ou l'absence de device-mapper. L'ADR 0020, 10-infra.md et la vue d'ensemble disent ce qui est en place (SSE-C des archives) et ce qui relève de l'hôte Proxmox (chiffrement du disque du conteneur).
This commit is contained in:
@@ -39,8 +39,7 @@ sans shell : la garde sur les secrets vit dans le `Makefile` (`garage-garde`, ap
|
||||
**Nœud unique assumé.** `replication_factor = 1` et moteur `sqlite`, avec un instantané des
|
||||
métadonnées toutes les six heures. La documentation de Garage réserve ce facteur aux
|
||||
déploiements de test : ici la machine est unique, la redondance n'existe pour aucun autre service,
|
||||
et le coffre LUKS de l'[ADR 0020](0020-chiffrement-au-repos-coffre-luks-et-sse-c.md) porte les
|
||||
volumes. LMDB, le moteur par défaut, se corrompt à l'arrêt brutal et rien ne le reconstruirait.
|
||||
et le chiffrement au repos est traité à part ([ADR 0020](0020-chiffrement-au-repos-coffre-luks-et-sse-c.md)). LMDB, le moteur par défaut, se corrompt à l'arrêt brutal et rien ne le reconstruirait.
|
||||
|
||||
**La rétention de `reading` est un traitement du backend, ordonnancé par Airflow.** Le DAG
|
||||
`retention` lance chaque nuit `app.etl.reading_retention` ([ADR 0008](0008-airflow-execute-le-code-du-backend.md)),
|
||||
|
||||
@@ -22,6 +22,17 @@ console au démarrage : tout redémarrage doit aboutir sans saisie.
|
||||
|
||||
## Décision
|
||||
|
||||
**Constat du 24/09, qui borne tout ce qui suit.** La machine `eadl-2025-nantes-g3` n'est pas une
|
||||
machine virtuelle mais un conteneur LXC Ubuntu 24.04 sur un hôte Proxmox (`systemd-detect-virt`
|
||||
répond `lxc`, aucun `/dev/mapper/control`, aucun périphérique loop, pas de `/dev/fuse`, module
|
||||
`dm_crypt` inaccessible). LUKS, comme tout chiffrement au niveau bloc ou FUSE, y est impossible.
|
||||
Le chiffrement au repos du disque de ce conteneur ne peut se faire que sur l'hôte Proxmox
|
||||
(volume LUKS ou ZFS chiffré sous le conteneur), par l'administrateur de l'école : la demande
|
||||
lui est adressée, et jusqu'à sa réponse la base et les métadonnées Garage sont en clair sur ce
|
||||
disque. `scripts/coffre-luks.sh` détecte ce cas et refuse de démarrer. Ce qui suit reste la
|
||||
décision pour toute machine où le device-mapper est disponible (la cible k3s de `10-infra.md`,
|
||||
ou une vraie VM), et le SSE-C des archives est en place dès aujourd'hui.
|
||||
|
||||
**Un coffre LUKS2 sous tous les volumes Docker, posé par `scripts/coffre-luks.sh`.**
|
||||
|
||||
- Le coffre est un **fichier image creux** (`/srv/enervision/coffre.img`, 30 Go par défaut)
|
||||
|
||||
@@ -141,10 +141,11 @@ consolidée.
|
||||
Argon2id, RBAC à trois rôles. Détail dans [20-backend.md](20-backend.md), décisions dans les
|
||||
[ADR 0002](../adr/0002-authentification-jwt-et-refresh-opaque.md) et
|
||||
[0003](../adr/0003-autorisation-rbac-a-trois-roles.md).
|
||||
- **Chiffrement au repos.** Sur la VM, tous les volumes Docker (base, Garage, Airflow,
|
||||
supervision) vivent dans un coffre LUKS2 dont Docker exige le montage pour démarrer ; les
|
||||
archives de mesures déposées sur Garage sont en plus chiffrées par clé client (SSE-C). Ce que
|
||||
cela protège et ne protège pas : [ADR 0020](../adr/0020-chiffrement-au-repos-coffre-luks-et-sse-c.md).
|
||||
- **Chiffrement au repos.** Les archives de mesures déposées sur Garage sont chiffrées par clé
|
||||
client (SSE-C). Le coffre LUKS des volumes Docker (`scripts/coffre-luks.sh`) est prêt pour une
|
||||
vraie VM, mais la machine ENI est un conteneur LXC sans device-mapper : le chiffrement de son
|
||||
disque relève de l'hôte Proxmox, demandé à l'école. Ce qui est couvert et ce qui ne l'est pas :
|
||||
[ADR 0020](../adr/0020-chiffrement-au-repos-coffre-luks-et-sse-c.md).
|
||||
- **Interdire par défaut.** Toute route exige un jeton, sauf quatre exceptions listées dans un
|
||||
fichier de test qui interroge réellement chaque route sans identifiant.
|
||||
- **Révocation immédiate.** Le compte est relu en base à chaque requête : une désactivation ou un
|
||||
|
||||
@@ -302,7 +302,11 @@ l'`apply` n'est pas rejouable sans qu'un administrateur du dépôt en crée un n
|
||||
|
||||
### Coffre LUKS des volumes Docker (issue #42)
|
||||
|
||||
Statut : `En cours`, script écrit, jamais encore joué sur la VM. Décision et modèle de menace dans
|
||||
Statut : `Bloqué par la plateforme`. La machine ENI est un conteneur LXC sur Proxmox, sans
|
||||
device-mapper ni loop : `scripts/coffre-luks.sh` s'y arrête sur sa garde, et le chiffrement du
|
||||
disque de ce conteneur relève de l'hôte Proxmox, demandé à l'administrateur de l'école. Ce qui
|
||||
est en place aujourd'hui : le SSE-C des archives déposées sur Garage. Le runbook ci-dessous vaut
|
||||
pour une vraie VM (cible k3s, ou remplacement du conteneur). Décision et modèle de menace dans
|
||||
l'[ADR 0020](../adr/0020-chiffrement-au-repos-coffre-luks-et-sse-c.md). Un fichier image LUKS2
|
||||
(`/srv/enervision/coffre.img`, clé `/root/enervision-coffre.key`) est monté sur
|
||||
`/srv/enervision/coffre`, et `/var/lib/docker/volumes` est bind-monté depuis ce coffre : les
|
||||
|
||||
Reference in New Issue
Block a user