Azure PowerShell-Skript zum Löschen ungenutzter oder verwaister Azure-Ressourcen

Übersicht

Die Verwaltung ungenutzter oder verwaister Ressourcen in Azure kann sich erheblich auf die Cloud-Ausgaben und die betriebliche Effizienz auswirken. Das Azure Resource Cleanup-Tool ist ein umfassendes PowerShell-Skript, das Cloud-Administratoren hilft, ungenutzte oder verwaiste Azure-Ressourcen zu identifizieren und zu löschen, um Kosten zu optimieren und das Ressourcenmanagement zu verbessern.

Dieses Skript arbeitet standardmäßig in einem sicheren, nicht-destruktiven Berichtsmodus, sodass Administratoren verwaiste Ressourcen prüfen können, bevor sie Bereinigungsvorgänge starten.

Sie können auf das Projekt auf GitHub zugreifen: AzureOpsScripts – Resource Cleanup.



Wichtige Funktionen

Das Azure Resource Cleanup-Skript bietet die folgenden Funktionen:

  • Verwaiste NICs: Identifiziert Netzwerkschnittstellen, die an keine VM oder keinen Endpunkt angehängt sind.
  • Alte Azure-Datenträger-Snapshots: Erkennt Snapshots, die Ihre Aufbewahrungsfrist überschreiten.
  • Speicherkonto-Blob-Snapshots: Markiert Blob-Snapshots, die älter als die festgelegte Aufbewahrungsfrist sind.
  • Dateifreigabe-Snapshots: Identifiziert Dateifreigabe-Snapshots, die die Aufbewahrungsgrenzen überschreiten.
  • Verwaiste verwaltete Datenträger: Findet Datenträger, die an keine VM angehängt sind.
  • Verwaiste öffentliche IPs: Findet ungenutzte öffentliche IP-Adressen.
  • Ungenutzte Netzwerksicherheitsgruppen: Identifiziert NSGs, die mit keinen Ressourcen verknüpft sind.
  • Ungenutzte Verfügbarkeitsgruppen: Erkennt Verfügbarkeitsgruppen, die nicht mehr verwendet werden.
  • Leere Ressourcengruppen: Markiert Ressourcengruppen ohne aktive Ressourcen.
  • Ungenutzte virtuelle Netzwerke: Hebt potenziell ungenutzte virtuelle Netzwerke hervor (nur Hervorhebung, das Skript löscht sie nicht).
  • Reservierte, aber ungenutzte IP-Adressen: Identifiziert IP-Adressen, die reserviert, aber nicht aktiv zugewiesen sind.

Anforderungen

Um das Azure Resource Cleanup-Skript zu verwenden, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:

  • PowerShell-Version: 5.1 oder höher
  • Az PowerShell-Modul: Mit dem folgenden Befehl installieren:Install-Module -Name Az
  • Berechtigungen des Azure-Kontos: Stellen Sie angemessene Berechtigungen zum Anzeigen und Löschen von Ressourcen sicher.

Verwendung

Berichtsmodus

Führen Sie das Skript im Berichtsmodus aus, um einen detaillierten Bericht über verwaiste Ressourcen zu erstellen:

.\Azure-Resource-Cleanup.ps1  

Löschen ungenutzter oder verwaister Azure-Ressourcen

Bereinigungsmodus

Um identifizierte Ressourcen zu löschen, verwenden Sie den Bereinigungsmodus:

.\Azure-Resource-Cleanup.ps1 -DeleteResources  

Snapshot-Aufbewahrung anpassen

Geben Sie die Aufbewahrungstage für Snapshots an, um ältere Snapshots für die Bereinigung zu identifizieren:

.\Azure-Resource-Cleanup.ps1 -SnapshotRetentionDays 7 -DeleteResources  

Löschen ungenutzter oder verwaister Azure-Ressourcen

Speicher-Snapshot-Prüfungen ausschließen

Überspringen Sie die Prüfungen von Blob- und Dateifreigabe-Snapshots von Speicherkonten für große Umgebungen:

.\Azure-Resource-Cleanup.ps1 -IncludeStorageSnapshots:$false  


