AWS en pratique : du premier compte à l'architecture certifiable
Quitter

Leçon 1 sur 12 · Fondations

Démarrer avec AWS — compte, console, régions, offre gratuite et AWS CLI

40 min Debian 12

Objectif

Ouvrir un compte AWS proprement : le sécuriser dès la première heure, choisir une région adaptée à des utilisateurs au Maroc, comprendre ce que couvre l'offre gratuite, puis installer et configurer AWS CLI pour travailler en ligne de commande avec plusieurs profils.

L'essentiel

  • Un compte AWS est un conteneur de ressources et de facturation, identifié par un numéro à 12 chiffres. L'adresse e-mail d'inscription devient l'utilisateur racine, tout-puissant.
  • L'utilisateur racine reçoit une MFA immédiatement et ne sert plus jamais au quotidien : on travaille avec des identités IAM ou IAM Identity Center.
  • AWS est découpé en régions (eu-south-2 Espagne, eu-west-3 Paris…) et zones de disponibilité (eu-south-2a, b, c). La plupart des ressources appartiennent à une région.
  • L'offre gratuite a des limites précises et a changé en 2025 : un budget avec alerte est la première chose à créer.
  • AWS CLI v2 lit sa configuration dans ~/.aws/config et ~/.aws/credentials, organisée en profils.

1. Le compte AWS

