
Azure CLI extension pour la collection Cirro
Une extension Azure CLI qui collecte passivement les données des ressources Azure dans une base de données SQLite compatible avec le schéma Cirro (https://github.com/bishopfox/cirro). Elle journalise également toutes les invocations CLI dans un fichier JSON-lines.
S'intègre aux événements knack :
EVENT_INVOKER_POST_PARSE_ARGS — journalise les arguments des commandesEVENT_INVOKER_FILTER_RESULT — écrit les données des ressources dans SQLiteaz extension add --source dist/cirro_azcli_ext-*.whl
az config set core.use_command_index=false
Azure CLI charge les extensions en différé via l'index de commandes. Le désactiver garantit que cette extension se charge pour les commandes afin d'observer chaque invocation.
Lorsqu'une commande az renvoie des données depuis un point de terminaison Azure distant (ARM, Graph,
Key Vault, etc.), l'extension classe chaque élément de résultat et l'écrit dans
la table SQLite appropriée :
| Signal de classification | Exemple | Table cible |
|---|---|---|
@odata.type sur l'élément | #microsoft.graph.user | users |
| Modèle d'ID de ressource ARM | /subscriptions/x/providers/… | resources |
| Préfixe de commande CLI | ad user list | users |
Les commandes locales uniquement (version, extension, config, etc.) sont ignorées.
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
| Clé de configuration | Défaut | Description |
|---|---|---|
cirro.log_path | ~/.azure/cli_args.log | Chemin du fichier de journal des arguments |
cirro.db_path | ~/.azure/cirro_collect.db | Chemin de la base de données 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