
Extensão da CLI do Azure para coleção Cirro
Uma extensão da CLI do Azure que coleta passivamente dados de recursos do Azure em um banco de dados SQLite compatível com o esquema do Cirro (https://github.com/bishopfox/cirro). Ela também registra todas as invocações da CLI em um arquivo JSON-lines.
Integra-se aos eventos do knack:
EVENT_INVOKER_POST_PARSE_ARGS — registra os argumentos do comandoEVENT_INVOKER_FILTER_RESULT — grava os dados do recurso no SQLiteaz extension add --source dist/cirro_azcli_ext-*.whl
az config set core.use_command_index=false
A CLI do Azure carrega as extensões de forma preguiçosa (lazy-load) pelo índice de comandos. Desativá-lo garante que esta extensão seja carregada para todos os comandos, permitindo observar cada invocação.
Quando qualquer comando az retorna dados de um endpoint remoto do Azure (ARM, Graph, Key Vault, etc.), a extensão classifica cada item de resultado e o grava na tabela SQLite apropriada:
| Sinal de classificação | Exemplo | Tabela de destino |
|---|---|---|
@odata.type no item | #microsoft.graph.user | users |
| Padrão de ID de recurso ARM | /subscriptions/x/providers/… | resources |
| Prefixo do comando CLI | ad user list | users |
Comandos somente locais (version, extension, config, etc.) são ignorados.
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
| Chave de configuração | Padrão | Descrição |
|---|---|---|
cirro.log_path | ~/.azure/cli_args.log | Caminho do arquivo de log de argumentos |
cirro.db_path | ~/.azure/cirro_collect.db | Caminho do banco de dados SQLite |
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