Blog
Domine a plataforma e otimize seus gastos!
Explorando o Azure Resource Graph: consultas úteis para governança, segurança e inventário
Introdução
Gerenciar centenas (ou milhares) de recursos em ambientes Azure exige visibilidade centralizada e consultas eficientes. O Azure Resource Graph (ARG) é um serviço fundamental para isso, permitindo consultar em escala todos os recursos da sua organização — muito além do que o portal ou CLI oferecem por padrão.
Neste artigo, vamos entender o que é o ARG, como utilizar a linguagem Kusto Query Language (KQL) e explorar consultas úteis para segurança, governança, custo e inventário.
O que é o Azure Resource Graph?
O Azure Resource Graph é um mecanismo de consulta baseado em KQL (Kusto Query Language) que indexa todos os recursos do Azure — incluindo metadados, propriedades, tags e configurações.
Vantagens:
- Consultas multi-subscription
- Resultados rápidos e em grande escala
- Integração com Azure Portal, CLI, PowerShell e Azure Workbooks
- Ideal para inventário, auditoria, compliance, segurança e FinOps
Como executar consultas
Você pode usar o ARG de várias formas:
- Azure Portal → Pesquise por “Resource Graph Explorer”
- Azure CLI:
az graph query -q "Resources | where type == 'microsoft.compute/virtualmachines'"
- PowerShell:
Search-AzGraph -Query "Resources | where type =~ 'microsoft.web/sites'"
Exemplos práticos de consulta
- Listar todas as VMs com status e localização
Resources
| where type == "microsoft.compute/virtualmachines"
| project name, location, properties.hardwareProfile.vmSize, properties.provisioningState
- Listar todos os recursos sem tag “CostCenter”
Resources
| where tags["CostCenter"] == ""
| project name, type, location, resourceGroup
- Identificar VMs com discos não criptografados
ResourceContainers
| where type == "microsoft.resources/subscriptions"
| join kind=inner (
Resources
| where type == "microsoft.compute/virtualmachines"
| extend vmId = tostring(properties.vmId)
) on subscriptionId
| join kind=leftouter (
Resources
| where type == "microsoft.compute/disks"
| extend vmId = tostring(properties.managedBy)
| where properties.encryption.type != "EncryptionAtRestWithPlatformKey"
) on vmId
| project vmName = name, diskName = disk_name, encryption = properties.encryption.type
- Listar Storage Accounts com acesso público habilitado
Resources
| where type == "microsoft.storage/storageaccounts"
| extend allowBlobPublicAccess = tostring(properties.allowBlobPublicAccess)
| where allowBlobPublicAccess == "true"
| project name, resourceGroup, location
- Verificar recursos com alto consumo (ex: SKU premium)
Resources
| where sku.name contains "Premium"
| project name, type, sku = sku.name, location
- Listar VMs com Auto Shutdown desativado
Resources
| where type == "microsoft.devtestlab/schedules"
| where properties.status != "Enabled"
| project name, resourceGroup
- Resumo por tipo de recurso
Resources
| summarize total = count() by type
| order by total desc
Visualização com Azure Workbooks
Você pode transformar suas consultas ARG em gráficos e painéis interativos com Azure Workbooks.
Exemplo:
Resources
| where type == "microsoft.compute/virtualmachines"
| summarize count() by location
Governança e segurança
Use o ARG para apoiar:
- Auditorias de conformidade (ex: recursos sem tags obrigatórias)
- Detecção de configurações inseguras (acesso público, criptografia ausente)
- Inventário automatizado para documentação
Integrações úteis
- Power BI (conectores diretos ao ARG para dashboards)
- Azure Policy (valide resultados com políticas)
- GitHub Actions / DevOps Pipelines (auditorias periódicas)
Referências
Conclusão
O Azure Resource Graph é um componente essencial para empresas que buscam governança, segurança e controle em ambientes complexos no Azure.
Com ele, é possível construir auditorias contínuas, painéis operacionais e inventários completos — tudo com desempenho e escala.