Sécurité et bonnes pratiques
Microsoft Defender for Cloud
Microsoft Defender for Cloud est le centre de sécurité unifié d'Azure. Il analyse en continu tes ressources, détecte les mauvaises configurations et te donne des recommandations prioritaires pour renforcer ta posture de sécurité.
Score de sécurité
Le Secure Score (score de sécurité) est un indicateur global exprimé en pourcentage. Plus il est élevé, meilleure est ta posture. Chaque recommandation appliquée augmente ce score. L'objectif : atteindre et maintenir un score supérieur à 70 %.
- Accessible depuis Defender for Cloud → Vue d'ensemble
- Le score est calculé par abonnement et peut être agrégé sur plusieurs abonnements
- Chaque contrôle de sécurité a un poids différent selon son impact
Recommandations
Defender for Cloud génère des recommandations classées par sévérité (Haute, Moyenne, Faible). Exemples courants :
- Activer MFA pour les comptes d'administration
- Restreindre l'accès SSH et RDP depuis Internet
- Chiffrer les disques des machines virtuelles
- Activer les journaux de diagnostic sur les ressources clés
Alertes de sécurité
Le plan Defender (payant, par ressource) active la détection des menaces en temps réel : connexions suspectes, tentatives de brute force, exécution de malware, mouvement latéral. Chaque alerte indique la ressource ciblée, la technique d'attaque (MITRE ATT&CK) et les actions recommandées.
# Lister les plans Defender activés sur l'abonnement
az security pricing list --output table
# Voir le secure score
az security secure-score list --output table
# Lister les recommandations actives
az security assessment list --output table
Azure Key Vault
Azure Key Vault est un service managé pour stocker et accéder de façon sécurisée aux secrets (mots de passe, chaînes de connexion), aux clés de chiffrement et aux certificats TLS. Ne stocke jamais ces éléments en clair dans ton code ou tes variables d'environnement en production.
Les trois types d'objets stockés
- Secrets : chaînes de caractères sensibles (mots de passe, API keys, connection strings)
- Clés : clés cryptographiques RSA ou EC utilisées pour chiffrer/signer des données
- Certificats : certificats X.509 avec gestion du renouvellement automatique
# Créer un Key Vault
az keyvault create \
--name mon-keyvault \
--resource-group mon-rg \
--location westeurope
# Ajouter un secret
az keyvault secret set \
--vault-name mon-keyvault \
--name "db-password" \
--value "MonMotDePasse123!"
# Lire un secret
az keyvault secret show \
--vault-name mon-keyvault \
--name "db-password" \
--query value \
--output tsv
Accès aux secrets via Managed Identity
La meilleure pratique : utiliser une Managed Identity (identité managée) sur ta ressource Azure (App Service, VM, Function) pour qu'elle puisse lire les secrets sans stocker de credentials dans le code. Azure gère les tokens d'authentification automatiquement.
# Récupérer le principal ID de l'identité managée de l'App Service
az webapp identity assign \
--name mon-app \
--resource-group mon-rg
# Accorder l'accès "get" et "list" sur les secrets du vault
az keyvault set-policy \
--name mon-keyvault \
--object-id <principal-id> \
--secret-permissions get list
Active le soft-delete et la purge protection sur ton Key Vault en production. Ces options empêchent la suppression accidentelle ou malveillante des secrets et garantissent une période de récupération (90 jours par défaut). Elles sont désormais activées par défaut sur les nouveaux Key Vaults.
Azure Policy
Azure Policy permet d'appliquer des règles de gouvernance et de conformité sur l'ensemble de tes ressources Azure. Tu définis des règles ; Azure les vérifie et peut bloquer ou corriger automatiquement les ressources non conformes.
Initiatives et politiques
Une politique définit une seule règle (ex. : "toutes les ressources doivent avoir un tag Environnement"). Une initiative regroupe plusieurs politiques en un ensemble cohérent (ex. : "Conformité PCI-DSS" ou "Conformité ISO 27001"). Azure propose des centaines de définitions intégrées.
Effets des politiques
- Deny : bloque la création ou la modification d'une ressource non conforme
- Audit : signale la non-conformité sans bloquer (pour commencer en douceur)
- DeployIfNotExists : déploie automatiquement une ressource complémentaire si absente (ex. : activer les logs sur un Key Vault créé sans logs)
- Modify : ajoute ou modifie des propriétés sur les ressources existantes
# Lister les définitions de politiques intégrées
az policy definition list --query "[?policyType=='BuiltIn'].displayName" --output table
# Attribuer la politique "Require a tag on resources" au groupe de ressources
az policy assignment create \
--name "require-env-tag" \
--display-name "Exiger le tag Environnement" \
--policy "/providers/Microsoft.Authorization/policyDefinitions/<policy-id>" \
--scope "/subscriptions/<sub-id>/resourceGroups/mon-rg" \
--params '{"tagName": {"value": "Environnement"}}'
Azure Monitor
Azure Monitor est la plateforme d'observabilité centrale d'Azure. Elle collecte métriques, logs et traces de toutes tes ressources pour te permettre de détecter les anomalies, diagnostiquer les incidents et créer des alertes.
Métriques
Les métriques sont des valeurs numériques collectées à intervalles réguliers (CPU, mémoire, requêtes/seconde, latence). Elles sont disponibles dans le portail Azure et conservées 93 jours. Tu peux les visualiser dans Metrics Explorer.
Logs et Log Analytics
Les journaux de diagnostic (logs) doivent être explicitement activés sur chaque ressource et envoyés vers un espace de travail Log Analytics. Tu peux ensuite les interroger avec le langage KQL (Kusto Query Language).
// Erreurs HTTP 5xx sur une App Service dans les dernières 24h
AppServiceHTTPLogs
| where ScStatus >= 500
| where TimeGenerated > ago(24h)
| summarize count() by ScStatus, CsUriStem
| order by count_ desc
// Connexions SSH depuis des IPs inconnues
Syslog
| where Facility == "auth"
| where SyslogMessage contains "Failed password"
| summarize Tentatives = count() by HostIP
| order by Tentatives desc
Alertes et tableaux de bord
Les règles d'alerte déclenchent des notifications (email, SMS, webhook, Action Group) quand une condition est remplie : métrique dépasse un seuil, log contient un mot-clé, ressource indisponible. Les tableaux de bord Azure centralisent les métriques importantes en un seul écran.
# Créer une alerte si CPU > 90% pendant 5 minutes
az monitor metrics alert create \
--name "cpu-alert-vm" \
--resource-group mon-rg \
--scopes "/subscriptions/<sub-id>/resourceGroups/mon-rg/providers/Microsoft.Compute/virtualMachines/ma-vm" \
--condition "avg Percentage CPU > 90" \
--window-size 5m \
--evaluation-frequency 1m \
--action <action-group-id>
Gestion des coûts
Le cloud permet de démarrer rapidement, mais les coûts peuvent augmenter vite si on n'y prête pas attention. Azure propose plusieurs outils pour maîtriser les dépenses.
Azure Cost Management
Azure Cost Management + Billing offre une vue détaillée des dépenses par service, groupe de ressources, tags ou abonnement. Il permet d'analyser les coûts historiques et de prévoir les dépenses futures.
- Accessible dans le portail : Cost Management + Billing
- Exporte les données vers un compte de stockage pour une analyse avancée
- Intégrable avec Power BI pour des rapports personnalisés
Budgets et alertes
Crée des budgets avec des seuils d'alerte pour être prévenu avant de dépasser ton enveloppe mensuelle. Les alertes peuvent être envoyées par email ou déclencher une Action Group.
# Créer un budget avec alerte à 80% et 100%
az consumption budget create \
--budget-name "budget-mensuel" \
--amount 100 \
--time-grain Monthly \
--start-date 2025-01-01 \
--end-date 2026-12-31 \
--category Cost \
--notifications '[
{"enabled": true, "operator": "GreaterThan", "threshold": 80, "contactEmails": ["admin@exemple.fr"]},
{"enabled": true, "operator": "GreaterThan", "threshold": 100, "contactEmails": ["admin@exemple.fr"]}
]'
Reserved Instances et économies
Pour les ressources utilisées en permanence (VMs de production, bases de données), les Reserved Instances permettent d'économiser jusqu'à 72 % par rapport au tarif à la demande en s'engageant sur 1 ou 3 ans. Les Azure Hybrid Benefit permettent d'utiliser tes licences Windows Server ou SQL Server existantes sur Azure.
Surveille régulièrement les ressources orphelines : disques non attachés à une VM, adresses IP publiques non utilisées, App Service Plans sans application. Ces ressources génèrent des coûts sans aucune valeur ajoutée. Active les recommandations d'Azure Advisor pour les identifier automatiquement.
Checklist de bonnes pratiques
Avant de mettre en production une architecture Azure, vérifie ces points essentiels :
Identité et accès
- MFA obligatoire pour tous les comptes, en particulier les administrateurs
- RBAC minimal : principe du moindre privilège — attribue uniquement les droits nécessaires
- Pas de comptes de service partagés : utilise des Managed Identities
- Revue régulière des accès : supprime les droits des anciens collaborateurs
Données et chiffrement
- Chiffrement au repos : activé par défaut sur Azure Storage et les disques managés
- Chiffrement en transit : HTTPS partout, TLS 1.2 minimum
- Secrets dans Key Vault, jamais en dur dans le code ou les variables d'environnement
- Sauvegardes régulières testées : active Azure Backup sur les VMs et bases de données
Réseau
- NSG (Network Security Groups) : bloquer tout par défaut, ouvrir uniquement les ports nécessaires
- Pas de SSH/RDP ouvert sur Internet : utilise Azure Bastion ou un VPN
- Private Endpoints pour accéder aux services PaaS sans passer par Internet
Gouvernance et visibilité
- Tags obligatoires : Environnement, Propriétaire, Projet — appliqués via Azure Policy
- Journaux de diagnostic activés sur toutes les ressources critiques
- Alertes configurées sur les métriques clés (CPU, erreurs, disponibilité)
- Budget avec alertes pour éviter les mauvaises surprises en fin de mois
- Defender for Cloud centralise la posture de sécurité et le score de sécurité de tes ressources Azure.
- Key Vault est l'endroit unique pour stocker secrets, clés et certificats — accès via Managed Identity.
- Azure Policy impose des règles de gouvernance : Deny bloque, Audit signale, DeployIfNotExists corrige.
- Azure Monitor + Log Analytics collectent métriques et logs pour détecter les incidents et déclencher des alertes.
- Cost Management : pose des budgets avec alertes et identifie les ressources orphelines avec Azure Advisor.
- Principe d'or : MFA, RBAC minimal, chiffrement partout, sauvegardes testées, tags systématiques.