Redundancy (decide first, it's hard to change some combinations later)
| SKU | Copies | Protects against |
|---|---|---|
| LRS | 3 in one datacenter | Disk/rack failure |
| ZRS | 3 across availability zones | Zone failure |
| GRS / RA-GRS | LRS + async copy to the paired region | Region outage (RA = read access to the secondary) |
| GZRS / RA-GZRS | ZRS + async copy to the paired region | Zone and region failures |
Production data with a DR requirement: GZRS or RA-GZRS where available.
Network
-
publicNetworkAccessdisabled, access through private endpoints (blob, file, dfs as needed). - If public access must stay, firewall with selected networks and trusted Microsoft services only.
- Minimum TLS 1.2; secure transfer required.
az storage account update -g rg-data -n stcustdataprodcin \
--public-network-access Disabled --min-tls-version TLS1_2 --https-only true \
--allow-blob-public-access false --allow-shared-key-access false
Identity
- Shared key access disabled where all clients support Entra ID; apps use managed identities with
Storage Blob Data Reader/Contributor. - If SAS is unavoidable: user delegation SAS, short expiry, stored access policies.
Data protection
- Blob soft delete (for example 14 days) and container soft delete.
- Versioning enabled; point-in-time restore for block blobs if needed.
- Azure Files: share soft delete + Azure Backup snapshots.
- Immutability (time-based retention) for audit or ransomware-sensitive data.
- Resource lock (
CanNotDelete) on the account.
az storage account blob-service-properties update -g rg-data --account-name stcustdataprodcin \
--enable-delete-retention true --delete-retention-days 14 \
--enable-container-delete-retention true --container-delete-retention-days 14 \
--enable-versioning true
Cost
- Lifecycle management: move to Cool after 30 days, Cold/Archive after 180 days, delete old versions after 90 days.
Monitoring
- Diagnostic logs (StorageRead/Write/Delete) to Log Analytics.
- Alerts on availability, server latency and unusual delete volume.
- Defender for Storage (malware scanning on upload if customers upload files).
Note
Geo-redundancy is asynchronous. After a failover to the secondary, writes from the last minutes may be missing; check Last Sync Time before deciding to fail over (see the storage DR post).