
Estensione dell'interfaccia della riga di comando di Azure per la raccolta Cirro
Un'estensione dell'Azure CLI che raccoglie passivamente i dati delle risorse Azure in un database SQLite compatibile con lo schema di Cirro (https://github.com/bishopfox/cirro). Registra inoltre tutte le invocazioni CLI in un file JSON-lines.
Si aggancia agli eventi di knack:
EVENT_INVOKER_POST_PARSE_ARGS — registra gli argomenti dei comandiEVENT_INVOKER_FILTER_RESULT — scrive i dati delle risorse in SQLiteaz extension add --source dist/cirro_azcli_ext-*.whl
az config set core.use_command_index=false
Azure CLI carica le estensioni in modalità lazy tramite l'indice dei comandi. Disabilitarlo garantisce che questa estensione venga caricata per tutti i comandi, così da poter osservare ogni invocazione.
Quando un qualsiasi comando az restituisce dati da un endpoint Azure remoto (ARM, Graph,
Key Vault, ecc.), l'estensione classifica ogni elemento del risultato e lo scrive nella
tabella SQLite appropriata:
| Segnale di classificazione | Esempio | Tabella di destinazione |
|---|---|---|
@odata.type sull'elemento | #microsoft.graph.user | users |
| Pattern dell'ID risorsa ARM | /subscriptions/x/providers/… | resources |
| Prefisso del comando CLI | ad user list | users |
I comandi solo locali (version, extension, config, ecc.) vengono ignorati.
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
| Chiave di configurazione | Predefinito | Descrizione |
|---|---|---|
cirro.log_path | ~/.azure/cli_args.log | Percorso del file di log degli argomenti |
cirro.db_path | ~/.azure/cirro_collect.db | Percorso del database SQLite |
az config set cirro.db_path=/var/data/cirro_collect.db
az cirro status # mostra statistiche dei log e conteggi di righe per tabella
az cirro status --tail 5 # mostra le ultime 5 voci del log degli argomenti