Abonnementübergreifende Suche benötigt? Azure Resource Graph verwenden

Veröffentlicht am:

CloudTrips benötigt eine Inventarabfrage, die Ressourcen über mehrere Abonnements hinweg durchsucht, ohne jedes Abonnement einzeln zu öffnen. Verwende Azure Resource Graph Explorer, um Ressourcen in großem Umfang zu finden und zusammenzufassen.

Dieser Trip verwendet:

Tool: Azure Resource Graph Explorer
Scope: Current directory
Language: Kusto Query Language (KQL)
Search target: All accessible Azure resources

Resource-Graph-Bereich verstehen

Azure Resource Graph fragt Ressourcenmetadaten aus Azure Resource Manager ab. Der Dienst ist für schnelle Inventar- und Governance-Suchen über mehrere Abonnements hinweg ausgelegt.

Ergebnisse werden anhand der Berechtigungen eingeschränkt. Eine Ressource erscheint nur, wenn du mindestens Lesezugriff darauf besitzt. Die Auswahl des aktuellen Verzeichnisses umgeht Azure RBAC nicht. Falls du nur auf Azure subscription 1 zugreifen kannst, gibt die Abfrage korrekterweise nur dieses Abonnement zurück.

Resource Graph ersetzt keine Anwendungslogs, Azure-Monitor-Metriken oder Cost-Management-Daten. Der Dienst durchsucht Ressourcenkonfigurationen und Inventareigenschaften.

Resource Graph Explorer öffnen

Suche im Azure-Portal nach und öffne:

Resource Graph Explorer

Wähle in der Symbolleiste Directory. Wähle das aktuelle Verzeichnis und alle Abonnements, die du abfragen darfst. Wende den Bereich an.

Azure Resource Graph Explorer mit ausgewähltem aktuellem Verzeichnis und zugänglichen Abonnements

Falls ein neu gewährtes Abonnement fehlt, aktualisiere die Portalsitzung oder melde dich ab und wieder an, damit Resource Graph die für deine Identität verfügbaren Abonnements aktualisiert.

Ressourcen mit Abonnementnamen auflisten

Füge diese Abfrage in den Editor ein:

resources
| join kind=leftouter (
    resourcecontainers
    | where type =~ 'microsoft.resources/subscriptions'
    | project subscriptionId, subscriptionName = name
  ) on subscriptionId
| project subscriptionName, subscriptionId, resourceGroup, name, type, location
| order by subscriptionName asc, type asc, name asc

Wähle Run query.

Die Tabelle resources enthält Azure-Ressourcen. Die Abfrage verknüpft sie mit den Abonnementdatensätzen aus resourcecontainers, damit die Ausgabe einen lesbaren Abonnementnamen und nicht nur eine ID enthält.

Resource-Graph-Ergebnisse mit Ressourcen, Abonnementnamen und Ressourcengruppen

Öffne die Registerkarte Results und prüfe die zurückgegebenen Ressourcen. Falls eine erwartete Ressource fehlt, prüfe den ausgewählten Bereich, deine Leseberechtigung und ob der Ressourcentyp von Resource Graph dargestellt wird.

Speicherkonten abonnementsübergreifend finden

Ersetze die Abfrage durch:

resources
| where type =~ 'microsoft.storage/storageaccounts'
| extend department = tostring(tags['Department'])
| join kind=leftouter (
    resourcecontainers
    | where type =~ 'microsoft.resources/subscriptions'
    | project subscriptionId, subscriptionName = name
  ) on subscriptionId
| project subscriptionName, resourceGroup, name, location, department
| order by subscriptionName asc, resourceGroup asc, name asc

Wähle Run query. Bestätige, dass stcloudtripsdev01 erscheint, wenn es in einem eingeschlossenen Abonnement vorhanden ist und du Leseberechtigung besitzt.

Abonnementübergreifende Resource-Graph-Abfrage mit CloudTrips-Speicherkonten und Department-Tags

Der Operator =~ berücksichtigt die Groß- und Kleinschreibung des Ressourcentyps nicht. Die Konvertierung mit tostring() macht den Tag Department für eine Ergebnisspalte geeignet. Ein leerer Wert bedeutet, dass die an Resource Graph zurückgegebenen Ressourcenmetadaten keinen solchen Tag enthalten.

Ressourcen nach Abonnement zählen

Führe diese Zusammenfassungsabfrage aus:

resources
| summarize resourceCount = count() by subscriptionId
| join kind=leftouter (
    resourcecontainers
    | where type =~ 'microsoft.resources/subscriptions'
    | project subscriptionId, subscriptionName = name
  ) on subscriptionId
| project subscriptionName, subscriptionId, resourceCount
| order by resourceCount desc

Das Ergebnis enthält eine Zeile pro zugänglichem Abonnement. Falls sich mehrere Abonnements im Bereich befinden, vergleiche die Anzahlen, um die Ressourcenkonzentration zu erkennen.

Resource-Graph-Zusammenfassung mit Ressourcenanzahl pro zugänglichem Abonnement

Abfrage speichern oder exportieren

Wähle Save und verwende:

Query name: CloudTrips cross-subscription inventory
Query type: Private query

Verwende Download as CSV, wenn das Inventar außerhalb des Portals geprüft werden soll. Der CSV-Export im Portal ist auf 55.000 Ergebnisse begrenzt. Große Umgebungen sollten deshalb Resource-Graph-APIs oder eine Seitennavigation über die Befehlszeile verwenden.

Behandle eine gespeicherte Abfrage nicht als statisches Inventar. Resource Graph führt sie bei jeder Ausführung gegen den aktuellen Ressourcenstatus aus.

CloudTrips kann nun jede für die angemeldete Identität sichtbare Azure-Ressource in den ausgewählten Abonnements suchen und zusammenfassen.