eadl:bloc4:fm4:td1

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
eadl:bloc4:fm4:td1 [2026/06/08 17:56] jcheroneadl:bloc4:fm4:td1 [2026/06/12 02:50] (Version actuelle) – [Restitution] jcheron
Ligne 3: Ligne 3:
 ===== Objectifs ===== ===== Objectifs =====
  
-Concevoir une stratégie IAM cohérente +  * Concevoir une stratégie IAM cohérente 
-Appliquer le principe du moindre privilège +  Appliquer le principe du moindre privilège 
-Comprendre les différences entre users, groupes et rôles +  Comprendre les différences entre users, groupes et rôles 
-Industrialiser IAM avec Terraform+  Industrialiser IAM avec Terraform
  
 ===== Contexte ===== ===== Contexte =====
Ligne 18: Ligne 18:
 Un audit de sécurité impose : Un audit de sécurité impose :
  
-une refonte complète des accès +  * une refonte complète des accès 
-une gestion par rôles +  une gestion par rôles 
-une limitation stricte des permissions+  une limitation stricte des permissions
  
 ===== Objectif technique ===== ===== Objectif technique =====
Ligne 26: Ligne 26:
 Mettre en place une architecture IAM sécurisée pour : Mettre en place une architecture IAM sécurisée pour :
  
-les administrateurs +  * les administrateurs 
-les développeurs +  les développeurs 
-les analystes+  les analystes
  
 Le tout doit être : Le tout doit être :
  
-reproductible +  * reproductible 
-versionné +  versionné 
-automatisé avec Terraform+  automatisé avec Terraform
  
 ===== Contraintes ===== ===== Contraintes =====
Ligne 40: Ligne 40:
 Vous devez respecter les règles suivantes : Vous devez respecter les règles suivantes :
  
-Aucun utilisateur ne doit avoir de droits administrateur globaux +  * Aucun utilisateur ne doit avoir de droits administrateur globaux 
-Le principe du moindre privilège est obligatoire +  Le principe du moindre privilège est obligatoire 
-Les permissions doivent être mutualisées (pas de duplication inutile) +  Les permissions doivent être mutualisées (pas de duplication inutile) 
-Les accès doivent être compréhensibles et maintenables +  Les accès doivent être compréhensibles et maintenables 
-Toute la configuration doit être réalisée avec Terraform+  Toute la configuration doit être réalisée avec Terraform 
 + 
 +===== Infrastructure existante ===== 
 + 
 +Une première tentative de mise en place IAM a été réalisée. 
 + 
 +Fichier : `iam/main.tf` 
 +<sxh js> 
 +provider "aws"
 +  region = "eu-west-1" 
 +
 + 
 +resource "aws_iam_user" "dev1"
 +  name = "dev1" 
 +
 + 
 +resource "aws_iam_user" "dev2"
 +  name = "dev2" 
 +
 + 
 +resource "aws_iam_user_policy" "dev_policy"
 +  name = "dev-policy" 
 +  user = aws_iam_user.dev1.name 
 + 
 +  policy = jsonencode({ 
 +    Version = "2012-10-17", 
 +    Statement = [ 
 +      { 
 +        Effect = "Allow", 
 +        Action = "*", 
 +        Resource = "*" 
 +      } 
 +    ] 
 +  }) 
 +
 + 
 +resource "aws_iam_user_policy_attachment" "dev2_admin"
 +  user       = aws_iam_user.dev2.name 
 +  policy_arn = "arn:aws:iam::aws:policy/AdministratorAccess" 
 +
 +</sxh>
  
 ===== Ressources ===== ===== Ressources =====
Ligne 50: Ligne 90:
 Documentation officielle : Documentation officielle :
  
-AWS IAM : concepts (users, groups, roles) +  * AWS IAM : concepts (users, groups, roles) 
-AWS IAM Policy JSON +  AWS IAM Policy JSON 
-Bonnes pratiques AWS IAM (least privilege)+  Bonnes pratiques AWS IAM (least privilege)
  
 Commandes utiles : Commandes utiles :
Ligne 65: Ligne 105:
  
 ===== Travail à réaliser ===== ===== Travail à réaliser =====
 +
 +<WRAP round todo>
  
 Vous devez produire une configuration Terraform permettant de : Vous devez produire une configuration Terraform permettant de :
  
-1. Créer les entités suivantes : +  - Partir de l’existant et le corriger 
-   - 1 groupe Admin +  Conserver les utilisateurs actuels 
-   1 groupe Dev +  Reconcevoir entièrement la gestion des permissions
-   1 groupe Analyst+
  
