From 4d9f52cc10bb35cc4638a7f2ab719a0ea8207d1c Mon Sep 17 00:00:00 2001 From: Marc Lasserre Date: Sat, 22 Aug 2026 04:21:17 +0200 Subject: [PATCH] =?UTF-8?q?docs(gouvernance):=20mise=20=C3=A0=20jour=20car?= =?UTF-8?q?tographie=20ANSSI,=20architecture=20outils=20et=20PSSI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iso27001/SOUVERAINETE.md | 29 ++++++------ techniques/ARCHITECTURE_OUTILS.md | 30 ++++++------ techniques/CARTOGRAPHIE_ANSSI.md | 76 +++++++++++++------------------ 3 files changed, 62 insertions(+), 73 deletions(-) diff --git a/iso27001/SOUVERAINETE.md b/iso27001/SOUVERAINETE.md index c128a2e..254cf85 100644 --- a/iso27001/SOUVERAINETE.md +++ b/iso27001/SOUVERAINETE.md @@ -1,4 +1,4 @@ -# 🛡️ Principes de Souveraineté Technologique & PSSI Gorym (ex-RYM) +# 🛡️ Principes de Souveraineté Technologique & PSSI Gorym > **Classification** : Document Officiel — Due Diligence / ISO 27001 > **Portée** : Infrastructure, Applications & Gouvernance de la Donnée @@ -9,7 +9,7 @@ Le projet exclut rigoureusement l'usage de toute brique logicielle, SaaS ou infrastructurelle soumise à des juridictions extra-européennes restrictives : -* ❌ **États-Unis** : Exclusion totale (Zero Cloud Act, FISA 702, surveillance de masse). +* ❌ **États-Unis** : Exclusion totale (Zero Cloud Act, FISA 702, surveillance de masse, Adobe/Figma Cloud, Google Workspace, Slack). * ❌ **Chine** : Absence de transparence et risque de dépendance stratégique. * ❌ **Royaume-Uni** : Post-Brexit (hors cadre strict RGPD / UE). * ❌ **Russie / Moyen-Orient** : Risques d'ingérence et de rupture de service. @@ -18,26 +18,27 @@ Le projet exclut rigoureusement l'usage de toute brique logicielle, SaaS ou infr ## 2. Cartographie de la Stack Technique "100 % EU & Open-Source" -Toute solution intégrée est développée, maintenue et hébergée au sein de l'Union Européenne : +Toute solution intégrée est développée, maintenue et hébergée au sein de l'Union Européenne (France/Allemagne) : * **Système d'Exploitation** : Debian GNU/Linux (Communauté décentralisée, base européenne). -* **Infrastructure & Hébergement** : VPS dédiés situés en France (OVHcloud). -* **Gestion des Secrets & PGP** : Passbolt (`secrets.gorym.net` - Luxembourg/EU). -* **Espace Cloud & Documents** : OwnCloud Infinite Scale (`cloud.gorym.fr` - Allemagne/EU). -* **Code, CI/CD & Versionnage** : Gitea (`git.gorym.net` - Gouvernance compatible UE). -* **Gestion de Projet (HQ)** : Kanboard (`hq.gorym.fr` - Open-Source UE). -* **Observabilité & Monitoring** : Netdata (`monitor.gorym.net` - Grèce/EU). +* **Infrastructure & Hébergement** : VPS dédiés situés en France (OVHcloud, IP `213.32.20.132`). +* **Design & Prototypage** : Penpot (`design.gorym.fr` - Open-Source MPL 2.0). +* **Gestion des Secrets & MDP** : Vaultwarden (`vault.gorym.fr` - Chiffrement Zero-Knowledge). +* **Espace Cloud & Documents** : OwnCloud Infinite Scale / OCIS (`drive.gorym.fr` - Allemagne/EU). +* **Code, CI/CD & Versionnage** : Gitea (`git.gorym.fr` - Open-Source UE). +* **Communication Chiffrée** : Matrix Synapse + Element (`chat.gorym.fr` - Chiffrement E2EE). +* **Observabilité & Monitoring** : Netdata (`monitor.gorym.fr` - Grèce/EU). --- ## 3. Politiques de Sécurité de l'Information (PSSI — Alignment ISO 27001) -### A. Control des Accès & Gestion des Clés (ISO 27001 — A.9) -* **Identité Numérique** : Attribution stricte d'une identité nominative `@gorym.net`. +### A. Contrôle des Accès & Gestion des Clés (ISO 27001 — A.9) +* **Identité Numérique** : Attribution stricte d'une identité nominative `@gorym.fr`. * **Zero Plain-Text Secrets** : Interdiction formelle de transmettre des mots de passe ou tokens par courriel/chat. -* **Chiffrement Assymétrique** : Utilisation exclusive du coffre-fort Passbolt avec chiffrement PGP/GPG (clés 4096 bits / ECDSA). +* **Coffre-fort centralisé** : Stockage exclusif des accès, clés d'application (`PENPOT_SECRET_KEY`) et secrets de bases de données dans Vaultwarden. ### B. Traçabilité & Approche GitOps (ISO 27001 — A.12 & A.14) -* **Zero Modification en Production** : Aucune intervention manuelle directe sur les serveurs. +* **Zero Modification en Production** : Interdiction d'intervenir manuellement en mode ad-hoc sur les bases ou conteneurs sans documentation. * **Auditabilité** : Toute modification d'infrastructure ou de code est effectuée via des commits traçables, signés et validés par Pull Request sur Gitea. -* **Injection Sécurisée en CI/CD** : Les secrets sont extraits dynamiquement lors de l'exécution des runners via CLI Passbolt. +* **Persistance & Résilience** : Configuration des services Podman pour redémarrer automatiquement en cas de reboot du serveur (`podman-restart`). diff --git a/techniques/ARCHITECTURE_OUTILS.md b/techniques/ARCHITECTURE_OUTILS.md index c717cef..26c60b3 100644 --- a/techniques/ARCHITECTURE_OUTILS.md +++ b/techniques/ARCHITECTURE_OUTILS.md @@ -1,29 +1,29 @@ -### 📄 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`. +* **Forge & Projets** : Le suivi de projet, la gouvernance et les revues de code se font directement via l'interface web de Gitea (`git.gorym.fr`). +* **Validation en 1-clic** : La relecture et la validation du code ou de la documentation se font via le bouton **"Approuver"** de l'interface web Gitea. +* **Prototypage & Design Collaboratif** : Utilisation de Penpot (`design.gorym.fr`), alternative directe et souveraine à Figma/Adobe, permettant aux profils UX/UI et Produit de collaborer sans friction. +* **Unified Domain** : L'ensemble des services métiers, collaboratifs et techniques sont regroupés sous l'écosystème unifié `*.gorym.fr`. --- ## 2. Stack Technique Souveraine (EU Compliance) -Afin d'éliminer toute dépendance aux Cloud Act US (Vercel, Supabase SaaS, Anthropic) : +Afin d'éliminer toute dépendance aux Cloud Act US (Vercel, Supabase SaaS, Adobe Creative Cloud, Slack, Google Drive) : | 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. | -| **Communication & Chat** | **Matrix(Synapse) + Client Element | Alternative souveraine E2EE (chiffrée de bout en bout) à Slack, Mattermost & Teams | +| **Hébergement & Proxy** | Debian GNU/Linux + Nginx + Certbot | Reverse proxy HTTPS (TLS 1.3) hébergé sur VPS OVH (France). | +| **Orchestration & Runtime** | **Podman (`podman-compose`)** | Moteur OCI souverain avec gestion unifiée de la stack applicative. | +| **Design & UI/UX** | **Penpot** (`design.gorym.fr`) | Remplacement d'Adobe XD / Figma par Penpot (Postgres 15 + Valkey 8.1 + Exporter). | +| **Stockage & Fichiers** | **OwnCloud Infinite Scale / OCIS** (`drive.gorym.fr`) | Remplacement de Google Drive / OneDrive par OCIS (Go/Microservices). | +| **Secrets & Coffre-fort** | **Vaultwarden** (`vault.gorym.fr`) | Remplacement de Bitwarden Cloud / Passbolt (Chiffrement Zero-Knowledge). | +| **Communication & Chat** | **Matrix (Synapse) + Element** (`chat.gorym.fr`) | Alternative E2EE (chiffrement de bout en bout) à Slack, Teams & Discord. | +| **Forge Code & CI/CD** | **Gitea + Gitea Runner** (`git.gorym.fr`) | Alternative souveraine à GitHub / GitLab SaaS. | +| **Observabilité** | **Netdata** (`monitor.gorym.fr`) | Monitoring local léger et souverain. | --- @@ -32,5 +32,5 @@ Afin d'éliminer toute dépendance aux Cloud Act US (Vercel, Supabase SaaS, Anth | 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 | +| **Gouvernance** | Rédaction technique, règles PGP, PSSI | Validation web des PR, gestion de la Roadmap | +| **Product & App** | Intégration SecOps du code React/API | Design sur Penpot, fonctionnalités métier, Dépôt sur Gitea | diff --git a/techniques/CARTOGRAPHIE_ANSSI.md b/techniques/CARTOGRAPHIE_ANSSI.md index 6423727..f9c61e2 100644 --- a/techniques/CARTOGRAPHIE_ANSSI.md +++ b/techniques/CARTOGRAPHIE_ANSSI.md @@ -1,66 +1,54 @@ # Cartographie du SI & Cloisonnement (Guide ANSSI) -## 1. Principes Général & Doctrine d'Isolation +## 1. Principes Généraux & 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. +Conformément aux recommandations de l'ANSSI, le Système d'Information (SI) du projet est cloisonné 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. +* **SI IT & Outillage (DevSecOps / Collaboratif)** : Héberge la forge, la CI/CD, le coffre-fort de secrets, l'outil de design et la messagerie chiffrée. +* **SI Général / Production (Applicatif Peakload)** : Héberge l'application client, l'API et la base de données. --- -## 2. Matrice de Cloisonnement des deux SI +## 2. Matrice de Cloisonnement des Services ```text [ Internet / Public ] │ ▼ -[ Reverse Proxy Nginx (TLS 1.3 / WAF) ] +[ Reverse Proxy Nginx (Port 80 / 443 - TLS 1.3 / Let's Encrypt) ] │ - ├──────────────────────────────────────┐ - ▼ ▼ -┌──────────────────────────────┐ ┌──────────────────────────────┐ -│ 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`) │ -└──────────────────────────────┘ └──────────────────────────────┘ + ├──────────────────────────────────────────────────────────┐ + ▼ ▼ +┌─────────────────────────────────────────┐ ┌─────────────────────────────────────────┐ +│ SI COLLABORATIF & OUTILLAGE │ │ SI GENERAL / PRODUCTION PEAKLOAD │ +├─────────────────────────────────────────┤ ├─────────────────────────────────────────┤ +│ • Design : Penpot (`design.gorym.fr`) │ │ • App Web : React/Vite (`app.gorym.fr`) │ +│ • Fichiers : OCIS (`drive.gorym.fr`) │ │ • API Engine : FastAPI/Node │ +│ • Secrets : Vaultwarden (`vault...`) │ │ • Base BDD : PostgreSQL (Isolé) │ +│ • Chat : Matrix/Element (`chat...`) │ └─────────────────────────────────────────┘ +│ • Forge : Gitea (`git.gorym.fr`) │ +└─────────────────────────────────────────┘ ``` --- ## 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 IT** | Chat & Visioconference (Matrix/Element) | 8008, 8081 | Via Proxy (chat.gorym.net) | HTTPS / E2EE (Chiffrement bout en bout) | -| **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. +| Service | Domaine Public | Port Interne (127.0.0.1) | Protocole / Usage | +| :--- | :--- | :--- | :--- | +| **Reverse Proxy** | `*.gorym.fr` | 80, 443 | HTTPS / TLS 1.3 Strict | +| **Penpot Frontend** | `design.gorym.fr` | 9001 | HTTP (Relayé Nginx / WebSockets) | +| **Vaultwarden** | `vault.gorym.fr` | 8080 | HTTP Zero-Knowledge | +| **Matrix Synapse** | `matrix.gorym.fr` | 8008 | HTTP / API Matrix | +| **Element Web** | `chat.gorym.fr` | 8081 | HTTP Client Web | +| **OCIS (Drive)** | `drive.gorym.fr` | 9200 | HTTP / WebDAV | +| **Gitea Forge** | `git.gorym.fr` | 3000 | HTTP / Git | +| **Gitea Runner** | Interne | N/A | Exécution CI/CD | +| **Netdata** | `monitor.gorym.fr` | 19999 | HTTP Monitoring | --- -## 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). - ---- +## 4. Mesures de SecOps & Isolation ANSSI +* **Boucle locale stricte (`127.0.0.1`)** : Aucun conteneur applicatif n'expose directement ses ports sur `0.0.0.0` (IP publique). Tout le trafic passe exclusivement par le reverse proxy Nginx. +* **Orchestration unifiée** : Les conteneurs sont orchestrés via Podman (`podman-compose`) et démarrés automatiquement au boot du système via `systemctl enable podman-restart`. +* **Bases de données isolées** : Les bases de données (PostgreSQL 15 de Penpot, Valkey/Redis) et les volumes de données ne sont pas accessibles depuis l'extérieur.