alliance-boreale/archives/pre-migration/docs-pile-operateur/README.md
Dan Allaire ef98fd8a3f Refonte
2026-03-09 18:23:06 -04:00

7.1 KiB
Raw Blame History

README - Pile C1-C5 (Opérateur de référence)

Ce dépôt est la source de vérité (documentation + configuration + preuves) de la Pile opérateur de référence pour lAlliance Boréale (couches C1 à C5).
Références normatives : ADR-OPS-STACK-001 (décision) et POL-OPS-STACK-001 (exigences + preuves).

1) Principes non négociables

  • Membrane : tout accès exposé passe par C5 (NGINX + ModSecurity), sans bypass vers C2/C3/C4.
  • Traçabilité : tout changement passe par PR + ΔLog, et génère ses preuves.
  • Séparation IaC : C4 = plan de vérité (code, PR, CI, plan) ; C5 = plan dexécution (runner apply sous contrôle de la membrane).

2) Table — Stack opérateur (Exposition + Preuves)

Les “preuves” ci-dessous référencent les identifiants exigés par POL-OPS-STACK-001 (Cx-Ey). Les détails (contenu exact attendu) sont dans la POL.

Couche Domaine Composant Exposition Preuves attendues
C1 Virtualisation Proxmox VE Admin-only (réseau gestion) C1-E1, C1-E3
C1 Stockage distribué Ceph Admin-only (réseau stockage/gestion) C1-E2, C1-E3
C1 NAS / landing zone / backup TrueNAS Admin-only C1-E4 (si activé)
C2 Pare-feu / segmentation OPNsense Admin-only (enforcement réseau) C2-E1, C2-E2
C2 DNS autoritatif PowerDNS Authoritative Interne fédération (pas tenants) C2-E3
C2 VPN admin / interco WireGuard Ops-only C2-E4
C3 SSO / IAM Keycloak Via C5 (portails/UI) ; admin-only direct C3-E1
C3 Annuaire OpenLDAP Interne (consommé par C3) C3 (documenter si requis)
C3 Monitoring états/SLA Icinga2 Lecture via C5 (Icinga Web) ; checks internes C3-E2, C3-E3
C3 UI monitoring Icinga Web 2 Via C5 (SSO) C3-E2, C3-E3
C3 Dashboards audit/SLA Icinga Web 2 BPM Via C5 (SSO) C3-E2
C3 Observabilité métriques Prometheus Interne ; consulté via Grafana C3-E4
C3 Alerting métriques Alertmanager Ops-only (notifications) C3-E4
C3 Dashboards unifiés Grafana Via C5 (SSO) C3-E5
C3 Logs centralisés (référence) Loki Ingestion via C5 ; lecture via Grafana C3-E6 (+ ADR-OBS-001, POL-OBS-LOG-001)
C4 Forge / traçabilité Forgejo Via C5 (SSO) C4-E1
C4 CI / validation Forgejo Actions Interne (CI) C4-E2
C4 Registre artefacts Harbor Via C5 (auth) C4-E3
C4 Secrets Vault Interne ; accès restreint (C3/C5) C4-E4
C4 Référentiels IaC OpenTofu + Ansible (code) Via Forgejo (PR/CI) C4-E5
C5 Reverse proxy / WAF NGINX + ModSecurity Public/tenant-facing (point dentrée unique) C5-E1, C5-E2
C5 Pivot API / portail FastAPI Via NGINX (SSO) C5-E3
C5 DNS récursif tenants Unbound Tenants uniquement (C6+) C5-E4
C5 Runner dexécution IaC OpenTofu + Ansible (apply) Ops-only (membrane) C5-E5

3) IaC : “C4 vérité / C5 exécution” (règle opérateur)

  • C4 (Forgejo + Actions) héberge le code (OpenTofu/Ansible), les PR, le ΔLog, et la validation (lint/format/tests + tofu plan attaché aux PR).
  • C5 (runner contrôlé) exécute les actions à privilèges (tofu apply, ansible-playbook) avec secrets fournis via Vault et accès réseau minimal requis.
  • Toute exécution IaC doit être traçable : PR → job → logs dexécution → preuves déposées dans /evidence/.

4) Mode daudit (trimestriel) — 12 lignes

  1. Ouvrir la période dans /evidence/quarterly/YYYY-Qn/.
  2. Vérifier la présence de lindex evidence/00_Evidence_Index.md mis à jour.
  3. Confirmer C2-E1 (export OPNsense) et C2-E2 (tests non-bypass) pour la période.
  4. Confirmer C3-E1 (export Keycloak) et cohérence RBAC ops/audit.
  5. Confirmer C3-E2 (exports BPM) couvrant au minimum les services C1C5.
  6. Confirmer C3-E3 (couverture checks Icinga + historique alertes/incidents).
  7. Confirmer C3-E4 (targets Prometheus + règles Alertmanager + exemple dalerte).
  8. Confirmer C3-E5 (exports dashboards Grafana + sources).
  9. Confirmer C3-E6 (Loki : labels/rétention + requêtes de preuve reproductibles).
  10. Confirmer C4-E1..E4 (Forgejo/Actions/Harbor/Vault) avec artefacts et journaux.
  11. Confirmer C4-E5 et C5-E5 (IaC : plan attaché PR + logs dapply côté C5).
  12. Produire un ΔLog “Audit trimestriel” liant les preuves et conclure OK/KO.

5) Structure du dépôt (résumé)

  • /adr/ : décisions (dont ADR-OPS-STACK-001)
  • /pol/ : politiques (dont POL-OPS-STACK-001, POL-OBS-LOG-001)
  • /configs/ : configs versionnées (opnsense/nginx/unbound/icinga/grafana/loki/harbor/vault, etc.)
  • /iac/ : OpenTofu + Ansible (code) + inventory
  • /runbooks/ : procédures opératoires (incluant exécution IaC en C5)
  • /evidence/ : preuves datées + index (audit mécanique)
  • /dashboards/ : exports Grafana et Icinga BPM

6) Règle dor

Si ce nest pas versionné, traçable, et prouvable, ça nexiste pas dans la pile opérateur.