standard
turbot/azure_cis

Pipeline: 8.5 Ensure that 'Disk Network Access' is NOT set to 'Enable public access from all networks'

Description

Virtual Machine Disks and snapshots can be configured to allow access from different network resources.

The setting 'Enable public access from all networks' is, in many cases, an overly permissive setting on Virtual Machine Disks that presents atypical attack, data infiltration, and data exfiltration vectors. If a disk to network connection is required, the preferred setting is to 'Disable public access and enable private access.'

Remediation

From Azure Portal

Part A. Select the Virtual Machine to Remediate

  1. Using the search bar, search for and open the Virtual Machines service.
  2. Click on the name of the Virtual Machine to be remediated.

Part B. Remediate each Virtual Machine Disk individually

  1. From the selected Virtual Machine resource window, expand the Settings menu item and click Disks.
  2. For each disk, click the name of the disk to open the disk resource window.
  3. From the selected Disk resource window, expand the Settings menu item, and click Networking.

Under Network access, select the radio button for either:

  • Disable public access and enable private access
  • Disable public and private access

Repeat Part B for each Disk attached to a VM.

Repeat Parts A and B to remediate all Disks in all VMs.

From Powershell

To disable PublicNetworkAccess and to set a DenyAll setting for the disk's NetworkAccessPolicy for each managed disk, run the following command:

$disk = Get-AzDisk -ResourceGroupName ‘<resource group name>’ -DiskName ‘<disk name>
$disk.NetworkAccessPolicy = 'DenyAll'
$disk.PublicNetworkAccess = 'Disabled'
Update-AzDisk -ResourceGroup '<resource group name> -DiskName $disk.Name -Disk $disk

To disable PublicNetworkAccess and to set an AllowPrivate setting for the disk's NetworkAccessPolicy for each managed disk, run the following command:

$disk = Get-AzDisk -ResourceGroupName ‘<resource group name>’ -DiskName ‘<disk name>
$disk.NetworkAccessPolicy = 'AllowPrivate'
$disk.PublicNetworkAccess = 'Disabled'
$disk.DiskAccessId = '/subscriptions/<subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.Compute/diskAccesses/<private disk access name>
Update-AzDisk -ResourceGroup '<resource group name> -DiskName $disk.Name -Disk $disk

From Azure CLI

To configure a disk to allow private access only, run the following command making sure you have the Disk Access ID from a private disk access end point.

az disk update --name <managed disk name> --resource-group <resource group name> --network-access-policy AllowPrivate --disk-access <disk access ID>

To completely disable public and private access for a disk, run the following command (still in preview) for each disk:

az disk update --name <managed disk name> --resource-group <resource group name> --public-network-access Disabled --network-access-policy DenyAll

Default Value

By default, Disk Network access is set to Enable public access from all networks.

Run the pipeline

To run this pipeline from your terminal:

flowpipe pipeline run azure_cis.pipeline.cis_v300_8_5

Use this pipeline

To call this pipeline from your pipeline, use a step:

step "pipeline" "step_name" {
pipeline = azure_cis.pipeline.cis_v300_8_5
}

Params

NameTypeRequiredDescriptionDefault
database
connection.steampipe
YesDatabase connection string.connection.steampipe.default
notifier
notifier
YesThe name of the notifier to use for sending notification messages.notifier.default
notification_level
string
YesThe verbosity level of notification messages to send. Valid options are 'verbose', 'info', 'error'.info

Outputs

This pipeline has no outputs.

Tags

folder = CIS v3.0.0/8 Virtual Machines