Le GUI n a aucune authentification : GET / sert la page a qui la demande, jeton ecrit dedans, et POST /api exige ce jeton que la page vient de donner. Le jeton garde contre le CSRF, pas contre un visiteur — la seule serrure est --hote 127.0.0.1. Ce qu il offre a qui entre : deployer, creer, raser, editer le plan. La fabric entiere. Le service reste donc sur la boucle locale. Ce qui est publie est un nginx local qui authentifie d abord : oidc par defaut (oauth2-proxy, donc un groupe d annuaire qu on revoque sans deploiement), locale en repli pour un ecosysteme sans annuaire. L authentification est posee au niveau du server, pas d un location. La sonde console-ops mesure une SERRURE : une requete anonyme doit etre REFUSEE. Un 200 y est la pire des reponses, et il ne fait echouer personne. P54 a attrape une contrainte ratee : serveur_ops est insemine par le SITE, qui ne detient pas la voute du locataire. Le role ne nomme donc aucune voute — il declare un parametre, et la couche qui detient le secret le remplit. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
59 lines
2.5 KiB
YAML
59 lines
2.5 KiB
YAML
---
|
|
# Flux réseau du poste d'exploitation. Voir docs/flux-conception.md.
|
|
#
|
|
# Le poste est presque tout en sortie : il va chercher son génome, puis il pilote. Rien
|
|
# ne s'y connecte, sinon l'administration elle-même.
|
|
flux:
|
|
# LA CONSOLE D'EXPLOITATION, PUBLIEE PAR L'EDGE DE L'ECOSYSTEME (2026-09-14).
|
|
#
|
|
# `[edge, admin]` — la meme paire que `serveur_grafana` et `serveur_icingaweb2`, et
|
|
# pour la meme raison : sans edge, un ecosysteme n'aurait plus de console du tout.
|
|
#
|
|
# CE PORT N'EST PAS CELUI DU GUI. Le GUI ecoute `127.0.0.1:8765` et n'est joignable de
|
|
# nulle part ailleurs — c'est sa seule serrure, il sert sa page a qui la demande. Ce
|
|
# qui s'ouvre ici est le NGINX qui authentifie devant.
|
|
#
|
|
# LA REGLE N'EST EMISE QUE SI LE PLAN L'EXPOSE : un runner qui ne publie pas sa console
|
|
# n'a pas ce port ouvert, et `serveur_ops_gui_actif` reste faux.
|
|
- sens: ingress
|
|
port: 8090
|
|
protocole: tcp
|
|
pair: [edge, admin]
|
|
chiffrement: clair
|
|
raison: >-
|
|
Console d'exploitation servie par l'edge (TLS terminé à l'edge), et joignable
|
|
depuis le plan d'administration là où il n'y a pas d'edge. Le GUI lui-même reste
|
|
sur la boucle locale : c'est nginx qui authentifie devant.
|
|
- sens: egress
|
|
port: 443
|
|
protocole: tcp
|
|
pair: edge
|
|
chiffrement: tls-requis
|
|
raison: "Cloner et resynchroniser le génome depuis la forge de l'écosystème."
|
|
- sens: egress
|
|
port: 22
|
|
protocole: tcp
|
|
pair: flotte
|
|
chiffrement: ssh
|
|
raison: "Piloter la flotte — c'est la raison d'être du poste."
|
|
# L'HYPERVISEUR N'EST PAS DANS L'ÉCOSYSTÈME : il appartient au monde physique, de
|
|
# l'autre côté de la frontière. C'est donc un pair `externe`, et ce flux est le seul
|
|
# par lequel un écosystème peut en engendrer un autre.
|
|
- sens: egress
|
|
port: 8006
|
|
protocole: tcp
|
|
pair: externe
|
|
chiffrement: tls-requis
|
|
raison: "API de l'hyperviseur : créer et cloner les VM d'un écosystème descendant."
|
|
# LIRE LE GENOME CHEZ UN VOISIN. La forge du genome se mutualise par SITE : le moteur,
|
|
# les modeles et la fabric sont le meme contenu pour tous les tenants. Seul le plan
|
|
# `OPS-xxx` differe.
|
|
#
|
|
# La forge DE TRAVAIL d'un ecosysteme -- celle qui sert ses gens -- reste un service du
|
|
# tenant, et n'a rien a voir avec ce flux.
|
|
- sens: egress
|
|
port: 443
|
|
protocole: tcp
|
|
pair: voisins_site
|
|
chiffrement: tls-requis
|
|
raison: "Cloner le genome depuis la forge du site, quand cet ecosysteme n'heberge pas la sienne."
|