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:57] – [Contexte] jcheroneadl:bloc4:fm4:td1 [2026/06/08 18:12] (Version actuelle) – [Challenge final] 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 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 +
-- un groupe IAM +
-- un rôle IAM+
  
-Dans quel cas utiliser chaque élément ?+Lesquels sont critiques ? Lesquels sont acceptables temporairement ?
 </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>
  
Ligne 148: Ligne 191:
 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
  
  • eadl/bloc4/fm4/td1.1780934257.txt.gz
  • Dernière modification : il y a 24 heures
  • de jcheron