Zero Trust Cloud · AWS

Architecture

Organisation Terraform modulaire de la landing zone Zero Trust.

L'infrastructure est découpée en modules réutilisables, assemblés par un environnement (envs/students) qui ne fait que les instancier et les câbler. Chaque module porte une responsabilité unique.

Architecture durcie par pilier Zero Trust

Les modules

ModuleRôle
networkVPC, subnets public/privé, routing, IGW (NAT optionnel)
security-groupsPare-feux web/db (micro-segmentation)
ec2Instance durcie (IMDSv2 obligatoire)
kmsClés de chiffrement réutilisables + politiques
sopsUtilisateur applicatif + clé KMS pour les secrets
iamUtilisateur analyst (read-only + boundary) + rôle machine
cloudtrailBucket + trail d'audit chiffrés
loggingVPC flow logs vers CloudWatch
logs-archiveVPC flow logs vers S3 (archivage)
s3-access-logsJournalisation des accès aux buckets
alertingMetric filters + alarmes CloudWatch vers SNS
github-oidcFédération OIDC GitHub Actions
tf-backendBackend distant (state S3 + verrou DynamoDB)

Le fil rouge : importer, pas recréer

Une partie de l'infrastructure existait déjà (créée à la main lors des premiers labs). Plutôt que de la détruire, on l'a adoptée dans Terraform avec des blocs import {}, puis réorganisée en modules avec des blocs moved {}. Bilan des opérations : de nombreux déplacements, zéro destruction.

Apply complete! Resources: 9 imported, 12 added, 0 destroyed.
...
Plan: 0 to add, 0 to change, 0 to destroyed.   # refactor en modules : que des "moved"

Pourquoi modulaire

Un module est une brique générique (« un VPC », « une clé KMS »). L'environnement est le plan de montage. Cette séparation rend l'infra lisible, auditable et rejouable, et c'est ce qui permet de l'intégrer à une CI/CD.

On this page