17.2.3 Ensure Default Network Access Rule for Storage Accounts is Set to Deny (Automated)
Description
Restricting default network access helps to provide a new layer of security, since storage accounts accept connections from clients on any network. To limit access to selected networks, the default action must be changed.
Rationale
Storage accounts should be configured to deny access to traffic from all networks (including internet traffic). Access can be granted to traffic from specific Azure Virtual networks, allowing a secure network boundary for specific applications to be built. Access can also be granted to public internet IP address ranges to enable connections from specific internet or on-premises clients. When network rules are configured, only applications from allowed networks can access a storage account. When calling from an allowed network, applications continue to require proper authorization (a valid access key or SAS token) to access the storage account.
Impact
All allowed networks will need to be whitelisted on each specific network, creating administrative overhead. This may result in loss of network connectivity, so do not turn on for critical resources during business hours.
Audit Procedure
Audit from Azure Portal
- Go to Storage Accounts.
- For each storage account, under
Security + networking, clickNetworking. - Click the
Firewalls and virtual networksheading. - Ensure that
Public network accessis not set toEnabled from all networks.
Audit from Azure CLI
Ensure defaultAction is not set to Allow.
az storage account list --query '[*].networkRuleSet'
Audit from PowerShell
Connect-AzAccount
Set-AzContext -Subscription <subscription ID>
Get-AzStorageAccountNetworkRuleset -ResourceGroupName <resource group> -Name <storage account name> |Select-Object DefaultAction
PowerShell Result - Non-Compliant:
DefaultAction : Allow
PowerShell Result - Compliant:
DefaultAction : Deny
Audit from Azure Policy
If referencing a digital copy of this Benchmark, clicking a Policy ID will open a link to the associated Policy definition in Azure. If referencing a printed copy, you can search Policy IDs from this URL: https://portal.azure.com/#view/Microsoft_Azure_Policy/PolicyMenuBlade/~/Definitions
- Policy ID:
34c877ad-507e-4c82-993e-3452a6e0ad3c- Name: 'Storage accounts should restrict network access' - Policy ID:
2a1a9cdf-e04d-429a-8416-3bfb72a1b26f- Name: 'Storage accounts should restrict network access using virtual network rules'
Expected Result
The Public network access setting is not set to Enabled from all networks for each storage account. In Azure CLI, the defaultAction in networkRuleSet is set to Deny. In PowerShell, DefaultAction returns Deny. The Azure Policies 'Storage accounts should restrict network access' and 'Storage accounts should restrict network access using virtual network rules' show compliant.
Remediation
Remediate from Azure Portal
- Go to
Storage Accounts. - For each storage account, under
Security + networking, clickNetworking. - Click the
Firewalls and virtual networksheading. - Set
Public network accesstoEnabled from selected virtual networks and IP addresses. - Add rules to allow traffic from specific networks and IP addresses.
- Click
Save.
Remediate from Azure CLI
Use the below command to update default-action to Deny.
az storage account update --name <StorageAccountName> --resource-group <resourceGroupName> --default-action Deny
Default Value
By default, Storage Accounts will accept connections from clients on any network.
References
Profile
Level 1 | Automated