Sign in
Menu
Sign up
Docs

CIS Azure Benchmark v4.0.0

ActiveCommon framework

Best for: Customers who plan to develop, deploy, assess, or secure solutions that incorporate Azure. System and application administrators, security specialists, and others who develop solutions using Microsoft products and services can use these best practices to assess and improve security.

Controls by category

161 controls are Mapped to CIS Azure Benchmark v4.0.0.

10.1.1 Ensure soft delete for Azure File Shares is Enabled

10.1.2 Ensure 'SMB protocol version' is set to 'SMB 3.1.1' or higher for SMB file shares

10.1.3 Ensure 'SMB channel encryption' is set to 'AES-256-GCM' or higher for SMB file shares

10.2.1 Ensure that soft delete for blobs on Azure Blob Storage storage accounts is Enabled

10.2.2 Ensure 'Versioning' is set to 'Enabled' on Azure Blob Storage storage accounts

10.3.1.1 Ensure that 'Enable key rotation reminders' is enabled for each Storage Account

10.3.1.2 Ensure that Storage Account access keys are periodically regenerated

10.3.1.3 Ensure 'Allow storage account key access' for Azure Storage Accounts is 'Disabled'

10.3.12 Ensure Redundancy is set to 'geo-redundant storage (GRS)' on critical Azure Storage Accounts

10.3.2.1 Ensure Private Endpoints are used to access Storage Accounts

10.3.2.2 Ensure that 'Public Network Access' is 'Disabled' for storage accounts

10.3.2.3 Ensure default network access rule for storage accounts is set to deny

10.3.3.1 Ensure that 'Default to Microsoft Entra authorization in the Azure portal' is set to 'Enabled'

10.3.4 Ensure that 'Secure transfer required' is set to 'Enabled'

10.3.5 Ensure 'Allow Azure services on the trusted services list to access this storage account' is Enabled for Storage Account Access

10.3.6 Ensure Soft Delete is Enabled for Azure Containers and Blob Storage

10.3.7 Ensure the 'Minimum TLS version' for storage accounts is set to 'Version 1.2'

10.3.8 Ensure 'Cross Tenant Replication' is not enabled

10.3.9 Ensure that 'Allow Blob Anonymous Access' is set to 'Disabled'

2.1.1.2.1 Ensure Critical Data is Encrypted with Customer Managed Keys (CMK)

ControlStatus
Batch accounts should use customer-managed keys to encrypt dataMapped
Cognitive Services accounts should use customer-managed keys to encrypt dataMapped
OS and data disks should use customer-managed keys for encryptionMapped
Container Instance container groups should use customer-managed keys for encryptionMapped
Container registries should use customer-managed keys for encryptionMapped
Azure Cosmos DB accounts should use customer-managed keys to encrypt data at restMapped
Databricks workspaces should have a customer-managed key configuredMapped
Event Hub namespaces should use a customer-managed key for encryptionMapped
Azure HDInsight clusters should use customer-managed keys to encrypt data at restMapped
Azure API for FHIR should use a customer-managed key to encrypt data at restMapped
HPC Cache accounts should use customer-managed keys for encryptionMapped
Azure Data Explorer clusters should use customer-managed keys for encryption at restMapped
Azure Machine Learning workspaces should use customer-managed keys for encryptionMapped
Storage accounts containing operational log containers should use customer-managed keys for encryptionMapped
MySQL servers should use customer-managed keys to encrypt data at restMapped
Service Bus Premium namespaces should use a customer-managed key for encryptionMapped
SQL servers should use customer-managed keys to encrypt data at restMapped
Storage accounts containing VHD OS disks should use customer-managed keys (CMK) for encryptionMapped
Storage accounts should use customer-managed key for encryptionMapped
Azure Synapse workspaces should use customer-managed keys to encrypt data at restMapped

2.2.1.1 Ensure public network access is Disabled

2.2.1.2 Ensure Network Access Rules are set to Deny-by-default

2.2.2.1 Ensure Private Endpoints are used to access {service}

3.1.1 Ensure that Azure Databricks is deployed in a customer-managed virtual network (VNet)

