Identités Entra ID, gouvernance RBAC, réseaux virtuels et machines virtuelles : cliquez sur chaque module pour déplier le cours complet.
Microsoft Entra ID (anciennement Azure AD) est le service d’identité cloud de Microsoft. Il stocke les utilisateurs, les groupes, les appareils et les applications d’un locataire (tenant). Chaque utilisateur possède un nom d’utilisateur principal (UPN) de la forme prenom.nom@contoso.com, unique dans le locataire.
Les groupes de sécurité regroupent des utilisateurs pour leur attribuer des accès en une seule opération. Les groupes à appartenance dynamique mettent à jour leurs membres automatiquement selon des règles d’attributs, par exemple user.department égal à « IT ». Le libre-service de réinitialisation de mot de passe (SSPR) permet aux utilisateurs de réinitialiser eux-mêmes leur mot de passe après une vérification d’identité.
# Se connecter et vérifier le contexte
az login
az account show
az account set --subscription "Production"
# Créer un utilisateur Entra ID
az ad user create --display-name "Léa Martin" --user-principal-name lea.martin@contoso.com --password "P@ssw0rd!"
# Créer un groupe de sécurité puis y ajouter l'utilisatrice
az ad group create --display-name "Équipe-Réseau" --mail-nickname "equipe-reseau"
az ad group member add --group "Équipe-Réseau" --member-id lea.martin@contoso.com
Connect-AzAccount
$pwd = ConvertTo-SecureString "P@ssw0rd!" -AsPlainText -Force
New-AzADUser -DisplayName "Léa Martin" -UserPrincipalName "lea.martin@contoso.com" -Password $pwd
New-AzADGroup -DisplayName "Équipe-Réseau" -MailNickname "equipe-reseau" -SecurityEnabled
| Type | Usage | Exemple |
|---|---|---|
| Utilisateur membre | Employé du locataire | lea.martin@contoso.com |
| Utilisateur invité (B2B) | Partenaire externe | Compte invité avec MFA |
| Principal de service | Identité d’une application | Pipeline de déploiement |
| Identité managée | Ressource Azure sans secret géré | VM accédant au coffre de clés |
Créez un seul groupe de sécurité, idéalement dynamique sur user.department égal à IT, puis une seule attribution RBAC sur ce groupe : chaque arrivée ou départ se gère par l'appartenance au groupe, sans toucher aux attributions.
Le contrôle d’accès en fonction du rôle (RBAC) attribue un rôle à un principal de sécurité (utilisateur, groupe, principal de service) sur une étendue : groupe d’administration, abonnement, groupe de ressources ou ressource. Les autorisations s’héritent du parent vers l’enfant. Le principe du moindre privilège impose de donner le rôle le plus faible suffisant.
# Créer le groupe de ressources puis attribuer le rôle Contributeur
az group create --name RG-App --location francecentral
az role assignment create --assignee lea.martin@contoso.com --role Contributor --resource-group RG-App
# Auditer les attributions existantes
az role assignment list --assignee lea.martin@contoso.com --all -o table
Un verrou CanNotDelete empêche la suppression tout en autorisant les modifications ; un verrou ReadOnly bloque suppression et modification. Azure Policy applique des règles à grande échelle (exiger une balise, interdire les IP publiques, imposer certains SKU) avec des effets audit, deny, append ou deployIfNotExists.
# Affecter une stratégie intégrée à un groupe de ressources
az policy assignment create --name "exiger-balise-env" --policy "Require a tag on resources" --resource-group RG-App
# Protéger un groupe critique contre la suppression
az lock create --name Verrou-Prod --lock-type CanNotDelete --resource-group RG-App
| Rôle | Peut gérer les ressources | Peut gérer les accès |
|---|---|---|
| Propriétaire (Owner) | Oui | Oui |
| Contributeur (Contributor) | Oui | Non |
| Lecteur (Reader) | Non (lecture) | Non |
| Administrateur de l’accès utilisateur | Non | Oui |
Contributeur ne gère pas les accès : il faut Propriétaire ou Administrateur de l'accès utilisateur sur RG-App. Vérifiez d'abord l'étendue exacte de son attribution avec az role assignment list, puis le délai de propagation et le journal d'activité.
Un réseau virtuel (VNet) isole vos ressources dans une plage d’adresses privées (10.0.0.0/8, 172.16.0.0/12 ou 192.168.0.0/16). On le découpe en sous-réseaux (applicatif, base de données, passerelle). Azure réserve les 4 premières adresses de chaque sous-réseau. Le sous-réseau GatewaySubnet (nom imposé, /27 minimum) accueille la passerelle VPN ou ExpressRoute.
az group create --name RG-Net --location francecentral
# VNet 10.1.0.0/16 avec un premier sous-réseau applicatif
az network vnet create --resource-group RG-Net --name VNet-Hub --address-prefix 10.1.0.0/16 --subnet-name Subnet-App --subnet-prefix 10.1.1.0/24
# Sous-réseau base de données + sous-réseau de passerelle
az network vnet subnet create --resource-group RG-Net --vnet-name VNet-Hub --name Subnet-DB --address-prefix 10.1.2.0/24
az network vnet subnet create --resource-group RG-Net --vnet-name VNet-Hub --name GatewaySubnet --address-prefix 10.1.255.0/27
Le groupe de sécurité réseau (NSG) filtre le trafic au niveau du sous-réseau ou de la carte réseau. Les règles sont évaluées par priorité croissante (100 à 4096) et la première correspondance décide (autoriser ou refuser).
az network nsg create --resource-group RG-Net --name NSG-Web
# Autoriser HTTP/HTTPS depuis Internet, SSH depuis le réseau interne uniquement
az network nsg rule create --resource-group RG-Net --nsg-name NSG-Web --name Allow-HTTP --priority 100 --destination-port-ranges 80 --protocol Tcp --access Allow --direction Inbound
az network nsg rule create --resource-group RG-Net --nsg-name NSG-Web --name Allow-HTTPS --priority 110 --destination-port-ranges 443 --protocol Tcp --access Allow --direction Inbound
az network nsg rule create --resource-group RG-Net --nsg-name NSG-Web --name Allow-SSH-Interne --priority 120 --source-address-prefixes 10.1.0.0/16 --destination-port-ranges 22 --protocol Tcp --access Allow --direction Inbound
| Service | Port | Protocole |
|---|---|---|
| SSH | 22 | TCP |
| RDP | 3389 | TCP |
| HTTP / HTTPS | 80 / 443 | TCP |
| DNS | 53 | TCP/UDP |
| SMB (Azure Files) | 445 | TCP |
Modifiez uniquement la règle Allow-SSH-Interne : source-address-prefixes à 10.1.0.0/16 au lieu de l'étoile, priorité 120 inchangée, et laissez les règles 100 et 110 pour HTTP et HTTPS. Associez ensuite le NSG au sous-réseau pour couvrir toutes les VM.
La commande az vm create provisionne la VM, son disque managé, sa carte réseau et un NSG par défaut. On choisit une image (Ubuntu2204, Win2022AzureEdition), une taille (B pour les charges variables, D pour un usage général, E pour la mémoire) et une méthode d’authentification (clé SSH sous Linux).
az group create --name RG-Compute --location francecentral
az vm create --resource-group RG-Compute --name VM-Web01 --image Ubuntu2204 --size Standard_B2s --admin-username azureuser --generate-ssh-keys
# Vérifier l'état et les adresses
az vm list -o table
az vm show --resource-group RG-Compute --name VM-Web01
az vm stop arrête le système mais conserve l’allocation matérielle : la facturation du calcul continue. az vm deallocate libère le matériel et stoppe la facturation (seul le stockage reste facturé). Pour changer de taille, la VM doit être désallouée.
# Arrêt économique puis redimensionnement
az vm deallocate --resource-group RG-Compute --name VM-Web01
az vm resize --resource-group RG-Compute --name VM-Web01 --size Standard_D4s_v5
az vm start --resource-group RG-Compute --name VM-Web01
# Exécuter un diagnostic sans ouvrir SSH (agent Azure)
az vm run-command invoke --resource-group RG-Compute --name VM-Web01 --command-id RunShellScript --scripts "hostname"
| Série | Profil | Usage typique |
|---|---|---|
| B (burstable) | Crédits CPU, faible coût | Maquettes, petits sites |
| D / Ddsv5 | Usage général équilibré | Serveurs web et applicatifs |
| E / Edsv5 | Mémoire élevée | Bases de données |
| F | Calcul intensif | Traitement par lots |
az vm deallocate puis az vm resize vers Standard_D4s_v5 puis az vm start : seul deallocate libère l'allocation matérielle et autorise le changement de taille, et seul lui stoppe la facturation du calcul.