Leçon 1 sur 12 · Fondamentaux
Azure : abonnements, groupes de ressources, régions, portail, Cloud Shell et az CLI
Objectif
Comprendre comment un compte Azure est organisé (qui paie, qui gère, où vivent les ressources), choisir une région adaptée à un client marocain, et faire vos premiers gestes avec le portail, Cloud Shell et az CLI.
Les notions générales (IaaS, PaaS, SaaS, modèle de responsabilité partagée, CapEx et OpEx) sont traitées dans la formation « Cloud » (fondamentaux). Ici, on se concentre sur la façon dont Azure les met en œuvre.
L'essentiel
- Tout part d'un locataire Microsoft Entra ID (l'annuaire de l'entreprise). Il contient des abonnements, qui sont l'unité de facturation et de limite.
- Une ressource (VM, disque, base…) appartient toujours à un seul groupe de ressources, lui-même dans un seul abonnement.
- Quatre niveaux d'étendue pour les droits et les stratégies : groupe d'administration → abonnement → groupe de ressources → ressource. Ce qui est donné en haut est hérité en bas.
- Il n'existe pas (encore) de région Azure au Maroc : les plus proches sont France Central (
francecentral), Spain Central (spaincentral) et West Europe (westeurope). - az CLI est l'outil de ligne de commande multiplateforme ; Cloud Shell vous l'offre déjà connecté, dans le navigateur.
1. La hiérarchie d'un compte Azure
Prenons une chaîne de magasins de Casablanca, « Boutique Atlas », qui passe son informatique sur Azure :
Locataire Entra ID : boutiqueatlas.ma
└── Groupe d'administration racine
├── GA « Production »
│ └── Abonnement « Boutique-Prod » ← une facture, un budget
│ ├── rg-boutique-prod ← le site web et sa base
│ └── rg-reseau-prod ← réseaux virtuels, VPN
└── GA « Hors-production »
└── Abonnement « Boutique-Dev »
└── rg-boutique-dev
| Niveau | Rôle | Exemple |
|---|---|---|
| Locataire (tenant) | l'annuaire : utilisateurs, groupes, applications | boutiqueatlas.ma |
| Groupe d'administration | regrouper des abonnements pour leur appliquer droits et stratégies | « Production » |
| Abonnement | contrat de facturation, quotas, frontière de sécurité | « Boutique-Prod » |
| Groupe de ressources | dossier logique de ressources qui vivent et meurent ensemble | rg-boutique-prod |
| Ressource | l'objet facturé : VM, compte de stockage, adresse IP… | vm-web-01 |
Règles à connaître :
- Un groupe de ressources a une région (où sont stockées ses métadonnées), mais il peut contenir des ressources d'autres régions.
- Supprimer un groupe de ressources supprime tout ce qu'il contient. C'est pratique pour un environnement de test, dangereux en production.
- Une ressource peut être déplacée d'un groupe à l'autre (la plupart des types le permettent), mais pas imbriquée : il n'y a pas de groupe dans un groupe.
Combien d'abonnements ?
Une pratique courante : un abonnement par environnement (production, préproduction, développement), voire par client pour une ESN. On sépare ainsi les factures, les quotas et les droits. Les groupes d'administration évitent de répéter les mêmes règles sur chaque abonnement.
2. Régions et zones de disponibilité
Une région est un ensemble de centres de données proches (par exemple France Central, près de Paris). Beaucoup de régions ont trois zones de disponibilité : des centres de données séparés (alimentation, refroidissement, réseau indépendants) dans la même région.
| Choisir une région selon… | À vérifier |
|---|---|
| la latence vers les utilisateurs au Maroc | Espagne et France sont les plus proches |
| la disponibilité du service | tous les services ne sont pas dans toutes les régions |
| le prix | il varie d'une région à l'autre |
| les exigences légales | loi 09-08 sur les données personnelles (avis de la CNDP pour certains transferts) |
| les zones | une région avec zones permet une haute disponibilité |
# lister les régions et leur nom court
az account list-locations --output table
# les tailles de VM disponibles dans une région
az vm list-sizes --location francecentral --output table
Les commandes attendent toujours le nom court (francecentral), jamais le nom affiché (« France Central »).
3. Le portail Azure
Le portail (portal.azure.com) est l'interface web. Il est parfait pour découvrir, visualiser (schémas de réseau, coûts, métriques) et dépanner. Quelques repères :
- la barre de recherche en haut trouve un service, une ressource ou une documentation ;
- Groupes de ressources : la vue « par projet » ;
- Gestion des coûts + facturation : budgets et analyse des coûts ;
- le bouton Cloud Shell (icône
>_) ouvre un terminal en bas de page.
Mais un clic ne se rejoue pas. Dès qu'une opération doit être répétée (une VM par client, un environnement par stagiaire), on passe à la ligne de commande puis à l'infrastructure as code (leçon 3.3, Bicep).
4. Cloud Shell
Cloud Shell est un terminal déjà authentifié avec votre compte, dans le navigateur :
- deux environnements au choix : Bash ou PowerShell ;
- az CLI, kubectl, git, Terraform et d'autres outils sont préinstallés ;
- la session est temporaire ; pour conserver vos fichiers d'une session à l'autre, Cloud Shell vous propose de rattacher un partage de fichiers Azure (stockage facturé, quelques dirhams par mois).
C'est la façon la plus rapide de commencer, depuis n'importe quel poste, même un PC d'un cybercafé où vous ne voulez rien installer.
5. az CLI sur votre poste
az CLI s'installe sur Windows, macOS et Linux (paquet azure-cli des dépôts Microsoft). Ensuite :
az version # version installée
az login # ouvre le navigateur pour vous connecter
az login --use-device-code # sur un serveur sans navigateur : code à saisir ailleurs
az account show --output table # abonnement actuellement sélectionné
az account list --output table # tous vos abonnements
az account set --subscription "Boutique-Prod" # changer d'abonnement
La forme des commandes
az <groupe> [sous-groupe] <action> --paramètres
az group create --name rg-boutique-prod --location francecentral
az network vnet create --name vnet-prod ...
az vm list --output table
az <groupe> --help liste les actions possibles ; az find "créer une vm" propose des exemples.
Créer, lister, supprimer un groupe de ressources
# créer, avec des étiquettes (tags) pour retrouver les coûts par projet
az group create --name rg-boutique-prod --location francecentral \
--tags env=prod projet=boutique
az group list --output table
az group show --name rg-boutique-prod
# supprimer TOUT le contenu du groupe (demande confirmation)
az group delete --name rg-boutique-dev
az group delete --name rg-boutique-dev --yes --no-wait # sans question, en arrière-plan
Les étiquettes (--tags) sont des paires clé=valeur. Elles ne changent rien au fonctionnement, mais permettent de filtrer l'analyse des coûts (« combien coûte le projet boutique en production ? »).
Des valeurs par défaut
az configure --defaults group=rg-boutique-prod location=francecentral
az vm list --output table # utilise désormais rg-boutique-prod
az configure --list-defaults # voir les valeurs enregistrées
Pratique, mais dangereux dans un script partagé : rendez les valeurs explicites dans les scripts de production.
Formats de sortie et requêtes
| Option | Sortie | Usage |
|---|---|---|
--output json (défaut) |
JSON complet | scripts, outils |
--output table |
tableau lisible | lecture humaine |
--output tsv |
valeurs brutes séparées par des tabulations | récupérer une valeur dans une variable |
--output yaml |
YAML | lecture |
L'option --query filtre le résultat avec la syntaxe JMESPath :
# seulement le nom et la région de chaque groupe
az group list --query "[].{nom:name, region:location}" --output table
# les groupes de production (étiquette env=prod)
az group list --query "[?tags.env=='prod'].name" --output tsv
# récupérer l'identifiant d'un groupe dans une variable
ID=$(az group show --name rg-boutique-prod --query id --output tsv)
echo "$ID" # /subscriptions/<id-abonnement>/resourceGroups/rg-boutique-prod
Cet identifiant long (ID de ressource) revient partout : il désigne sans ambiguïté une ressource, et sert d'étendue pour les droits (leçon 1.2).
6. Verrous : éviter la suppression accidentelle
# interdire la suppression (la modification reste possible)
az lock create --name ne-pas-supprimer --resource-group rg-boutique-prod \
--lock-type CanNotDelete
# interdire toute modification
az lock create --name lecture-seule --resource-group rg-archives --lock-type ReadOnly
az lock list --resource-group rg-boutique-prod --output table
az lock delete --name ne-pas-supprimer --resource-group rg-boutique-prod
Un verrou s'applique même à un propriétaire de l'abonnement : il faut d'abord retirer le verrou pour supprimer. C'est exactement le but.
7. Les coûts dès le premier jour
- Créez un budget sur l'abonnement (portail : Gestion des coûts → Budgets) avec une alerte à 50 %, 80 % et 100 %.
- Une VM arrêtée depuis le système reste facturée ; seule une VM désallouée (
az vm deallocate) ne paie plus le calcul (leçon 1.3). - Les disques, adresses IP publiques et sauvegardes sont facturés même quand la VM est éteinte.
- Supprimez les groupes de test :
az group deleteest votre meilleur outil d'économie.
Pièges fréquents
- Travailler dans le mauvais abonnement : toujours
az account showavant une opération importante, etaz account seten tête de script. - Utiliser le nom affiché de la région (« France Central ») au lieu du nom court
francecentral. - Tout mettre dans un seul groupe de ressources : on ne peut plus supprimer l'environnement de test sans risquer la production.
- Oublier les étiquettes : six mois plus tard, personne ne sait à quel projet appartient une facture de 4 000 MAD.
Lab
Vous préparez le script de socle de Boutique Atlas : sélection de l'abonnement, création du groupe de ressources de production en France Central avec ses étiquettes, valeurs par défaut et verrou. Le lab n'a ni réseau ni az CLI : vous écrivez le script exactement comme vous le lanceriez dans Cloud Shell, puis un petit fichier qui résume la hiérarchie des étendues.
cat /root/azure/01-socle.sh # relire le script
sh -n /root/azure/01-socle.sh # vérifier la syntaxe shell sans l'exécuter
Quiz
- Quelle est l'unité de facturation dans Azure ?
- Une ressource peut-elle appartenir à deux groupes de ressources ?
- Que se passe-t-il quand on supprime un groupe de ressources ?
- Quelle option de az CLI donne une valeur brute, facile à mettre dans une variable shell ?
- Un propriétaire de l'abonnement peut-il supprimer un groupe qui porte un verrou
CanNotDelete?
Réponses
- L'abonnement (une facture, des quotas, une frontière de droits).
- Non : une ressource est dans un seul groupe à la fois (on peut la déplacer).
- Toutes les ressources qu'il contient sont supprimées.
--output tsv(souvent avec--query).- Non, pas tant que le verrou existe : il doit d'abord le supprimer (
az lock delete).
Sources de référence : Microsoft Learn (CC BY 4.0) — documentation Azure RBAC, machines virtuelles et réseaux virtuels. Texte original MasterLinux.