3.1.2 Ensure that network security groups are configured for Databricks subnets

3.1.7 Ensure that diagnostic log delivery is configured for Azure Databricks

3.1.8 Ensure that data at rest and in transit is encrypted in Azure Databricks using customer managed keys (CMK)

4.1.1 Ensure only MFA enabled identities can access privileged Virtual Machine

6.1.1 Ensure that 'security defaults' is enabled in Microsoft Entra ID

6.1.2 Ensure that 'multifactor authentication' is 'enabled' for all users

6.14 Ensure that 'Users can register applications' is set to 'No'

6.15 Ensure that 'Guest users access restrictions' is set to 'Guest user access is restricted to properties and memberships of their own directory objects'

6.16 Ensure that 'Guest invite restrictions' is set to 'Only users assigned to specific admin roles can invite guest users'

6.19 Ensure that 'Users can create security groups in Azure portals, API or PowerShell' is set to 'No'

6.2.1 Ensure that 'trusted locations' are defined

6.2.6 Ensure that multifactor authentication is required for Windows Azure Service Management API

6.2.7 Ensure that multifactor authentication is required to access Microsoft Admin Portals

6.21 Ensure that 'Users can create Microsoft 365 groups in Azure portals, API or PowerShell' is set to 'No'

6.23 Ensure that no custom subscription administrator roles exist

6.24 Ensure that a custom role is assigned permissions for administering resource locks

6.26 Ensure fewer than 5 users have global administrator assignment

6.3.2 Ensure that guest users are reviewed on a regular basis

6.3.3 Ensure that use of the 'User Access Administrator' role is restricted

6.4 Ensure that 'Restrict non-admin users from creating tenants' is set to 'Yes'

7.1.1.1 Ensure that a 'Diagnostic Setting' exists for Subscription Activity Logs

7.1.1.2 Ensure Diagnostic Setting captures appropriate categories

7.1.1.3 Ensure the storage account containing the container with activity logs is encrypted with Customer Managed Key (CMK)

7.1.1.4 Ensure that logging for Azure Key Vault is 'Enabled'

7.1.1.5 Ensure that Network Security Group Flow logs are captured and sent to Log Analytics

7.1.1.6 Ensure that logging for Azure AppService 'HTTP logs' is enabled

7.1.2.1 Ensure that Activity Log Alert exists for Create Policy Assignment

7.1.2.10 Ensure that Activity Log Alert exists for Delete Public IP Address rule

7.1.2.11 Ensure that an Activity Log Alert exists for Service Health

7.1.2.2 Ensure that Activity Log Alert exists for Delete Policy Assignment

7.1.2.3 Ensure that Activity Log Alert exists for Create or Update Network Security Group

7.1.2.4 Ensure that Activity Log Alert exists for Delete Network Security Group

7.1.2.5 Ensure that Activity Log Alert exists for Create or Update Security Solution

7.1.2.6 Ensure that Activity Log Alert exists for Delete Security Solution

7.1.2.7 Ensure that Activity Log Alert exists for Create or Update SQL Server Firewall Rule

7.1.2.8 Ensure that Activity Log Alert exists for Delete SQL Server Firewall Rule

7.1.2.9 Ensure that Activity Log Alert exists for Create or Update Public IP Address rule

7.1.3.1 Ensure Application Insights are Configured

8.1 Ensure that RDP access from the Internet is evaluated and restricted

8.2 Ensure that SSH access from the Internet is evaluated and restricted

8.3 Ensure that UDP access from the Internet is evaluated and restricted

8.4 Ensure that HTTP(S) access from the Internet is evaluated and restricted

8.5 Ensure that Network Security Group Flow Log retention period is 'greater than 90 days'

8.6 Ensure that Network Watcher is 'Enabled' for Azure Regions that are in use

8.8 Ensure that virtual network flow log retention days is set to greater than or equal to 90

9.1.10 Ensure that Microsoft Defender for Cloud is configured to check VM operating systems for updates

9.1.11 Ensure that Microsoft Cloud Security Benchmark policies are not set to 'Disabled'

9.1.12 Ensure That 'All users with the following roles' is set to 'Owner'

