
Azure CLI extension for Cirro collection
Eine Azure-CLI-Erweiterung, die passiv Azure-Ressourcendaten in eine SQLite-Datenbank sammelt, die mit dem Cirro-Schema (https://github.com/bishopfox/cirro) kompatibel ist. Außerdem protokolliert sie alle CLI-Aufrufe in einer JSON-Lines-Datei.
Bindet sich in knack events ein:
EVENT_INVOKER_POST_PARSE_ARGS — protokolliert BefehlsargumenteEVENT_INVOKER_FILTER_RESULT — schreibt Ressourcendaten in SQLiteaz extension add --source dist/cirro_azcli_ext-*.whl
az config set core.use_command_index=false
Die Azure CLI lädt Erweiterungen über den Befehlsindex lazy. Durch das Deaktivieren wird sichergestellt, dass diese Erweiterung für alle Befehle geladen wird, sodass sie jede Ausführung beobachten kann.
Wenn ein beliebiger az-Befehl Daten von einem entfernten Azure-Endpunkt (ARM, Graph, Key Vault usw.) zurückgibt, klassifiziert die Erweiterung jedes Ergebniselement und schreibt es in die entsprechende SQLite-Tabelle:
Rein lokale Befehle (version, extension, config usw.) werden übersprungen.
CREATE TABLE resources (
id TEXT PRIMARY KEY, sub_id TEXT, rg_id TEXT, resource_type TEXT, data TEXT
);
CREATE TABLE keyVaultItems (
id TEXT PRIMARY KEY, item_type TEXT, data TEXT
);
id TEXT PRIMARY KEY, data TEXT)applications · administrativeUnits · conditionalAccessPolicies · devices · directoryRoles · eligibleArmRBAC · eligibleRoleAssignments · groups · managementGroupEntities · namedLocations · organization · oauth2PermissionGrants · policies · roleAssignments · servicePrincipals · subscriptions · tenants · users
| Konfigurationsschlüssel | Standard | Beschreibung |
|---|---|---|
cirro.log_path | ~/.azure/cli_args.log | Pfad zur Argumentprotokolldatei |
cirro.db_path | ~/.azure/cirro_collect.db | Pfad zur SQLite-Datenbank |
az config set cirro.db_path=/var/data/cirro_collect.db
az cirro status # show log stats and per-table row counts
az cirro status --tail 5 # show last 5 argument log entries
| Klassifizierungssignal | Beispiel | Zieltabelle |
|---|
@odata.type am Element | #microsoft.graph.user | users |
| ARM-Ressourcen-ID-Muster | /subscriptions/x/providers/… | resources |
| CLI-Befehlspräfix | ad user list | users |