Wichtige Hinweise

Auf zugelassenen virtuellen Netzwerken ausführen

Stellen Sie sicher, dass das Skript in einem zugelassenen virtuellen Netzwerk ausgeführt wird. Aufgrund von Netzwerkeinschränkungen verbieten einige Speicherkonten möglicherweise den Zugriff auf Container oder Dateisnapshots. Wenn das Speicherkonto keine Löschvorgänge unterstützt, können beim Versuch, diese Ressourcen zu bereinigen, Fehler auftreten.

In Dev-/Testumgebungen testen

Es wird dringend empfohlen, das Skript in Entwicklungs- oder Testumgebungen zu testen, bevor Sie es in der Produktion verwenden. So können Sie das Verhalten des Skripts prüfen, potenzielle Probleme identifizieren und die für die Bereinigung markierten Ressourcen verifizieren.

Nur-Berichtsmodus verwenden

Beginnen Sie in Produktionsumgebungen immer damit, das Skript im Nur-Berichtsmodus (ohne den -DeleteResources-Parameter) auszuführen. Dies liefert einen detaillierten Bericht über verwaiste Ressourcen, sodass Sie die markierten Elemente prüfen und validieren können, bevor Sie Bereinigungsvorgänge starten.


Parameter

Das Skript unterstützt mehrere anpassbare Parameter:

ParameterTypStandardBeschreibung
SnapshotRetentionDaysInteger3Aufbewahrungsfrist für Snapshots (in Tagen). Snapshots, die älter sind, werden für die Bereinigung markiert.
DeleteResourcesSwitch$falseAktiviert das Löschen identifizierter Ressourcen. Standardmäßig erstellt das Skript nur Berichte.
IncludeStorageSnapshotsSwitch$trueUmfasst Prüfungen von Blob- und Dateifreigabe-Snapshots. Auf $false setzen, um diese Prüfungen auszuschließen.

Berichtsausgabe

Das Skript erstellt detaillierte Berichte in einem Ordner mit Zeitstempel, darunter:

  • orphaned_nics.csv
  • old_managed_snapshots.csv
  • old_blob_snapshots.csv
  • old_fileshare_snapshots.csv
  • orphaned_disks.csv
  • orphaned_public_ips.csv
  • orphaned_nsgs.csv
  • unused_availability_sets.csv
  • empty_resource_groups.csv
  • unused_vnets.csv
  • subnet_ip_usage.csv
  • cleanup_log.txt (umfassendes Protokoll der durchgeführten Aktionen)Excel-Ausgabedatei und Protokollierung

Bewährte Verfahren

  1. Beginnen Sie mit dem Berichtsmodus: Führen Sie das Skript immer ohne den -DeleteResources-Parameter aus, um markierte Ressourcen zu prüfen.
  2. Berichte prüfen: Analysieren Sie die erstellten CSV-Dateien sorgfältig, bevor Sie Bereinigungsvorgänge starten.
  3. Aufbewahrungsfristen festlegen: Passen Sie die Aufbewahrungsfristen für Snapshots an die Unternehmensrichtlinien an.
  4. In Nicht-Produktionsumgebungen testen: Führen Sie das Skript in Dev-/Testumgebungen aus, um sein Verhalten zu validieren, bevor Sie es in der Produktion verwenden.
  5. Auf zugelassenen virtuellen Netzwerken ausführen: Stellen Sie sicher, dass das Skript in zugelassenen vNets ausgeführt wird, um netzwerkbezogene Fehler bei der Bereinigung von Speicherkonten zu vermeiden.

Beispiel-Workflow

Befolgen Sie diesen Workflow, um Azure-Ressourcen sicher zu bereinigen:

  1. Führen Sie das Skript im Berichtsmodus aus:.\Azure-Resource-Cleanup.ps1
  2. Prüfen Sie die erstellten Berichte auf markierte Ressourcen.
  3. Fahren Sie sicher mit dem Bereinigungsmodus fort:.\Azure-Resource-Cleanup.ps1 -DeleteResources

Quellenangaben

Kommentar hinterlassen