Set-OPS-Public/roles/serveur_icingaweb2/meta/flux.yml
Daniel Allaire 5ecce4282a une console pour le site, et un repli qui ouvrait vers l Internet
Icinga Web 2 gagne un troisieme mode, locale : nginx authentifie en HTTP Basic
et pose REMOTE_USER, l application le croit. Un SITE n a ni annuaire ni Keycloak
— ce sont des services d ecosysteme. Ni backend LDAP ni backend de groupes : un
backend qui vise une ressource inexistante fait echouer chaque ouverture de
session. L habilitation nomme alors une personne, entorse a D-66 ecrite plutot
que contournee.

Deux pieges en chemin : resoudre_annuaire etait appele sans condition et tombait
sur NoneType has no len (default sans son second argument ne remplace pas None),
et le flux du role ne nommait que l edge — le site n en a pas, donc personne ne
pouvait entrer. serveur_grafana portait deja la reponse.

LE DEFAUT DU DEVIS : une sortie vers un role ABSENT de l ecosysteme retombait
sur !SETOPS_INTERNES, la forme de vers l Internet. La frontiere aurait autorise
la console a parler LDAPS a n importe quelle machine du monde, pour joindre un
annuaire qui n existe pas. C est une source vide ouvre le port, cote
destination. Trois regles du meme defaut etaient DEJA posees pour postfix.

La frontiere n est pas ecrite : elle porte la production, et le devis attend un
mot.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 19:11:22 -04:00

36 lines
1.6 KiB
YAML

---
# Flux réseau d'Icinga Web 2 (frontal de supervision). Voir docs/flux-conception.md.
# Icinga 2 (API 5665) et IcingaDB (Redis 6380) sont co-localisés : consommés en localhost.
flux:
# `admin` EN PLUS DE `edge` — le meme raisonnement que `serveur_grafana`, qui le portait
# deja et dont la phrase vaut mot pour mot ici : *joignable depuis le plan
# d'administration partout, sans quoi un deploiement sans edge n'a plus de console*.
#
# CE QUE SON ABSENCE COUTAIT (2026-09-14) : le SITE n'a pas d'`infra-edge`. La console
# de supervision y a ete deployee, nginx ecoutait, php-fpm repondait — et le pare-feu
# ne laissait entrer PERSONNE. 88 verdicts lisibles par aucune machine au monde.
#
# Les deux consoles de l'observabilite avaient la meme contrainte et une seule des deux
# l'avait ecrite. En mode `locale`, nginx authentifie lui-meme : ce qui entre par le
# plan d'administration frappe un vestibule, pas l'application.
- sens: ingress
port: 8080
protocole: tcp
pair: [edge, admin]
chiffrement: clair
raison: >-
Interface web servie via l'edge (TLS terminé à l'edge ; SSO possible via
oauth2-proxy), et joignable depuis le plan d'administration là où il n'y a pas
d'edge.
- sens: egress
port: 5432
protocole: tcp
pair: serveur_postgresql
chiffrement: tls-requis
raison: "Lecture d'IcingaDB (base relationnelle, verify-full)."
- sens: egress
port: 636
protocole: tcp
pair: serveur_openldap
chiffrement: tls-requis
raison: "Authentification des utilisateurs sur l'annuaire (LDAPS)."