Matrice des flux
Chaque connexion réseau de l'infrastructure, avec sa raison d'exister et ce qui l'autorise. Toute connexion qui n'est pas dans ce tableau est bloquée.
Les flux entrants depuis internet
| # | Source | Destination | Port | Protocole | Pourquoi | Autorisé par |
|---|---|---|---|---|---|---|
| E1 | Internet | tm-prod · Traefik | 443 | HTTPS | Le site, l'API, la documentation et Jenkins | GCP tm-allow-web, UFW 443 |
| E2 | Internet | tm-prod · Traefik | 80 | HTTP | Redirection vers HTTPS, défi Let's Encrypt | GCP tm-allow-web, UFW 80 |
| E3 | Opérateur | tm-prod | 22 | SSH | Administration, Ansible | GCP default-allow-ssh, UFW 22 |
| E4 | Opérateur | tm-tooling | 22 | SSH | Administration, Ansible, tunnel vers Jenkins | GCP default-allow-ssh, UFW 22 |
Les flux internes
| # | Source | Destination | Port | Protocole | Pourquoi | Autorisé par |
|---|---|---|---|---|---|---|
| I1 | Traefik | timemanager-front | 8080 | HTTP | Servir le site | Réseau Docker timemanager |
| I2 | Traefik | timemanager-back | 4000 | HTTP | Servir l'API | Réseau Docker timemanager |
| I6 | Traefik | timemanager-docs | 8080 | HTTP | Servir la documentation | Réseau Docker timemanager |
| I3 | timemanager-back | timemanager-db | 5432 | PostgreSQL | Lire et écrire les données | Réseau Docker internal |
| I4 | Traefik (tm-prod) | Jenkins (tm-tooling) 10.132.0.3 | 8080 | HTTP | Afficher ci.time.jostud.com | GCP default-allow-internal, Jenkins lié à l'IP interne |
| I5 | Jenkins (tm-tooling) | tm-prod 10.132.0.2 | 22 | SSH | Déployer en tant que deploy | GCP default-allow-internal, UFW 22, clé de Jenkins |
Les flux sortants
| # | Source | Destination | Port | Protocole | Pourquoi |
|---|---|---|---|---|---|
| S1 | Jenkins | github.com | 443 | HTTPS | Interroger et cloner le dépôt |
| S2 | Jenkins | ghcr.io | 443 | HTTPS | Pousser les images |
| S3 | tm-prod (deploy) | ghcr.io | 443 | HTTPS | Télécharger les images |
| S4 | Traefik | Let's Encrypt | 443 | HTTPS | Obtenir et renouveler les certificats |
| S5 | timemanager-back | API Brevo | 443 | HTTPS | Envoyer les emails |
| S6 | Jenkins, Trivy | Docker Hub, base de failles Trivy | 443 | HTTPS | Images de base, mise à jour des failles connues |
| S7 | Les deux VM | Dépôts Ubuntu et Docker | 443 / 80 | HTTPS / HTTP | Paquets et mises à jour (Ansible) |
Ce qui est volontairement impossible
| Flux | Pourquoi c'est bloqué |
|---|---|
| Internet vers la base (5432) | La base n'est que sur le réseau internal, sans port publié |
| Internet vers l'API ou le front en direct (4000, 8080) | Aucun port publié, seul Traefik est exposé |
| Internet vers Jenkins en direct (8080) | Lié à l'IP interne, et UFW ne laisse passer que 22 sur tm-tooling |
| Internet vers tm-tooling en HTTP/HTTPS | Pas de tag web, la règle GCP ne s'applique pas |
| La base vers internet | Réseau internal: true |
| Traefik vers la base | Traefik n'est pas sur le réseau internal |
| Bureau à distance (3389) | Règle default-allow-rdp supprimée |