SaveMyCert
Log in
5 of 5 free questions left today·for 30 a day
AZ-104 practice

AZ-104 practice exam — 592 free practice questions

Work through 592 AZ-104 exam questions, drawn by domain and weighted like the real thing, with an explanation on every option — not just the right one. Build a practice test as long as you like; no account needed to start. 5 fully worked examples are further down this page, answers included.

Question bank
592
across 5 domains
Free, no account
5/day
a free account allows 30 a day
Real exam
50 Qs
100 min · pass 700 / 1000
Explanations
Every option
right and wrong

Build a practice session

5 free questions left today.

Domains

How many?

Mode

Ready when you are

10 fresh questions drawn across all domains, in Learn mode.

Focused review

Every question you answer incorrectly, and every question you flag while practising, is saved here automatically. Finish a session and you can come back to re-drill just those.

5 sample AZ-104 questions, fully explained

Real questions from the AZ-104 bank, with the answer key and the reasoning behind every option. Read them, then go back up the page and try the rest.

Question 1Manage Azure identities and governance

An engineer from a partner company needs to work in your team's Azure DevOps project for six months. She already has a work account in her own company's Microsoft Entra tenant, and your security team does not want to issue or reset a password for her. What should you do in your tenant?

Choose one.

  • a
    Create a new member user for her and send the initial password to her work email

    A member account lives in your directory with a password you issue and reset, which is exactly what the security team wants to avoid for an outsider.

  • b
    Invite her as an external user so she redeems a B2B invitation sent to her work email Correct

    A B2B invitation creates a guest object in your tenant while she keeps authenticating with her own company's account, so you never hold her password.

  • c
    Register an app and create a service principal that she uses to sign in with a secret

    A service principal is a workload identity for applications; a person cannot sign in to Azure DevOps interactively as one, and you would still own its secret.

  • d
    Add her work email address to a Microsoft 365 group that owns the Azure DevOps project

    A group can only contain objects that already exist in your directory; an outside email address is not an identity in your tenant until she is invited.

The concept

Member users are internal accounts you credential; guest users are external people invited through Microsoft Entra B2B collaboration who keep their home credentials.

Why that’s the answer

The deciding facts are that she belongs to another organization, already has an identity there, and your team refuses to manage her password. Inviting her as an external user creates a guest object she activates by redeeming the invitation, and she then authenticates against her home tenant. A new member account would put her password in your directory. A service principal is an application identity, not something a person signs in as. Adding an email address to a group fails because a group holds existing directory objects, and she does not have one in your tenant yet.

How to reason it out
  1. Note that the person is external and already has an identity elsewhere.
  2. Note the constraint: your tenant must not issue or reset her password.
  3. Map that to a guest created through Invite external user (B2B collaboration).
  4. Grant access to the guest (directly or through a group) after the invitation is redeemed.

Exam tip: Outside collaborator with their own account and no password managed by you means a B2B guest invitation, not a member account.

Manage Microsoft Entra Users and Groups (AZ-104) — the lesson that teaches this.

Question 2Implement and manage storage

An application running on an Azure VM authenticates to Azure Storage with its managed identity. It must hand out short-lived upload URLs for blobs to mobile clients. The security team forbids any workload from reading or holding the storage account keys. Which kind of shared access signature should the application generate?

Choose one.

  • a
    An account SAS

    An account SAS is signed with one of the storage account access keys, so the application would need to read a key, which the security team forbids.

  • b
    A user delegation SAS Correct

    Correct. The managed identity requests a user delegation key through Microsoft Entra ID and signs the SAS with it, so no storage account key is ever read or held.

  • c
    A service SAS

    A service SAS is narrower than an account SAS but is still signed with a storage account access key, so the application would have to hold a key.

  • d
    A policy-bound service SAS

    Referencing a stored access policy makes a service SAS revocable, but the token is still signed with an account access key, which breaks the requirement.

The concept

Azure Storage has three SAS types. Account SAS and service SAS are signed with a storage account access key; a user delegation SAS is signed with a user delegation key that a Microsoft Entra security principal requests.

Why that’s the answer

Only the user delegation SAS avoids account keys entirely: the managed identity calls Get User Delegation Key with its Entra token and signs the SAS with the returned key. A service SAS, with or without a stored access policy, and an account SAS are both computed with key1 or key2, so the application would need the key in memory. A stored access policy changes how a service SAS is revoked, not what signs it.

