docs: ajout de la cartographie ANSSI (cloisonnement SI) et de l'architecture des outils souverains
DevSecOps Pipeline - Universal Quality Gate / System & Environment Check (pull_request) Successful in 5s Details
DevSecOps Pipeline - Universal Quality Gate / Secret Detection (Gitleaks) (pull_request) Successful in 27s Details
DevSecOps Pipeline - Universal Quality Gate / IaC Security & Vulnerability Scan (Trivy) (pull_request) Successful in 21s Details

This commit is contained in:
Marc Lasserre 2026-08-20 23:50:31 +02:00
parent c5589558e0
commit f97ef3db2a
Signed by: M7s
GPG Key ID: F74837410959661B
2 changed files with 100 additions and 0 deletions

View File

@ -0,0 +1,35 @@
### 📄 2. `techniques/ARCHITECTURE_OUTILS.md`
# Architecture des Outils & Stratégie Souveraine
## 1. Vision Métier & Ergonomie "Non-Tech"
Pour garantir une adoption fluide par l'ensemble de l'équipe (profils techniques et non-techniques) sans multiplier les outils :
* **Zéro CRM/Usine à gaz complexe** : Le suivi de projet et la gouvernance se font directement via l'interface web de Gitea (`git.gorym.net`).
* **Validation en 1-clic** : La relecture et la validation des documents/code se font via le bouton **"Approuver"** de l'interface web, sans aucune ligne de commande.
* **Unified Domain** : L'ensemble des services métiers et techniques sont regroupés sous l'écosystème unifié `*.gorym.net`.
---
## 2. Stack Technique Souveraine (EU Compliance)
Afin d'éliminer toute dépendance aux Cloud Act US (Vercel, Supabase SaaS, Anthropic) :
| Couche Applicative | Stack Cible Souveraine | Remplacement Souverain |
| :--- | :--- | :--- |
| **Hébergement Frontend** | React 18 / Vite (Nginx Podman) | Remplacement de Vercel public par le VPS Debian Podman. |
| **Orchestration & Runtime** | **Podman (Dev/Mono) -> Cluster k3s (Prod)** | Alternatif souverain léger à Docker et aux services Kubernetes Cloud gérés (EKS/GKE). |
| **Backend & API** | Node.js Express / Python FastAPI | Remplacement des fonctions Vercel Serverless. |
| **Base de Données** | PostgreSQL (Rootless Podman) | Auto-hébergement local du script `supabase-military.sql`. |
| **Secrets & Passwords** | Passbolt / Bitwarden Send | Hôte sur `send.gorym.net` (Zero-Knowledge). |
| **IA & Audio (Horizon)** | API Souveraines / Modèles Open-Source | Transition progressive depuis Claude/ElevenLabs vers des modèles UE. |
---
## 3. Matrice de Responsabilités (Marc & Marlène)
| Périmètre | Marc Lasserre (Tech/DevSecOps) | Marlène Marigny (Product/Stratégie) |
| :--- | :--- | :--- |
| **Infra & SecOps** | Maintien Podman, CI/CD, Nginx, Backups | Utilisation des endpoints applicatifs |
| **Gouvernance** | Rédaction technique, règles GPG, PSSI | Validation web des PR, gestion de la Roadmap |
| **Product & App** | Intégration SecOps du code React/API | Design, fonctionnalités métier, Dépôt de code sur Gitea |

View File

@ -0,0 +1,65 @@
# Cartographie du SI & Cloisonnement (Guide ANSSI)
## 1. Principes Général & Doctrine d'Isolation
Conformément aux recommandations de l'ANSSI, le Système d'Information (SI) du projet est cloisonné en deux périmètres strictement étanches pour limiter la surface d'attaque et contenir tout risque de propagation.
* **SI IT & Outillage (DevSecOps / Administration)** : Héberge la forge, la CI/CD, les secrets et la documentation cadre.
* **SI Général / Production (Applicatif Peakload)** : Héberge l'application client, l'API et la base de données physiologiques.
---
## 2. Matrice de Cloisonnement des deux SI
```text
[ Internet / Public ]
[ Reverse Proxy Nginx (TLS 1.3 / WAF) ]
├──────────────────────────────────────┐
▼ ▼
┌──────────────────────────────┐ ┌──────────────────────────────┐
│ SI GENERAL / PRODUCTION │ │ SI IT / OUTILLAGE │
│ Zone Applicative Peakload │ │ Zone DevSecOps & Governance │
├──────────────────────────────┤ ├──────────────────────────────┤
│ • App Web (React/Vite) │ │ • Forge (`git.gorym.net`) │
│ • API Engine (FastAPI/Node) │ │ • Runner CI/CD (`act_runner`)│
│ • BDD (PostgreSQL Rootless) │ │ • Secrets (`send/passbolt`) │
└──────────────────────────────┘ └──────────────────────────────┘
```
---
## 3. Matrice des Flux & Cartographie Réseau
| Zone | Composant | Port Interne | Exposition Publique | Protocole / Usage
| :--- | :--- | :--- | :--- | :--- |
| **Edge** | Reverse Proxy (Nginx) | 80, 443 | Oui (gorym.net) | HTTPS (TLS 1.3 Strict) |
| **SI IT** | Forge Gitea | 3000 | Via Proxy (git.gorym.net) | HTTP/SSH Chiffré |
| **SI IT** | Secrets (Passbolt/Send)| 8080 | Via Proxy (send.gorym.net) |HTTPS Zero-Knowledge |
| **SI Prod** | Frontend Peakload | 5000 | Via Proxy (app.gorym.net) | HTTPS |
| **SI Prod** | API Core | 8000 | Interne Podman uniquement | REST / JSON |
| **SI Prod** | Base PostgreSQL |5432 | **NON (Isolé Podman)** |SQL interne chiffré |
## 4. Mesures de SecOps & Isolation ANSSI
* *Réseaux Podman distincts :* Le SI IT et le SI Prod tournent sur deux réseaux virtuels Podman internes totalement séparés.
* *Privilèges :* Exécution à 100 % sous mode Rootless (aucun conteneur n'est exécuté sous l'utilisateur root du VPS).
* *Base de données isolée :* PostgreSQL n'a aucun port exposé sur l'extérieur. Seule l'API interne du pod Prod peut communiquer avec lui.
---
## 5. Trajectoire d'Orchestration Haute Disponibilité (k3s Cluster)
Afin de garantir la scalabilité, la résilience et la haute disponibilité (HA) du SI Général/Production sans aucune dépendance aux orchestrateurs Cloud propriétaires :
* **Runtime de proximité / Dev** : Les services sont conteneurisés sous **Podman** (mode Rootless, respect strict des normes OCI).
* **Orchestration de Production (k3s)** : Le déploiement s'appuie sur un cluster **k3s** (distribué, léger, certifié CNCF) auto-hébergé sur des instances VPS souveraines européennes.
* **Isolation par Namespaces Kubernetes** :
* `namespace: rym-core` (API, Moteur ML, Traitement VRC/Santé)
* `namespace: rym-db` (PostgreSQL / Redis isolés avec NetworkPolicies strictes)
* `namespace: rym-ingress` (Ingress Controller Nginx / TLS 1.3)
* **Sécurité des Pods (PSS)** : Application des règles *Restricted Pod Security Standards* de Kubernetes (interdiction des privilèges root, contraintes de capabilités Linux).
---