Objectifs d'apprentissage
À la fin de ce cours, l'apprenant peut :
- expliquer ce qu'est un compte AWS, une organisation, une région et une zone de disponibilité ;
- protéger le compte racine et appliquer le moindre privilège avec IAM ;
- décrire une instance EC2, son image, son stockage et son groupe de sécurité ;
- décrire un compartiment S3 et ses protections par défaut ;
- décrire un VPC, un sous-réseau et leur lien avec les zones ;
- poser un budget et une alerte avant tout essai, et lire la facturation ;
- utiliser l'AWS CLI en lecture pour inspecter un compte sans le modifier ;
- nettoyer les ressources de test.
Prérequis
- Cours « Concepts du cloud » (IaaS, régions, responsabilité partagée, coûts).
- Notions de réseau IP, de pare-feu et de ligne de commande.
- Aucun compte n'est requis pour lire. Pour pratiquer : un compte jetable dédié, aucun lien avec un usage professionnel, des données fictives, un budget posé avant la première ressource.
Parcours et chapitres
1. Compte, organisation, région et zone
- Un compte AWS est la frontière de base pour les permissions, la sécurité, les coûts et les charges de travail (page « What is AWS Organizations »). À la création, on établit les identifiants du compte racine.
- AWS Organizations permet de créer et regrouper des comptes en unités d'organisation (OU), d'appliquer des politiques (SCP, qui fixent des plafonds de permissions) et de recevoir une facture consolidée. Un seul compte suffit pour apprendre ; l'organisation sert dès qu'il y en a plusieurs.
- Une région est un lieu géographique contenant plusieurs zones de disponibilité (centres de données distincts avec alimentation et réseau redondants). On choisit la région d'une ressource pour la latence, le coût et la conformité ; les services ne sont accessibles que dans les régions activées pour le compte.
- Un objet S3 stocké dans une région n'en sort pas sans transfert ou réplication explicite (page S3).
Attention : les régions et les services disponibles dans chacune évoluent : consulter la page officielle des régions avant tout choix (état non repris ici).
Vérification : dessiner de mémoire compte, région, zone, VPC, instance, compartiment, et dire lesquels sont régionaux.
2. Identité et accès : IAM, compte racine, moindre privilège
La page « Security best practices in IAM » recommande notamment :
- exiger des identités fédérées (IAM Identity Center recommandé) et des identifiants temporaires pour les humains ;
- faire utiliser des rôles IAM aux applications plutôt que des clés distribuées ;
- exiger l'authentification multifacteur (MFA), de préférence résistante à l'hameçonnage (clé de sécurité, passkey) ;
- ne créer des clés d'accès longue durée que si c'est indispensable, et les mettre à jour ou les supprimer quand nécessaire ;
- protéger le compte racine « comme une donnée personnelle sensible » ;
- appliquer le moindre privilège : partir de politiques gérées par AWS, puis réduire en s'appuyant sur l'activité réellement observée (IAM Access Analyzer) ;
- supprimer régulièrement ce qui n'est plus utilisé.
Notions à ne pas confondre :
| Notion | Rôle |
|---|---|
| Utilisateur IAM | identité durable avec identifiants ; à éviter pour les humains si IAM Identity Center est disponible |
| Rôle IAM | identité temporaire assumée par une personne, une application ou un service |
| Politique | document JSON qui autorise ou refuse des actions sur des ressources |
| SCP (Organizations) | plafond de permissions pour un compte ou une OU ; n'accorde aucun droit |
Attention : clés d'accès. Une clé d'accès (identifiant plus secret) est un mot de passe. Jamais dans un fichier du dépôt, un script, une capture d'écran, un message ni un prompt envoyé à un assistant IA. En cas de fuite : désactiver puis supprimer la clé dans IAM, relire le journal d'activité, en créer une autre seulement si c'est inévitable. Préférer IAM Identity Center et des profils à identifiants temporaires (chapitre 7). Le compte racine ne sert qu'aux rares actions qui l'exigent, avec MFA activé.
Attention : moindre privilège. Une politique d'administration complète donnée « pour tester » finit toujours par rester. Créer un rôle de lecture seule pour l'exploration.
Vérification : dire pourquoi un rôle temporaire limite les dégâts d'une fuite par rapport à une clé permanente.
3. EC2 : machines virtuelles
D'après « What is Amazon EC2 » : une instance EC2 est un serveur virtuel ; son type définit le matériel (calcul, mémoire, réseau, stockage). Éléments à connaître :
| Élément | Définition lue |
|---|---|
| AMI | modèle préconfiguré (système et logiciels) |
| Type d'instance | combinaison de CPU, mémoire, stockage, réseau |
| Volume EBS | stockage bloc persistant |
| Stockage d'instance | stockage temporaire, effacé à l'arrêt, l'hibernation ou la suppression |
| Paire de clés | clé publique stockée par AWS, clé privée gardée par vous |
| Groupe de sécurité | pare-feu virtuel (protocoles, ports, plages d'adresses) |
Facturation. À la demande : paiement à la seconde (minimum 60 secondes) sans engagement. Autres options : Savings Plans, instances réservées, Spot (interruptible), hôtes dédiés, réservations de capacité. Le détail des prix n'est pas repris (il change) : voir la page de tarification EC2.
Attention (coûts) : une instance arrêtée ne coûte plus de calcul, mais ses volumes EBS, ses adresses IP publiques réservées et ses copies (snapshots) peuvent continuer à être facturés (comportement détaillé de l'arrêt : non vérifié ici). Seule la suppression (terminate) met fin à l'instance ; vérifier ensuite les volumes restants.
Exercice (papier) : pour une instance de test, lister ce qui reste à supprimer après l'arrêt.
4. S3 : stockage objet
D'après « What is Amazon S3 » :
- un compartiment (bucket) est un conteneur d'objets ; un objet a une clé unique dans le compartiment ;
- on choisit une région à la création ; le nom et la région d'un compartiment ne peuvent pas être modifiés ; les noms de compartiments d'usage général vivent dans un espace de noms global (unicité à l'échelle des comptes), sauf choix d'un espace régional de compte ;
- par défaut, compartiments et objets sont privés ; le blocage de l'accès public est activé par défaut et AWS recommande de le laisser actif ;
- les listes de contrôle d'accès (ACL) sont désactivées par défaut ; privilégier les politiques de compartiment et IAM ;
- le versioning conserve plusieurs versions d'un objet et permet de restaurer après une suppression ou un écrasement ;
- classes de stockage (Standard, accès peu fréquent, archivage Glacier, Intelligent-Tiering...) : le prix baisse quand l'accès devient rare, avec des contreparties (délai, frais de récupération : non vérifiés ici) ;
- cohérence forte en lecture après écriture ;
- le stockage est facturé à l'usage.
Attention : rendre un compartiment public est la cause classique de fuites de données. Ne jamais désactiver le blocage de l'accès public sans validation, et jamais pour des données réelles.
Vérification : expliquer ce que signifie « privé par défaut » et comment un objet pourrait malgré tout devenir public.
5. VPC : réseau virtuel
D'après « What is Amazon VPC » : un VPC est un réseau virtuel logiquement isolé, comparable à un réseau de centre de données. Il contient :
- des sous-réseaux : plage d'adresses, chacun dans une seule zone de disponibilité ;
- des tables de routage : où va le trafic d'un sous-réseau ;
- des passerelles (passerelle Internet, NAT, VPN, passerelle de transit) et des points de terminaison de VPC pour joindre des services AWS sans passer par Internet ;
- l'appairage de VPC et les journaux de flux (VPC Flow Logs) ;
- des groupes de sécurité (pare-feu au niveau de l'instance, vus au chapitre 3).
Faits utiles : chaque région d'un compte comporte un VPC par défaut conçu pour lancer des instances tout de suite ; le VPC lui-même est gratuit, mais certains composants sont facturés (passerelles NAT, adresses IPv4 publiques, analyse de trafic) ; les adresses IPv4 privées ne sont pas facturées. Le détail des règles du VPC par défaut est non vérifié.
Astuce : pour exposer un service uniquement à votre ordinateur, ne lui donnez pas d'adresse publique ; ouvrez le groupe de sécurité à votre adresse seule, jamais à tout Internet.
Attention : une règle « tout Internet » sur un port d'administration est l'erreur la plus fréquente. Pas de règle entrante ouverte à tous pour SSH ou RDP.
6. Facturation, budgets et paliers gratuits
- Free Tier (état consulté le 17 octobre 2026) : à l'inscription, on choisit un plan de compte gratuit ou un plan payant. La page décrit un plan gratuit allant jusqu'à six mois ou l'épuisement des crédits (crédits d'accueil mentionnés), et des offres « toujours gratuites ». Ces conditions changent : relire la page, ne rien considérer comme acquis.
- AWS Budgets : permet des budgets de coût ou d'usage, avec des alertes sur le réel et la prévision, par e-mail ou Amazon SNS. Les données sont mises à jour jusqu'à trois fois par jour, environ toutes les 8 à 12 heures. Un budget ne bloque rien par défaut ; des actions automatiques optionnelles existent (par exemple appliquer une politique IAM restrictive). Il peut y avoir un retard entre la dépense et l'alerte.
- Cost Explorer : analyse du coût et de l'usage sur les 13 derniers mois, prévision sur 12 mois (page EC2).
- Facture consolidée : Organizations regroupe les factures de tous les comptes.
Procédure recommandée, avant toute ressource :
- activer la MFA du compte racine ;
- créer un budget mensuel (par exemple un montant très bas) avec alertes à 50 %, 80 % et à la prévision de dépassement ;
- renseigner une adresse e-mail surveillée ;
- étiqueter chaque ressource de test (
projet=test) ; - noter l'heure prévue de suppression de chaque ressource.
Attention (coûts) : l'alerte arrive après la dépense. Le seul vrai garde-fou est de supprimer les ressources.
7. AWS CLI en lecture seule
L'AWS CLI v2 (installation décrite sur la page consultée ; l'installation modifie le poste et n'est pas détaillée ici). Pour les humains, la page « Configuring IAM Identity Center authentication » recommande une configuration par session SSO : un profil nommé obtient des identifiants temporaires après aws sso login.
Étape 1 — vérifier la version
aws --versionBloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : poste de travail ; AWS CLI v2 installé (version de Stéphane inconnue).
- Droits : aucun.
- Effet : lecture seule, affiche la version.
- Vérification : une ligne
aws-cli/2...s'affiche. - Retour arrière : sans objet.
Étape 2 — savoir qui l'on est (avant toute autre commande)
aws sts get-caller-identity --profile <PROFIL>Bloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : profil SSO déjà configuré ; session ouverte (
aws sso login --profile <PROFIL>ouvre le navigateur et met en cache un jeton local : action à effet local, hors lecture pure). - Droits : aucun droit particulier requis par l'appel d'identité.
- Effet : lecture. La sortie contient le numéro de compte et l'ARN : ne pas la copier dans un message, un dépôt, une capture ni un prompt.
- Vérification : le compte affiché est bien celui de test ; sinon s'arrêter.
- Retour arrière :
aws sso logoutsupprime les identifiants en cache.
Étape 3 — inspecter (lecture)
aws ec2 describe-regions --profile <PROFIL>aws ec2 describe-instances --profile <PROFIL> --region <REGION>aws ec2 describe-vpcs --profile <PROFIL> --region <REGION>aws s3 ls --profile <PROFIL>aws iam get-account-summary --profile <PROFIL>aws organizations describe-organization --profile <PROFIL>aws budgets describe-budgets --account-id <ID-COMPTE> --profile <PROFIL>Bloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : AWS CLI v2, région explicite avec
--region(les ressources sont régionales). Noms de sous-commandes d'après la structure de la référence CLI ; syntaxe exacte de chaque commande à confirmer dans la référence officielle de la version installée. - Droits : permissions de lecture correspondantes (par exemple un rôle de type lecture seule). Une erreur
AccessDeniedest normale si le rôle est restreint : ne pas élargir le rôle pour « faire marcher ». - Effet : lecture seule, aucune ressource créée ni modifiée. Les sorties contiennent des identifiants : les traiter comme sensibles.
- Vérification : la liste des instances est vide sur un compte neuf, avec un VPC par défaut par région.
- Retour arrière : sans objet.
Astuce : ajouter --output table pour une lecture plus lisible, et --query pour filtrer. Les appels à Cost Explorer par l'API peuvent être facturés (non vérifié) : préférer la console pour la consultation des coûts.
Précaution : ne jamais ajouter de clés d'accès dans un profil par commodité. En cas de besoin de clés, chapitre 2.
8. Création et suppression de ressources (à ne pas lancer sans validation)
Ces commandes sont données pour comprendre l'enchaînement et le retour arrière ; elles ne sont pas à exécuter dans le cadre du cours. Syntaxes à reconfronter à la référence de la version installée : non vérifié.
Attention, effet notable. Cette commande a un effet notable. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.
aws ec2 run-instances --image-id <ID-IMAGE> --instance-type <TYPE> --count 1 --profile <PROFIL> --region <REGION>Bloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : compte jetable, région explicite, AMI et type connus ; un VPC par défaut présent.
- Droits : permission de lancer des instances (ne pas utiliser le compte racine).
- Effet : crée une machine facturée à la seconde, avec un volume EBS ; elle tourne tant qu'on ne l'arrête pas.
- Vérification :
aws ec2 describe-instancesla montre à l'état « running ». - Retour arrière : supprimer l'instance (commande suivante), puis vérifier volumes et adresses restants.
Attention, effet notable. Cette commande a un effet notable. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.
aws ec2 terminate-instances --instance-ids <ID-INSTANCE> --profile <PROFIL> --region <REGION>Bloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : l'instance de test créée ci-dessus, identifiée sans ambiguïté.
- Droits : permission de supprimer des instances.
- Effet : supprime l'instance ; les données du stockage d'instance sont perdues, et selon la configuration le volume racine aussi.
- Vérification : l'instance passe à « terminated » ; relire la liste des volumes et des snapshots.
- Retour arrière : aucun : prévoir une sauvegarde avant, si les données comptent.
Attention, effet notable. Cette commande a un effet notable. Lire le contexte, les droits et l’effet attendu indiqués après le bloc ; ne jamais l’exécuter sur un système réel sans validation, d’abord dans un environnement de test.
aws s3api create-bucket --bucket <NOM-COMPARTIMENT> --region <REGION> --create-bucket-configuration LocationConstraint=<REGION>Bloc actif : la touche C copie la commande seule, sans invite ni sortie.
- Contexte : compte jetable ; nom de compartiment globalement unique, sans information sensible (il apparaît dans les URL).
- Droits : permission de créer des compartiments.
- Effet : crée un compartiment privé (blocage de l'accès public actif par défaut) ; le stockage est facturé à l'usage.
- Vérification :
aws s3 lsle liste. - Retour arrière : vider puis supprimer le compartiment (
aws s3 rb s3://<NOM-COMPARTIMENT>; l'option de suppression forcée détruit tous les objets : ne pas l'employer sans relecture).
Attention (coûts) : après chaque essai, parcourir la liste de nettoyage du chapitre 9.
9. Nettoyage des ressources de test
Ordre conseillé en fin d'exercice :
- instances EC2 supprimées, puis volumes EBS, snapshots et adresses IP élastiques restants ;
- compartiments S3 vidés (y compris anciennes versions) puis supprimés ;
- VPC ajoutés pour l'essai supprimés (passerelles NAT en premier : elles sont facturées) ;
- alertes et budget conservés ;
- le lendemain, rouvrir la facturation : plus aucune ligne de coût ne doit croître.
Exercices et vérifications de fin de cours
Tous sont sur papier ou en lecture seule.
- Schéma. Redessiner l'organisation compte, région, VPC, instance, S3 en indiquant ce qui est régional.
- IAM. Écrire, en français, la politique de lecture seule qu'on voudrait pour un stagiaire (liste d'actions attendues, sans JSON réel).
- Racine. Dresser la liste des cinq protections du compte racine.
- Budget. Définir un budget mensuel fictif et trois seuils d'alerte ; dire ce qui se passe quand ils sont dépassés.
- S3. Expliquer pourquoi le blocage de l'accès public est activé par défaut.
- VPC. Pourquoi un sous-réseau ne peut-il pas couvrir deux zones ?
- CLI. Pour chaque commande du chapitre 7, dire ce qu'elle lit et quel droit elle exige.
- Nettoyage. Établir la liste de contrôle qui suit une instance de test supprimée.
Critères de réussite
- Distinguer compte racine, utilisateur, rôle, politique, SCP.
- Savoir qu'une clé d'accès ne se range ni dans un fichier, ni dans un dépôt, ni dans un prompt.
- Poser un budget et une alerte avant toute ressource, et savoir que l'alerte ne bloque rien.
- Lancer uniquement des commandes de lecture, après
get-caller-identity. - Dire ce qui n'a pas été vérifié.
Sources officielles
Toutes consultées le 17 octobre 2026 (AWS : pas de numéro de version, état de la documentation à cette date).
Points non vérifiés
- Syntaxe exacte et options des commandes du chapitre 7 et 8 (référence CLI non relue) ; version de l'AWS CLI de Stéphane.
- Facturation de l'arrêt d'une instance (volumes, IP) ; tarifs, minimum de facturation, quotas par région.
- Règles précises du VPC par défaut ; coûts exacts de la passerelle NAT.
- Classes de stockage S3 : délais et frais de récupération ; versioning et suppression définitive.
- Free Tier : montants de crédits, durées et services éligibles (changeants).
- Facturation des appels d'API à Cost Explorer ; création d'un budget via la CLI.
- Liste actuelle des régions et des services par région ; régions à activer manuellement.
- Rôles IAM précis d'une lecture seule (politiques gérées par AWS à choisir).