Sign in
Menu
Sign up
Docs
Azure compliance frameworksRetired frameworks

CIS Azure Benchmark v1.3.0

Deprecated

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 it to assess and improve security.

Controls by category

75 controls are Mapped to CIS Azure Benchmark v1.3.0.

1.21 Ensure that no custom subscription owner roles are created

1.3 Ensure guest users are reviewed on a monthly basis

2.1 Ensure that Azure Defender is set to On for Servers

2.10 Ensure that Microsoft Cloud App Security (MCAS) integration with Security Center is selected

2.11 Ensure that 'Automatic provisioning of monitoring agent' is set to 'On'

2.12 Ensure any of the ASC Default policy setting is not set to \"Disabled\"

2.13 Ensure 'Additional email addresses' is configured with a security contact email

2.14 Ensure that 'Notify about alerts with the following severity' is set to 'High'

2.15 Ensure that 'All users with the following roles' is set to 'Owner'

2.2 Ensure that Azure Defender is set to On for App Service

2.3 Ensure that Azure Defender is set to On for Azure SQL database servers

2.4 Ensure that Azure Defender is set to On for SQL servers on machines

2.5 Ensure that Azure Defender is set to On for Storage

2.6 Ensure that Azure Defender is set to On for Kubernetes

2.7 Ensure that Azure Defender is set to On for Container Registries

2.8 Ensure that Azure Defender is set to On for Key Vault

2.9 Ensure that Windows Defender ATP (WDATP) integration with Security Center is selected

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

3.10 Ensure Storage logging is enabled for Blob service for read, write, and delete requests

3.11 Ensure Storage logging is enabled for Table service for read, write, and delete requests

3.3 Ensure Storage logging is enabled for Queue service for read, write, and delete requests

3.5 Ensure that 'Public access level' is set to Private for blob containers

3.6 Ensure default network access rule for Storage Accounts is set to deny

3.7 Ensure 'Trusted Microsoft Services' is enabled for Storage Account access

3.8 Ensure soft delete is enabled for Azure Storage

3.9 Ensure storage for critical data are encrypted with Customer Managed Key

4.1.1 Ensure that 'Auditing' is set to 'On'

4.1.2 Ensure that 'Data encryption' is set to 'On' on a SQL Database

4.1.3 Ensure that 'Auditing' Retention is 'greater than 90 days'

4.2.1 Ensure that Advanced Threat Protection (ATP) on a SQL server is set to 'Enabled'

4.2.2 Ensure that Vulnerability Assessment (VA) is enabled on a SQL server by setting a Storage Account

4.2.3 Ensure that VA setting Periodic Recurring Scans is enabled on a SQL server

4.2.4 Ensure that VA setting Send scan reports to is configured for a SQL server

4.2.5 Ensure that VA setting 'Also send email notifications to admins and subscription owners' is set for a SQL server

4.3.1 Ensure 'Enforce SSL connection' is set to 'ENABLED' for PostgreSQL Database Server

4.3.2 Ensure 'Enforce SSL connection' is set to 'ENABLED' for MySQL Database Server

4.3.3 Ensure server parameter 'log_checkpoints' is set to 'ON' for PostgreSQL Database Server

4.3.4 Ensure server parameter 'log_connections' is set to 'ON' for PostgreSQL Database Server

4.3.5 Ensure server parameter 'log_disconnections' is set to 'ON' for PostgreSQL Database Server

4.3.6 Ensure server parameter 'connection_throttling' is set to 'ON' for PostgreSQL Database Server

4.3.7 Ensure server parameter 'log_retention_days' is greater than 3 days for PostgreSQL Database Server

4.4 Ensure that Azure Active Directory Admin is configured

4.5 Ensure SQL server's TDE protector is encrypted with Customer-managed key

5.1.2 Ensure Diagnostic Setting captures appropriate categories

5.1.3 Ensure the storage container storing the activity logs is not publicly accessible

5.1.4 Ensure the storage account containing the container with activity logs is encrypted with BYOK (Use Your Own Key)

5.1.5 Ensure that logging for Azure KeyVault is 'Enabled'

5.2.1 Ensure that Activity Log Alert exists for Create Policy Assignment

5.2.2 Ensure that Activity Log Alert exists for Delete Policy Assignment

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

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

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

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

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

5.2.8 Ensure that Activity Log Alert exists for Delete Security Solution

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

6.1 Ensure that RDP access is restricted from the internet

6.2 Ensure that SSH access is restricted from the internet

6.3 Ensure no SQL Databases allow ingress 0.0.0.0/0 (ANY IP)

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

6.5 Ensure that Network Watcher is 'Enabled'

6.6 Ensure that UDP Services are restricted from the Internet

7.1 Ensure Virtual Machines are utilizing Managed Disks

7.2 Ensure that 'OS and Data' disks are encrypted with CMK

7.3 Ensure that 'Unattached disks' are encrypted with CMK

8.1 Ensure that the expiration date is set on all keys

8.2 Ensure that the expiration date is set on all Secrets

8.4 Ensure the key vault is recoverable

8.5 Enable role-based access control (RBAC) within Azure Kubernetes Services

9.1 Ensure App Service Authentication is set on Azure App Service

9.10 Ensure FTP deployments are disabled

9.2 Ensure web app redirects all HTTP traffic to HTTPS in Azure App Service

9.3 Ensure web app is using the latest version of TLS encryption

9.4 Ensure the web app has 'Client Certificates (Incoming client certificates)' set to 'On'

9.5 Ensure that Register with Azure Active Directory is enabled on App Service

9.9 Ensure that 'HTTP Version' is the latest, if used to run the web app

FrameworkControl overlapNote
CIS Azure Benchmark v1.4.0High 97%
CIS Azure Benchmark v1.5.0High 87%
CIS Azure Benchmark v2.0.0High 84%

Frequently asked questions

What does the CIS Azure Benchmark v1.3.0 provide?

It provides prescriptive guidance for establishing a secure baseline configuration for Azure. CIS describes its benchmarks as configuration baselines and best practices for securely configuring a system.

What are Level 1 and Level 2 in the CIS Azure Benchmark?

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

Does a Compliant status in Azure Policy mean full compliance with this benchmark?

Compliant in Azure Policy refers only to the policy definitions themselves. It does not ensure full compliance with all requirements of a control. Some controls are not addressed by any Azure Policy definitions, so Azure Policy gives only a partial view.

Is following the CIS benchmark enough to secure my environment?

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

On this page

