Check ID:
Provider: Azure
Service:
Severity: HIGH
Categories:
Resource type:
monitor_storage_account_with_activity_logs_is_privateProvider: Azure
Service:
monitorSeverity: HIGH
Categories:
internet-exposed, loggingResource type:
microsoft.storage/storageaccountsWhat this check verifies
Azure Monitor Activity Logs sent to a Storage account are evaluated for Blob public access. The finding identifies whether the account that stores the logs hasAllowBlobPublicAccess turned on.
Risk
Exposed log data undermines confidentiality by revealing operations, resource IDs, IPs, and identities. Adversaries gain reconnaissance to map controls, craft targeted attacks, and time actions to avoid detection, enabling lateral movement and broader compromise.Recommendation
SetAllowBlobPublicAccess=false on the storage account holding logs. Enforce least privilege via RBAC or scoped SAS, use private endpoints and network restrictions, and enable immutability for log containers to add defense in depth and prevent unauthorized access.
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
az storage account update —name <STORAGE_ACCOUNT_NAME> —resource-group <RESOURCE_GROUP_NAME> —allow-blob-public-access false
References
- https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/diagnostic-settings
- https://learn.microsoft.com/en-us/security/benchmark/azure/security-controls-v3-network-security#ns-2-secure-cloud-services-with-network-controls
- https://www.trendmicro.com/cloudoneconformity/knowledge-base/azure/Monitor/check-for-publicly-accessible-activity-log-storage-container.html
Where this check fires
This check runs on every scheduled scan against your Azure account. Findings appear at Cloud Security → Findings filterable byCheck ID = monitor_storage_account_with_activity_logs_is_private. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to Azure checks