Azure Management Tools: Portal, CLI, PowerShell, and Cloud Shell
Key Takeaways
- The Azure Portal is the web GUI; Azure CLI uses az command syntax; Azure PowerShell uses verb-noun Az cmdlets; all are functionally equivalent management surfaces.
- Azure Cloud Shell is browser-based, offers both Bash and PowerShell, and requires an Azure Files share for persistent storage.
- Every management tool sends requests through Azure Resource Manager (ARM), the single control plane that authenticates, authorizes via RBAC, and routes the request.
- ARM templates and Bicep provide declarative, idempotent, repeatable infrastructure as code deployments.
- Azure Advisor and Azure Monitor are management surfaces, but they observe and recommend rather than authorizing changes the way ARM does.
Quick Answer: Azure Portal = web GUI. Azure CLI = cross-platform
azcommands. Azure PowerShell = verb-nounAzcmdlets. Cloud Shell = browser shell (Bash or PowerShell) needing a storage account. ARM templates / Bicep = declarative infrastructure as code. Everything routes through Azure Resource Manager (ARM).
Azure Portal
The Azure Portal at portal.azure.com is a unified, web-based graphical console. It is ideal for visual management, learning, dashboards, and one-off tasks. You can pin tiles to customizable dashboards, launch resource-creation wizards, run cost analysis, and manage RBAC assignments. Because it is point-and-click, it is the slowest tool for doing the same operation hundreds of times — that is what the command-line and code tools are for.
Azure CLI
Azure CLI is a cross-platform tool (Windows, macOS, Linux) using a bash-friendly syntax. Pattern: az [group] [subgroup] [command] [--parameters].
az group create --name MyRG --location eastus
az vm create --name MyVM --resource-group MyRG --image Ubuntu2204
az vm list --output table
It is the natural choice for shell scripting and Linux-centric DevOps pipelines.
Azure PowerShell
Azure PowerShell is the Az module of cmdlets in PowerShell's verb-noun format. Pattern: Verb-AzNoun -Parameters.
New-AzResourceGroup -Name MyRG -Location eastus
New-AzVM -Name MyVM -ResourceGroupName MyRG
Get-AzVM | Format-Table
It shines for Windows administrators and for piping objects between cmdlets in richer automation. CLI and PowerShell are functionally equivalent — choose by team skill set, not capability.
Azure Cloud Shell
Cloud Shell is a browser-based shell you reach from the portal, shell.azure.com, VS Code, or the Mobile App.
| Feature | Detail |
|---|---|
| Shells | Bash or PowerShell |
| Pre-installed | Azure CLI, Az PowerShell, Terraform, kubectl, git |
| Persistence | Backed by an Azure Files share (storage account required) |
| Auth | Auto-authenticated with your signed-in identity |
| Install | Nothing local — runs in the browser |
The most-tested fact: on first use Cloud Shell prompts you to create a storage account because it needs an Azure Files share to persist scripts and files between sessions.
Azure Mobile App and SDKs
The Azure Mobile App (iOS/Android) monitors resource health, surfaces alerts, and can run commands through Cloud Shell. For programmatic access, the Azure REST API and language SDKs (.NET, Java, Python, JavaScript, Go) let applications manage resources directly.
Infrastructure as code: ARM templates and Bicep
For repeatable, reviewable deployments Azure offers declarative infrastructure as code:
- ARM templates are JSON files describing the desired resources. Deployments are idempotent — running the same template twice converges to the same state rather than duplicating resources.
- Bicep is a cleaner domain-specific language that transpiles to ARM JSON. It is easier to read and write and is Microsoft's recommended authoring experience.
| Tool | Style | Best for |
|---|---|---|
| Portal | Imperative GUI | Visual, learning, one-offs |
| CLI / PowerShell | Imperative scripts | Automation, ad-hoc tasks |
| ARM / Bicep | Declarative IaC | Repeatable, version-controlled environments |
Everything goes through Azure Resource Manager
| Tool | Interface | Platform |
|---|---|---|
| Portal | Web GUI | Any browser |
| CLI | Command line | Win/macOS/Linux |
| PowerShell | Command line | Win/macOS/Linux |
| Cloud Shell | Browser shell | Any browser |
| REST API / SDKs | Code | Any platform |
Why ARM is the single control plane
Azure Resource Manager (ARM) is the deployment and management layer that sits between every tool and the actual Azure services. When you click Create in the portal, run az vm create, or deploy a Bicep file, the request lands on the same ARM endpoint. ARM then does four jobs in order:
- Authenticate the caller against Microsoft Entra ID (the identity behind your sign-in).
- Authorize the action using role-based access control (RBAC) — does this identity hold a role that permits this operation on this scope?
- Enforce governance by evaluating any Azure Policy rules (for example, blocking resources outside approved regions).
- Route the request to the correct resource provider (such as Microsoft.Compute for VMs) to carry it out.
Because everything funnels through ARM, your RBAC and Policy guardrails apply uniformly no matter which tool a user picks — a developer cannot bypass a policy by switching from the portal to the CLI. ARM also groups resources into resource groups and lets you deploy, tag, lock, and delete them as a unit, and it makes deployments idempotent so re-running a template converges to the desired state instead of duplicating resources.
Choosing the right tool
| Need | Best tool |
|---|---|
| Explore a service visually or build a dashboard | Azure Portal |
| Script in a Linux/bash pipeline | Azure CLI |
| Pipe objects in a Windows automation | Azure PowerShell |
| Run a quick command from any browser with no install | Cloud Shell |
| Reproduce identical environments under source control | ARM templates / Bicep |
| Monitor and respond to alerts from a phone | Azure Mobile App |
On the Exam: All management tools send requests to Azure Resource Manager (ARM) — the single control plane that authenticates the caller, authorizes via RBAC, applies Azure Policy, and routes to the resource provider. "Verb-noun like Get-AzVM" = PowerShell. "az group create" = CLI. "Cloud Shell needs what?" = a storage account. "Repeatable declarative deployment" = ARM template or Bicep.
What does Azure Cloud Shell require the first time you launch it?
Through which service do all Azure management tools (Portal, CLI, PowerShell, REST API, SDKs) send their requests?
A team wants a repeatable, version-controlled, declarative way to deploy identical environments. Which option fits best?