Microsoft Azure Quick Review logo

Microsoft Azure Quick Review Microsoft Corporation

Use this command to install Microsoft Azure Quick Review:
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:

  • Comprehensive Recommendations: Analyzes resources using three types of recommendations:
    • Azure Resource Graph (ARG) queries from the Azure Proactive Resiliency Library v2 (APRL).
    • Azure Resource Manager (ARM) rules built with the Azure Golang SDK.
    • Orphan resource detection via ARG queries from the Azure Orphan Resources project.
  • Detailed Output: Results are exported to an Excel file containing multiple sheets, including recommendations, impacted resources, resource types, inventory, Azure Advisor insights, Microsoft Defender for Cloud recommendations, and more.
  • Cost Analysis: Includes a detailed breakdown of costs associated with scanned subscriptions over the past three months.
  • Power BI Integration: Generates a Power BI template to visualize scan results, aiding in deeper analysis and reporting.
  • Customizable Output: Supports generating CSV files and offers options to control data obfuscation (e.g., hiding subscription IDs) for enhanced privacy.

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.

README

build CodeQL Github All Releases codecov OpenSSF Best Practices Average time to resolve an issue Percentage of issues still open

Azure Quick Review

Open in vscode.dev

Azure Quick Review

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 Recommendations

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.

Scan Results

The output generated by Azure Quick Review (azqr) is written by default to an Excel file, which contains the following sheets:

  • Recommendations: a list with all recommendations with the number of resources that are impacted. You can use this table as an action plan to improve the compliance of your resources.
  • ImpactedResources: a list with all resources that are impacted. You can use this table to identify resources that have issues that need to be addressed.
  • ResourceTypes: a list of impacted resource types.
  • Inventory: a list of all resources scanned by the tool. Here you'll find details such as SKU, Tier, Kind or calculated SLA.
  • Advisor: a list of recommendations provided by Azure Advisor.
  • DefenderRecommendations: a list of recommendations provided by Microsoft Defender for Cloud.
  • OutOfScope: a list of resources that were not scanned.
  • Defender: a list of Microsoft Defender for Cloud plans and their tiers.
  • Costs: a list of costs associated with the scanned subscription for the last 3 months.

> 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.

Supported Azure Services

Azure Quick Review (azqr) currently supports the following Azure services:

