diff --git a/techniques/ARCHITECTURE_OUTILS.md b/techniques/ARCHITECTURE_OUTILS.md new file mode 100644 index 0000000..e1a9fec --- /dev/null +++ b/techniques/ARCHITECTURE_OUTILS.md @@ -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 | diff --git a/techniques/CARTOGRAPHIE_ANSSI.md b/techniques/CARTOGRAPHIE_ANSSI.md new file mode 100644 index 0000000..b99eca2 --- /dev/null +++ b/techniques/CARTOGRAPHIE_ANSSI.md @@ -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). + +--- +