Malware scanning stops at 10,000 GB per storage account per month, by default, and then simply stops.
That default cap exists for cost predictability and it means uploads past the threshold go unscanned for the rest of the month. Defender for Storage is genuinely good protection for Blob, Files and Data Lake, and the configuration decisions determine how much of it you actually get.

- 10,000 GBDefault monthly scan cap per storage account
- 3 servicesBlob Storage, Files and Data Lake Storage
- AgentlessEnable at subscription, resource or scale
- No logs neededDiagnostic logs are not a prerequisite
Eight things that determine how much protection you actually get.
Coverage across three storage services
It analyses data plane and control plane telemetry from Azure Blob Storage, Azure Files and Azure Data Lake Storage. That combination matters because most organisations think of storage protection as a blob problem and have file shares carrying just as much sensitive material.
Malware scanning using Defender Antivirus
Full malware scanning on uploaded objects, or on demand with targeted scans of specific blobs, files, containers or file shares, applying Microsoft Defender Antivirus capabilities. It is agentless, and it is the feature that stops a storage account becoming an entry and distribution point.
The monthly cap, which is on by default
The limit is set to 10,000 GB of uploaded blobs per month per storage account by default. Once exceeded, scanning ceases for the remaining blobs, with a 20 GB confidence interval. Nothing about that state is obvious unless you configured the alerts that warn about it.
Sensitive data threat detection at no extra cost
Powered by Sensitive Data Discovery, an agentless engine using smart sampling to find resources holding sensitive data, integrating with Microsoft Purview sensitive information types and classification labels. Microsoft states it can be enabled or disabled at no additional cost, so there is little reason to leave it off.
Detecting activity from entities with no identity
It detects suspicious activities from entities without identities accessing data through misconfigured and overly permissive shared access signatures, which may have been leaked or compromised. In estates that hand out SAS tokens freely, this is frequently the most valuable detection of the set.
Event driven response for actual remediation
Integration with Azure Event Grid triggers automated remediation, connecting Azure Functions or Logic Apps to auto-delete, quarantine or alert on malicious blobs in near real time. Detection without that is a notification. With it, the malicious object stops being reachable.
Activity monitoring without turning on logs
Continuous analysis of data and control plane logs with no need to turn on resource logs, using threat intelligence to identify suspicious signatures such as malicious IP addresses and Tor exit nodes. Microsoft states activity monitoring does not affect performance, ingestion capacity or data access.
Enabling it at scale and keeping it enabled
Subscription level enablement covers all existing and new storage accounts automatically and is the recommended approach. Azure Policy can enforce enablement on new subscriptions and help prevent configuration drift, which is what stops coverage decaying as the estate grows.
Past 10,000 GB in a month, scanning stops until the month rolls over.
The cap exists to make costs predictable, which is reasonable. What is not reasonable is finding out about it after an unscanned upload became a problem.
- By default the limit is 10,000 GB of uploaded blobs per month per storage account. Once that threshold is exceeded, scanning ceases for the remaining blobs, with a 20 GB confidence interval. The account is still protected by activity monitoring, but new uploads are not being scanned.
- Two alerts exist for exactly this, and they are worth routing somewhere a person reads. The first fires at 75 per cent of the monthly cap, giving time to adjust it. The second fires when the cap is reached and scanning is paused, and it includes the affected storage accounts.
- The cap can be set subscription wide or per storage account, and under a protected subscription individual accounts can carry different limits. An account receiving large volumes of untrusted uploads should not share a cap with one that receives almost nothing.
- Also worth knowing for cost modelling: malware scanning incurs additional charges for other Azure services, specifically Azure Storage read operations, Azure Storage blob indexing and Azure Event Grid notifications. Those are outside the plan itself and belong in the estimate.
Four things that turn this from enabled to effective.
We size the scan cap per account rather than accepting the default
The default is 10,000 GB of uploaded blobs per month per storage account, and once exceeded scanning ceases for the remaining blobs. Accounts receiving heavy untrusted uploads need a higher cap or the protection lapses part way through every month without anybody noticing.
We build the response, not just the detection
Event Grid integration with a Function or Logic App can auto-delete or quarantine a malicious blob in near real time. Without it, a malicious object stays downloadable while somebody reads an alert. That difference is the whole value of the malware scanning feature.
We turn on the feature that costs nothing
Sensitive data threat detection can be enabled or disabled at no additional cost, and it uses Sensitive Data Discovery with Purview sensitive information types and classification labels. Leaving it off means alerts arrive without the context of whether the data at risk actually mattered.
We check what hash reputation cannot see
Hash reputation analysis is available in all plans and has documented gaps: SMB file shares and blobs created using Put Block and Put Block List are unsupported use cases. Organisations relying on it for file shares are relying on something that does not cover them.
Four phases across roughly four weeks.
- 01Week 1
Inventory storage and understand the upload profile
Which storage accounts exist, which hold sensitive material, which receive uploads from outside the organisation, and roughly what volume each takes per month. That last number is what determines whether the default cap is generous or restrictive for a given account.
- Storage account inventory across subscriptions
- Accounts receiving untrusted uploads identified
- Monthly upload volume estimated per account
- Classic plan usage identified for migration
- 02Week 2
Enable at subscription scope and set caps deliberately
Subscription level enablement so existing and new accounts are covered automatically, with exclusions where genuinely justified. Caps set per account against the upload profile rather than left at the default for everything.
- Plan enabled at subscription level
- Exclusions documented with reasons
- Scan caps set per account against volume
- Sensitive data threat detection enabled
- 03Week 3
Build the response path
Event Grid integration with a Function or Logic App to auto-delete, quarantine or alert on malicious blobs. Without this, a detection is a message in a portal, and the malicious object remains exactly where somebody can download it.
- Event Grid integration configured
- Automated remediation action chosen and built
- Quarantine location and retention defined
- Response tested with a benign test file
- 04Week 4
Route the alerts and prevent drift
Both cap alerts routed to somebody who can act, security alerts integrated with wherever your team works, and Azure Policy configured to enforce enablement on new subscriptions so coverage does not decay as the estate grows.
- Cap alerts routed to a named owner
- Security alerts integrated with the SOC workflow
- Azure Policy enforcing enablement on new subscriptions
- Coverage reporting established
Six situations where storage is the exposure.
A business accepting customer file uploads
Any application that lets somebody outside the organisation upload a file into storage is accepting untrusted content by definition. Malware scanning on upload, with Event Grid remediation to quarantine anything malicious, is the direct control, and the cap needs sizing for the volume.
A regulated firm with a data exfiltration concern
Activity monitoring detects unusual access patterns and potential exfiltration, and sensitive data threat detection prioritises alerts by the sensitivity of the data at risk. Together they answer a supervisory question about detecting data leaving, with alerts rather than assurances.
An organisation handing out shared access signatures
Defender for Storage detects suspicious activity from entities without identities using misconfigured and overly permissive SAS tokens, which may be leaked or compromised. For estates where SAS tokens are issued casually, this is often the detection that finds something real first.
A provider storing records in Azure Files
File shares carry as much sensitive material as blob containers and receive far less attention. Coverage includes Azure Files, and it is worth confirming rather than assuming, particularly where hash reputation analysis is being relied on and SMB file shares are an unsupported use case for it.
An operator ingesting data from field systems
Data Lake Storage receiving telemetry and files from operational systems is a path into the environment from equipment that is rarely as well secured as the corporate estate. Coverage extends to Data Lake Storage, and activity monitoring works without enabling diagnostic logs.
A company whose Azure estate keeps growing
New subscriptions appear, storage accounts are created by project teams, and coverage decays quietly. Azure Policy can automatically enforce enablement on new subscriptions and help prevent configuration drift, which turns coverage from a periodic clean-up into a property of the platform.
How UAE organisations protect Azure storage.
| Feature | Enabled and configured | Enabled at defaults | Not enabled |
|---|---|---|---|
Blob, Files and Data Lake covered | Yes | Yes | No |
Malware scanning active | Yes | Until the cap | No |
Caps sized to upload volume | Per account | Default everywhere | Not applicable |
Cap alerts routed | Yes | No | Not applicable |
Sensitive data detection on | Yes | Sometimes | No |
SAS abuse detected | Yes | Yes | No |
Malicious blob removed automatically | Event Grid remediation | No | No |
New subscriptions covered | Azure Policy enforced | Manual | No |
Additional Azure charges modelled | Yes | No | Not applicable |
Storage as a distribution point | Addressed | Partly | Unaddressed |
Malware scanning against hash reputation analysis.
| Consideration | Malware scanning | Hash reputation analysis | |
|---|---|---|---|
| Method | Microsoft Defender Antivirus, deep file scan | Hash compared against known malware | |
| Includes hash reputation | Yes, incorporated | It is the whole method | |
| Plan availability | New plan only, paid feature | Available in all plans | |
| Scope | Blob storage | Blob storage and Azure Files | |
| SMB file shares | Not in scope of this comparison | Unsupported use case | |
| Blobs created with Put Block and Put Block List | Not in scope of this comparison | Unsupported use case | |
| Catches unknown malware | Yes, content is analysed | No, only known hashes | |
| On demand scanning | Yes, targeted blobs, files, containers, shares | No | |
| Monthly cap applies | Yes, 10,000 GB by default | No | |
| Additional Azure charges | Read operations, blob indexing, Event Grid | None stated |
Five steps, and two of them are about defaults.
- 1
Inventory storage and profile the uploads
Every storage account across subscriptions, which hold sensitive data, which receive uploads from outside the organisation, and the approximate monthly upload volume for each. That volume figure is what makes the cap decision possible rather than arbitrary.
- 2
Enable at subscription scope, with justified exclusions
Subscription level enablement is recommended so all existing and new storage accounts are covered automatically. Any exclusion gets a recorded reason, because an excluded account looks identical to a covered one in every summary view.
- 3
Set caps per account and enable sensitive data detection
Caps set against the upload profile rather than left at the 10,000 GB default across the board, since scanning ceases once the threshold is exceeded. Sensitive data threat detection enabled, given it can be turned on at no additional cost.
- 4
Build automated remediation through Event Grid
A Function or Logic App connected to auto-delete, quarantine or alert on malicious blobs in near real time, with the quarantine location and retention decided. Then tested with a benign test file, because an untested response path is an assumption.
- 5
Route alerts and prevent drift with policy
Both scan cap alerts routed to a named owner, security alerts integrated with the team workflow, and Azure Policy configured to enforce enablement on new subscriptions so coverage keeps pace with the estate rather than lagging behind it.
What organisations ask about Defender for Storage.
Fifteen questions about your own storage protection.
Coverage
- Is the plan enabled at subscription level?Recommended for coverage.
- Which accounts are excluded, and why?Exclusions should be justified.
- Are we still on the classic plan?It needs migration.
- Are Azure Files accounts covered?Not only blobs.
- Does Azure Policy enforce new subscriptions?It prevents drift.
Scanning
- What cap is set per storage account?Default is 10,000 GB monthly.
- Which accounts exceed it?Scanning stops when they do.
- Are the two cap alerts routed anywhere?75 per cent and reached.
- Is sensitive data threat detection on?No additional cost.
- Do we rely on hash reputation for file shares?SMB is unsupported there.
Response
- Is Event Grid integration configured?For automated remediation.
- What happens when malware is found?Delete, quarantine or alert.
- Has the response been tested?With a benign test file.
- Who receives the security alerts?A person, not a shared inbox.
- Do we track additional Azure charges?Reads, indexing, Event Grid.
Check whether any storage account exceeds 10,000 GB of uploads in a typical month.
That is the default scan cap, and past it scanning stops for the rest of the month. If an account crosses it regularly, your protection has a monthly gap nobody was told about.
Related Services
Explore more solutions that work great with this service
Defender for Cloud
Azure posture, and the free tier almost nobody has enabled
Cloud Security Posture Audit
The real inventory, then configuration and identity
Azure Security Audit
Subscription audit, starting with the free tier you already own
Defender for Servers
Plan 1 versus Plan 2, and the Azure Arc dependency
AI Data Security Posture
Copilot readiness and control of shadow AI use
Sensitivity Labels
Classification that travels with the file, and governs what Copilot sees
Azure Key Vault
Secrets, keys and certificates out of config files
Microsoft Security Dubai
Entra, Defender, Purview, Sentinel, and what you already own