Pour ouvrir un compte, il faut une adresse e-mail, un numéro de téléphone et une carte bancaire acceptant les paiements internationaux en dollars (une carte marocaine internationale convient en général ; vérifiez les plafonds de paiement à l'étranger avec votre banque).

Bonnes pratiques à l'inscription :

Choix Recommandation Pourquoi
Adresse e-mail une liste de diffusion de l'entreprise (aws-racine@startup.ma) ne pas dépendre de la boîte d'une seule personne qui peut partir
Nom du compte explicite : startup-prod, startup-formation on aura vite plusieurs comptes
Type « professionnel » pour une entreprise coordonnées de facturation correctes

L'utilisateur racine

L'utilisateur racine peut tout faire, y compris fermer le compte ou changer le moyen de paiement, et aucune politique ne peut le restreindre à l'intérieur du compte. Donc :

  1. activez une MFA (idéalement une clé de sécurité FIDO2) ;
  2. ne créez aucune clé d'accès pour lui ;
  3. créez une identité d'administration pour le travail courant (leçon 1.2) ;
  4. n'utilisez la racine que pour les rares tâches qui l'exigent (certains réglages de facturation, fermeture du compte, récupération).

Un compte ou plusieurs ?

Une startup commence souvent avec un seul compte. Dès qu'il y a de la production, on sépare avec AWS Organizations :

Organisation « startup »
├── compte gestion (facturation, rien d'autre)
├── compte production
├── compte préproduction
└── compte sécurité (journaux CloudTrail, audit)

La frontière entre comptes est le cloisonnement le plus solide d'AWS : une erreur en préproduction ne peut pas toucher la production.

2. La console de gestion

La console web (console.aws.amazon.com) permet de tout faire à la souris. Repères :

  • en haut à droite, le sélecteur de région : la cause n° 1 de « mes instances ont disparu ! » (elles sont simplement dans une autre région) ;
  • la barre de recherche des services ;
  • le menu du compte : numéro de compte, facturation, identifiants de sécurité ;
  • CloudShell : un terminal dans le navigateur avec AWS CLI déjà configurée avec vos droits. Pratique pour débuter, sans rien installer.

Certains services sont mondiaux (IAM, Route 53, CloudFront, Organizations) : le sélecteur de région n'a pas d'effet sur eux.

3. Régions et zones de disponibilité

Les régions proches du Maroc

Région Code Remarque
Europe (Espagne) eu-south-2 la plus proche géographiquement ; région « à activer » (opt-in)
Europe (Paris) eu-west-3 activée par défaut, catalogue de services large
Europe (Irlande) eu-west-1 une des plus anciennes, presque tous les services, souvent moins chère
Europe (Milan) eu-south-1 à activer
Afrique (Le Cap) af-south-1 seule région en Afrique à la date de rédaction, loin du Maroc

À la date de rédaction, AWS n'a pas de région au Maroc. La liste des régions et des services par région évolue : consultez la page officielle « Global Infrastructure » avant un projet.

Les régions à activer

Les régions ouvertes après mars 2019 (dont eu-south-2, eu-south-1, af-south-1) sont désactivées par défaut. Il faut les activer dans les paramètres du compte (menu du compte → « Account » → « AWS Regions »), ce qui peut prendre quelques minutes.

# Voir l'état des régions du compte (activées ou non)
aws account list-regions --query 'Regions[].[RegionName,RegionOptStatus]' --output table

Les zones

Chaque région a au moins trois zones de disponibilité. Leur nom (eu-south-2a) est une étiquette propre à votre compte : la zone « a » d'un autre compte n'est pas forcément le même centre de données. Pour parler de la même zone entre deux comptes, on utilise l'identifiant de zone (de la forme <code-court>-az1), affiché par la commande ci-dessous.

aws ec2 describe-availability-zones --region eu-south-2 \
  --query 'AvailabilityZones[].[ZoneName,ZoneId,State]' --output table

Choisir sa région : une startup de Casablanca

Une application de livraison pour des épiceries de Casablanca et Rabat :

Critère Espagne (eu-south-2) Paris (eu-west-3) Irlande (eu-west-1)
Latence vers le Maroc la plus faible faible moyenne
Services disponibles catalogue en croissance, à vérifier service par service large le plus large
Prix à comparer au calculateur à comparer souvent le plus bas

Choix courant : région principale proche (Espagne ou Paris) après vérification que tous les services nécessaires y sont, et seconde région pour les copies de sauvegarde. La question des données personnelles (loi 09-08, CNDP) est à traiter avant : voir la formation « Fondamentaux du cloud », leçon 3.1.

4. L'offre gratuite et la facture

L'offre gratuite

AWS propose depuis longtemps une offre gratuite pour découvrir ses services. Elle a été profondément modifiée en 2025 : les nouveaux comptes reçoivent des crédits de départ et choisissent entre un plan gratuit limité dans le temps et un plan payant ; les comptes plus anciens relevaient d'une offre « 12 mois gratuits » sur certains services, plus des services « toujours gratuits » dans des limites mensuelles.

Les règles exactes (montants, durée, services concernés) changent : lisez la page officielle de l'offre gratuite au moment où vous ouvrez le compte, et retenez ces principes :

  • « gratuit » signifie dans une limite (heures, Go, requêtes) ;
  • certains services ne sont jamais gratuits (passerelle NAT, adresses IPv4 publiques au-delà de ce qui est inclus, certaines tailles d'instance) ;
  • ce que vous oubliez allumé continue de consommer.

Se protéger dès le premier jour

  1. Créez un budget avec alerte e-mail à quelques dollars (AWS Budgets, leçon 3.3).
  2. Activez la réception des alertes de facturation et consultez la page Billing and Cost Management chaque semaine au début.
  3. Supprimez ce que vous créez pour vos essais, dans la bonne région.
# Un budget mensuel de 10 dollars avec alerte à 80 % (fichiers JSON préparés à l'avance)
aws budgets create-budget --account-id 123456789012 \
  --budget file://budget.json --notifications-with-subscribers file://alertes.json

5. AWS CLI

Installer la version 2

# Linux x86_64 (sur une machine avec accès Internet)
curl -sSLo awscliv2.zip "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip"
unzip -q awscliv2.zip
sudo ./aws/install
aws --version          # aws-cli/2.x.x Python/3.x Linux/...

Préférez cet installateur officiel ou CloudShell : le paquet awscli de certaines distributions est une ancienne version 1.

Se connecter : les méthodes

Méthode Commande Quand
IAM Identity Center (SSO) aws configure sso puis aws sso login recommandé pour les humains : jetons temporaires
Clés d'accès d'un utilisateur IAM aws configure à éviter ; si nécessaire, clés à rotation régulière
Rôle d'une instance EC2, de Lambda, de CloudShell rien à faire la CLI trouve seule des identifiants temporaires

Les fichiers de configuration

# ~/.aws/config : réglages par profil (pas de secret ici)
[default]
region = eu-south-2
output = json

[profile formation]
region = eu-west-3
output = table

[profile prod]
sso_session = startup
sso_account_id = 123456789012
sso_role_name = AdministrateurProd
region = eu-south-2

[sso-session startup]
sso_start_url = https://startup.awsapps.com/start
sso_region = eu-west-3
  • ~/.aws/config : régions, format de sortie, profils SSO ;
  • ~/.aws/credentials : les clés d'accès si vous en utilisez (fichier à protéger en chmod 600, jamais dans Git) ;
  • dans config, les sections s'écrivent [profile nom] ; dans credentials, simplement [nom].

Choisir le profil et la région

aws s3 ls --profile formation           # un profil pour une commande
export AWS_PROFILE=prod                 # un profil pour toute la session du terminal
aws ec2 describe-instances --region eu-west-3   # la région en option écrase celle du profil
aws configure list                      # d'où viennent les réglages actuels
aws sts get-caller-identity             # « qui suis-je ? » : compte, utilisateur ou rôle

aws sts get-caller-identity est la commande à taper dès que quelque chose ne marche pas : elle dit sur quel compte et avec quelle identité vous travaillez réellement.

Mettre en forme les résultats

aws ec2 describe-regions --output table
# --query filtre la réponse JSON avec JMESPath
aws ec2 describe-instances \
  --query 'Reservations[].Instances[].[InstanceId,InstanceType,State.Name]' --output text

Formats : json (par défaut, pour les scripts), table (lisible), text (pour grep, awk), yaml.

Pièges fréquents

  • Utiliser l'utilisateur racine au quotidien, ou pire, lui créer des clés d'accès.
  • Chercher ses ressources dans la mauvaise région : vérifiez le sélecteur de région et l'option --region.
  • Croire que tout est gratuit pendant l'essai : passerelle NAT, IP publiques, gros volumes ou grandes instances sont facturés. Créez un budget.
  • Copier des clés d'accès dans un script ou un dépôt Git : des robots les trouvent en quelques minutes et lancent des machines de minage à vos frais.

Lab

Le lab n'a pas d'accès réseau ni de CLI AWS : vous préparez les fichiers qu'un ingénieur met en place sur son poste. Vous écrivez ~/.aws/config avec un profil par défaut en Espagne puis un profil formation à Paris, un petit script d'inventaire valide, et la fiche des choix du compte.

cat /root/.aws/config
sh -n /root/aws/inventaire.sh && echo "syntaxe correcte"

Quiz

  1. Combien de chiffres compte un numéro de compte AWS ?
  2. Citez deux règles pour l'utilisateur racine.
  3. Pourquoi la région eu-south-2 n'apparaît-elle pas dans un compte tout neuf ?
  4. Dans ~/.aws/config, comment s'écrit l'en-tête d'un profil nommé formation ?
  5. Quelle commande indique avec quel compte et quelle identité la CLI travaille ?
Réponses
  1. 12 chiffres.
  2. Au choix : MFA obligatoire ; aucune clé d'accès ; ne pas l'utiliser au quotidien ; adresse e-mail de groupe.
  3. C'est une région à activer (ouverte après mars 2019) : il faut l'activer dans les paramètres du compte.
  4. [profile formation] (dans credentials, ce serait [formation]).
  5. aws sts get-caller-identity.

Références générales : documentation officielle AWS (non reproduite). Texte entièrement original MasterLinux.

Exercices pratiques

À réaliser sur Debian 12

Le terminal en ligne ouvre bientôt. En attendant, réalisez ces tâches sur votre machine Linux, une machine virtuelle ou WSL.

  1. Créez le fichier de configuration de la CLI /root/.aws/config avec une section [default] contenant region = eu-south-2 et output = json
    Afficher un indicemkdir -p /root/.aws puis printf '[default]\nregion = eu-south-2\noutput = json\n' > /root/.aws/config
    Voir la solution
    mkdir -p /root/.aws && printf '[default]\nregion = eu-south-2\noutput = json\n' > /root/.aws/config

    Vérification : f=/root/.aws/config; grep -qxF "[default]" $f && grep -qx "region = eu-south-2" $f && grep -qx "output = json" $f

  2. Ajoutez à /root/.aws/config un profil nommé formation (en-tête [profile formation]) dont la région est eu-west-3, sans supprimer la section [default]
    Afficher un indiceAjoutez avec >> : une ligne vide, [profile formation], puis region = eu-west-3
    Voir la solution
    printf '\n[profile formation]\nregion = eu-west-3\noutput = table\n' >> /root/.aws/config

    Vérification : f=/root/.aws/config; grep -qxF "[default]" $f && grep -qx "region = eu-south-2" $f && grep -qxF "[profile formation]" $f && grep -qx "region = eu-west-3" $f

  3. Écrivez le script exécutable /root/aws/inventaire.sh (première ligne #!/bin/sh) qui lance aws sts get-caller-identity puis aws ec2 describe-regions --output table. Sa syntaxe doit être valide (sh -n)
    Afficher un indiceprintf avec trois lignes, puis chmod +x
    Voir la solution
    mkdir -p /root/aws && printf '#!/bin/sh\naws sts get-caller-identity\naws ec2 describe-regions --output table\n' > /root/aws/inventaire.sh && chmod +x /root/aws/inventaire.sh

    Vérification : f=/root/aws/inventaire.sh; test -x $f && [ "$(head -n1 $f)" = "#!/bin/sh" ] && sh -n $f && grep -q "^aws sts get-caller-identity" $f && grep -q "^aws ec2 describe-regions.*--output table" $f

  4. Consignez les choix du compte dans /root/aws/compte.txt : region_principale=eu-south-2, region_secours=eu-west-3, mfa_racine=oui et cles_acces_racine=aucune
    Afficher un indiceQuatre lignes cle=valeur
    Voir la solution
    printf 'region_principale=eu-south-2\nregion_secours=eu-west-3\nmfa_racine=oui\ncles_acces_racine=aucune\n' > /root/aws/compte.txt

    Vérification : f=/root/aws/compte.txt; grep -qx "region_principale=eu-south-2" $f && grep -qx "region_secours=eu-west-3" $f && grep -qx "mfa_racine=oui" $f && grep -qx "cles_acces_racine=aucune" $f

Références officielles consultées : AWS — Documentation générale (référence consultée, texte original) — https://docs.aws.amazon.com/ ; AWS — AWS Command Line Interface, guide de l'utilisateur (référence) — https://docs.aws.amazon.com/cli/ ; AWS — Offre gratuite AWS (page de référence) — https://aws.amazon.com/free/. Texte original MasterLinux.