Aperçu
La gestion des ressources inutilisées ou orphelines dans Azure peut avoir un impact significatif sur les dépenses cloud et l’efficacité opérationnelle. L’outil Azure Resource Cleanup est un script PowerShell complet conçu pour aider les administrateurs cloud à identifier et à supprimer les ressources Azure inutilisées ou orphelines, garantissant l’optimisation des coûts et une meilleure gestion des ressources.
Ce script fonctionne par défaut en mode rapport sûr et non destructif, permettant aux administrateurs de passer en revue les ressources orphelines avant de lancer les opérations de nettoyage.
Vous pouvez accéder au projet sur GitHub : AzureOpsScripts – Resource Cleanup.
Table des matières
Fonctionnalités clés
Le script Azure Resource Cleanup offre les fonctionnalités suivantes :
- Cartes réseau orphelines : identifie les interfaces réseau non attachées à une machine virtuelle ou à un point de terminaison.
- Anciens instantanés de disque Azure : détecte les instantanés dépassant votre période de conservation.
- Instantanés d’objets blob de compte de stockage : signale les instantanés d’objets blob plus anciens que la période de conservation définie.
- Instantanés de partages de fichiers : identifie les instantanés de partages de fichiers au-delà des limites de conservation.
- Disques managés orphelins : trouve les disques non attachés à une machine virtuelle.
- Adresses IP publiques orphelines : localise les adresses IP publiques inutilisées.
- Groupes de sécurité réseau inutilisés : identifie les NSG non associés à des ressources.
- Groupes à haute disponibilité inutilisés : détecte les groupes à haute disponibilité qui ne sont plus utilisés.
- Groupes de ressources vides : signale les groupes de ressources sans ressources actives.
- Réseaux virtuels inutilisés : met en évidence les réseaux virtuels potentiellement inutilisés (mise en évidence seulement, le script ne les supprimera pas).
- Adresses IP réservées mais inutilisées : identifie les adresses IP réservées mais non attribuées activement.
Prérequis
Pour utiliser le script Azure Resource Cleanup, assurez-vous que les prérequis suivants sont remplis :
- Version de PowerShell : 5.1 ou ultérieure
- Module Az PowerShell : installez-le avec la commande :
Install-Module -Name Az - Autorisations du compte Azure : assurez-vous de disposer des autorisations appropriées pour afficher et supprimer des ressources.
Utilisation
Mode rapport
Exécutez le script en mode rapport pour générer un rapport détaillé des ressources orphelines :
.\Azure-Resource-Cleanup.ps1

Mode nettoyage
Pour supprimer les ressources identifiées, utilisez le mode nettoyage :
.\Azure-Resource-Cleanup.ps1 -DeleteResources
Personnaliser la conservation des instantanés
Spécifiez le nombre de jours de conservation des instantanés pour identifier les instantanés plus anciens à nettoyer :
.\Azure-Resource-Cleanup.ps1 -SnapshotRetentionDays 7 -DeleteResources

Exclure les vérifications d’instantanés de stockage
Ignorez les vérifications d’instantanés d’objets blob et de partages de fichiers des comptes de stockage pour les grands environnements :
.\Azure-Resource-Cleanup.ps1 -IncludeStorageSnapshots:$false
Remarques importantes
Exécuter sur des réseaux virtuels autorisés
Assurez-vous que le script est exécuté dans un réseau virtuel autorisé. En raison de restrictions réseau, certains comptes de stockage peuvent interdire l’accès aux conteneurs ou aux instantanés de fichiers. Si le compte de stockage ne prend pas en charge les opérations de suppression, vous risquez de rencontrer des erreurs en tentant de nettoyer ces ressources.
Tester dans des environnements de développement/test
Il est fortement recommandé de tester le script dans des environnements de développement ou de test avant de l’utiliser en production. Cela vous permet de passer en revue le comportement du script, d’identifier les problèmes potentiels et de vérifier les ressources signalées pour le nettoyage.
Utiliser le mode rapport seul
Pour les environnements de production, commencez toujours par exécuter le script en mode rapport seul (sans le paramètre -DeleteResources). Cela fournit un rapport détaillé des ressources orphelines, vous permettant de passer en revue et de valider les éléments signalés avant de lancer les opérations de nettoyage.
Paramètres
Le script prend en charge plusieurs paramètres personnalisables :
| Paramètre | Type | Par défaut | Description |
|---|---|---|---|
SnapshotRetentionDays | Integer | 3 | Période de conservation des instantanés (en jours). Les instantanés plus anciens seront signalés pour le nettoyage. |
DeleteResources | Switch | $false | Active la suppression des ressources identifiées. Par défaut, le script ne fait que des rapports. |
IncludeStorageSnapshots | Switch | $true | Inclut les vérifications d’instantanés d’objets blob et de partages de fichiers. Définissez-le sur $false pour exclure ces vérifications. |
Sortie du rapport
Le script génère des rapports détaillés dans un dossier horodaté, notamment :
orphaned_nics.csvold_managed_snapshots.csvold_blob_snapshots.csvold_fileshare_snapshots.csvorphaned_disks.csvorphaned_public_ips.csvorphaned_nsgs.csvunused_availability_sets.csvempty_resource_groups.csvunused_vnets.csvsubnet_ip_usage.csvcleanup_log.txt(journal complet des actions effectuées)
Bonnes pratiques
- Commencez par le mode rapport : exécutez toujours le script sans le paramètre
-DeleteResourcespour passer en revue les ressources signalées. - Passez en revue les rapports : analysez attentivement les fichiers CSV générés avant de lancer les opérations de nettoyage.
- Définissez les périodes de conservation : personnalisez les périodes de conservation des instantanés en fonction des stratégies de l’organisation.
- Testez dans des environnements hors production : exécutez le script dans des environnements de développement/test pour valider son comportement avant de l’utiliser en production.
- Exécutez sur des réseaux virtuels autorisés : assurez-vous que le script est exécuté dans des réseaux virtuels autorisés pour éviter les erreurs liées au réseau lors du nettoyage des comptes de stockage.
Exemple de flux de travail
Suivez ce flux de travail pour nettoyer les ressources Azure en toute sécurité :
- Exécutez le script en mode rapport :
.\Azure-Resource-Cleanup.ps1 - Passez en revue les rapports générés pour voir les ressources signalées.
- Passez en toute confiance au mode nettoyage :
.\Azure-Resource-Cleanup.ps1 -DeleteResources