How to reason it out
  1. Identify the constraint: no workload may read or hold an account key.
  2. Recall what signs each SAS type: account and service SAS use an account key.
  3. Note that a stored access policy does not change the signing key of a service SAS.
  4. Choose the user delegation SAS, which is signed with an Entra-issued user delegation key.

Exam tip: If account keys are off-limits, the only SAS you can issue is a user delegation SAS, signed with an Entra-issued user delegation key.

Configure Access to Azure Storage: SAS, Keys & Firewalls (AZ-104) — the lesson that teaches this.

Question 3Deploy and manage Azure compute resources

An administrator writes a Bicep file named main.bicep and runs 'az bicep build --file main.bicep'. What does the command produce?

Choose one.

  • a
    A compiled executable that provisions the resources when it runs

    Bicep is declarative and never produces a program; provisioning is always done by Azure Resource Manager when a deployment is submitted.

  • b
    A .bicepparam parameter file filled with the default parameter values

    Parameter files are generated by 'az bicep generate-params', not by build; build emits the template itself.

  • c
    A state file that records the resources currently in the subscription

    Bicep has no state file (unlike Terraform); Azure Resource Manager itself is the record of what is deployed.

  • d
    An ARM JSON template file that declares the same resources Correct

    Correct. Build transpiles the .bicep source into an equivalent ARM JSON template, which is what Resource Manager deploys.

The concept

Bicep is a domain-specific language that transpiles to standard ARM JSON templates. Everything a Bicep file expresses is an ARM template underneath, so the deployment engine and capabilities are identical.

Why that’s the answer

'az bicep build' converts the .bicep source into an ARM template JSON file; that is the core relationship between the two languages. It does not produce executables (Bicep is declarative), it does not generate parameter files (that is 'az bicep generate-params'), and there is no state file because Azure Resource Manager is the source of truth for what exists.

How to reason it out
  1. Recall that Bicep is an authoring layer over ARM JSON, not a separate engine.
  2. Map the command: build goes Bicep to JSON; decompile goes JSON to Bicep; generate-params creates a parameter file.
  3. Deploy either the .bicep file directly or the emitted JSON; Resource Manager processes the same ARM JSON either way.

Exam tip: Bicep build emits ARM JSON: same engine, same capabilities, friendlier syntax, no state file.

ARM Templates and Bicep: AZ-104 Deployment Guide — the lesson that teaches this.

Question 4Implement and manage virtual networking

You are planning the address space for a new Azure virtual network that will never be exposed directly to the internet. Which address range is a valid RFC 1918 private range you can assign to the VNet?

Choose one.

  • a
    11.0.0.0/16

    11.0.0.0/8 is publicly routable address space (not part of RFC 1918), so using it risks conflicts with real internet destinations.

  • b
    172.32.0.0/16

    The RFC 1918 range in the 172 block is 172.16.0.0/12, which ends at 172.31.255.255 — 172.32.0.0 falls just outside it and is public space.

  • c
    10.20.0.0/16 Correct

    10.0.0.0/8 is one of the three RFC 1918 private ranges, so any block carved from it, such as 10.20.0.0/16, is a valid private VNet address space.

  • d
    192.169.0.0/16

    The RFC 1918 range is 192.168.0.0/16; 192.169.0.0/16 is adjacent public address space and should not be used for private networks.

The concept

Azure virtual networks should use RFC 1918 private address space: 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16. Choosing public ranges can break connectivity to real internet endpoints and complicates future peering and hybrid connectivity.

Why that’s the answer

10.20.0.0/16 sits inside 10.0.0.0/8, one of the three RFC 1918 private ranges, so it is a safe, valid VNet address space. The distractors are traps built on off-by-one boundaries: 11.0.0.0/16 is outside 10.0.0.0/8 entirely, 172.32.0.0/16 is just past the end of 172.16.0.0/12 (which stops at 172.31.255.255), and 192.169.0.0/16 is just past 192.168.0.0/16. All three are publicly routable ranges.

How to reason it out
  1. Memorize the three RFC 1918 ranges: 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16.
  2. Check whether the candidate range falls entirely inside one of those blocks — pay attention to the exact boundaries (172.16–172.31, not 172.32).
  3. Also plan for uniqueness: pick ranges that will not overlap with other VNets or on-premises networks you may later peer or connect to.

Exam tip: Valid private VNet space comes from 10.0.0.0/8, 172.16.0.0/12, or 192.168.0.0/16 — watch the exact block boundaries.

