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 5 mois
  • de jcheron