winget install --id=Microsoft.Azure.QuickReview -e
Azure Quick Review (azqr) is a CLI tool used to identify Azure resources that may be or not compliant with Azure best practices and recommendations.
Azure Quick Review (azqr) is a command-line interface (CLI) tool designed to analyze Azure resources and identify those that may or may not comply with Azure best practices and recommendations. It helps users ensure their Azure environments meet established standards for security, performance, and cost-efficiency.
Key Features:
Audience & Benefit: Ideal for IT professionals, cloud architects, and DevOps engineers who need to ensure Azure environments adhere to best practices. By using azqr, users can optimize resource configurations, reduce operational costs, enhance security compliance, and improve overall environment resilience.
Available via winget for easy installation on Windows systems.
Azure Quick Review (azqr) is a powerful command-line interface (CLI) tool that specializes in analyzing Azure resources to ensure compliance with Azure's best practices and recommendations. Its main objective is to offer users a comprehensive overview of their Azure resources, allowing them to easily identify any non-compliant configurations or areas for improvement.
Azure Quick Review (azqr) scans your resources with 3 types of recommendations:
To learn more about the recommendations used by Azure Quick Review (azqr), you can refer to the documentation available here.
The output generated by Azure Quick Review (azqr) is written by default to an Excel file, which contains the following sheets:
> By default, Azure Quick Review (azqr) obfuscates the Subscription Ids in the output to ensure the protection of sensitive information and maintain data privacy and security. If you want to display the Subscription Ids without obfuscation, you can use the --mask=false
flag when executing the tool.
> Azure Quick Review can also generate an csv files with the same information as the excel. To generate the csv files, you can use the --csv
flag when running the tool.
> A Power BI template is also available to help you visualize the results generated by Azure Quick Review. You can create the template running Azure Quick Review with the pbi
command and then loading the excel file generated by the tool.
Azure Quick Review (azqr) currently supports the following Azure services:
Abbreviation | Resource Type |
---|---|
aa | Microsoft.Automation/automationAccounts |
adf | Microsoft.DataFactory/factories |
afd | Microsoft.Cdn/profiles |
afw | Microsoft.Network/azureFirewalls |
afw | Microsoft.Network/ipGroups |
agw | Microsoft.Network/applicationGateways |
aif | Microsoft.CognitiveServices/accounts |
aks | Microsoft.ContainerService/managedClusters |
amg | Microsoft.Dashboard/grafana |
apim | Microsoft.ApiManagement/service |
appcs | Microsoft.AppConfiguration/configurationStores |
appi | Microsoft.Insights/components |
appi | Microsoft.Insights/activityLogAlerts |
as | Microsoft.AnalysisServices/servers |
asp | Microsoft.Web/serverFarms |
asp | Microsoft.Web/sites |
asp | Microsoft.Web/connections |
asp | Microsoft.Web/certificates |
avail | Microsoft.Compute/availabilitySets |
avd | Specialized.Workload/AVD |
avs | Microsoft.AVS/privateClouds |
avs | Specialized.Workload/AVS |
ba | Microsoft.Batch/batchAccounts |
ca | Microsoft.App/containerApps |
cae | Microsoft.App/managedenvironments |
ci | Microsoft.ContainerInstance/containerGroups |
con | Microsoft.Network/connections |
cosmos | Microsoft.DocumentDB/databaseAccounts |
cr | Microsoft.ContainerRegistry/registries |
dbw | Microsoft.Databricks/workspaces |
dec | Microsoft.Kusto/clusters |
disk | Microsoft.Compute/disks |
erc | Microsoft.Network/expressRouteCircuits |
erc | Microsoft.Network/ExpressRoutePorts |
evgd | Microsoft.EventGrid/domains |
evh | Microsoft.EventHub/namespaces |
fdfp | Microsoft.Network/frontdoorWebApplicationFirewallPolicies |
gal | Microsoft.Compute/galleries |
hpc | Specialized.Workload/HPC |
hub | Microsoft.MachineLearningServices/workspaces |
iot | Microsoft.Devices/IotHubs |
it | Microsoft.VirtualMachineImages/imageTemplates |
kv | Microsoft.KeyVault/vaults |
lb | Microsoft.Network/loadBalancers |
log | Microsoft.OperationalInsights/workspaces |
logic | Microsoft.Logic/workflows |
maria | Microsoft.DBforMariaDB/servers |
maria | Microsoft.DBforMariaDB/servers/databases |
mysql | Microsoft.DBforMySQL/servers |
mysql | Microsoft.DBforMySQL/flexibleServers |
netapp | Microsoft.NetApp/netAppAccounts |
ng | Microsoft.Network/natGateways |
nic | Microsoft.Network/networkInterfaces |
nsg | Microsoft.Network/networkSecurityGroups |
nw | Microsoft.Network/networkWatchers |
pdnsz | Microsoft.Network/privateDnsZones |
pep | Microsoft.Network/privateEndpoints |
pip | Microsoft.Network/publicIPAddresses |
psql | Microsoft.DBforPostgreSQL/servers |
psql | Microsoft.DBforPostgreSQL/flexibleServers |
redis | Microsoft.Cache/Redis |
rg | Microsoft.Resources/resourceGroups |
rsv | Microsoft.RecoveryServices/vaults |
rt | Microsoft.Network/routeTables |
sap | Specialized.Workload/SAP |
sb | Microsoft.ServiceBus/namespaces |
sigr | Microsoft.SignalRService/SignalR |
sql | Microsoft.Sql/servers |
sql | Microsoft.Sql/servers/databases |
sql | Microsoft.Sql/servers/elasticPools |
srch | Microsoft.Search/searchServices |
st | Microsoft.Storage/storageAccounts |
synw | Microsoft.Synapse/workspaces |
synw | Microsoft.Synapse workspaces/bigDataPools |
synw | Microsoft.Synapse/workspaces/sqlPools |
traf | Microsoft.Network/trafficManagerProfiles |
vdpool | Microsoft.DesktopVirtualization/hostPools |
vdpool | Microsoft.DesktopVirtualization/scalingPlans |
vdpool | Microsoft.DesktopVirtualization/workspaces |
vgw | Microsoft.Network/virtualNetworkGateways |
vm | Microsoft.Compute/virtualMachines |
vmss | Microsoft.Compute/virtualMachineScaleSets |
vnet | Microsoft.Network/virtualNetworks |
vnet | Microsoft.Network/virtualNetworks/subnets |
vwan | Microsoft.Network/virtualWans |
wps | Microsoft.SignalRService/webPubSub |
latest_azqr=$(curl -sL https://api.github.com/repos/Azure/azqr/releases/latest | jq -r ".tag_name" | cut -c1-)
wget https://github.com/Azure/azqr/releases/download/$latest_azqr/azqr-ubuntu-latest-amd64 -O azqr
chmod +x azqr
Use winget
:
winget install azqr
or download the executable file:
$latest_azqr=$(iwr https://api.github.com/repos/Azure/azqr/releases/latest).content | convertfrom-json | Select-Object -ExpandProperty tag_name
iwr https://github.com/Azure/azqr/releases/download/$latest_azqr/azqr-windows-latest-amd64.exe -OutFile azqr.exe
Use homebrew
:
brew install azqr
or download the latest release from here.
Azure Quick Review (azqr) supports the following authentication methods:
Azure Quick Review (azqr) requires the following permissions:
To scan all resources in all subscription run:
./azqr scan
To scan all resources in a specific management group run:
./azqr scan --management-group-id
To scan all resources in a specific subscription run:
./azqr scan -s
To scan a specific resource group in a specific subscription run:
./azqr scan -s -g
For information on available commands and help run:
./azqr -h
You can configure Azure Quick Review to include or exclude specific subscriptions or resource groups and also exclude services or recommendations. To do so, create a yaml
file with the following format:
azqr:
include:
subscriptions:
- # format:
resourceGroups:
- # format: /subscriptions//resourceGroups/
resourceTypes:
- # format: Abbreviation of the resource type. For example: "vm" for "Microsoft.Compute/virtualMachines"
exclude:
subscriptions:
- # format:
resourceGroups:
- # format: /subscriptions//resourceGroups/
services:
- # format: /subscriptions//resourceGroups//providers//
recommendations:
- # format:
Then run the scan with the --filters
flag:
./azqr scan --filters
> Check the rules to get the recommendation ids.
If you encounter any issue while using Azure Quick Review (azqr), please set the AZURE_SDK_GO_LOGGING
environment variable to all
, run the tool with the --debug
flag and then share the console output with us by filing a new issue.
Make sure you have Go 1.23.x
or higher installed in your environment. You can set GOROOT= folder
and GOPATH=
if you want to be specific about where to find Go binary and Go dependencies.
git clone git@github.com:Azure/azqr.git
cd azqr
git submodule init
git submodule update --recursive
go build -o azqr cmd/azqr/main.go
This project uses GitHub Issues to track bugs and feature requests. Before logging an issue please check our troubleshooting guide.
Please search the existing issues before filing new issues to avoid duplicates.
Support for this project / product is limited to the resources listed above.
Thanks to everyone who has contributed!
This project has adopted the Microsoft Open Source Code of Conduct
> Trademarks This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies.