Comprehensive, hands-on training materials for Microsoft Azure Administrator (AZ-104) certification
This repository provides structured learning paths combining conceptual lessons with practical labs, covering all five core domains of Azure administration.
Structure: Each module contains conceptual lessons and hands-on labs organized by topic
- Lessons: Theory, text-based architecture diagrams, and best practices
- Labs: Two tracks per module:
labs/cli-arm/andlabs/portal/ - Parameterization: All labs use variables and
.envfiles for portable, reusable configuration - Cleanup: Every lab includes explicit cleanup steps (e.g.,
az group delete,rm -f .env) - Portal Labs: All portal labs are written as detailed, step-by-step instructions (not just high-level)
Default Configuration:
- Region:
australiaeast - Environment:
.envfiles for portable configuration
Focus: Azure AD (Entra ID), RBAC, managed identities, and governance controls
- Entra ID Basics - Azure Active Directory fundamentals, users, groups, and authentication
- Role-Based Access Control (RBAC) - Permission management with built-in and custom roles
- Managed Identities - System and user-assigned identities for secure service authentication
- Azure Policy - Policy definitions, compliance evaluation, and enforcement for governance
- Resource Management: Locks & Tags - Resource protection with locks and organization with tags
- RBAC Role Assignment (CLI + ARM) | Portal - Assign Azure roles to users and service principals
- Managed Identity Storage Access (CLI + ARM) | Portal - Configure managed identity to access Azure Storage without credentials
- Tags, Locks & Policy (CLI + ARM) | Portal - Apply resource tags, deletion locks, and Azure Policy
- Entra Users, Groups & Group-Based RBAC (CLI + ARM) | Portal - Create Entra users/groups and assign RBAC through group membership
Focus: VNets, subnets, NSGs, peering, routing, DNS, and load balancing
- VNet & Subnets - Virtual networks, address spaces, and subnet segmentation
- VNet Peering - Connect virtual networks with global and regional peering
- Network Security Groups (NSG) & ASG - Traffic filtering with security rules and application security groups
- Routing & User-Defined Routes (UDR) - Custom route tables and network virtual appliances
- Azure DNS - Public and private DNS zones for name resolution
- Private Endpoints - Secure PaaS services with private connectivity
- Load Balancing - Azure Load Balancer, Application Gateway, and Traffic Manager
- Create VNet, Subnets & NSG (CLI + ARM) | Portal - Build segmented VNet networking with NSG association and rule validation
- VNet Peering Connectivity (CLI + ARM) | Portal - Configure bidirectional peering and validate connected state
- UDR Routing Simulation (CLI + ARM) | Portal - Create route tables, custom routes, and subnet associations
- Private Endpoint for Storage with DNS (CLI + ARM) | Portal - Deploy private endpoint + private DNS integration for blob access
- Basic Load Balancer (CLI + ARM) | Portal - Build Standard public load balancer frontend, probe, rule, and backend pool setup
Module 02 lab quality baseline:
- CLI + ARM labs are fully parameterized with
.envand include validation + cleanup. - Portal labs are detailed step-by-step and aligned with equivalent CLI outcomes.
- Networking diagrams in labs are text-based (no Mermaid).
Focus: Storage account design, redundancy, blob lifecycle, Azure Files, and secure data access
- Storage Accounts & Redundancy - Storage account capabilities, performance models, and redundancy choices including LRS, ZRS, GRS, and GZRS variants
- Blob Storage & Lifecycle Management - Blob types, access tiers, lifecycle rules, and data protection controls
- Azure Files - Azure Files architecture, SMB/NFS considerations, share tiers, and hybrid file scenarios
- Storage Security: SAS vs RBAC - Data-plane authorization with Azure RBAC, SAS, and supporting network controls
- Storage Account & Blob Container (CLI + ARM) | Portal - Create a private blob container, upload content, and validate download flow
- Lifecycle Policy (CLI + ARM) | Portal - Configure and validate a lifecycle rule that moves block blobs to Cool storage
- Azure Files Share (CLI + ARM) | Portal - Create an SMB-based Azure file share, set quota, and validate file upload
- SAS vs RBAC (CLI + ARM) | Portal - Compare delegated SAS access with identity-based Azure RBAC authorization
Module 03 lab quality baseline:
- CLI + ARM labs are fully parameterized with
.envand include validation + cleanup. - Portal labs are detailed step-by-step and aligned with equivalent CLI outcomes.
- Storage lab diagrams are text-based (no Mermaid).
Focus: VM operations, availability design, scaling strategy, App Service administration, and container runtimes
- Virtual Machines - VM resource model, lifecycle states, dependency troubleshooting, and secure operations
- Availability Sets & Zones - Availability set versus zonal architecture and resilience trade-offs
- Scaling - Scale up/down versus out/in, VMSS autoscale policy design, and App Service plan scaling semantics
- App Service - Plan tiers, app configuration, deployment slots, and networking behavior
- Containers: ACR, ACI & ACA - Image registry workflows, runtime selection, and secure image pull patterns
- Deploy a Virtual Machine (CLI + ARM) | Portal - Deploy Linux VM with subnet-level NSG control and runtime/network validation
- VM Availability (CLI + ARM) | Portal - Deploy two VMs in one availability set and validate domain-aware placement
- VMSS Autoscale (CLI + ARM) | Portal - Configure bounded CPU-based autoscale policies for VM Scale Sets
- App Service Deploy (CLI + ARM) | Portal - Create App Service plan + web app and verify configuration/runtime endpoint behavior
- ACR & ACI Container (CLI + ARM) | Portal - Build in ACR and deploy to ACI with private image pull validation
Module 04 lab quality baseline:
- CLI + ARM labs are fully parameterized with
.envand include validation + cleanup. - Portal labs are detailed step-by-step and aligned with equivalent CLI outcomes.
- Compute lab diagrams are text-based (no Mermaid).
Focus: Azure Monitor observability, operational alerting, backup recoverability, and resilience planning
- Azure Monitor Foundations - Signal taxonomy, data routing patterns, and troubleshooting workflow across metrics, activity logs, and resource logs
- Log Analytics & KQL - Workspace/table model, query design, and collection-path precision for operational investigation
- Alerts & Action Groups - Alert type selection, noise-control strategy, and action routing design for reliable response
- Azure Backup - Vault/policy/recovery-point behavior, restore paths, and governance practices
- Azure Site Recovery - Replication, failover/failback lifecycle, and DR validation expectations
- Availability & Resilience - SLA, RTO/RPO design reasoning and HA/Backup/DR decision alignment
- Enable VM Insights (CLI + ARM) | Portal - Build VM + Log Analytics pipeline, onboard VM Insights, and validate Heartbeat/KQL ingestion
- Create Alert & Action Group (CLI + ARM) | Portal - Create reusable Action Group and CPU metric alert with rule/action validation
- Backup & Restore VM (CLI + ARM) | Portal - Enable VM backup in Recovery Services vault and validate restore workflow safely
- Service Health + Resource Health Alerts (CLI + ARM) | Portal - Configure subscription-scope Activity Log alerts and shared health notification routing
Module 05 lab quality baseline:
- CLI + ARM labs are fully parameterized with
.envand include explicit validation + cleanup. - Portal labs are detailed step-by-step and aligned with equivalent CLI outcomes.
- Monitoring diagrams in lessons/labs are text-based (no Mermaid).
Run this script to install all required tools and authenticate with Azure:
./shared/scripts/az_login.shWhat it does:
- β Installs Azure CLI (if not present)
- β Installs Bicep CLI (for infrastructure as code)
- β Installs jq (for JSON parsing)
- β Logs you into Azure
- β Displays your active subscription
Note: You only need to run this once per environment. If already logged in, just skip this step.
β
Before starting: Run ./shared/scripts/az_login.sh to set up your environment
β
Read first: Review Portal instructions before running CLI commands
β
Understand: Know what each command does before executing
β
Monitor costs: Check Azure Portal regularly to avoid unexpected charges
β
Use .env files for portable lab configuration (add .env to .gitignore)
β
Clean up: Always delete lab resources after completion (including the .env files)
Tip: To see all your lab resource groups, run:
az group list --query "[?starts_with(name,'az104-')].{Name:name,Location:location}" -o table
.
βββ README.md
βββ docs/
β βββ cost-safety.md
β βββ naming-standards.md
β βββ prerequisites.md
β βββ toc.md
βββ modules/
β βββ 01-identity/
β β βββ README.md
β β βββ labs/
β β β βββ cli-arm/
β β β β βββ 01-rbac-role-assignment.md
β β β β βββ 02-managed-identity-storage-access.md
β β β β βββ 03-tags-lock-policy.md
β β β β βββ 04-entra-users-groups-rbac.md
β β β βββ portal/
β β β βββ 01-rbac-role-assignment.md
β β β βββ 02-managed-identity-storage-access.md
β β β βββ 03-tags-lock-policy.md
β β β βββ 04-entra-users-groups-rbac.md
β β βββ lessons/
β β βββ 01-entra-id-basics.md
β β βββ 02-rbac.md
β β βββ 03-managed-identities.md
β β βββ 04-azure-policy.md
β β βββ 05-resource-management-locks-tags.md
β βββ 02-networking/
β β βββ README.md
β β βββ labs/
β β β βββ cli-arm/
β β β β βββ 01-create-vnet-subnets-nsg.md
β β β β βββ 02-vnet-peering-connectivity.md
β β β β βββ 03-udr-routing-simulation.md
β β β β βββ 04-private-endpoint-storage-dns.md
β β β β βββ 05-basic-load-balancer.md
β β β βββ portal/
β β β βββ 01-create-vnet-subnets-nsg.md
β β β βββ 02-vnet-peering-connectivity.md
β β β βββ 03-udr-routing-simulation.md
β β β βββ 04-private-endpoint-storage-dns.md
β β β βββ 05-basic-load-balancer.md
β β βββ lessons/
β β βββ 01-vnet-subnets.md
β β βββ 02-vnet-peering.md
β β βββ 03-nsg-asg.md
β β βββ 04-routing-udr.md
β β βββ 05-azure-dns.md
β β βββ 06-private-endpoints.md
β β βββ 07-load-balancing.md
β βββ 03-storage/
β β βββ README.md
β β βββ labs/
β β β βββ cli-arm/
β β β β βββ 01-storage-account-blob-container.md
β β β β βββ 02-lifecycle-policy.md
β β β β βββ 03-azure-files-share.md
β β β β βββ 04-sas-vs-rbac.md
β β β βββ portal/
β β β βββ 01-storage-account-blob-container.md
β β β βββ 02-lifecycle-policy.md
β β β βββ 03-azure-files-share.md
β β β βββ 04-sas-vs-rbac.md
β β βββ lessons/
β β βββ 01-storage-accounts-redundancy.md
β β βββ 02-blob-lifecycle.md
β β βββ 03-azure-files.md
β β βββ 04-storage-security-sas-rbac.md
β βββ 04-compute/
β β βββ README.md
β β βββ labs/
β β β βββ cli-arm/
β β β β βββ 01-deploy-vm.md
β β β β βββ 02-vm-availability.md
β β β β βββ 03-vmss-autoscale.md
β β β β βββ 04-app-service-deploy.md
β β β β βββ 05-acr-aci-container.md
β β β βββ portal/
β β β βββ 01-deploy-vm.md
β β β βββ 02-vm-availability.md
β β β βββ 03-vmss-autoscale.md
β β β βββ 04-app-service-deploy.md
β β β βββ 05-acr-aci-container.md
β β βββ lessons/
β β βββ 01-virtual-machines.md
β β βββ 02-availability-sets-zones.md
β β βββ 03-scaling.md
β β βββ 04-app-service.md
β β βββ 05-containers-acr-aci-aca.md
β βββ 05-monitoring/
β βββ README.md
β βββ labs/
β β βββ cli-arm/
β β β βββ 01-enable-vm-insights.md
β β β βββ 02-create-alert-action-group.md
β β β βββ 03-backup-and-restore-vm.md
β β β βββ 04-service-health-resource-health-alerts.md
β β βββ portal/
β β βββ 01-enable-vm-insights.md
β β βββ 02-create-alert-action-group.md
β β βββ 03-backup-and-restore-vm.md
β β βββ 04-service-health-resource-health-alerts.md
β βββ lessons/
β βββ 01-azure-monitor.md
β βββ 02-log-analytics-kql.md
β βββ 03-alerts-action-groups.md
β βββ 04-azure-backup.md
β βββ 05-azure-site-recovery.md
β βββ 06-availability-resilience.md
βββ shared/
βββ scripts/
βββ az_login.sh
π 5 modules β’ 27 lessons β’ 44 labs (22 CLI+ARM + 22 Portal) β’ 82 total files
All labs are designed with cost optimization:
- Small VM sizes (B1s tier)
- Short-lived resources
- Async deletion (
--no-wait) - Default to australiaeast region
.envfiles excluded from version control
These materials align with the official AZ-104 exam domains:
- Identity & Governance (15-20%)
- Storage (15-20%)
- Compute (20-25%)
- Networking (25-30%)
- Monitoring & Backup (10-15%)
Good luck with your certification! π
AZ-104 certification training materials with 27 lessons and 44 hands-on lab guides (22 CLI+ARM and 22 Portal) covering all five Azure Administrator exam domains.