9.1.13 Ensure 'Additional email addresses' is Configured with a Security Contact Email

9.1.14 Ensure that 'Notify about alerts with the following severity (or higher)' is enabled

9.1.15 Ensure that 'Notify about attack paths with the following risk level (or higher)' is enabled

9.1.17 [LEGACY] Ensure That Microsoft Defender for DNS Is Set To 'On'

9.1.3.1 Ensure that Defender for Servers is set to 'On'

9.1.3.2 Ensure that 'Vulnerability assessment for machines' component status is set to 'On'

9.1.3.3 Ensure that 'Endpoint protection' component status is set to 'On'

9.1.4.1 Ensure That Microsoft Defender for Containers Is Set To 'On'

9.1.5.1 Ensure That Microsoft Defender for Storage Is Set To 'On'

9.1.6.1 Ensure That Microsoft Defender for App Services Is Set To 'On'

9.1.7.1 Ensure That Microsoft Defender for Azure Cosmos DB Is Set To 'On'

9.1.7.2 Ensure That Microsoft Defender for Open-Source Relational Databases Is Set To 'On'

9.1.7.3 Ensure That Microsoft Defender for (Managed Instance) Azure SQL Databases Is Set To 'On'

9.1.7.4 Ensure That Microsoft Defender for SQL Servers on Machines Is Set To 'On'

9.1.8.1 Ensure That Microsoft Defender for Key Vault Is Set To 'On'

9.1.9.1 Ensure That Microsoft Defender for Resource Manager Is Set To 'On'

9.2.1 Ensure That Microsoft Defender for IoT Hub Is Set To 'On'

9.3.1 Ensure that the Expiration Date is set for all Keys in RBAC Key Vaults

9.3.2 Ensure that the Expiration Date is set for all Keys in Non-RBAC Key Vaults.

9.3.3 Ensure that the Expiration Date is set for all Secrets in RBAC Key Vaults

9.3.4 Ensure that the Expiration Date is set for all Secrets in Non-RBAC Key Vaults

9.3.5 Ensure the Key Vault is Recoverable

9.3.6 Ensure that Role Based Access Control for Azure Key Vault is enabled

9.3.7 Ensure that Public Network Access when using Private Endpoint is disabled

9.3.8 Ensure that Private Endpoints are Used for Azure Key Vault

9.3.9 Ensure automatic key rotation is enabled within Azure Key Vault

9.4.1 Ensure an Azure Bastion Host Exists

FrameworkControl overlapNote
CIS Azure Benchmark v5.0.0High 66%
CIS Azure Benchmark v3.0.0High 61%
CIS Azure Benchmark v2.1.0Medium 59%

Frequently asked questions

What does the CIS Microsoft Azure Foundations Benchmark provide?

It gives prescriptive guidance for establishing a secure baseline configuration for Azure. It is described as a step-by-step checklist for securing Azure.

What are the CIS Benchmark levels?

Level 1 recommends essential basic security requirements that should cause little or no interruption of service or reduced functionality. Level 2 recommends settings for environments requiring greater security that could result in some reduced functionality.

Does following CIS Benchmark settings guarantee application security?

CIS benchmarks establish the basic level of security. They are a starting point, not an exhaustive list. Each organization must still evaluate its own situation, workloads, and compliance requirements, and tailor its environment.

How are CIS Benchmarks developed and updated?

Each benchmark goes through two phases of consensus review. One phase occurs during initial development, and the other occurs after publication, using community feedback. Revisions depend on the community that developed it and on the release schedule of the supported technology.

On this page

