Retour au cours

Gestion des identités et des accès AWS

Progression du cours0%

AWS Identity and Access Management (IAM)

🛡️ Introduction à IAM

IAM (Identity and Access Management) est le service AWS qui permet de :

  • Contrôler qui peut accéder à vos ressources AWS (authentification)
  • Définir ce qu'ils peuvent faire avec ces ressources (autorisation)
  • Offrir une gestion centralisée des accès sans partager les identifiants principaux

Authentification

Lorsque vous créez votre compte AWS, vous utilisez la combinaison d'une adresse e-mail et d'un mot de passe pour vérifier votre identité. Si un utilisateur saisit l'adresse e-mail et le mot de passe corrects, le système suppose que l'utilisateur est autorisé à entrer et lui accorde l'accès. Il s'agit du processus d'authentification.

L'authentification garantit que l'utilisateur est bien celui qu'il prétend être. Les noms d'utilisateur et les mots de passe sont les types d'authentification les plus courants. Mais vous pouvez également utiliser d'autres formulaires, tels que l'authentification basée sur des jetons ou des données biométriques, comme une empreinte digitale. L'authentification répond simplement à la question suivante : « Êtes-vous celui que vous prétendez être ? »

Autorisation

Une fois authentifié et connecté à votre compte AWS, vous serez peut-être curieux de savoir quelles actions vous pouvez entreprendre. C'est ici que l'autorisation entre en jeu. L'autorisation est le processus consistant à accorder aux utilisateurs l'autorisation d'accéder aux ressources et services AWS. L'autorisation détermine si un utilisateur peut effectuer certaines actions, telles que lire, modifier, supprimer ou créer des ressources. L'autorisation répond à la question « Quelles actions pouvez-vous effectuer ? »

🌟 Fonctionnalités principales

🌍 Portée globale

  • Service disponible dans toutes les régions AWS
  • Configuration unique applicable partout

🔄 Intégration complète

  • Compatible avec tous les services AWS majeurs
  • Supporte les accès :
    • Via la console AWS
    • Par API/CLI
    • Depuis applications tierces

🔐 Sécurité avancée

FonctionnalitéDescriptionBénéfice
MFAAuthentification à 2 facteursProtection contre les accès non autorisés
FédérationIntégration avec Active DirectorySSO pour les entreprises
Politiques granulairesContrôle d'accès précisPrincipe du moindre privilège

🧩 Composants IAM (Utilisateurs et Groupes IAM AWS)

Utilisateur IAM

Un utilisateur IAM représente une personne ou un service qui interagit avec AWS.

Caractéristiques :

  • Défini dans votre compte AWS
  • Toute activité est facturée sur votre compte
  • Possède des informations d'identification uniques (empêche le partage)

Types d'accès :

  1. Accès à la console AWS : Nom d'utilisateur + mot de passe
  2. Accès programmatique : Clés d'accès pour AWS CLI/API (permanentes jusqu'à rotation manuelle)

Gestion des Autorisations

Méthodes d'attribution :

  • Directement à l'utilisateur (peu scalable)
  • Via des groupes IAM (recommandé)

Problèmes de l'attribution directe :

  • Complexité croissante avec le nombre d'utilisateurs
  • Difficulté de traçabilité (ex: 3000 utilisateurs)

Groupes IAM

Collection d'utilisateurs partageant les mêmes permissions.

Avantages :

  • Gestion centralisée des permissions
  • Évolutivité (nouveaux membres héritent des permissions du groupe)
  • Meilleure organisation (par rôles : devs, sécurité, admins...)

Caractéristiques clés :

  • Un groupe peut contenir plusieurs utilisateurs
  • Un utilisateur peut appartenir à plusieurs groupes
  • Les groupes ne peuvent pas contenir d'autres groupes

Exemples d'usage :

  1. Nouveau développeur → Ajout au groupe "devs" → Obtient automatiquement les bonnes permissions
  2. Changement de rôle → Déplacement entre groupes → Permissions mises à jour automatiquement

