Pour qui : DevOps / plateforme (exécution), sécurité (revue), développeurs d'agents (fiche 08), PM (suivi). Durée : semaines 2 et 3. Prérequis : la phase 1 est faite (ou pas : Terraform sait aussi tout créer de zéro).
Débutant en Terraform ? Lire d'abord terraform/docs/00-bases-terraform.md (30 minutes). Chaque fichier
.tfa sa fiche ligne par ligne dans terraform/docs/.
Pourquoi cette phase
Ce qui a été activé à la main en phase 1 protège déjà. Mais un réglage manuel :
| Problème du réglage manuel | Ce que Terraform apporte |
|---|---|
| Un clic non tracé peut désactiver un filtre | Tout changement = une PR relue, validée par la sécurité |
| Impossible de prouver l'état exact à une date | L'historique Git est la preuve |
| À refaire à la main pour chaque domaine (mesure 8) | Même code, un fichier tfvars par domaine |
| Les dérives passent inaperçues | terraform plan montre toute différence avec le code |
Après cette phase, la règle est simple : plus aucune modification de sécurité en console. L'alerte « garde-fou modifié » signale toute exception.
Le parcours, fiche par fiche
| # | Fiche | Pour qui | Contenu |
|---|---|---|---|
| 01 | Préparer et importer la console | DevOps | État distant, terraform.tfvars, adopter ce que la phase 1 a créé (import), lire un plan |
| 02 | Palier A : projet | DevOps + sécurité | Socle 06, audit élargi, plancher Agent Platform (inspect → block), Agent Registry, alerte Shadow AI |
| 03 | Palier B : SOC | DevOps + SOC | Export Pub/Sub vers le SIEM |
| 04 | Palier C : organisation | DevOps + Cloud central | Politiques d'org, VPC-SC (dry-run → appliqué), niveau d'accès, Access Approval |
| 05 | Palier D : réseau | DevOps + réseau | Secure Web Proxy, liste blanche ; Agent Gateway |
| 06 | CI/CD et revue | DevOps + sécurité | Circuit PR → plan → validation → apply, CODEOWNERS, pipeline GitHub, contrôle de conformité |
| 07 | Mesure par mesure | Tous | Les 10 mesures : ce que la note demande, le code qui y répond, la preuve |
| 08 | Développeurs d'agents | Développeurs | Le modèle d'agent sécurisé, règles, essai local, déploiement |
Les quatre paliers en un coup d'œil
Chaque palier = une PR, testée (phase 3) avant le suivant.
| Palier | Contenu | Prérequis | Variables (terraform.tfvars) |
|---|---|---|---|
| A · Projet | Socle 06 ; audit aiplatform + agentregistry ; plancher Agent Platform ; droits Agent Registry ; alerte Shadow AI | Droits sur le projet | armor_agent_platform_mode, agent_developer_groups |
| B · SOC | Export Pub/Sub vers le SIEM (même filtre que le bucket sécurité) | Identité du connecteur SIEM | enable_siem_export, siem_subscriber |
| C · Organisation | Politiques d'org ; VPC-SC + niveau d'accès ; Access Approval | Rôles org ; Access Transparency ; ID client Workspace | enforce_org_policies, workspace_customer_id, vpc_sc_access_policy, vpc_sc_enforce, corporate_ip_ranges, access_approval_emails |
| D · Réseau | Secure Web Proxy, liste blanche de domaines | VPC, sous-réseaux, liste validée | swp |
Ce qui change par rapport au socle 06
| Fichier | Ajout | Mesure | Fiche débutant |
|---|---|---|---|
00_foundation.tf | API aiplatform, agentregistry, cloudasset ; pubsub, accessapproval, réseau selon options | — | 03-foundation |
30_ai_guardrails.tf | Plancher étendu : integrated_services = ["AI_PLATFORM"], mode inspect ou block | §1 §3 | 14 §2 |
60_advanced.tf | aiplatform et agentregistry dans le périmètre ; niveau d'accès IP ; bascule vpc_sc_enforce | §7 | 14 §3 |
70_detection.tf | Journaux d'accès aux données pour aiplatform et agentregistry | §4 | 10-detection |
75_shadow_ai.tf (nouveau) | 3 politiques d'organisation ; alerte service public / agent créé hors circuit | §2 | 14 §4 |
85_siem_access.tf (nouveau) | Topic + abonnement Pub/Sub, sink, droit du writer ; Access Approval | §4 | 14 §5 |
90_agents_registry.tf (nouveau) | Droits du registre ; agent exemple sur Agent Runtime, identité dédiée, sortie Agent Gateway | §1 §9 §10 | 14 §6 |
95_secure_web_proxy.tf (nouveau) | Proxy, politique, liste blanche, sous-réseau dédié | §5 | 14 §7 |
imports.tf.example (nouveau) | Blocs import pour adopter les ressources créées en console | — | 14 §8 |
Les commandes que vous taperez
cd terraform
terraform init # une fois (ou après changement de version / backend)
terraform fmt -check && terraform validate
terraform plan -out=tfplan # LIRE le plan
terraform apply tfplan # en recette ; en production : seulement la CI
terraform output # templates, buckets, abonnement SIEM, agent…
cd .. && PROJECT_ID=... APP_ID=... ./scripts/verify_controls.shFin de la phase 2 : paliers A et B (au minimum) appliqués par la CI, plan sans écart, verify_controls.sh au vert.
On passe à la phase 3.