
Cirro 컬렉션용 Azure CLI 확장
Azure 리소스 데이터를 Cirro(https://github.com/bishopfox/cirro) 스키마와 호환되는 SQLite 데이터베이스에 수동적으로 수집하는 Azure CLI 확장입니다. 또한 모든 CLI 호출을 JSON-lines 파일에 기록합니다.
knack 이벤트에 후크합니다:
EVENT_INVOKER_POST_PARSE_ARGS — 명령 인자를 기록합니다EVENT_INVOKER_FILTER_RESULT — 리소스 데이터를 SQLite에 기록합니다az extension add --source dist/cirro_azcli_ext-*.whl
az config set core.use_command_index=false
Azure CLI는 명령 인덱스에 따라 확장을 지연 로드합니다. 이를 비활성화하면 이 확장이 모든 명령에 대해 로드되어 모든 호출을 관찰할 수 있습니다.
az 명령이 원격 Azure 엔드포인트(ARM, Graph,
Key Vault 등)에서 데이터를 반환하면 확장 프로그램은 각 결과 항목을 분류하여
적절한 SQLite 테이블에 기록합니다:
로컬 전용 명령(version, extension, config 등)은 건너뜁니다.
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
| 구성 키 | 기본값 | 설명 |
|---|---|---|
cirro.log_path | ~/.azure/cli_args.log | 인자 로그 파일 경로 |
cirro.db_path | ~/.azure/cirro_collect.db | 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
| 분류 신호 | 예시 | 대상 테이블 |
|---|
항목의 @odata.type | #microsoft.graph.user | users |
| ARM 리소스 ID 패턴 | /subscriptions/x/providers/… | resources |
| CLI 명령 접두사 | ad user list | users |