alliance-boreale/docs/architecture/10 - Stack opérateur de référence (C1-C5).md
Dan Allaire ef98fd8a3f Refonte
2026-03-09 18:23:06 -04:00

5.3 KiB
Raw Blame History

ADR-OPS-STACK-001 — Pile opérateur de référence (C1C5)

Version : 1.1
Date : 26 janvier 2026
Statut : Adopté (référence vivante)
Portée : Opérateurs (C1C5), Gouvernance, Audit interne/externe


1. Contexte

LAlliance Boréale requiert une pile logicielle “Opérateur” stable, reproductible et audit-ready pour opérer les couches C1 à C5 :

  • C1 : capacité (compute) et stockage primaire
  • C2 : segmentation, edge, DNS autoritatif, accès opérateurs
  • C3 : identité et observabilité (SLA, métriques, logs)
  • C4 : forge, traçabilité, CI, artefacts, secrets (plan de vérité)
  • C5 : pivot/membrane (point dentrée unique) et exécution contrôlée (plan dexécution)

Cette standardisation vise :

  • réduction de la variabilité inter-opérateurs,
  • amélioration de lauditabilité (preuves uniformes),
  • simplification du déploiement et de lexploitation,
  • cohérence stricte avec le principe de membrane (C5).

2. Décision

La pile logicielle suivante est adoptée comme Pile opérateur de référence (C1C5).

2.1 Stack par couche (C1C5)

C1 — Compute & Storage

  • Proxmox VE
  • Ceph
  • TrueNAS

C2 — Segmentation, Edge, DNS autoritatif, Accès ops

  • OPNsense
  • PowerDNS Authoritative
  • WireGuard

C3 — IAM & Observabilité

  • Keycloak
  • OpenLDAP
  • Icinga2 + Icinga Web 2 + BPM
  • Prometheus + Alertmanager
  • Grafana
  • Loki

C4 — Forge, CI, Artefacts, Secrets (plan de vérité)

  • Forgejo
  • Forgejo Actions (CI de validation)
  • Harbor
  • Vault
  • Référentiels IaC : OpenTofu (modules) + Ansible (playbooks/inventaires)

C5 — Pivot / membrane (plan dexécution)

  • NGINX + ModSecurity
  • FastAPI
  • Unbound
  • Exécution IaC : runner contrôlé (OpenTofu + Ansible)

3. Règles darchitecture associées

3.1 Membrane (point dentrée unique)

  • NGINX + ModSecurity (C5) constitue le point dentrée unique pour les accès utilisateurs/tenants vers les services exposés (portails, APIs, consultation dashboards).
  • Les composants internes (C2C4) ne sont pas exposés directement aux tenants.

3.2 Cloisonnement “adjacent-only” (principe opérateur)

  • Le cloisonnement réseau impose une logique “default deny” et une segmentation par couches.
  • Tout contournement de C5 (bypass) est considéré comme une non-conformité sauf exception formalisée.

3.3 Traçabilité (PR + ΔLog)

  • Toute modification (config, infra, politiques, runbooks) est versionnée dans Forgejo via PR.
  • Chaque PR doit être reliée à une entrée ΔLog (trace de décision et de preuve).

3.4 Séparation IaC : référentiel vs exécution (invariant)

Cette séparation est un invariant (sécurité + gouvernance), pas une convention de mots :

  • C4 (plan de vérité) : contient et gouverne le code IaC (OpenTofu/Ansible), la validation CI (format/lint/tests/plan), et la traçabilité (PR/ΔLog).
  • C5 (plan dexécution) : exécute les actions à privilèges (ex. tofu apply, ansible-playbook) via un runner contrôlé, afin de :
    • concentrer les privilèges au niveau de la membrane,
    • imposer des contrôles uniformes (RBAC, quotas, journalisation),
    • empêcher quune compromission de la forge/CI se transforme automatiquement en compromission infra.

Note : le runner dexécution peut être techniquement un “Forgejo Actions runner”, mais son positionnement réseau et ses droits le rattachent à C5 (membrane).


4. Conséquences

4.1 Bénéfices

  • Standardisation : onboarding opérateur accéléré.
  • Auditabilité : preuves minimales uniformes (BPM, Grafana, Loki, exports OPNsense).
  • Réduction de la surface dattaque : exécution IaC contrôlée et centralisée en C5.
  • Exploitabilité : séparation claire entre observabilité (C3) et exposition (C5).

4.2 Obligations

  • Discipline de changements : PR + ΔLog obligatoires.
  • Preuves : collecte structurée et indexée selon la politique POL-OPS-STACK-001.
  • Maintien : versions supportées, runbooks, et exécutions IaC traçables.

5. Critères dacceptation

La pile est considérée en place pour un opérateur lorsque :

  1. Tous les composants (C1C5) sont déployés et accessibles conformément au principe de membrane.
  2. Le cloisonnement réseau est démontré (OPNsense + tests de non-bypass).
  3. SSO (Keycloak) protège les portails (Grafana, Icinga Web) via C5.
  4. Les preuves minimales POL-OPS-STACK-001 existent, datées et indexées.
  5. Les changements IaC sont gouvernés en C4, et exécutés via C5 avec traçabilité complète.

6. Gouvernance des changements

Toute modification à la pile opérateur de référence exige :

  • PR + ΔLog,
  • mise à jour des runbooks et des preuves attendues,
  • ADR additionnel si changement de composant ou de rôle.

7. Références internes

  • POL-OPS-STACK-001 — Conformité pile opérateur (C1C5) — preuves attendues
  • ADR-OBS-001 — Loki comme backend de logs de référence
  • POL-OBS-LOG-001 — Contrat de journalisation (Logs) — Référence Loki

8. ΔLog (à compléter au commit)

  • Décision : Adoption de la pile opérateur de référence (C1C5)
  • Auteur(s) : __________________
  • Référence PR : __________________
  • Date dentrée : __________________