Azure Storage Services
Services
| Service |
Use When |
CLI |
| Blob Storage |
Objects, files, backups, static content |
az storage blob |
| File Shares |
SMB file shares, lift-and-shift |
az storage file |
| Queue Storage |
Async messaging, task queues |
az storage queue |
| Table Storage |
NoSQL key-value (consider Cosmos DB) |
az storage table |
| Data Lake |
Big data analytics, hierarchical namespace |
az storage fs |
CLI commands
# List storage accounts
az storage account list --output table
# List containers
az storage container list --account-name ACCOUNT --output table
# List blobs
az storage blob list --account-name ACCOUNT --container-name CONTAINER --output table
# Download blob
az storage blob download --account-name ACCOUNT --container-name CONTAINER --name BLOB --file LOCAL_PATH
# Upload blob
az storage blob upload --account-name ACCOUNT --container-name CONTAINER --name BLOB --file LOCAL_PATH
For deeper service docs and patterns, call mcp_azure-mcp_documentation
with command: "microsoft_docs_search" and the relevant Azure Storage
topic, or follow the links in Service Details.
Storage Account Tiers
| Tier |
Use Case |
Performance |
| Standard |
General purpose, backup |
Milliseconds |
| Premium |
Databases, high IOPS |
Sub-millisecond |
Blob Access Tiers
| Tier |
Access Frequency |
Cost |
| Hot |
Frequent |
Higher storage, lower access |
| Cool |
Infrequent (30+ days) |
Lower storage, higher access |
| Cold |
Rare (90+ days) |
Lower still |
| Archive |
Rarely (180+ days) |
Lowest storage, rehydration required |
Redundancy Options
| Type |
Durability |
Use Case |
| LRS |
11 nines |
Dev/test, recreatable data |
| ZRS |
12 nines |
Regional high availability |
| GRS |
16 nines |
Disaster recovery |
| GZRS |
16 nines |
Best durability |
Rules
- Use Managed Identity over shared keys — connect via
DefaultAzureCredential (or equivalent SDK helper) instead of account keys or SAS where possible
- Disable public blob access by default; use private endpoints + Entra-only access for prod data
- Match the access tier to the access pattern — Hot for active, Cool for 30+ days, Cold for 90+ days, Archive for 180+ days (rehydration required to read)
- Pick redundancy by RPO/RTO — LRS for dev, ZRS for regional HA, GRS/GZRS for DR
- Apply lifecycle management to auto-tier blobs based on age and last access
- Premium tier is for sub-millisecond latency / high-IOPS workloads; default is Standard
- Security baseline is non-negotiable — see iac-security-baseline.md (TLS 1.2 minimum, HTTPS-only, public blob disabled, Managed Identity)
- Out of scope: SQL / Cosmos DB (use
azure-prepare), messaging via Event Hubs / Service Bus
Steps
- Identify the storage service for the workload — see Services (Blob / File / Queue / Table / Data Lake)
- Choose redundancy — LRS / ZRS / GRS / GZRS based on RPO/RTO requirements
- Choose access tier — Hot / Cool / Cold / Archive based on expected access frequency
- Apply security baseline — see iac-security-baseline.md (HTTPS-only, TLS 1.2, public blob disabled, Managed Identity)
- Run routine operations via
az storage CLI — see CLI commands
- Wire lifecycle management for long-lived data to auto-tier and reduce cost
Service Details
For deep documentation on specific services:
SDK Quick References
For building applications with Azure Storage SDKs, see the condensed guides:
- Blob Storage: Python | TypeScript | Java | Rust
- Queue Storage: Python | TypeScript
- File Shares: Python | TypeScript
- Data Lake: Python
- Tables: Python | Java
For full package listing across all languages, see SDK Usage Guide.
Azure SDKs
For building applications that interact with Azure Storage programmatically, Azure provides SDK packages in multiple languages (.NET, Java, JavaScript, Python, Go, Rust). See SDK Usage Guide for package names, installation commands, and quick start examples.
Reference Index
Load these on demand — do NOT read all at once:
| Reference |
When to Load |
../entra-app-registration/references/auth-best-practices.md |
Auth Best Practices |
references/sdk-usage.md |
Sdk Usage |
1---2name: azure-storage3description: **UTILITY SKILL** — Azure Storage Services: Blob, File Shares, Queue, Table, and Data Lake. Object storage, SMB shares, async messaging, NoSQL key-value, big-data analytics. Access tiers + lifecycle management. WHEN: "blob storage", "file shares", "queue storage", "table storage", "data lake", "access tiers", "lifecycle management". DO NOT USE FOR: SQL databases, Cosmos DB (use azure-prepare), Event Hubs / Service Bus messaging.4license: MIT5---67# Azure Storage Services89## Services1011| Service | Use When | CLI |12| ------------- | ------------------------------------------ | ------------------ |13| Blob Storage | Objects, files, backups, static content | `az storage blob` |14| File Shares | SMB file shares, lift-and-shift | `az storage file` |15| Queue Storage | Async messaging, task queues | `az storage queue` |16| Table Storage | NoSQL key-value (consider Cosmos DB) | `az storage table` |17| Data Lake | Big data analytics, hierarchical namespace | `az storage fs` |1819## CLI commands2021```bash22# List storage accounts23az storage account list --output table2425# List containers26az storage container list --account-name ACCOUNT --output table2728# List blobs29az storage blob list --account-name ACCOUNT --container-name CONTAINER --output table3031# Download blob32az storage blob download --account-name ACCOUNT --container-name CONTAINER --name BLOB --file LOCAL_PATH3334# Upload blob35az storage blob upload --account-name ACCOUNT --container-name CONTAINER --name BLOB --file LOCAL_PATH36```3738For deeper service docs and patterns, call `mcp_azure-mcp_documentation`39with `command: "microsoft_docs_search"` and the relevant Azure Storage40topic, or follow the links in [Service Details](#service-details).4142## Storage Account Tiers4344| Tier | Use Case | Performance |45| -------- | ----------------------- | --------------- |46| Standard | General purpose, backup | Milliseconds |47| Premium | Databases, high IOPS | Sub-millisecond |4849## Blob Access Tiers5051| Tier | Access Frequency | Cost |52| ------- | --------------------- | ------------------------------------ |53| Hot | Frequent | Higher storage, lower access |54| Cool | Infrequent (30+ days) | Lower storage, higher access |55| Cold | Rare (90+ days) | Lower still |56| Archive | Rarely (180+ days) | Lowest storage, rehydration required |5758## Redundancy Options5960| Type | Durability | Use Case |61| ---- | ---------- | -------------------------- |62| LRS | 11 nines | Dev/test, recreatable data |63| ZRS | 12 nines | Regional high availability |64| GRS | 16 nines | Disaster recovery |65| GZRS | 16 nines | Best durability |6667## Rules6869- **Use Managed Identity over shared keys** — connect via `DefaultAzureCredential` (or equivalent SDK helper) instead of account keys or SAS where possible70- **Disable public blob access** by default; use private endpoints + Entra-only access for prod data71- **Match the access tier to the access pattern** — Hot for active, Cool for 30+ days, Cold for 90+ days, Archive for 180+ days (rehydration required to read)72- **Pick redundancy by RPO/RTO** — LRS for dev, ZRS for regional HA, GRS/GZRS for DR73- **Apply lifecycle management** to auto-tier blobs based on age and last access74- **Premium tier** is for sub-millisecond latency / high-IOPS workloads; default is Standard75- **Security baseline** is non-negotiable — see [iac-security-baseline.md](../../instructions/references/iac-security-baseline.md) (TLS 1.2 minimum, HTTPS-only, public blob disabled, Managed Identity)76- **Out of scope**: SQL / Cosmos DB (use `azure-prepare`), messaging via Event Hubs / Service Bus7778## Steps79801. **Identify the storage service** for the workload — see [Services](#services) (Blob / File / Queue / Table / Data Lake)812. **Choose redundancy** — LRS / ZRS / GRS / GZRS based on RPO/RTO requirements823. **Choose access tier** — Hot / Cool / Cold / Archive based on expected access frequency834. **Apply security baseline** — see [iac-security-baseline.md](../../instructions/references/iac-security-baseline.md) (HTTPS-only, TLS 1.2, public blob disabled, Managed Identity)845. **Run routine operations via `az storage` CLI** — see [CLI commands](#cli-commands)856. **Wire lifecycle management** for long-lived data to auto-tier and reduce cost8687## Service Details8889For deep documentation on specific services:9091- Blob storage patterns and lifecycle -> [Blob Storage documentation](https://learn.microsoft.com/azure/storage/blobs/storage-blobs-overview)92- File shares and Azure File Sync -> [Azure Files documentation](https://learn.microsoft.com/azure/storage/files/storage-files-introduction)93- Queue patterns and poison handling -> [Queue Storage documentation](https://learn.microsoft.com/azure/storage/queues/storage-queues-introduction)9495## SDK Quick References9697For building applications with Azure Storage SDKs, see the condensed guides:9899- **Blob Storage**: [Python](references/sdk/azure-storage-blob-py.md) | [TypeScript](references/sdk/azure-storage-blob-ts.md) | [Java](references/sdk/azure-storage-blob-java.md) | [Rust](references/sdk/azure-storage-blob-rust.md)100- **Queue Storage**: [Python](references/sdk/azure-storage-queue-py.md) | [TypeScript](references/sdk/azure-storage-queue-ts.md)101- **File Shares**: [Python](references/sdk/azure-storage-file-share-py.md) | [TypeScript](references/sdk/azure-storage-file-share-ts.md)102- **Data Lake**: [Python](references/sdk/azure-storage-file-datalake-py.md)103- **Tables**: [Python](references/sdk/azure-data-tables-py.md) | [Java](references/sdk/azure-data-tables-java.md)104105For full package listing across all languages, see [SDK Usage Guide](references/sdk-usage.md).106107## Azure SDKs108109For building applications that interact with Azure Storage programmatically, Azure provides SDK packages in multiple languages (.NET, Java, JavaScript, Python, Go, Rust). See [SDK Usage Guide](references/sdk-usage.md) for package names, installation commands, and quick start examples.110111## Reference Index112113Load these on demand — do NOT read all at once:114115| Reference | When to Load |116| ----------------------------------- | ------------------- |117| `../entra-app-registration/references/auth-best-practices.md` | Auth Best Practices |118| `references/sdk-usage.md` | Sdk Usage |