-2. Définir des policies adaptées : +  - Créer les entités suivantes 
-   - Admin gestion complète de l’infrastructure +    * 1 groupe Admin 
-   - Dev : gestion EC2 uniquement +    * 1 groupe Dev 
-   - Analyst : lecture S3 uniquement+    * 1 groupe Analyst
  
-3. Associer correctement : +  - Définir des policies adaptées : 
-   - users → groupes +    * Admin : gestion complète de l’infrastructure 
-   - groupes → policies+    * Dev : gestion EC2 uniquement 
 +    * Analyst : lecture S3 uniquement
  
-4. Mettre en place au moins un rôle IAM pour un service AWS+  - Associer correctement : 
 +    * users → groupes 
 +    * groupes → policies 
 + 
 +  - Mettre en place au moins un rôle IAM pour un service AWS
  
 Livrables attendus : Livrables attendus :
  
-code Terraform fonctionnel +  * code Terraform fonctionnel 
-structure claire des fichiers +  structure claire des fichiers 
-justification des choix +  justification des choix 
 +</WRAP>
 ===== Point d’attention (volontaire) ===== ===== Point d’attention (volontaire) =====
  
 Une mauvaise pratique courante consiste à utiliser : Une mauvaise pratique courante consiste à utiliser :
  
-Action: "*" +  * Action: "*" 
-Resource: "*"+  Resource: "*"
  
 Cette pratique est interdite dans ce TD. Cette pratique est interdite dans ce TD.
  
-<WRAP round help+<WRAP round question
-Dans quels cas pourrait-on être tenté de l’utiliser +Pourquoi cette pratique apparaît-elle souvent dans des projets réels 
-Pourquoi est-ce dangereux ?+ 
 +Dans quels cas peut-elle sembler "pratique" ?
 </WRAP> </WRAP>
  
 ===== Phase d’analyse ===== ===== Phase d’analyse =====
  
-<WRAP round help+<WRAP round question
-Quelle est la différence entre :+Quels sont les problèmes de sécurité présents dans l’infrastructure fournie ?
  
-- un utilisateur IAM +Lesquels sont critiques ? Lesquels sont acceptables temporairement ?
-- un groupe IAM +
-- un rôle IAM +
- +
-Dans quel cas utiliser chaque élément ?+
 </WRAP> </WRAP>
  
Ligne 120: Ligne 163:
 Vous devez revoir votre architecture si : Vous devez revoir votre architecture si :
  
-un utilisateur a trop de droits +  * un utilisateur a trop de droits 
-une policy est trop large +  une policy est trop large 
-des permissions sont dupliquées+  des permissions sont dupliquées
  
 ===== Extension ===== ===== Extension =====
Ligne 128: Ligne 171:
 Ajouter : Ajouter :
  
-une séparation environnement DEV / PROD +  * une séparation environnement DEV / PROD 
-une restriction par ressource (ex : un seul bucket S3)+  une restriction par ressource (ex : un seul bucket S3)
  
 ===== Challenge final ===== ===== Challenge final =====
Ligne 135: Ligne 178:
 Un développeur doit pouvoir : Un développeur doit pouvoir :
  
-lancer une instance EC2 +  * lancer une instance EC2 
-mais ne pas pouvoir supprimer une instance existante+  mais ne pas pouvoir supprimer une instance existante
  
 Implémenter cette contrainte. Implémenter cette contrainte.
  
-<WRAP round help+<WRAP round question
-Quelle difficulté cela pose-t-il en IAM ?+Pourquoi cette règle est-elle difficile à implémenter proprement en IAM ?
 </WRAP> </WRAP>
  
 +===== Évolution du besoin =====
 +
 +L’entreprise prévoit :
 +
 +  * l’arrivée de 10 nouveaux développeurs
 +  * la création d’une équipe data
 +  * un environnement supplémentaire (staging)
 +
 +<WRAP round question>
 +Votre implémentation actuelle est-elle :
 +
 +  * facilement extensible ?
 +  * duplicable ?
 +  * maintenable ?
 +
 +Quels changements sont nécessaires pour passer à l’échelle ?
 +</WRAP>
 +
 +<WRAP round todo>
 +Proposer au moins une amélioration concrète dans le code Terraform.
 +
 +Cette amélioration doit illustrer votre réflexion.
 +</WRAP>
 ===== Restitution ===== ===== Restitution =====
  
 Vous devez être capable d’expliquer : Vous devez être capable d’expliquer :
  
-votre architecture IAM +  * votre architecture IAM 
-vos choix de policies +  vos choix de policies 
-les compromis réalisés+  les compromis réalisés 
 +  * La modularité et la scalabilité
  
  • eadl/bloc4/fm4/td1.1780934209.txt.gz
  • Dernière modification : il y a 8 jours
  • de jcheron