⚠️ EXAM AZ-500 RETIRÉ LE 31 AOÛT 2026 — angle de TOUTE la fiche = SÉCURITÉ (durcir, détecter, séparer les rôles).
IDENTITY RBAC SÉCU
-5 rôles + sécu:
-Owner: assigne rôles Microsoft.Authorization/*, le + dangereux, sous PIM
-Contributor: gère tout SAUF authz, PAS lire secrets KV
-Reader: control plane lecture
-RBAC Administrator: assigne rôles, PAS via Policy, moindre privilège vs UAA
-User Access Administrator: tout Authorization, peut s'auto-Owner
-Security Admin (modif policies/alertes Defender) vs Security Reader (lecture posture/secure score)
-Qui assigne un rôle: Owner, RBAC Admin, UAA SEULEMENT — Contributor NON
-RBAC Admin vs UAA: déléguer l'attribution SANS donner gestion policies/deny > RBAC Admin (UAA peut s'auto-Owner)
-🚨 Classic admins (Co-Admin/Service Admin) RETIRÉS: auto-Owner déc 2025, retraite mai 2026 > tout RBAC
-🚨 KV Access Policy legacy = vaults/write (Contributor) peut s'auto-créer access policy > secrets. Basculer RBAC mode
-Elevate access: Global Admin Entra s'élève UAA racine / (nettoyer assignations orphelines, révoquer après)
CUSTOM ROLES AZURE VS ENTRA (PIÈGE)
-Azure custom role: cible ressources ARM, RBAC GRATUIT, format Microsoft.Compute/..., créé par Owner/UAA
-Entra custom role: cible objets directory, P1 MINIMUM, format microsoft.directory/..., créé par Privileged Role Administrator, 2 étapes (roleDefinition+roleAssignment)
-Azure JSON: Actions/NotActions (control plane) · DataActions/NotDataActions (data plane) · AssignableScopes (OBLIGATOIRE, IDs explicites)
-NotActions = soustrait des Actions (PAS un deny absolu)
-🚨 1 SEUL mgmt group dans AssignableScopes, racine / non supportée, 5000 custom roles/tenant
-🚨 Création = exactement 1 objet permission (l'API n'en accepte qu'un)
-ABAC conditions (Condition v2.0) raffine (Storage Blob Data Owner/Contributor/Reader)
-Entra scopes: tenant /, admin unit, objet unique. applications/create (pas owner, pas quota) vs createAsOwner
PIM (P2 REQUIS) — ELIGIBLE VS ACTIVE -Eligible = activer JIT (MFA/justif/approbation possible) vs Active = permanent dangereux -🚨 Active: MFA À L'ACTIVATION IMPOSSIBLE (déjà actif) — MFA/justif seulement à la CRÉATION -Settings: -activation max 1-24h -require MFA -require CA auth context (> MFA, ex device Intune, réauth 10min) -require justification -require ticket (INFORMATIF seul) -require approval (≥1, recommandé ≥2) -🚨 PAS d'héritage settings: réglage Souscription PAS hérité au RG > configurer chaque scope -🚨 Assignation: pas <5 min, pas retirée <5 min après création -Access reviews PIM: récurrent, Auto apply retire refusés (créer = Owner/UAA) -Alertes PIM: trop d'Owners, assignation hors PIM, activation trop fréquente
MFA (3 MÉCANISMES) -Security Defaults (gratuit, tout-ou-rien, bloque legacy auth+device code) -Per-user legacy (déconseillé) -Conditional Access (P1+, conditionnel) -🚨 Security Defaults ⇄ CA MUTUELLEMENT EXCLUSIFS (1 seule policy CA même Off > SD impossible) -🚨 Legacy auth (IMAP/POP3/SMTP) ne supporte PAS MFA > SD/CA la bloquent -Phishing-resistant = FIDO2 / WHfB / CBA
CONDITIONAL ACCESS (P1+) -Signaux > Conditions > Décision (Grant/Session). Cibler gestion Azure = ressource Microsoft Azure Management -Require MFA vs Require authentication strength (+ fin: phishing-resistant/passwordless) -🚨 authentication strength INCOMPATIBLE External Authentication Methods (EAM) > garder "Require MFA" -Risk-based (Entra ID Protection P2): sign-in risk (connexion suspecte) vs user risk (compte compromis). ID Protection envoie signal, CA décide -🚨 TOUJOURS exclure break-glass de CHAQUE policy (sinon lockout tenant) -🚨 SP/MI PAS bloqués par CA utilisateurs > CA for workload identities -🚨 TOUJOURS Report-only d'abord (vérifier sign-in logs)
APP OBJECT VS SERVICE PRINCIPAL -App object = blueprint, tenant home only (App registrations) = classe -SP = instance par tenant (Enterprise apps) -App ID (client ID) identique partout, Object ID différent. Portail crée app+SP auto, Graph = SP étape séparée -🚨 "Supprimer app" côté Enterprise apps = supprimer le SP, pas l'app object (survit, recrée SP) -🚨 Managed Identity = SP sans app object (pas redirect URI, pas secret, pas FIC entrant classique)
APP CREDENTIALS (ORDRE SÉCU CROISSANT)
-Client secret (pire, fuite Git/CI, expire) < Certificate < Federated Identity Credential (FIC, ZÉRO secret)
-Redirect URI = match EXACT (anti token-injection)
-FIC = OIDC: issuer+subject+audience (api://AzureADTokenExchange). MAX 20 FIC/app ou UAMI. issuer+subject UNIQUE
-🚨 subject mal config (mauvais repo:org/repo:ref) > échange token ÉCHOUE SANS ERREUR
-🚨 Application.ReadWrite.All = ajout FIC à n'importe quelle app = BACKDOOR d'identité discrète
PERMISSIONS DELEGATED VS APPLICATION (PIÈGE)
-Delegated = au nom d'un user (≤ droits user), user OU admin consent, dynamique possible, oauth2PermissionGrant
-Application = app-only sans user (tenant-wide), ADMIN SEULEMENT, statique only, scope .default, appRoleAssignment
-🚨 Files.Read.All Application = TOUS fichiers tenant / Delegated = ce que le user voit (même chaîne, portée ≠)
-🚨 Least-priv: 1 seul scope access_as_user/user_impersonation = full access > découper read/write
-Durcir: Enterprise App Assignment required = Yes > token qu'aux clients assignés (sinon AADSTS501051)
CONSENT (DURCISSEMENT)
-User consent settings: Allow tout / Allow verified publishers + low-risk / Do not allow
-Admin consent workflow: user demande > reviewers > tracé
-🚨 Changer settings n'affecte QUE futurs consentements (révoquer existant via Remove-MgOauth2PermissionGrant)
-🚨 Admin consent ≠ accès pour tous si Assignment required = Yes
ILLICIT CONSENT GRANT (CONSENT PHISHING)
-App malveillante demande Mail.Read/Files.Read > user consent > accès OAuth account-level SANS compte org
-🚨 MFA/reset password N'AIDENT PAS (token OAuth externe)
-Détection: audit log "Consent to application", IsAdminConsent=True inattendu, ConsentType=AllPrincipals + perms *.All
-🚨 Remédiation: DISABLE app d'abord (PAS supprimer > re-consent ressuscite), révoquer grants
MANAGED IDENTITIES SAMI VS UAMI
-Hiérarchie préférence: MI > FIC > SP cert > SP secret
-SAMI = lié à LA ressource (auto-supprimé, orphelins RBAC si recréée), 1:1
-UAMI = standalone, N ressources
-Token via IMDS (pas de secret, même pour toi). Rotation cert auto (~90j/~45j). Gratuit
-🚨 SAMI: supprimer ressource > role assignments orphelins (GUID fantôme). UAMI évite
-🚨 MI marche QUE vers cibles supportant auth Entra (vérifier liste)
-🚨 Déplacement subscription > RECRÉER MI + réassigner RBAC. Pas cross-tenant
-FIC sur app reg OU UAMI. GitHub vers Azure: UAMI + id-token: write + subject=repo:org/repo:environment:prod. Entra stocke 100 premières clés signature IdP
NETWORK SECURITY NSG/ASG -NSG stateful inbound/outbound, subnet ET/OU NIC. Priorité plus basse (numéro) gagne -NIC+subnet = intersection (Allow aux DEUX pour passer). Default rules non supprimables (surcharger par priorité <) -Service tags (Storage/Sql/AzureCloud) > IP en dur. ASG = micro-segmentation par rôle (même VNet only) -🚨 NSG stateful: pas de règle outbound miroir. PAS de NSG sur GatewaySubnet
AVNM SECURITY ADMIN RULES (sujet NEW vs AZ-700)
-Règles globales évaluées AVANT NSG, owner NSG NE PEUT PAS override > garde-fous centraux
-Network groups statiques ou DYNAMIQUES (via Azure Policy), scope MG/sub
-3 actions:
-Allow: passe la main au NSG, peut encore Deny
-Always Allow: termine, NSG ne peut plus bloquer
-Deny: stop net, aucun NSG ne ré-autorise
-🚨 Cohérence ÉVENTUELLE (délai d'application)
-🚨 NON appliqué sur VNet avec SQL MI ou Databricks (network intent policies) > AllowRulesOnly (seules règles Allow, JAMAIS Deny)
-🚨 Non-app subnet: App Gateway/Bastion/Firewall/Route Server/VPN-ER GW/vWAN ; pas sur private endpoints managed VNet
-Cas type: bloquer RDP 3389/SSH 22 globalement, exceptions par priorité
UDR & FORCED TUNNELING
-0.0.0.0/0 > next hop Virtual Appliance (IP privée FW/NVA) = force inspection sortante
-🚨 next hop VirtualAppliance exige IP Forwarding ACTIVÉ sur NIC NVA (désactivé sur VM ordinaires, MCSB NS-3)
-🚨 Secured hub vWAN = PAS d'UDR (routing intent auto). Routage asymétrique vers FW > drops
CHIFFREMENT EN TRANSIT -VPN S2S (IPsec L3, chiffré défaut) / Peering option encryption (VNet encryption, dépend HW) / ExpressRoute NON chiffré nativement -🚨 Peering ≠ chiffrement auto (backbone privé MAIS non chiffré sauf VNet encryption activée) -🚨 ER private peering NON chiffré par défaut ("privé" ≠ "chiffré")
SECURED VIRTUAL HUB (vWAN)
-= hub vWAN + Azure Firewall, Firewall Manager, routing auto (pas d'UDR)
-Routing intent (2 policies/hub): Internet Traffic (egress par FW, advertise 0.0.0.0/0) + Private Traffic (branch↔VNet, VNet↔VNet, inter-hub, branch↔branch par FW)
-🚨 Routing intent OBLIGATOIRE pour inspecter inter-hub/branch-to-branch même avec 1 SEUL hub
-🚨 Activer sur TOUS les hubs (symétrie). Bypass Azure Firewall = privé NON inspecté
P2S/S2S + ENCRYPTION OVER ER -P2S Entra ID auth: SEULEMENT OpenVPN (SSL) + Azure VPN Client > débloque CA+MFA (Basic SKU pas OpenVPN) -🚨 Entra P2S sans OpenVPN = IMPOSSIBLE (piège: croire IKEv2 marche) -App ID Microsoft-registered (pas de consent manuel, pas rôle Cloud App Admin) > manually registered (retirés 31 mars 2028) -Encryption over ER: MACsec (L2, ER DIRECT ONLY, clé CAK/CKN en Key Vault) vs IPsec over ER (L3, end-to-end, VPN GW sur private peering). Indépendants/combinables -🚨 MACsec impossible sur circuit ER via PROVIDER. Mismatch clé MACsec = COUPURE TOTALE (pas de fallback) > 1 lien à la fois
RESOURCE FIREWALLS PaaS (SELECTED NETWORKS)
-Storage 4 règles: VNet rules (service endpoint) / IP rules / resource instance / trusted service exceptions
-🚨 Trusted Microsoft services bypass = exception qui PRIME (ex ER lit clés MACsec en KV)
-🚨 Private Endpoint JAMAIS soumis aux règles firewall/NSP > vraie isolation = PE + Public access Disabled
-🚨 Public access=Disabled via template ne met PAS toujours defaultAction=Deny (portail/CLI oui)
-Network Security Perimeter (NSP) enforced = override le firewall propre de la ressource
NETWORK WATCHER SÉCU -VNet flow logs (successeur NSG flow logs): activable au niveau VNET, Allow/Deny par NSG ET AVNM admin rules + statut chiffrement -🚨 NSG flow logs RETIRÉS 30 sept 2027 (plus de création depuis 30 juin 2025) > migrer VNet flow logs -🚨 NSG flow logs + VNet flow logs même workload = double comptage. Traffic Analytics (top talkers) / IP flow verify (quelle règle) -Effective security rules = vue CONSOLIDÉE de TOUTES règles NSG sur une NIC (fusion subnet+NIC, ASG vers IPs) ≠ IP flow verify (1 flux). Next hop = vérifie UDR force bien vers FW
PRIVATE & PUBLIC ACCESS — SERVICE ENDPOINT VS PRIVATE ENDPOINT (PIÈGE) -Service Endpoint: IP PUBLIQUE, tout le service régional, DNS inchangé, PAS on-prem, GRATUIT -Private Endpoint: IP PRIVÉE ton subnet, 1 INSTANCE, privatelink+zone privée, on-prem OK (VPN/ER), facturé -Service Endpoint Policies (SEP): anti-exfiltration STORAGE ONLY (+ alias ML), comptes nommés -🚨 SEP ne couvre que Microsoft.Storage. Pour SQL MI non-Storage (BACPAC/ADF) > UDR/NSG/Firewall. SEP indép de PE
PRIVATE ENDPOINTS (3 PILIERS)
-NIC IP privée, 1 instance (subresource blob/sqlServer/vault), inbound unidirectionnel
-NSG sur subnet PE + Private DNS privatelink.<service> (DNS Zone Group = auto A-records) + Public network access=Disabled
-🚨 DNS et access-control INDÉPENDANTS: CNAME privatelink reste résolvable publiquement, accès refusé au front-door si public off
-🚨 1 zone privatelink = 1 SEUL type de service (mélanger écrase A-records). Max 5 zones, 1 group/PE
-🚨 Résolution publique réussie ≠ accès (confirme nom, pas attachement PE)
PRIVATE LINK SERVICE (EXPOSER SON SERVICE) -App derrière Standard LB > PLS référence frontend IP > consommateurs créent PE vers alias -NAT IP (≥8, SNAT côté provider, pas de conflit IP), Visibility None/Restrictive/All, auto-approval, TCP Proxy v2 (IP source réelle + LinkID) -🚨 Standard LB OBLIGATOIRE (Basic non supporté), IPv4+TCP/UDP, idle 5min (keepalives), backend par NIC (pas par IP)
APP SERVICE/FUNCTIONS — INBOUND VS OUTBOUND (ORTHOGONAUX)
-VNet Integration = OUTBOUND (sortir vers DB/KV/PE, /28 mini, NSG/UDR egress)
-Private Endpoint = INBOUND
-Access Restrictions = filtre entrée publique L3/L4
-🚨 Access Restrictions ne s'applique PAS au trafic par PE (filtré par NSG subnet PE)
-🚨 Service tag AppService = IP inbound multitenant SEULEMENT (inutile pour restreindre entre apps)
-ASE v3: App Service DANS ton subnet (Isolated v2), ILB=interne, NSG inbound+outbound + ports non-HTTP, App Service Managed Cert NON supporté
SQL MI RÉSEAU
-Toujours VNet (subnet dédié + délégation Microsoft.Sql/managedInstances), NSG obligatoire (1433), route table obligatoire
-🚨 Public endpoint OFF par défaut. Si ON: port 3342, NSG allow > deny_all_inbound. Empêcher activation org-wide > Azure Policy deny
TLS -App Service certs: App Service Managed (gratuit, pas wildcard/ASE) / App Service Cert (KV) / BYOC / import KV (sync 24h). SNI SSL (défaut) vs IP-based SSL (IP dédiée, Standard+) -Min TLS 1.2 défaut, mTLS (cert client validé CA chain) -🚨 IP-based SSL: 1 IP=1 cert, réutiliser même cert cross-app > "Cannot set certificate for existing VIP"
AZURE FIREWALL (SKU & POLICY) -Basic (NAT/Network/App, TI alert only) / Standard (+DNS proxy, Web Categories FQDN, TI alert+deny) / Premium (+TLS inspection, IDPS, URL filtering) -Ordre règles: DNAT > Network > Application (Network avant App: App Allow n'override pas Network Deny) -Policy hiérarchique parent/child: child hérite (parent prioritaire), NAT NON hérité, même région. Threat Intel: child ne peut que durcir -🚨 IDPS "Alert seul" ne BLOQUE PAS > Zero Trust = Alert and deny. URL filtering complet exige TLS inspection (CA dans KV)
APP GATEWAY WAF_v2 VS FRONT DOOR (WAF) -AGW WAF_v2: RÉGIONAL (VNet), CRS/OWASP, body jusqu'à 2 Mo (+4Go upload), origine privée V2+Private Link -Front Door Premium: GLOBAL (edge), DRS managé, body 128 Ko premiers, Private Link to origin, DDoS intégré -🚨 FD inspecte seulement 128 Ko du body (payload au-delà passe) -🚨 FD et AGW = rulesets DISTINCTS (949xxx vs 9xxxxx) > maintenir exclusions des 2 séparément -🚨 Front Door classic retiré 31 mars 2027 · Azure CDN Std from MS (classic) retiré 30 sept 2027 > FD Std/Premium successeur tout nouveau déploiement
WAF — DRS / SCORING / MODES -DRS 2.1 = Front Door Premium ONLY. Anomaly scoring: Critical 5, Error 4, Warning 3, Notice 2 > score ≥5 = bloqué (1 Critical suffit) -Paranoia Level PL1 défaut, PL2 à activer+log. Custom rules évaluées AVANT managed, par priorité (Allow skip tout) -Detection (log, tuning 1-2 sem) > Prevention (bloque, prod) -🚨 Changer version ruleset RÉINITIALISE customisations de règles (custom rules/exclusions/settings préservés)
DDoS — IP VS NETWORK -Infrastructure (gratuit, plateforme, pas tuning) / IP Protection (par IP publique, PME) / Network Protection (par plan, jusqu'à 100 IP, +DRR +cost protection +WAF discount) -Décision: <15 IP > IP Protection / ≥15 IP ou DRR/cost/WAF discount > Network Protection -🚨 DDoS = L3/L4, L7 (HTTP flood) = WAF. Front Door inclut son propre DDoS intégré -🚨 Non supporté: PaaS multitenant, APIM hors VNet integration, IP publique sur NAT Gateway
COMPUTE — BASTION & JIT
-Bastion = RDP/SSH sans IP publique sur VM (TLS 443, AzureBastionSubnet ≥/26). JIT = ferme ports management, ouvre à la demande (IP+durée), via Defender for Servers, règles NSG temporaires auto-révoquées
-Bastion SKU: Developer (gratuit, pas peering) / Basic / Standard (custom ports, file transfer, disable copy-paste) / Premium (session recording + private-only sans IP publique)
-🚨 Subnet EXACTEMENT AzureBastionSubnet ≥/26. Private-only/Developer à la CRÉATION (pas de downgrade). Session recording = Premium only
-🚨 JIT ≠ Bastion (JIT=quand ports s'ouvrent, Bastion=supprime besoin IP publique). JIT exige Defender for Servers payant
AKS DURCISSEMENT
-Réseau API server:
-Private cluster: IP privée via PE, privatelink.<region>.azmk8s.io
-API Server VNet Integration: subnet délégué ILB, public toggle, ≤2000 ranges
-Authorized IP ranges: public filtré CIDR, max 200
-🚨 Public existant > private cluster IMPOSSIBLE (recréer). Authorized IP s'active sur existant, INCOMPATIBLE endpoint privé
-🚨 Private cluster: ACR via Private Link/peering, pas d'agents DevOps MS hébergés (self-hosted)
-Auth: Entra ID (recommandé) + Azure RBAC for Kubernetes. --disable-local-accounts (cert admin local = backdoor non auditable, rotater certs ensuite)
-Workload Identity (OIDC, pas de secret) remplace AAD Pod Identity déprécié. NetworkPolicy (Cilium eBPF L7/FQDN recommandé)
-SSH nodes: Disabled (prod) / Entra ID-based (CA/MFA/PIM) / Local user (à éviter). ACI/ACA pull ACR via MI (pas admin creds), ACA préfère UAMI
-Defender for Containers: sensor eBPF (runtime), Azure Policy/Gatekeeper add-on (admission, requis posture), registry scanning (CVE), agentless, security gating (bloque sur vulnérabilités)
ACR -Entra RBAC AcrPull/AcrPush, MI (pas SP/secret), admin user OFF défaut (Policy Deny) -🚨 Private Endpoint/Content Trust/geo-replication = PREMIUM only
DISK ENCRYPTION (VM) -SSE: OS+data at-rest, toujours actif, PAS temp/cache, CMK via DES -Encryption at Host: +temp+cache, recommandé, pas CPU VM, Defender Healthy -ADE: BitLocker/dm-crypt, KEK en KV, DÉPRÉCIÉ retraite 15 sept 2028, utilise CPU VM -Confidential disk: OS lié vTPM Confidential VM, CMK via DES -🚨 CMK exige Disk Encryption Set (DES doit avoir perms KV). ADE incompatible EaH/SSE+CMK même VM. EaH activer/désactiver VM désallouée. SSE seul = Defender Unhealthy
APIM SÉCU -Subscription keys = tracking PAS auth forte seule (combiner OAuth/mTLS). validate-jwt/validate-azure-ad-token au gateway. mTLS, PE/VNet internal, named values depuis KV via MI -Defender for APIs (APIs non authentifiées, endpoints inutilisés >30j) -🚨 Subscription key seule = faible, pas d'open products. Valider token AUSSI au backend (defense in depth). Désactiver tracing prod
STORAGE — AUTORISATION DATA PLANE (ORDRE SÉCU)
-Entra ID + RBAC (token, révocable) > User Delegation SAS (clé délégation Entra, révocable) > Service/Account SAS (account key) > Shared Key (accès total) > Anonymous
-🚨 Account key = accès TOTAL + génère SAS. Rôles ARM (Owner/Contributor) PAS data via Entra MAIS listkeys > account key > tout lire (control ≠ data plane)
-Rôles data: Storage Blob Data Reader/Contributor/Owner (Owner=+POSIX ACL ADLS). UD-SAS perms = intersection RBAC principal ∩ token
-🚨 Reader and Data Access = rôle HYBRIDE (lit config + listkeys > account key). UD-SAS exige action generateUserDelegationKey
-🚨 AllowBlobPublicAccess=false (anti-anonyme) ≠ AllowSharedKeyAccess=false (anti account key) — 2 propriétés distinctes. $web reste public
-Désactiver Shared Key: AllowSharedKeyAccess=false > rejette account key. Service/Account SAS REFUSÉS, Entra + UD-SAS OK
-🚨 CA sur storage exige Shared Key désactivé (account key ignore CA). null par défaut = traité true (non configuré ≠ désactivé). Impact Files/Cloud Shell (Shared Key par défaut)
-KV-managed storage keys (auto-rotation via Event Grid SecretNearExpiry > Function, rôle Storage Account Key Operator Service)
AZURE FILES — AUTH IDENTITY-BASED
-2 couches: RBAC share-level (qui monte: Storage File Data SMB Share Reader/Contributor/Elevated) + NTFS/Windows ACL (fichier/dossier)
-AD DS on-prem (file server lift-and-shift) / Entra Domain Services (managé MS) / Entra Kerberos (PAS connectivité DC, accès Internet, VM Entra-joined)
-🚨 AES-256 Kerberos requis (AES-128 non), identity-based PAS sur NFS. Hybride = synchroniser users ET groupes
-🚨 Créer PE ne bloque PAS l'endpoint public (désactiver explicitement). AllowBlobPublicAccess=false n'affecte pas $web
STORAGE — PROTECTION DONNÉE -Soft delete (blob/container/share, anti-ransomware) / Versioning (prérequis version-level WORM) / Immutable WORM / Backups (immutable vault, MUA) -WORM: container-level (aucun prérequis) vs version-level (versioning REQUIS, précédence Blob>Container>Account) -Time-based retention: Unlocked (modifiable, TEST seul) / Locked (SEC 17a-4(f)/FINRA, étendre OK jamais réduire/supprimer, verrouiller <24h) -🚨 Soft delete AVANT immutabilité. WORM incompatible PITR/last-access, pas NFS/SFTP, version-level pas sur HNS(ADLS)
STORAGE — CHIFFREMENT -SSE Microsoft-managed (défaut AES-256 FIPS 140-2) / CMK-BYOK (KV/Managed HSM + MI) / Infrastructure encryption (double, 2 algos/clés, À LA CRÉATION SEULEMENT) -🚨 CMK prérequis KV: soft delete + purge protection. Auto-rotation si version non précisée (24h). Disk encryption ≠ storage -Defender for Storage: agentless, activity monitoring (Tor/SAS leaked), malware scanning (on-upload, MDAV, par GB), sensitive data, hash reputation (tous plans, PAS SMB Files ni Put Block). 🚨 DÉTECTE ne PRÉVIENT pas
DATABASE — ENTRA AUTH
-Entra admin sur serveur = PRÉREQUIS obligatoire (1 seul, préférer GROUPE). Contained user FROM EXTERNAL PROVIDER. Entra-only auth (désactive auth SQL)
-Contained user (portable, pas de login master) vs Login-based (Entra server principal: CREATE LOGIN master + CREATE USER FROM LOGIN, perms serveur héritées). 🚨 user/login même nom n'héritent PAS = conflation indéfinie
-🚨 Entra admin requis même pour simple MI d'app. CONNECT seul accordé, reste explicite > accorder aux RÔLES DB
-Audit: server-level (toutes bases, recommandé) vs database-level (parallèle = double). Destinations LAW/Storage(WORM)/Event Hub
-🚨 Diagnostic Setting supprimée = audit échoue SILENCIEUSEMENT (alerte sur suppression). DB-level non conservé sur copy/PITR/geo-rep
DDM VS TDE VS ALWAYS ENCRYPTED (PIÈGE CENTRAL)
-DDM: cosmétique présentation, donnée EN CLAIR en base, moteur voit clair, PROTÈGE PAS admin, masque affichage non-privilégiés. UNMASK permission
-TDE: chiffre fichiers/logs/backups AT-REST, défaut ON, moteur voit clair (déchiffré mémoire), PROTÈGE PAS admin DB. CMK = TDE protector RSA 2048/3072 en KV/MHSM
-Always Encrypted: chiffre COLONNE côté CLIENT, moteur NE VOIT JAMAIS clair, PROTÈGE contre admin DB. CMK(Column Master Key) chiffre CEK
-🚨 DDM: admins voient toujours clair, n'empêche PAS UPDATE, incompatible Always Encrypted/computed
-🚨 TDE: prérequis KV soft-delete+purge protection. Révoquer clé > base Inaccessible. master pas chiffrable
-AE Deterministic (= joins/index, leak fréquence faible cardinalité) / Randomized (+ sûr, aucune query) / Secure Enclaves (LIKE/BETWEEN/ORDER sur randomized + attestation MAA, keys enclave-enabled, compat 160+)
-🚨 AE sans enclave: rotation/changement type = déplace données HORS base côté client (long). Activer ADR AVANT 1er index colonne randomized enclave
-🚨 AE ne remplace PAS TDE. Defender for SQL: VA (express/classic) + ATP (SQL injection/brute force), rôle SQL Security Manager
GOVERNANCE — AZURE POLICY (MOTEUR SÉCU) -Effets: Audit (marque) / Deny (bloque request time) / Append / Modify (MI requise) / DeployIfNotExists DINE (MI requise) / AuditIfNotExists AINE -Ordre éval: disabled > append/modify > DENY > audit > manual > AINE > denyAction (Deny avant audit) -🚨 audit ≠ AINE (audit=propriétés ressource, AINE=enfant/extension avec existenceCondition). Policy au MG s'évalue sur sub/RG dessous, jamais le MG lui-même -Remediation: Modify/DINE corrigent que nouveau > remediation task pour existant. MI assignation + rôle min. Portail accorde rôles auto, CLI/Bicep manuel -🚨 DINE: MI assignation DÉPLOIE, appelant ÉVALUE existence (appelant=read, assignation=write). Sur MG remédiation à l'assignation non supportée -MCSB = initiative par défaut auto-assignée dès Defender activé. Security policies Defender = assignations Azure Policy
KEY VAULT — RBAC VS ACCESS POLICIES (PIÈGE)
-RBAC (recommandé): control+data plane, héritage, PIM/JIT, deny assignments, octroi réservé Owner/UAA
-Access policies (legacy): data plane only, PAS PIM, Contributor (vaults/write) peut s'auto-octroyer, 1024 entrées max
-🚨 API 2026-02-01+ : RBAC = DÉFAUT nouveaux vaults (enableRbacAuthorization=true). Forcer false pour access policies. Existants ne changent pas seuls
-🚨 API control plane <2026-02-01 RETIRÉES 27 fév 2027 (migrer ARM/Bicep/Terraform). Propagation RBAC ~10 min
-Rôles: Crypto Officer/User (keys), Secrets Officer/User, Certificates Officer/User. Officer=gère objet, User=lit/utilise
KEY VAULT — RÉSEAU & CYCLE DE VIE -Réseau (+ vers - restreint): PE+public disabled / Firewall selected (200 VNet, 1000 IPv4, pas RFC1918) / Trusted MS bypass / Firewall disabled -🚨 Trusted services ≠ TOUS les MS (Azure DevOps PAS dedans). Bypass persiste même public Disabled MAIS annulé en NSP enforced. PE non soumis NSP -Soft-delete activé défaut NON désactivable (7-90j, défaut 90, fixé création). Purge protection optionnelle (personne ne purge avant fin rétention, requis Storage CMK) -🚨 Recover vault soft-deleted NE restaure PAS role assignments/Event Grid. Purge = rôle Key Vault Purge Operator distinct de delete -Rotation policy native KEYS (≤2 ans). Event Grid KeyNearExpiry/KeyExpired émis même sans abonnement -Backup: chiffré opaque par objet, restore que MÊME subscription + géo/region pair. Objet restauré devient indépendant
KEY VAULT — PREMIUM VS MANAGED HSM (PIÈGE) -Standard (FIPS 140-2 L1, software, multitenant) / Premium (FIPS 140-3 L3, software+HSM-backed, multitenant) / Managed HSM (FIPS 140-3 L3, HSM ONLY, SINGLE-tenant, customer root of trust) -🚨 Premium ET Managed HSM = MÊME FIPS 140-3 L3. Différence = TENANCY (single vs multi) + contrôle root of trust/security domain client -🚨 Managed HSM = RBAC local enforcé par le HSM, isolé du control plane ARM (accès management ≠ accès clés). Security domain quorum ≥3, perte = perte définitive clés
IMMUTABLE VAULT + MUA (ANTI-RANSOMWARE BACKUPS) -Pour RSV + Backup Vault. Soft delete enhanced (14j défaut, mode always-on irréversible) + MUA (Resource Guard, opérations critiques exigent approbation security admin distinct) + Immutable Vault (recovery points non supprimables avant expiration) -🚨 MUA exige owner vault ≠ owner Resource Guard. Désactiver MUA est lui-même protégé. Soft-delete RSV 14j ≠ KV 7-90j -Resource locks: CanNotDelete/ReadOnly = plan GESTION uniquement (n'empêche PAS data-plane secrets), override RBAC, le + restrictif gagne
DEFENDER FOR CLOUD — CSPM VS CWPP
-CSPM = posture/hygiène/config (secure score, recommandations, GRATUIT Foundational) / CWPP = threat protection/détection runtime (alertes, plans Defender PAYANTS)
-🚨 Secure score = CSPM. Alertes = plan Defender. MCSB appliqué défaut. 2 secure scores: classique (portail Azure MCSB) vs risk-based (portail Defender + criticité)
-🚨 Reader voit compliance/secure score, Security Reader NE suffit PAS pour compliance policies. Preview exclus du score
-Compliance: MCSB défaut, autres standards (ISO 27001/PCI DSS/NIST/CIS) à ajouter explicitement, exigent ≥1 plan PAYANT
-🚨 Custom recommendations KQL exigent Defender CSPM (sinon Azure Policy only). Compliance réglementaire exige plan payant (Servers P1/API P1 N'OUVRENT PAS)
-🚨 Rec KQL: finir par | project Id,Name,Environment,Identifiers,AdditionalData,Record,HealthStatus + HealthStatus 'HEALTHY'/'UNHEALTHY' (casse). Standard sans ressource évaluable = absent dashboard, contrôles grisés = non auto-évaluables
DEFENDER CSPM (PAYANT) VS FOUNDATIONAL (GRATUIT) -Payant: attack path analysis (cloud security graph, chemins exploitables internet>assets critiques) / cloud security explorer (graph queries) / agentless scanning / governance / DSPM / CIEM / AI-SPM -🚨 Agentless exige Subscription OWNER active Defender CSPM (sinon attack path/explorer vides). Attack path peut être vide BY DESIGN
MULTICLOUD & EASM -AWS (standard AWS Foundational auto, machines = Arc) / GCP (GCP Default + Security Command Center) via security connectors agentless. Azure Arc = serveurs hors Azure (host-level, extensions) -🚨 Sans Arc, agent direct = Plan 1 only (pas JIT/FIM/agentless). Monitoring AWS/GCP = 4h -EASM = vue EXTERNE attaquant, discovery seeds > domaines/IP/hosts. Ressource Azure DISTINCTE, PAS cross-tenant
DEFENDER FOR SERVERS — P1 VS P2 (PIÈGE) -P1: MDE/EDR + vuln assessment core. Facturé par HEURE (pas par device) -P2: + agentless scanning (défaut) + JIT VM access + FIM (à ACTIVER pas auto) + OS config assessment + compliance + 500 MB/j gratuit + MDVM premium -🚨 FIM PAS activé défaut même en P2 (MDE/vuln auto). Essai 30j non extensible. JIT verrouille ports via NSG
DEFENDER FOR DATABASES / STORAGE -Databases: Azure SQL DB/Synapse / SQL on Machines (Arc) / Open-Source (PG/MySQL/MariaDB) / Cosmos DB. 🚨 Cosmos = API NoSQL UNIQUEMENT (pas Cassandra/Mongo/Table/Gremlin) -Storage: activity monitoring / malware scanning (MDAV, par GB) / sensitive data. 🚨 Classic = ancien pricing, migrer. Malware/sensitive à activer -DevOps security: GitHub/ADO/GitLab, scan code/secrets/deps/IaC/images, dispo Foundational ET Defender CSPM
ALERTES & WORKFLOW AUTOMATION -Alerte = détection plan Defender (MITRE ATT&CK). Incident = agrégation d'alertes ressource kill-chain -Workflow automation: Logic Apps (consumption) sur 3 triggers (alerte/recommandation/compliance assessment) -🚨 Trigger legacy "When a response...triggered" NE MARCHE PLUS. Continuous export (vers LAW/Event Hub) ≠ workflow automation (vers Logic App SOAR) -Permissions: Logic App Contributor (créer) / Operator (exécuter) / Security Admin ou Owner (config workflow)
SENTINEL & MONITORING — DCR & AMA
-AMA remplace Log Analytics agent (déprécié), piloté par DCR (sources/filtre/destination LAW, N-N), port 443 sortant
-transformKql (filtre avant ingestion, réduit coût) / XPath (events Windows par EventID)
-🚨 Log "Security" dans DCR générique > table Event PAS SecurityEvent. Pour Sentinel = connecteur Windows Security Events via AMA (All/Common/Minimal)
-🚨 AMA + legacy agent même data = double ingestion/coût. Diagnostic settings ≠ DCR (logs plateforme: Activity log, ressources)
SENTINEL — FONDATIONS & CONNECTEURS -Sentinel SUR un LAW (pas de stockage propre): RBAC/rétention/coût = ceux du LAW. Content Hub = solutions (connecteurs+règles+workbooks+playbooks) -🚨 Connecteur Syslog/CEF apparaît qu'après installation solution Content Hub -Rôles Sentinel: Reader (lecture seule, PAS trier incidents) / Responder (+gérer incidents: assign/severity/status) / Contributor (+créer règles/workbooks) / Playbook Operator (run playbooks) / Automation Contributor (laisse automation rules exécuter playbooks, =service) -🚨 Trier incidents = Responder PAS Reader. Run playbook depuis incident = Playbook Operator + Logic App Contributor sur RG playbook. Rôles Sentinel ≠ accès données LAW si resource-context RBAC -Connecteurs: Azure Activity / Entra ID (P1/P2) / Defender XDR / Defender for Cloud (sub ou tenant, sync bidirectionnelle) / Syslog-CEF via AMA / AWS-GCP / CCP (sans code) / custom -🚨 Même facility Syslog ET CEF = duplication CommonSecurityLog/Syslog
ANALYTICS RULES — ALERTE VERS INCIDENT
-Scheduled (KQL intervalle, le + courant) / NRT (sous-ensemble ~1×/min) / Microsoft incident creation (alertes autres produits MS) / Fusion (ML multi-stage kill-chain, défaut, non personnalisable, 1 instance, high-fidelity) / Anomaly (ML baseline, table Anomalies, PAS d'alertes) / Threat Intelligence / ML Behavior Analytics
-🚨 Alerte ≠ incident: seules Scheduled+NRT créent incident auto. Autres produits > Microsoft incident creation rules
-🚨 Fusion + Microsoft security rules DISPARAISSENT si Defender XDR integration activée / workspace onboardé Defender portal (XDR crée les incidents, préexistantes auto-désactivées)
AUTOMATION — SOAR -Automation rules (orchestration handling: tag/assign/close/ordre/fenêtres, no-code) + Playbooks (Logic Apps, enrichissement/block user Entra/isolate MDE/Teams) -Triggers: incident (le + courant) / alert (alertes sans incident, OBLIGATOIRE si workspace onboardé Defender portal) -🚨 Playbooks = Logic Apps = facturation additionnelle. Reco MS: automation rule à la création incident > playbook (pas playbook par règle)
INVESTIGATION & HUNTING
-Incidents (entités: user/host/IP/ressource, graphe) / Hunting (KQL proactif AVANT alerte, MITRE) / UEBA (baselines comportementales, SANS surcoût, sources Entra+Defender for Identity+O365 + solution UEBA Essentials) / Watchlists (_GetWatchlist('alias'), réduit alert fatigue) / Threat Intelligence / Workbooks / Notebooks
SENTINEL VS DEFENDER FOR CLOUD -Defender for Cloud = CSPM+CWPP, POSTURE + protection ressources, SOURCE d'alertes / Sentinel = SIEM+SOAR, corrélation cross-source + investigation + orchestration, CONSOMMATEUR -🚨 Sentinel GA dans Defender portal (sans E5). Après 31 mars 2027 plus dans portail Azure > désactiver Microsoft incident creation rules + basculer automation sur alert trigger
═══════════════════════════════════════════════════
FRAGILE (À RELIRE 5 MIN AVANT L'EXAM)
═══════════════════════════════════════════════════
-Azure custom role = RBAC gratuit Microsoft.Compute/... (Owner/UAA) / Entra custom role = P1 microsoft.directory/... (Privileged Role Administrator) — NE PAS confondre
-Contributor PEUT s'auto-octroyer secrets KV via access policy legacy > RBAC mode. RBAC Admin < UAA (UAA s'auto-Owner)
-PIM Active: MFA À L'ACTIVATION IMPOSSIBLE. PIM settings PAS hérités sub>RG
-Security Defaults ⇄ CA mutuellement exclusifs (1 policy CA même Off bloque SD)
-CA: auth strength incompatible EAM ; SP/MI pas couverts par CA users (> CA workload identities) ; exclure break-glass de CHAQUE policy
-"Supprimer app" Enterprise apps = supprimer SP pas app object. MI = SP sans app object
-Delegated ≤ droits user (user/admin consent) / Application = tenant-wide ADMIN only .default. Files.Read.All Application = TOUT le tenant
-Consent phishing: MFA/reset password n'aident pas. DISABLE app (pas supprimer > re-consent)
-FIC subject mal config > échec SANS erreur. Max 20 FIC. Application.ReadWrite.All = backdoor FIC
-SAMI orphelins RBAC si recréée > UAMI. MI déplacement subscription = recréer
-AVNM security admin rules AVANT NSG, owner NSG ne peut override. Always Allow = NSG ne bloque plus / Deny = aucun NSG ré-autorise. NON appliqué SQL MI/Databricks sauf AllowRulesOnly (jamais Deny)
-Service Endpoint = IP publique tout le service / Private Endpoint = IP privée 1 instance. PE jamais soumis firewall/NSP
-PE: résolution publique du CNAME reste (by design) ≠ accès. 1 zone privatelink = 1 type service
-Private Link Service = Standard LB OBLIGATOIRE (pas Basic), backend par NIC pas par IP
-Access Restrictions ne filtre PAS le trafic par PE. Service tag AppService = inbound multitenant seul
-Entra P2S = OpenVPN(SSL) UNIQUEMENT (pas IKEv2). MACsec = ER Direct only, mismatch = coupure totale (pas fallback)
-ER private peering NON chiffré ("privé"≠"chiffré"). Peering ≠ chiffrement auto
-IDPS/Threat Intel "Alert seul" ne bloque PAS > Alert and deny. URL filtering exige TLS inspection
-FD WAF = 128 Ko body only / AGW WAF_v2 = 2 Mo. Rulesets distincts (949xxx vs 9xxxxx). DRS 2.1 = FD Premium only. Score ≥5 bloqué (1 Critical)
-DDoS: <15 IP > IP Protection / ≥15 ou DRR > Network Protection. Front Door DDoS intégré
-Bastion: AzureBastionSubnet ≥/26, session recording = Premium only, private-only/Developer à la création. JIT ≠ Bastion, JIT exige Defender for Servers
-AKS public>private IMPOSSIBLE (recréer). disable-local-accounts (backdoor). Workload Identity remplace AAD Pod Identity
-Encryption at Host recommandé (Defender Healthy), SSE seul = Unhealthy. ADE déprécié 15 sept 2028. CMK = Disk Encryption Set
-ACR: PE/Content Trust/geo-rep = Premium only. admin user OFF défaut
-Storage: Owner/Contributor ARM = listkeys > account key > lit tout (control ≠ data). AllowSharedKeyAccess null = true. CA storage exige Shared Key off
-WORM Locked = SEC 17a-4(f), étendre OK jamais réduire. Soft delete AVANT immutabilité. Versioning requis version-level WORM
-Infrastructure encryption storage = À LA CRÉATION seulement. CMK prérequis = soft delete + purge protection
-Azure Files: 2 couches share-level RBAC + NTFS ACL. Entra Kerberos = pas connectivité DC. AES-256 (pas 128)
-DDM = cosmétique en clair, protège PAS admin, n'empêche pas UPDATE / TDE = at-rest fichiers, protège PAS admin DB, master pas chiffrable / Always Encrypted = côté client, moteur ne voit jamais, PROTÈGE admin DB. AE ne remplace pas TDE
-AE Deterministic (joins/leak) / Randomized (aucune query) / Secure Enclaves (LIKE/ORDER + attestation). TDE CMK = base Inaccessible si clé révoquée
-Audit DB: server-level recommandé, +database = double. Diagnostic Setting supprimée = audit échoue silencieusement
-Azure Policy ordre: Deny AVANT audit. audit≠AINE. DINE: MI déploie, appelant évalue existence. Policy MG s'évalue sur sub/RG dessous pas le MG
-KV: API 2026-02-01+ RBAC = DÉFAUT nouveaux vaults. API control plane <2026-02-01 retirées 27 fév 2027. Propagation RBAC ~10min
-KV access policies: Contributor s'auto-octroie, pas PIM. RBAC recommandé. Soft-delete non désactivable, purge protection = personne ne purge
-Premium = Managed HSM = MÊME FIPS 140-3 L3. Différence = tenancy (multi vs single) + root of trust/security domain client. MHSM RBAC local enforcé par HSM (management ≠ clés)
-MUA: owner vault ≠ owner Resource Guard. Soft-delete RSV 14j ≠ KV 7-90j. Locks = plan gestion only (pas data-plane secrets)
-CSPM (posture/secure score gratuit) vs CWPP (threat/alertes payant). 2 secure scores (classique vs risk-based). Security Reader insuffisant compliance
-Compliance réglementaire exige plan Defender PAYANT (Servers P1/API P1 N'OUVRENT PAS). Custom rec KQL = Defender CSPM
-Agentless exige Subscription OWNER. Attack path vide = by design. EASM = ressource distincte, pas cross-tenant
-Defender Servers P1 (MDE+vuln core) vs P2 (+JIT+FIM+agentless+OS config). 🚨 FIM PAS auto même P2. Facturé par heure
-Defender Cosmos = API NoSQL UNIQUEMENT. Defender Storage classic = ancien pricing
-Workflow automation (Logic App SOAR) ≠ continuous export (LAW/Event Hub). Trigger legacy ne marche plus
-DCR log "Security" > table Event PAS SecurityEvent (utiliser connecteur Windows Security Events via AMA)
-Sentinel SUR un LAW (RBAC/rétention/coût du LAW). Connecteur apparaît après solution Content Hub
-Analytics: seules Scheduled+NRT créent incident auto. Fusion = ML multi-stage, non personnalisable, 1 instance, défaut. Anomaly écrit table Anomalies PAS d'alertes
-🚨 Fusion + Microsoft security rules DISPARAISSENT si Defender XDR / Defender portal onboardé
-Reco MS: automation rule à la création incident > playbook (pas playbook par règle). Onboardé Defender portal > alert trigger
-Defender for Cloud = SOURCE alertes (CSPM+CWPP posture) / Sentinel = CONSOMMATEUR (SIEM+SOAR corrélation). Après 31 mars 2027 Sentinel plus dans portail Azure
-Alerte = détection (MITRE) / Incident = agrégation kill-chain
-DATES: AZ-500 retiré 31 août 2026 · NSG flow logs retirés 30 sept 2027 · ADE retraite 15 sept 2028 · KV API <2026-02-01 retirées 27 fév 2027 · Sentinel portail Azure fin 31 mars 2027 · classic admins retraite mai 2026 · P2S manual registered retirés 31 mars 2028 · Front Door classic 31 mars 2027 · Azure CDN classic 30 sept 2027