AbbreviationResource Type
aaMicrosoft.Automation/automationAccounts
adfMicrosoft.DataFactory/factories
afdMicrosoft.Cdn/profiles
afwMicrosoft.Network/azureFirewalls
afwMicrosoft.Network/ipGroups
agwMicrosoft.Network/applicationGateways
aksMicrosoft.ContainerService/managedClusters
amgMicrosoft.Dashboard/grafana
apimMicrosoft.ApiManagement/service
appcsMicrosoft.AppConfiguration/configurationStores
appiMicrosoft.Insights/components
appiMicrosoft.Insights/activityLogAlerts
asMicrosoft.AnalysisServices/servers
aspMicrosoft.Web/serverFarms
aspMicrosoft.Web/sites
aspMicrosoft.Web/connections
aspMicrosoft.Web/certificates
availMicrosoft.Compute/availabilitySets
avdSpecialized.Workload/AVD
avsMicrosoft.AVS/privateClouds
avsSpecialized.Workload/AVS
baMicrosoft.Batch/batchAccounts
caMicrosoft.App/containerApps
caeMicrosoft.App/managedenvironments
ciMicrosoft.ContainerInstance/containerGroups
cogMicrosoft.CognitiveServices/accounts
conMicrosoft.Network/connections
cosmosMicrosoft.DocumentDB/databaseAccounts
crMicrosoft.ContainerRegistry/registries
dbwMicrosoft.Databricks/workspaces
decMicrosoft.Kusto/clusters
diskMicrosoft.Compute/disks
ercMicrosoft.Network/expressRouteCircuits
ercMicrosoft.Network/ExpressRoutePorts
evgdMicrosoft.EventGrid/domains
evhMicrosoft.EventHub/namespaces
fdfpMicrosoft.Network/frontdoorWebApplicationFirewallPolicies
galMicrosoft.Compute/galleries
hpcSpecialized.Workload/HPC
iotMicrosoft.Devices/IotHubs
itMicrosoft.VirtualMachineImages/imageTemplates
kvMicrosoft.KeyVault/vaults
lbMicrosoft.Network/loadBalancers
logMicrosoft.OperationalInsights/workspaces
logicMicrosoft.Logic/workflows
mariaMicrosoft.DBforMariaDB/servers
mariaMicrosoft.DBforMariaDB/servers/databases
mysqlMicrosoft.DBforMySQL/servers
mysqlMicrosoft.DBforMySQL/flexibleServers
netappMicrosoft.NetApp/netAppAccounts
ngMicrosoft.Network/natGateways
nicMicrosoft.Network/networkInterfaces
nsgMicrosoft.Network/networkSecurityGroups
nwMicrosoft.Network/networkWatchers
pdnszMicrosoft.Network/privateDnsZones
pepMicrosoft.Network/privateEndpoints
pipMicrosoft.Network/publicIPAddresses
psqlMicrosoft.DBforPostgreSQL/servers
psqlMicrosoft.DBforPostgreSQL/flexibleServers
redisMicrosoft.Cache/Redis
rgMicrosoft.Resources/resourceGroups
rsvMicrosoft.RecoveryServices/vaults
rtMicrosoft.Network/routeTables
sapSpecialized.Workload/SAP
sbMicrosoft.ServiceBus/namespaces
sigrMicrosoft.SignalRService/SignalR
sqlMicrosoft.Sql/servers
sqlMicrosoft.Sql/servers/databases
sqlMicrosoft.Sql/servers/elasticPools
stMicrosoft.Storage/storageAccounts
synwMicrosoft.Synapse/workspaces
synwMicrosoft.Synapse workspaces/bigDataPools
synwMicrosoft.Synapse/workspaces/sqlPools
trafMicrosoft.Network/trafficManagerProfiles
vdpoolMicrosoft.DesktopVirtualization/hostPools
vdpoolMicrosoft.DesktopVirtualization/scalingPlans
vdpoolMicrosoft.DesktopVirtualization/workspaces
vgwMicrosoft.Network/virtualNetworkGateways
vmMicrosoft.Compute/virtualMachines
vmssMicrosoft.Compute/virtualMachineScaleSets
vnetMicrosoft.Network/virtualNetworks
vnetMicrosoft.Network/virtualNetworks/subnets
vwanMicrosoft.Network/virtualWans
wpsMicrosoft.SignalRService/webPubSub

Usage

Install on Linux or Azure Cloud Shell (Bash)

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

Install on Windows

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

Install on Mac

Use homebrew:

brew install azqr

or download the latest release from here.

Authentication

Azure Quick Review (azqr) supports the following authentication methods:

  • Service Principal. You'll need to set the following environment variables:
    • AZURE_CLIENT_ID
    • AZURE_CLIENT_SECRET
    • AZURE_TENANT_ID
  • Azure Managed Identity
  • Azure CLI (Using this type of authentication will make scans run slower)

Authorization

Azure Quick Review (azqr) requires the following permissions:

  • Reader over Subscription or Management Group scope

Running the Scan

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

Filtering Recommendations and more

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.

Troubleshooting

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.

Building Locally

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 submodulie init
   git submodule update --recursive
   go build -o azqr cmd/azqr/main.go

Support

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.

  • For new issues, file your bug or feature request as a new issue.
  • For help, discussion, and support questions about using this project, join or start a discussion.

Support for this project / product is limited to the resources listed above.

Contributors

Thanks to everyone who has contributed!

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct

Trademark Notice

> 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.

Versions
2.5.0-preview
2.4.6
2.4.5
2.4.4
2.4.3
2.4.1
2.4.0
2.3.2
2.3.1
2.3.0
Website
License