Controls by category10.1.1 Ensure soft delete for Azure File Shares is Enabled10.1.2 Ensure 'SMB protocol version' is set to 'SMB 3.1.1' or higher for SMB file shares10.1.3 Ensure 'SMB channel encryption' is set to 'AES-256-GCM' or higher for SMB file shares10.2.1 Ensure that soft delete for blobs on Azure Blob Storage storage accounts is Enabled10.2.2 Ensure 'Versioning' is set to 'Enabled' on Azure Blob Storage storage accounts10.3.1.1 Ensure that 'Enable key rotation reminders' is enabled for each Storage Account10.3.1.2 Ensure that Storage Account access keys are periodically regenerated10.3.1.3 Ensure 'Allow storage account key access' for Azure Storage Accounts is 'Disabled'10.3.12 Ensure Redundancy is set to 'geo-redundant storage (GRS)' on critical Azure Storage Accounts10.3.2.1 Ensure Private Endpoints are used to access Storage Accounts10.3.2.2 Ensure that 'Public Network Access' is 'Disabled' for storage accounts10.3.2.3 Ensure default network access rule for storage accounts is set to deny10.3.3.1 Ensure that 'Default to Microsoft Entra authorization in the Azure portal' is set to 'Enabled'10.3.4 Ensure that 'Secure transfer required' is set to 'Enabled'10.3.5 Ensure 'Allow Azure services on the trusted services list to access this storage account' is Enabled for Storage Account Access10.3.6 Ensure Soft Delete is Enabled for Azure Containers and Blob Storage10.3.7 Ensure the 'Minimum TLS version' for storage accounts is set to 'Version 1.2'10.3.8 Ensure 'Cross Tenant Replication' is not enabled10.3.9 Ensure that 'Allow Blob Anonymous Access' is set to 'Disabled'2.1.1.2.1 Ensure Critical Data is Encrypted with Customer Managed Keys (CMK)2.2.1.1 Ensure public network access is Disabled2.2.1.2 Ensure Network Access Rules are set to Deny-by-default2.2.2.1 Ensure Private Endpoints are used to access {service}3.1.1 Ensure that Azure Databricks is deployed in a customer-managed virtual network (VNet)3.1.2 Ensure that network security groups are configured for Databricks subnets3.1.7 Ensure that diagnostic log delivery is configured for Azure Databricks3.1.8 Ensure that data at rest and in transit is encrypted in Azure Databricks using customer managed keys (CMK)4.1.1 Ensure only MFA enabled identities can access privileged Virtual Machine6.1.1 Ensure that 'security defaults' is enabled in Microsoft Entra ID6.1.2 Ensure that 'multifactor authentication' is 'enabled' for all users6.12 Ensure that 'User consent for applications' is set to 'Do not allow user consent'6.13 Ensure that 'User consent for applications' is set to 'Allow user consent for apps from verified publishers, for selected permissions'6.14 Ensure that 'Users can register applications' is set to 'No'6.15 Ensure that 'Guest users access restrictions' is set to 'Guest user access is restricted to properties and memberships of their own directory objects'6.16 Ensure that 'Guest invite restrictions' is set to 'Only users assigned to specific admin roles can invite guest users'6.19 Ensure that 'Users can create security groups in Azure portals, API or PowerShell' is set to 'No'6.2.1 Ensure that 'trusted locations' are defined6.2.6 Ensure that multifactor authentication is required for Windows Azure Service Management API6.2.7 Ensure that multifactor authentication is required to access Microsoft Admin Portals6.21 Ensure that 'Users can create Microsoft 365 groups in Azure portals, API or PowerShell' is set to 'No'6.23 Ensure that no custom subscription administrator roles exist6.24 Ensure that a custom role is assigned permissions for administering resource locks6.26 Ensure fewer than 5 users have global administrator assignment6.3.2 Ensure that guest users are reviewed on a regular basis6.3.3 Ensure that use of the 'User Access Administrator' role is restricted6.4 Ensure that 'Restrict non-admin users from creating tenants' is set to 'Yes'7.1.1.1 Ensure that a 'Diagnostic Setting' exists for Subscription Activity Logs7.1.1.2 Ensure Diagnostic Setting captures appropriate categories7.1.1.3 Ensure the storage account containing the container with activity logs is encrypted with Customer Managed Key (CMK)7.1.1.4 Ensure that logging for Azure Key Vault is 'Enabled'7.1.1.5 Ensure that Network Security Group Flow logs are captured and sent to Log Analytics7.1.1.6 Ensure that logging for Azure AppService 'HTTP logs' is enabled7.1.2.1 Ensure that Activity Log Alert exists for Create Policy Assignment7.1.2.10 Ensure that Activity Log Alert exists for Delete Public IP Address rule7.1.2.11 Ensure that an Activity Log Alert exists for Service Health7.1.2.2 Ensure that Activity Log Alert exists for Delete Policy Assignment7.1.2.3 Ensure that Activity Log Alert exists for Create or Update Network Security Group7.1.2.4 Ensure that Activity Log Alert exists for Delete Network Security Group7.1.2.5 Ensure that Activity Log Alert exists for Create or Update Security Solution7.1.2.6 Ensure that Activity Log Alert exists for Delete Security Solution7.1.2.7 Ensure that Activity Log Alert exists for Create or Update SQL Server Firewall Rule7.1.2.8 Ensure that Activity Log Alert exists for Delete SQL Server Firewall Rule7.1.2.9 Ensure that Activity Log Alert exists for Create or Update Public IP Address rule7.1.3.1 Ensure Application Insights are Configured8.1 Ensure that RDP access from the Internet is evaluated and restricted8.2 Ensure that SSH access from the Internet is evaluated and restricted8.3 Ensure that UDP access from the Internet is evaluated and restricted8.4 Ensure that HTTP(S) access from the Internet is evaluated and restricted8.5 Ensure that Network Security Group Flow Log retention period is 'greater than 90 days'8.6 Ensure that Network Watcher is 'Enabled' for Azure Regions that are in use8.8 Ensure that virtual network flow log retention days is set to greater than or equal to 909.1.10 Ensure that Microsoft Defender for Cloud is configured to check VM operating systems for updates9.1.11 Ensure that Microsoft Cloud Security Benchmark policies are not set to 'Disabled'9.1.12 Ensure That 'All users with the following roles' is set to 'Owner'9.1.13 Ensure 'Additional email addresses' is Configured with a Security Contact Email9.1.14 Ensure that 'Notify about alerts with the following severity (or higher)' is enabled9.1.15 Ensure that 'Notify about attack paths with the following risk level (or higher)' is enabled9.1.17 [LEGACY] Ensure That Microsoft Defender for DNS Is Set To 'On'9.1.3.1 Ensure that Defender for Servers is set to 'On'9.1.3.2 Ensure that 'Vulnerability assessment for machines' component status is set to 'On'9.1.3.3 Ensure that 'Endpoint protection' component status is set to 'On'9.1.4.1 Ensure That Microsoft Defender for Containers Is Set To 'On'9.1.5.1 Ensure That Microsoft Defender for Storage Is Set To 'On'9.1.6.1 Ensure That Microsoft Defender for App Services Is Set To 'On'9.1.7.1 Ensure That Microsoft Defender for Azure Cosmos DB Is Set To 'On'9.1.7.2 Ensure That Microsoft Defender for Open-Source Relational Databases Is Set To 'On'9.1.7.3 Ensure That Microsoft Defender for (Managed Instance) Azure SQL Databases Is Set To 'On'9.1.7.4 Ensure That Microsoft Defender for SQL Servers on Machines Is Set To 'On'9.1.8.1 Ensure That Microsoft Defender for Key Vault Is Set To 'On'9.1.9.1 Ensure That Microsoft Defender for Resource Manager Is Set To 'On'9.2.1 Ensure That Microsoft Defender for IoT Hub Is Set To 'On'9.3.1 Ensure that the Expiration Date is set for all Keys in RBAC Key Vaults9.3.2 Ensure that the Expiration Date is set for all Keys in Non-RBAC Key Vaults.9.3.3 Ensure that the Expiration Date is set for all Secrets in RBAC Key Vaults9.3.4 Ensure that the Expiration Date is set for all Secrets in Non-RBAC Key Vaults9.3.5 Ensure the Key Vault is Recoverable9.3.6 Ensure that Role Based Access Control for Azure Key Vault is enabled9.3.7 Ensure that Public Network Access when using Private Endpoint is disabled9.3.8 Ensure that Private Endpoints are Used for Azure Key Vault9.3.9 Ensure automatic key rotation is enabled within Azure Key Vault9.4.1 Ensure an Azure Bastion Host ExistsRelated frameworksFrequently asked questions

Ask AI about this

Help improve this page