Controls by category1.21 Ensure that no custom subscription owner roles are created1.3 Ensure guest users are reviewed on a monthly basis2.1 Ensure that Azure Defender is set to On for Servers2.10 Ensure that Microsoft Cloud App Security (MCAS) integration with Security Center is selected2.11 Ensure that 'Automatic provisioning of monitoring agent' is set to 'On'2.12 Ensure any of the ASC Default policy setting is not set to \"Disabled\"2.13 Ensure 'Additional email addresses' is configured with a security contact email2.14 Ensure that 'Notify about alerts with the following severity' is set to 'High'2.15 Ensure that 'All users with the following roles' is set to 'Owner'2.2 Ensure that Azure Defender is set to On for App Service2.3 Ensure that Azure Defender is set to On for Azure SQL database servers2.4 Ensure that Azure Defender is set to On for SQL servers on machines2.5 Ensure that Azure Defender is set to On for Storage2.6 Ensure that Azure Defender is set to On for Kubernetes2.7 Ensure that Azure Defender is set to On for Container Registries2.8 Ensure that Azure Defender is set to On for Key Vault2.9 Ensure that Windows Defender ATP (WDATP) integration with Security Center is selected3.1 Ensure that 'Secure transfer required' is set to 'Enabled'3.10 Ensure Storage logging is enabled for Blob service for read, write, and delete requests3.11 Ensure Storage logging is enabled for Table service for read, write, and delete requests3.3 Ensure Storage logging is enabled for Queue service for read, write, and delete requests3.5 Ensure that 'Public access level' is set to Private for blob containers3.6 Ensure default network access rule for Storage Accounts is set to deny3.7 Ensure 'Trusted Microsoft Services' is enabled for Storage Account access3.8 Ensure soft delete is enabled for Azure Storage3.9 Ensure storage for critical data are encrypted with Customer Managed Key4.1.1 Ensure that 'Auditing' is set to 'On'4.1.2 Ensure that 'Data encryption' is set to 'On' on a SQL Database4.1.3 Ensure that 'Auditing' Retention is 'greater than 90 days'4.2.1 Ensure that Advanced Threat Protection (ATP) on a SQL server is set to 'Enabled'4.2.2 Ensure that Vulnerability Assessment (VA) is enabled on a SQL server by setting a Storage Account4.2.3 Ensure that VA setting Periodic Recurring Scans is enabled on a SQL server4.2.4 Ensure that VA setting Send scan reports to is configured for a SQL server4.2.5 Ensure that VA setting 'Also send email notifications to admins and subscription owners' is set for a SQL server4.3.1 Ensure 'Enforce SSL connection' is set to 'ENABLED' for PostgreSQL Database Server4.3.2 Ensure 'Enforce SSL connection' is set to 'ENABLED' for MySQL Database Server4.3.3 Ensure server parameter 'log_checkpoints' is set to 'ON' for PostgreSQL Database Server4.3.4 Ensure server parameter 'log_connections' is set to 'ON' for PostgreSQL Database Server4.3.5 Ensure server parameter 'log_disconnections' is set to 'ON' for PostgreSQL Database Server4.3.6 Ensure server parameter 'connection_throttling' is set to 'ON' for PostgreSQL Database Server4.3.7 Ensure server parameter 'log_retention_days' is greater than 3 days for PostgreSQL Database Server4.4 Ensure that Azure Active Directory Admin is configured4.5 Ensure SQL server's TDE protector is encrypted with Customer-managed key5.1.2 Ensure Diagnostic Setting captures appropriate categories5.1.3 Ensure the storage container storing the activity logs is not publicly accessible5.1.4 Ensure the storage account containing the container with activity logs is encrypted with BYOK (Use Your Own Key)5.1.5 Ensure that logging for Azure KeyVault is 'Enabled'5.2.1 Ensure that Activity Log Alert exists for Create Policy Assignment5.2.2 Ensure that Activity Log Alert exists for Delete Policy Assignment5.2.3 Ensure that Activity Log Alert exists for Create or Update Network Security Group5.2.4 Ensure that Activity Log Alert exists for Delete Network Security Group5.2.5 Ensure that Activity Log Alert exists for Create or Update Network Security Group Rule5.2.6 Ensure that Activity Log Alert exists for Create or Update Network Security Group Rule5.2.7 Ensure that Activity Log Alert exists for Create or Update Security Solution5.2.8 Ensure that Activity Log Alert exists for Delete Security Solution5.2.9 Ensure that Activity Log Alert exists for Create or Update or Delete SQL Server Firewall Rule6.1 Ensure that RDP access is restricted from the internet6.2 Ensure that SSH access is restricted from the internet6.3 Ensure no SQL Databases allow ingress 0.0.0.0/0 (ANY IP)6.4 Ensure that Network Security Group Flow Log retention period is 'greater than 90 days'6.5 Ensure that Network Watcher is 'Enabled'6.6 Ensure that UDP Services are restricted from the Internet7.1 Ensure Virtual Machines are utilizing Managed Disks7.2 Ensure that 'OS and Data' disks are encrypted with CMK7.3 Ensure that 'Unattached disks' are encrypted with CMK8.1 Ensure that the expiration date is set on all keys8.2 Ensure that the expiration date is set on all Secrets8.4 Ensure the key vault is recoverable8.5 Enable role-based access control (RBAC) within Azure Kubernetes Services9.1 Ensure App Service Authentication is set on Azure App Service9.10 Ensure FTP deployments are disabled9.2 Ensure web app redirects all HTTP traffic to HTTPS in Azure App Service9.3 Ensure web app is using the latest version of TLS encryption9.4 Ensure the web app has 'Client Certificates (Incoming client certificates)' set to 'On'9.5 Ensure that Register with Azure Active Directory is enabled on App Service9.9 Ensure that 'HTTP Version' is the latest, if used to run the web appRelated frameworksFrequently asked questions

Ask AI about this

Help improve this page