Set-OPS-Public/docs/responsabilites-locataire-hebergeur.md
Daniel Allaire e46fa198fd la console dit sa portee : un site n affichait aucune de ses machines
Servie par le runner d un SITE, la console montrait zero serveur sans une erreur :
serveur_ops retire le lien instance sur un hebergeur, charger_yaml rend un
inventaire vide sur un fichier absent, et la page dessinait ce vide comme un plan
vide. La portee se DERIVE des deux symlinks (instance = je configure, underlay =
je materialise), jamais d un reglage declare. Une console de site sert desormais
son inventaire dynamique ; POUVOIR_REQUIS exige un pouvoir pour chaque route POST
et le refus dit pourquoi ; la page nomme la console. P81 refuse une portee sans
source d inventaire, un site sans machines, et toute route qui echapperait a la
table.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 14:36:59 -04:00

11 KiB

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

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

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 (81 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.