7.1 KiB
7.1 KiB
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 l’Alliance 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 d’exécution (runner
applysous 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 d’entré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 d’exé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 planattaché 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 d’exécution → preuves déposées dans
/evidence/.
4) Mode d’audit (trimestriel) — 12 lignes
- Ouvrir la période dans
/evidence/quarterly/YYYY-Qn/. - Vérifier la présence de l’index
evidence/00_Evidence_Index.mdmis à jour. - Confirmer C2-E1 (export OPNsense) et C2-E2 (tests non-bypass) pour la période.
- Confirmer C3-E1 (export Keycloak) et cohérence RBAC ops/audit.
- Confirmer C3-E2 (exports BPM) couvrant au minimum les services C1–C5.
- Confirmer C3-E3 (couverture checks Icinga + historique alertes/incidents).
- Confirmer C3-E4 (targets Prometheus + règles Alertmanager + exemple d’alerte).
- Confirmer C3-E5 (exports dashboards Grafana + sources).
- Confirmer C3-E6 (Loki : labels/rétention + requêtes de preuve reproductibles).
- Confirmer C4-E1..E4 (Forgejo/Actions/Harbor/Vault) avec artefacts et journaux.
- Confirmer C4-E5 et C5-E5 (IaC : plan attaché PR + logs d’apply côté C5).
- 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 d’or
Si ce n’est pas versionné, traçable, et prouvable, ça n’existe pas dans la pile opérateur.