Compte Root vs IAM

  • Compte Root : Accès complet à toutes les ressources (à utiliser avec précaution)
  • Utilisateurs IAM : Permissions explicites nécessaires via les politiques IAM

Bonnes Pratiques

  • Toujours utiliser des groupes plutôt que des permissions individuelles
  • Organiser les groupes par fonction métier
  • Éviter l'utilisation du compte root pour les opérations quotidiennes
  • Utiliser les politiques IAM pour granularité des permissions

Politiques IAM

Fonctionnement des Politiques IAM

Les politiques IAM contrôlent l'accès aux services et ressources AWS en étant associées à des identités IAM (utilisateurs, groupes, rôles).

Processus d'évaluation :

  • Lorsqu'une identité IAM fait une requête → AWS évalue :
    • Les politiques attachées directement à l'identité
    • Les politiques des groupes auxquels appartient l'identité
  • Décision finale : Autorisation ou Refus

Structure d'une Politique IAM

Les politiques sont des documents JSON avec ces éléments principaux :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "*",
      "Resource": "*"
    }
  ]
}

Éléments Clés :

  1. Version

    • Spécifie la syntaxe de la politique (toujours utiliser "2012-10-17" pour les fonctionnalités récentes)
  2. Effect

    • "Allow" : Autorise l'accès
    • "Deny" : Bloque l'accès (prioritaire sur Allow)
  3. Action

    • Liste des opérations autorisées/refusées
    • Peut utiliser le wildcard "*" pour toutes les actions
    • Ex: "s3:GetObject", "ec2:StartInstances"
  4. Resource

    • ARN des ressources concernées
    • "*" = toutes les ressources
    • Ex: "arn:aws:s3:::mon-bucket/*"

Exemples de Politiques

  1. Politique Administrateur (Accès Complet)
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyS3AccessOutsideMyBoundary",
      "Effect": "Deny",
      "Action": ["s3:*"],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:ResourceAccount": ["222222222222"]
        }
      }
    }
  ]
}

Explications :

  • Bloque (Deny) toutes les actions S3 (s3:*)
  • Sauf si la ressource appartient au compte AWS 222222222222
  • Utilise une Condition pour affiner le contrôle

Bonnes pratiques AWS IAM pour la sécurité des comptes

🔒 Verrouillage de l'utilisateur racine

  • Ne jamais partager les identifiants racine
  • Supprimer les clés d'accès associées au compte racine
  • Activer la MFA (Authentification Multi-Facteurs) obligatoire

🛡️ Principe du moindre privilège

  • Accorder uniquement les permissions nécessaires
  • Commencer avec des politiques restrictives puis étendre au besoin
  • Appliquer aux :
    • Utilisateurs
    • Groupes
    • Rôles

⚙️ Bonnes pratiques IAM

  • Rôles > Utilisateurs :
    • Autorisations temporaires (15min à 36h)
    • Maintenance simplifiée
  • Éviter d'utiliser IAM pour :
    • Authentification de sites web
    • Sécurité OS/réseaux

🏢 Gestion des identités à grande échelle

  • Utiliser un Fournisseur d'Identité (IdP) comme :
    • AWS IAM Identity Center
    • Solutions tierces (Okta, Azure AD...)
  • Avantages :
    • Source unique de vérité
    • Pas de duplication des utilisateurs
    • Gestion centralisée (ex: départ d'un employé)

🧹 Nettoyage régulier

  • Supprimer les éléments inutilisés :
    • Utilisateurs
    • Rôles
    • Clés d'accès
    • Politiques obsolètes
  • Utiliser les dernières activités consultées comme indicateur

Résume

  1. Principe du moindre privilège : Donner uniquement les permissions nécessaires
  2. Utiliser des conditions pour des restrictions contextuelles
  3. Éviter "Action": "" et "Resource": "" sauf nécessité absolue
  4. Tester les politiques avec le simulateur IAM avant déploiement
  5. Documenter avec le champ "Sid" (Statement ID)