Set-OPS-Public/docs/responsabilites-locataire-hebergeur.md
Daniel Allaire 78c2c25761 contexte : etape 2, la frontiere premier temps, les identites (P87)
La face reseau porte ses zones ; verifier_frontiere confronte supernet,
administration, tunnel, alias de groupe, routes et traduction sortante a
la face reseau et a la fiche du site. Aucun ecart ; cinq alterations vues.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:28:06 -04:00

118 lines
11 KiB
Markdown

> **Pour qui :** le locataire **et** l'hébergeur — les deux lisent le même texte, et c'est
> le but. Un partage de responsabilités dont chaque partie aurait sa version est un
> désaccord qui attend son incident.
# Responsabilités du locataire et de l'hébergeur
## 1. Le principe : une responsabilité est la conséquence d'un pouvoir
Ce document ne distribue pas des devoirs par bonne volonté. Il les **dérive** :
> **Qui peut, doit. Qui ne peut pas, ne peut pas être tenu — et personne ne peut se
> décharger sur celui qui ne peut pas.**
Trois règles en découlent, et elles décident de tout le reste :
1. **À chaque pouvoir sa responsabilité.** Un pouvoir sans devoir correspondant est une
prise sur autrui ; un devoir sans pouvoir correspondant est un piège.
2. **Une responsabilité sans mécanisme est un vœu.** Chaque ligne du tableau nomme
l'endroit du système qui la rend vraie — un rôle, une garde, une commande. Ce qui n'a
pas de mécanisme est écrit au §5, parmi les points non tranchés, plutôt que promis.
3. **Le silence ne crée pas de responsabilité.** Si une ligne n'a pas de vis-à-vis, ce
n'est pas une zone partagée : c'est un trou, et il se voit.
## 2. La ligne de partage : trois portées, et aucun pouvoir total
C'est la structure même du moteur, pas une convention de contrat
(`roles/serveur_ops_tenant/README.md`) :
```
calculer plan → inventaire aucune voûte n'importe quel runner
configurer des rôles sur ses machines voûte du TENANT le runner du locataire
matérialiser créer / détruire des VM voûte du SITE le runner de l'hébergeur
```
**Aucun runner n'est omnipotent.** Celui de l'hébergeur matérialise le terrain et n'entre
jamais chez un locataire ; celui du locataire configure son écosystème et ne touche jamais
la fabric. Tout ce qui suit découle de cette coupure.
## 3. Le tableau
<!-- TABLE:RESPONSABILITES — canonique. Le PDF remis aux locataires LIT ce tableau ;
il n'en porte pas de copie. Le modifier ici le modifie partout. -->
| Le pouvoir | Qui le détient | La responsabilité qui en découle | Ce que l'autre ne peut donc pas faire à sa place |
|---|---|---|---|
| **Créer et détruire les machines** (`raser`, `site-raser`, clonage du gabarit) | l'hébergeur | Que les machines existent, démarrent et tiennent ; qu'aucune destruction n'ait lieu sans confirmation explicite ni sans sauvegarde hors du site au préalable | Le locataire ne peut pas garantir l'existence de ses machines, ni se les rendre lui-même |
| **Le réseau, la frontière et le stockage** (SDN, VLAN, OPNsense, Ceph) | l'hébergeur | Que le chemin existe et que la bordure refuse ce qui n'est pas déclaré ; prévenir avant toute coupure planifiée | Le locataire ne peut pas ouvrir un flux vers l'extérieur sans que l'hébergeur l'applique |
| **Déclarer ses flux** (`roles/*/meta/flux.yml`, pare-feu d'hôte) | le locataire | Déclarer ce que ses services ont besoin d'échanger ; ce qui n'est pas déclaré est refusé, et c'est voulu | L'hébergeur ne peut pas deviner un flux applicatif ; il n'ouvrira rien « au cas où » |
| **Configurer les services** (son runner, sa voûte) | le locataire | L'état de ses services : ce qui est déployé, à jour, et conforme à son plan | L'hébergeur ne peut pas configurer un service du locataire : il n'a pas sa voûte |
| **L'annuaire et l'entrée unique** (LDAP, Keycloak) | le locataire | Qui entre, qui sort, et **quand** — créer, désactiver, révoquer sans attendre personne | L'hébergeur ne peut retirer l'accès de personne : mutualiser l'annuaire serait lui confier ses gens |
| **Les habilitations** (appartenance aux groupes, D-66/D-67) | le locataire | Tenir ses groupes à jour. Le moteur amorce **un** accès puis se retire : il ne réconcilie jamais les appartenances | Ni l'hébergeur ni l'outillage ne corrigeront un groupe : un redéploiement n'efface pas le compte créé la veille |
| **Son autorité de certification** (step-ca, D-87) | le locataire | Renouveler ses certificats, et **recharger** les services qui les servent — un certificat renouvelé sur disque reste servi périmé en mémoire | L'hébergeur ne peut pas émettre de certificat au nom du locataire, et c'est délibéré : il pourrait sinon se faire passer pour n'importe lequel de ses services |
| **Ses journaux** (Loki, D-87) | le locataire | Les lire, les conserver, et les fournir s'il demande de l'aide | L'hébergeur ne voit pas les journaux du locataire : il ne peut donc pas diagnostiquer un incident applicatif à sa place |
| **La disponibilité de la fabric** (une VM est-elle debout ?) | l'hébergeur | Constater qu'une machine est tombée et le dire — c'est sa fabric | Le locataire n'a pas de vue sur l'hyperviseur qui porte ses VM |
| **Les métriques d'hébergement** (charge, disque) | l'hébergeur, **avec réserve** | S'en servir pour dimensionner et prévenir, pas pour lire l'activité d'une organisation — elles disent *quand* et *combien* | — (elles ne disent pas *quoi* : le contenu reste hors de portée) |
| **Le dépôt de sauvegarde** (`serveur_backup`, chiffré côté client) | l'hébergeur | Que le dépôt **accepte encore une écriture** : espace, droits, système de fichiers en lecture seule. Sa sonde constate l'endroit, jamais le contenu | L'hébergeur **ne peut pas** juger un instantané : il héberge des octets qu'il ne peut pas ouvrir |
| **La clé de ses sauvegardes** (restic) | le locataire | Juger que ses instantanés sont **récents, complets et restaurables**, et éprouver une restauration. *La vérification suit la clé* | Personne ne peut vérifier une sauvegarde à la place de qui détient la clé — et sa perte les rend définitivement illisibles |
| **Sa voûte et ses secrets** (jamais mutualisée) | le locataire | Garder sa clé hors de l'infrastructure qu'elle ouvre, en double, et faire tourner ses secrets | L'hébergeur ne peut pas recouvrer une clé de voûte perdue : il n'en a aucune copie, par construction |
| **Le courriel** (relais à la bordure) | partagé | L'**enveloppe** transite chez l'hébergeur, qui en répond ; le **contenu** appartient au locataire, qui en répond | L'hébergeur ne lit pas le contenu ; le locataire ne tient pas la réputation de la bordure |
| **La forge du génome** (D-81) | l'hébergeur | Tenir l'autorité du génome disponible : c'est de là qu'un écosystème se reproduit | Le locataire ne dépend pas d'elle pour **vivre** — seulement pour se reconstruire ; il peut en garder son propre miroir |
| **L'accès de secours par `sudo`** (D-40) | l'hébergeur, **tant qu'il exploite** | Le dire plutôt que de le taire : exploiter une machine, c'est pouvoir tout y lire. C'est la raison d'être du second temps de la remise, et de sa date | Le locataire ne peut pas le supprimer sans reprendre lui-même l'exploitation — d'où une **échéance écrite**, pas une confiance indéfinie |
| **La remise des clés** (`make remise-*`, garde **P80**) | l'hébergeur remet, le locataire reçoit | Remettre en deux temps : l'identité le jour de la livraison, la machine à l'échéance — sa clé entre, la nôtre sort, la voûte est re-clétée | Un accès qu'on oublie de rendre ne devient pas légitime en vieillissant : la garde signale tout retard |
| **Nommer le responsable désigné** (D-18, `remise.yml`) | le locataire | Nommer la personne qui engage l'organisation, et la maintenir à jour | L'hébergeur ne peut pas la désigner : ce serait choisir qui a le droit de le quitter |
| **Décider de partir** (migration, émancipation) | le locataire | Mandater, et emporter ce qui est à lui : son plan, ses données, sa voûte, ses domaines | L'hébergeur ne peut ni retenir ni décider à sa place ; la machine **instruit**, l'humain décide |
| **Libérer un partant** (`migration-tenant.md` §6) | l'hébergeur | **Révoquer, pas transmettre** : ses accès tombent, puis rétention convenue, puis purge | Le locataire ne peut pas vérifier lui-même la purge ; elle est un engagement daté, pas une mesure |
<!-- /TABLE:RESPONSABILITES -->
## 4. Ce que personne ne peut déléguer
Trois choses ne se confient à aucune des deux parties, parce que les confier les annule :
- **La phrase de passe d'un paquet de remise** ne voyage jamais avec le support qu'elle
ouvre. Séparés, ils ne valent rien l'un sans l'autre ; ensemble, ils valent l'écosystème.
- **La seconde copie** d'une clé, dans un autre lieu physique. Un support unique dans un
tiroir unique n'est pas une sauvegarde, c'est le même risque déplacé de quelques mètres.
- **La comparaison d'une empreinte** avant d'installer une autorité de certification.
Installer une AC, c'est lui donner le droit de signer n'importe quel nom : la
comparaison est ce qui distingue sa racine d'une racine interceptée.
## 5. Ce qui n'est pas tranché — et qui reste donc à convenir
Nommer un point ouvert vaut mieux qu'une ligne rassurante sans mécanisme derrière.
- **Le recouvrement de la clé du responsable désigné.** Elle se perd, se compromet, ou la
personne quitte l'organisation. Sans procédure, un locataire devient *inmigrable* :
captif non par contrat mais par accident. Piste retenue : un **contact de secours nommé
en même temps que le responsable**, tant que personne n'est en situation d'urgence.
- **Comment on change de responsable désigné** — acte au moins aussi sensible que la
migration, puisqu'il décide qui pourra la mandater ensuite.
- **La durée de rétention** avant purge chez un hébergeur sortant : elle se convient, elle
ne se dérive pas.
- **La preuve que l'hébergeur ne peut plus entrer.** Le plan déclare la révocation et le
déploiement l'applique ; le vérifier depuis l'extérieur demande d'essayer d'entrer, donc
une machine vivante (`make emancipation-prouver`).
## 6. Comment chaque ligne se vérifie
Aucune de ces responsabilités n'est laissée à la parole :
```
make prouver le dépôt est-il cohérent avec lui-même (87 preuves, zéro réseau)
make remise-verifier le second temps de la remise est-il fait, ou en retard ? (P80)
make certificats-plan ce que le disque porte contre ce que la mémoire sert
make expositions-plan chaque service publié répond-il, et depuis où
make identite-plan royaume, fédération, politique de mot de passe, comptes
make emancipation-prouver un lien d'hébergement est-il réellement coupé
```
`make deployer` **répare**, les devis **constatent** : les confondre fait perdre
l'information au moment où elle sert.
---
*Le partage décrit ici n'est pas une politique commerciale : c'est la forme du système.
Chaque fois qu'il a été possible de donner un pouvoir au locataire, il lui a été donné —
et chaque fois que l'hébergeur a conservé un pouvoir, c'est parce que quelqu'un doit porter
la fabric, et cela s'écrit ici plutôt que de se découvrir le jour d'un incident.*