Azure Virtual Networks, Subnets, Peering & User-Defined Routes — the lesson that teaches this.

Question 5Monitor and maintain Azure resources

An administrator wants to view the average CPU percentage of an Azure virtual machine over the last hour, with data points that appear within a few minutes of being collected and no agent installation required. Which Azure Monitor data type should the administrator use?

Choose one.

  • a
    Platform metrics Correct

    Platform metrics are numeric time-series values collected automatically from Azure resources at near-real-time frequency. Host-level metrics such as Percentage CPU require no agent and are viewable immediately in metrics explorer.

  • b
    Resource logs

    Resource logs record operations performed within a resource and must be routed via a diagnostic setting before you can analyze them. They are event records, not lightweight numeric time-series data, and are not the fastest path to a CPU chart.

  • c
    Activity log events

    The activity log records subscription-level control-plane operations, such as who started or resized the VM. It contains no performance data like CPU percentage.

  • d
    Application Insights traces

    Application Insights collects application-level telemetry such as requests and dependencies from instrumented apps. It does not report host CPU for a VM and requires instrumentation to collect anything.

The concept

Azure Monitor stores two fundamental data types: metrics (lightweight numeric time-series values, collected at regular intervals, near-real-time) and logs (event and trace records with rich properties, queried with KQL in a Log Analytics workspace).

Why that’s the answer

Platform metrics fit every requirement in the scenario: they are collected automatically for all Azure resources with no agent, they are numeric samples suitable for charting an average, and they appear in metrics explorer within minutes. Resource logs need a diagnostic setting and a destination before analysis, the activity log only records control-plane operations (not performance counters), and Application Insights is app telemetry that requires instrumentation and never captures host CPU.

How to reason it out
  1. Open the virtual machine in the Azure portal and select Metrics under Monitoring.
  2. Choose the Percentage CPU metric from the Virtual Machine Host namespace.
  3. Set the aggregation to Avg and the time range to the last hour to render the chart.

Exam tip: Platform metrics are agentless, numeric, and near-real-time; logs are event records that need routing and KQL to analyze.

Azure Monitor: Metrics, Logs, Diagnostic Settings & Alerts (AZ-104) — the lesson that teaches this.

The AZ-104 question bank, by domain

The bank is built to the exam's own weighting, so the practice you get reflects the marks that are actually on offer — not whichever domain was easiest to write questions for.

Published AZ-104 practice questions per exam domain
DomainExam weightTopicsQuestions
Manage Azure identities and governance24%3136
Implement and manage storage19%3114
Deploy and manage Azure compute resources24%4144
Implement and manage virtual networking19%3114
Monitor and maintain Azure resources14%284
Total100%15592

Practise AZ-104 one domain at a time

How AZ-104 questions are worded

Most AZ-104 questions are not asking whether you can recall a definition. They describe a situation and ask which option satisfies it — so the skill being tested is reading the requirement precisely and eliminating options that fail it.

Single-response vs multiple-response

A single-response question has exactly one right answer. A multiple-response question tells you how many to pick ("Choose TWO") and there is no partial credit — getting one of the two right scores nothing. Read that instruction before you read the options.

Read the last line first

The final sentence is the actual question; everything before it is scenario. Read it first, then read the scenario knowing what you are looking for. It stops you from building an answer in your head that the question never asked for.

Hunt for the qualifier

Most scenarios turn on one word — MOST cost-effective, LEAST operational overhead, with the LEAST latency, without changing application code. Two options are frequently both technically correct, and the qualifier is the only thing separating them.

Eliminate, then choose

Distractors are almost always real Microsoft Azure services doing a real job — just not this job. Rule out the ones that break a stated constraint before you compare what's left. On a question you truly don't know, eliminating two options turns a guess into a coin flip.

Practise AZ-104 from your browser

The SaveMyCert Chrome extension opens a daily drill of 5 AZ-104 questions in the side panel, with the full explanation behind every answer. No account needed.

Get the Chrome extension (opens in a new tab)

Beyond AZ-104 practice

AZ-104 practice questions: your questions

Yes. You can answer 5 questions a day with no account at all, and a free account raises that to 30 a day across the full 592-question AZ-104 bank, with an explanation on every option. Pro removes the daily cap entirely.

Source

Exam structure, domain weights and scoring on this page come from the official AZ-104 exam guide.