Skip to main content
Five Steps for Cloud Compliance Readiness·A practical playbook for security teamsDownload
Check library

Microsoft Azure security checks

  • CIS Microsoft Azure Foundations v6.0.0 · 127 controls
  • CIS Microsoft Azure Compute Services v2.0.0 · 99 controls
  • CIS Microsoft Azure Database Services v2.0.0 · 49 controls
  • CIS Microsoft Azure Storage Services v2.0.0 · 64 controls

339 checks. 2 have an explained page so far (linked below); the rest follow.

CIS Microsoft Azure Foundations v6.0.0

127 controls

CIS IDCheckSectionProfile
2.1.1Ensure that Azure Databricks is deployed in a customer-managed virtual network (VNet)Analytics ServicesLevel 1
2.1.2Ensure that Network Security Groups are Configured for Databricks SubnetsAnalytics ServicesLevel 1
2.1.3Ensure that Traffic is Encrypted Between Cluster Worker NodesAnalytics ServicesLevel 2
2.1.4Ensure that Users and Groups are Synced from Microsoft Entra ID to Azure DatabricksAnalytics ServicesLevel 1
2.1.5Ensure that Unity Catalog is Configured for Azure DatabricksAnalytics ServicesLevel 1
2.1.6Ensure that Usage is Restricted and Expiry is Enforced for Databricks Personal Access TokensAnalytics ServicesLevel 1
2.1.7Ensure that Diagnostic Log Delivery is Configured for Azure DatabricksAnalytics ServicesLevel 1
2.1.8Ensure Critical Data in Azure Databricks is Encrypted with Customer-managed Keys (CMK)Analytics ServicesLevel 2
2.1.9Ensure 'No Public IP' is Set to 'Enabled'Analytics ServicesLevel 1
2.1.10Ensure 'Allow Public Network Access' is set to 'Disabled'Analytics ServicesLevel 1
2.1.11Ensure Private Endpoints are used to access Azure Databricks workspacesAnalytics ServicesLevel 2
2.1.12Ensure Azure Databricks groups are reviewed periodicallyAnalytics ServicesLevel 1
3.1.1Ensure only MFA Enabled Identities can Access Privileged Virtual MachineCompute ServicesLevel 2
5.4Ensure that No Custom Subscription Administrator Roles ExistIdentity ServicesLevel 1
5.5Ensure that a Custom Role is Assigned Permissions for Administering Resource LocksIdentity ServicesLevel 2
5.6Ensure that 'Subscription leaving Microsoft Entra tenant' and 'Subscription entering Microsoft Entra tenant' is set to 'Permit no one'Identity ServicesLevel 2
5.7Ensure there are between 2 and 3 Subscription OwnersIdentity ServicesLevel 1
5.1.1Ensure that 'security defaults' is Enabled in Microsoft Entra IDIdentity ServicesLevel 1
5.1.2Ensure that 'Require Multifactor Authentication to register or join devices with Microsoft Entra' is set to 'Yes'Identity ServicesLevel 1
5.1.3Ensure that 'multifactor authentication' is 'enabled' For All UsersIdentity ServicesLevel 1
5.1.4Ensure that 'Allow users to remember multifactor authentication on devices they trust' is DisabledIdentity ServicesLevel 1
5.3.1Ensure that Azure Admin Accounts Are Not Used for Daily OperationsIdentity ServicesLevel 1
5.3.2Ensure that Guest Users are Reviewed on a Regular BasisIdentity ServicesLevel 1
5.3.3Ensure That Use of the 'User Access Administrator' Role is RestrictedIdentity ServicesLevel 1
5.3.4Ensure that All 'Privileged' Role Assignments are Periodically ReviewedIdentity ServicesLevel 1
5.3.5Ensure Disabled User Accounts do not Have Read, Write, or Owner PermissionsIdentity ServicesLevel 1
5.3.6Ensure 'Tenant Creator' Role Assignments are Periodically ReviewedIdentity ServicesLevel 1
5.3.7Ensure All Non-privileged Role Assignments are Periodically ReviewedIdentity ServicesLevel 1
6.2Ensure that Resource Locks are set for Mission-Critical Azure ResourcesManagement and Governance ServicesLevel 2
6.1.4Ensure that Azure Monitor Resource Logging is Enabled for All Services that Support itManagement and Governance ServicesLevel 1
6.1.5Ensure Basic, Free, and Consumption SKUs are not used on Production artifacts requiring monitoring and SLAManagement and Governance ServicesLevel 2
6.1.1.1Ensure that a 'Diagnostic Setting' Exists for Subscription Activity LogsManagement and Governance ServicesLevel 1
6.1.1.2Ensure Diagnostic Setting Captures Appropriate CategoriesManagement and Governance ServicesLevel 1
6.1.1.3Ensure the Storage Account Containing the Container with Activity Logs is Encrypted with Customer-managed Key (CMK)Management and Governance ServicesLevel 2
6.1.1.4Ensure that Logging for Azure Key Vault is 'Enabled'Management and Governance ServicesLevel 1
6.1.1.5Ensure that Network Security Group Flow Logs are Captured and Sent to Log AnalyticsManagement and Governance ServicesLevel 2
6.1.1.6Ensure that Virtual Network Flow Logs are Captured and Sent to Log AnalyticsManagement and Governance ServicesLevel 2
6.1.1.7Ensure that a Microsoft Entra Diagnostic Setting Exists to Send Microsoft Graph Activity Logs to an Appropriate DestinationManagement and Governance ServicesLevel 2
6.1.1.8Ensure that a Microsoft Entra Diagnostic Setting Exists to Send Microsoft Entra Activity Logs to an Appropriate DestinationManagement and Governance ServicesLevel 2
6.1.1.9Ensure that Intune Logs are Captured and Sent to Log AnalyticsManagement and Governance ServicesLevel 2
6.1.2.1Ensure that Activity Log Alert Exists for Create Policy AssignmentManagement and Governance ServicesLevel 1
6.1.2.2Ensure that Activity Log Alert exists for Delete Policy AssignmentManagement and Governance ServicesLevel 1
6.1.2.3Ensure that Activity Log Alert Exists for Create or Update Network Security GroupManagement and Governance ServicesLevel 1
6.1.2.4Ensure that Activity Log Alert Exists for Delete Network Security GroupManagement and Governance ServicesLevel 1
6.1.2.5Ensure that Activity Log Alert Exists for Create or Update Security SolutionManagement and Governance ServicesLevel 1
6.1.2.6Ensure that Activity Log Alert Exists for Delete Security SolutionManagement and Governance ServicesLevel 1
6.1.2.7Ensure that Activity Log Alert Exists for Create or Update SQL Server Firewall RuleManagement and Governance ServicesLevel 1
6.1.2.8Ensure that Activity Log Alert Exists for Delete SQL Server Firewall RuleManagement and Governance ServicesLevel 1
6.1.2.9Ensure that Activity Log Alert Exists for Create or Update Public IP Address ruleManagement and Governance ServicesLevel 1
6.1.2.10Ensure that Activity Log Alert Exists for Delete Public IP Address ruleManagement and Governance ServicesLevel 1
6.1.2.11Ensure that an Activity Log Alert Exists for Service HealthManagement and Governance ServicesLevel 1
6.1.3.1Ensure Application Insights are ConfiguredManagement and Governance ServicesLevel 2
7.1Ensure that RDP Access from the Internet is Evaluated and RestrictedNetworking ServicesLevel 1
7.2Ensure that SSH Access from the Internet is Evaluated and RestrictedNetworking ServicesLevel 1
7.3Ensure that UDP Port Access from the Internet is Evaluated and RestrictedNetworking ServicesLevel 1
7.4Ensure that HTTP(S) Access from the Internet is Evaluated and RestrictedNetworking ServicesLevel 1
7.5Ensure that Network Security Group Flow Log Retention Days is Set to Greater than or equal to 90Networking ServicesLevel 2
7.6Ensure that Network Watcher is 'Enabled' for Azure Regions That are in UseNetworking ServicesLevel 2
7.7Ensure that Public IP Addresses are Evaluated on a Periodic BasisNetworking ServicesLevel 1
7.8Ensure that Virtual Network Flow Log Retention Days is Set to Greater than or Equal to 90Networking ServicesLevel 2
7.9Ensure 'Authentication type' is Set to 'Azure Active Directory' only for Azure VPN Gateway Point-to-Site ConfigurationNetworking ServicesLevel 2
7.10Ensure Azure Web Application Firewall (WAF) is Enabled on Azure Application GatewayNetworking ServicesLevel 2
7.11Ensure Subnets Are Associated with Network Security GroupsNetworking ServicesLevel 1
7.12Ensure the SSL Policy's 'Min protocol version' is Set to 'TLSv1_2' or Higher on Azure Application GatewayNetworking ServicesLevel 1
7.13Ensure 'HTTP2' is Set to 'Enabled' on Azure Application GatewayNetworking ServicesLevel 1
7.14Ensure Request Body Inspection is Enabled in Azure Web Application Firewall policy on Azure Application GatewayNetworking ServicesLevel 2
7.15Ensure Bot Protection is Enabled in Azure Web Application Firewall Policy on Azure Application GatewayNetworking ServicesLevel 2
7.16Ensure Azure Network Security Perimeter is Used to Secure Azure Platform-as-a-service ResourcesNetworking ServicesLevel 2
8.5Ensure Azure DDoS Network Protection is Enabled on Virtual NetworksSecurity ServicesLevel 2
8.1.10Ensure that Microsoft Defender for Cloud is Configured to Check VM Operating Systems for UpdatesSecurity ServicesLevel 1
8.1.11Ensure that non-deprecated Microsoft Cloud Security Benchmark policies are not set to 'Disabled'Security ServicesLevel 1
8.1.12Ensure That 'All users with the following roles' is Set to 'Owner'Security ServicesLevel 1
8.1.13Ensure 'Additional email addresses' is Configured with a Security Contact EmailSecurity ServicesLevel 1
8.1.14Ensure that 'Notify about alerts with the following severity (or higher)' is EnabledSecurity ServicesLevel 1
8.1.15Ensure that 'Notify about attack paths with the following risk level (or higher)' is EnabledSecurity ServicesLevel 1
8.1.16Ensure that Microsoft Defender External Attack Surface Monitoring (EASM) is EnabledSecurity ServicesLevel 2
8.1.1.1Ensure Microsoft Defender CSPM is Set to 'On'Security ServicesLevel 2
8.1.2.1Ensure Microsoft Defender for APIs is Set to 'On'Security ServicesLevel 2
8.1.3.1Ensure that Defender for Servers is Set to 'On'Security ServicesLevel 2
8.1.3.2Ensure that 'Vulnerability assessment for machines' Component Status is set to 'On'Security ServicesLevel 2
8.1.3.3Ensure that 'Endpoint protection' Component Status is set to 'On'Security ServicesLevel 2
8.1.3.4Ensure that 'Agentless scanning for machines' Component Status is Set to 'On'Security ServicesLevel 2
8.1.3.5Ensure that 'File Integrity Monitoring' Component Status is Set to 'On'Security ServicesLevel 2
8.1.4.1Ensure That Microsoft Defender for Containers Is Set To 'On'Security ServicesLevel 2
8.1.5.1Ensure That Microsoft Defender for Storage Is Set To 'On'Security ServicesLevel 2
8.1.5.2Ensure Advanced Threat Protection Alerts for Storage Accounts Are MonitoredSecurity ServicesLevel 2
8.1.6.1Ensure That Microsoft Defender for App Services Is Set To 'On'Security ServicesLevel 2
8.1.7.1Ensure That Microsoft Defender for Azure Cosmos DB Is Set To 'On'Security ServicesLevel 2
8.1.7.2Ensure That Microsoft Defender for Open-Source Relational Databases Is Set To 'On'Security ServicesLevel 2
8.1.7.3Ensure That Microsoft Defender for (Managed Instance) Azure SQL Databases Is Set To 'On'Security ServicesLevel 2
8.1.7.4Ensure That Microsoft Defender for SQL Servers on Machines Is Set To 'On'Security ServicesLevel 2
8.1.8.1Ensure That Microsoft Defender for Key Vault Is Set To 'On'Security ServicesLevel 2
8.1.9.1Ensure That Microsoft Defender for Resource Manager Is Set To 'On'Security ServicesLevel 2
8.2.1Ensure That Microsoft Defender for IoT Hub Is Set To 'On'Security ServicesLevel 2
8.3.1Ensure that the Expiration Date is Set for all Keys in Key Vaults using RBACSecurity ServicesLevel 1
8.3.2Ensure that the Expiration Date is set for All Keys in Key Vaults using access policies (legacy)Security ServicesLevel 1
8.3.3Ensure that the Expiration Date is set for All Secrets in Key Vaults using RBACSecurity ServicesLevel 1
8.3.4Ensure that the Expiration Date is set for All Secrets in Key Vaults using access policies (legacy)Security ServicesLevel 1
8.3.5Ensure 'Purge protection' is Set to 'Enabled'Security ServicesLevel 1
8.3.6Ensure that Role Based Access Control for Azure Key Vault is EnabledSecurity ServicesLevel 2
8.3.7Ensure Public Network Access is DisabledSecurity ServicesLevel 1
8.3.8Ensure Private Endpoints are Used to Access Azure Key VaultSecurity ServicesLevel 2
8.3.9Ensure Automatic Key Rotation is Enabled within Azure Key VaultSecurity ServicesLevel 2
8.3.10Ensure that Azure Key Vault Managed HSM is Used when RequiredSecurity ServicesLevel 2
8.3.11Ensure Certificate 'Validity Period (in months)' is Less Than or Equal to '12'Security ServicesLevel 1
8.4.1Ensure an Azure Bastion Host ExistsSecurity ServicesLevel 2
9.1.1Ensure Soft Delete for Azure File Shares is EnabledStorage ServicesLevel 1
9.1.2Ensure 'SMB protocol version' is Set to 'SMB 3.1.1' or Higher for SMB file sharesStorage ServicesLevel 1
9.1.3Ensure 'SMB channel encryption' is Set to 'AES-256-GCM' or Higher for SMB file sharesStorage ServicesLevel 1
9.2.1Ensure That Soft Delete for Blobs on Azure Blob Storage Storage Accounts is EnabledStorage ServicesLevel 1
9.2.2Ensure that Soft Delete for Containers on Azure Blob Storage Storage Accounts is EnabledStorage ServicesLevel 1
9.2.3Ensure 'Versioning' is Set to 'Enabled' on Azure Blob Storage Storage AccountsStorage ServicesLevel 2
9.3.4Ensure that 'Secure transfer required' is Set to 'Enabled'Storage ServicesLevel 1
9.3.5Ensure 'Allow trusted Microsoft services to access this resource' is Enabled for Storage Account AccessStorage ServicesLevel 2
9.3.6Ensure the 'Minimum TLS version' for Storage Accounts is Set to 'Version 1.2'Storage ServicesLevel 1
9.3.7Ensure 'Cross Tenant Replication' is Not EnabledStorage ServicesLevel 1
9.3.8Ensure that 'Allow Blob Anonymous Access' is Set to 'Disabled'Storage ServicesLevel 1
9.3.9Ensure Azure Resource Manager Delete Locks are Applied to Azure Storage AccountsStorage ServicesLevel 1
9.3.10Ensure Azure Resource Manager ReadOnly Locks are Considered for Azure Storage AccountsStorage ServicesLevel 2
9.3.11Ensure Redundancy is Set to 'geo-redundant storage (GRS)' on Critical Azure Storage AccountsStorage ServicesLevel 2
9.3.1.1Ensure That 'Enable key rotation reminders' is Enabled for Each Storage AccountStorage ServicesLevel 1
9.3.1.2Ensure That Storage Account Access keys are Periodically RegeneratedStorage ServicesLevel 1
9.3.1.3Ensure 'Allow storage account key access' for Azure Storage Accounts is 'Disabled'Storage ServicesLevel 1
9.3.2.1Ensure Private Endpoints are Used to Access Storage AccountsStorage ServicesLevel 2
9.3.2.2Ensure that 'Public Network Access' is 'Disabled' for Storage AccountsStorage ServicesLevel 1
9.3.2.3Ensure Default Network Access Rule for Storage Accounts is Set to DenyStorage ServicesLevel 1
9.3.3.1Ensure that 'Default to Microsoft Entra authorization in the Azure portal' is Set to 'Enabled'Storage ServicesLevel 1

CIS Microsoft Azure Compute Services v2.0.0

99 controls · individual check pages follow once each section's service is confirmed

CIS IDCheckSectionProfile
2.5Ensure Azure Key Vaults are Used to Store SecretsSection 2Level 2
2.6Ensure App Service Environment is deployed with an internal load balancerSection 2Level 2
2.7Ensure App Service Environment is provisioned with v3 or higherSection 2Level 1
2.8Ensure App Service Environment has internal encryption enabledSection 2Level 2
2.9Ensure App Service Environment has TLS 1.0 and 1.1 disabledSection 2Level 1
2.10Ensure App Service Environment has TLS cipher suite ordering configuredSection 2Level 1
2.1.1Ensure 'Java version' is currently supported (if in use)Section 2Level 1
2.1.2Ensure 'Python version' is currently supported (if in use)Section 2Level 1
2.1.3Ensure 'PHP version' is currently supported (if in use)Section 2Level 1
2.1.4Ensure 'Basic Authentication Publishing Credentials' are 'Disabled'Section 2Level 1
2.1.5Ensure 'FTP State' is set to 'FTPS only' or 'Disabled'Section 2Level 1
2.1.6Ensure 'HTTP version' is set to '2.0' (if in use)Section 2Level 1
2.1.7Ensure 'HTTPS Only' is set to 'On'Section 2Level 1
2.1.8Ensure 'Minimum Inbound TLS Version' is set to '1.2' or higherSection 2Level 1
2.1.9Ensure end-to-end TLS encryption is enabledSection 2Level 1
2.1.10Ensure 'Remote debugging' is set to 'Off'Section 2Level 1
2.1.11Ensure incoming client certificates are enabled and required (if in use)Section 2Level 2
2.1.12Ensure 'App Service authentication' is set to 'Enabled'Section 2Level 2
2.1.13Ensure managed identities are configuredSection 2Level 1
2.1.14Ensure public network access is disabledSection 2Level 1
2.1.15Ensure App Service plan SKU supports private endpointsSection 2Level 2
2.1.16Ensure private endpoints are used to access App Service appsSection 2Level 2
2.1.17Ensure private endpoints used to access App Service apps use private DNS zonesSection 2Level 2
2.1.18Ensure app is integrated with a virtual networkSection 2Level 1
2.1.19Ensure configuration is routed through the virtual network integrationSection 2Level 2
2.1.20Ensure all traffic is routed through the virtual networkSection 2Level 1
2.1.21Ensure cross-origin resource sharing does not allow all originsSection 2Level 2
2.2.1Ensure 'Java version' is currently supported (if in use)Section 2Level 1
2.2.2Ensure 'Python version' is currently supported (if in use)Section 2Level 1
2.2.3Ensure 'PHP version' is currently supported (if in use)Section 2Level 1
2.2.4Ensure 'Basic Authentication Publishing Credentials' are 'Disabled'Section 2Level 1
2.2.5Ensure 'FTP state' is set to 'FTPS only' or 'Disabled'Section 2Level 1
2.2.6Ensure 'HTTP version' is set to '2.0' (if in use)Section 2Level 1
2.2.7Ensure 'HTTPS Only' is set to 'On'Section 2Level 1
2.2.8Ensure 'Minimum Inbound TLS Version' is set to '1.2' or higherSection 2Level 1
2.2.9Ensure end-to-end TLS encryption is enabledSection 2Level 1
2.2.10Ensure 'Remote debugging' is set to 'Off'Section 2Level 1
2.2.11Ensure incoming client certificates are enabled and required (if in use)Section 2Level 2
2.2.12Ensure managed identities are configuredSection 2Level 1
2.2.13Ensure public network access is disabledSection 2Level 1
2.2.14Ensure deployment slot is integrated with a virtual networkSection 2Level 1
2.2.15Ensure configuration is routed through the virtual network integrationSection 2Level 2
2.2.16Ensure all traffic is routed through the virtual networkSection 2Level 1
2.2.17Ensure cross-origin resource sharing does not allow all originsSection 2Level 2
2.3.1Ensure 'Java version' is currently supported (if in use)Section 2Level 1
2.3.2Ensure 'Python version' is currently supported (if in use)Section 2Level 1
2.3.3Ensure 'Basic Authentication Publishing Credentials' are 'Disabled'Section 2Level 1
2.3.4Ensure 'FTP state' is set to 'FTPS only' or 'Disabled'Section 2Level 1
2.3.5Ensure 'HTTP version' is set to '2.0' (if in use)Section 2Level 1
2.3.6Ensure 'HTTPS Only' is set to 'On'Section 2Level 1
2.3.7Ensure 'Minimum Inbound TLS Version' is set to '1.2' or higherSection 2Level 1
2.3.8Ensure end-to-end TLS encryption is enabledSection 2Level 1
2.3.9Ensure 'Remote debugging' is set to 'Off'Section 2Level 1
2.3.10Ensure incoming client certificates are enabled and required (if in use)Section 2Level 2
2.3.11Ensure 'App Service authentication' is set to 'Enabled'Section 2Level 2
2.3.12Ensure managed identities are configuredSection 2Level 1
2.3.13Ensure public network access is disabledSection 2Level 1
2.3.14Ensure function app is integrated with a virtual networkSection 2Level 1
2.3.15Ensure configuration is routed through the virtual network integrationSection 2Level 2
2.3.16Ensure all traffic is routed through the virtual networkSection 2Level 1
2.3.17Ensure cross-origin resource sharing does not allow all originsSection 2Level 2
2.4.1Ensure 'Java version' is currently supported (if in use)Section 2Level 1
2.4.2Ensure 'Python version' is currently supported (if in use)Section 2Level 1
2.4.3Ensure 'Basic Authentication Publishing Credentials' are 'Disabled'Section 2Level 1
2.4.4Ensure 'FTP state' is set to 'FTPS only' or 'Disabled'Section 2Level 1
2.4.5Ensure 'HTTP version' is set to '2.0' (if in use)Section 2Level 1
2.4.6Ensure 'HTTPS Only' is set to 'On'Section 2Level 1
2.4.7Ensure 'Minimum Inbound TLS Version' is set to '1.2' or higherSection 2Level 1
2.4.8Ensure end-to-end TLS encryption is enabledSection 2Level 1
2.4.9Ensure 'Remote debugging' is set to 'Off'Section 2Level 1
2.4.10Ensure incoming client certificates are enabled and required (if in use)Section 2Level 2
2.4.11Ensure managed identities are configuredSection 2Level 1
2.4.12Ensure public network access is disabledSection 2Level 1
2.4.13Ensure deployment slot is integrated with a virtual networkSection 2Level 1
2.4.14Ensure configuration is routed through the virtual network integrationSection 2Level 2
2.4.15Ensure all traffic is routed through the virtual networkSection 2Level 1
2.4.16Ensure cross-origin resource sharing does not allow all originsSection 2Level 2
3.1Ensure Private Virtual Networks are used for Container InstancesSection 3Level 1
3.2Ensure a Managed Identity is used for interactions with other Azure servicesSection 3Level 1
3.3Ensure the principle of least privilege is used when assigning roles to a Managed IdentitySection 3Level 1
4.1Ensure SSL is configured for CycleCloudSection 4Level 1
15.1Ensure Batch account is set to use customer-managed keys to encrypt dataSection 15Level 2
15.2Ensure Batch pools disk encryption is set enabledSection 15Level 1
15.3Ensure local authentication methods for accounts are disabledSection 15Level 1
15.4Ensure Private endpoints are considered for Batch accountsSection 15Level 2
15.5Ensure public network access is disabled for Batch accountsSection 15Level 1
15.6Ensure private DNS zones for private endpoints that connect to Batch accounts are configured.Section 15Level 2
15.7Ensure Diagnostics settings logs for Batch accounts are enabledSection 15Level 1
20.1Ensure Virtual Machines are utilizing Managed DisksSection 20Level 1
20.2Ensure that 'OS and Data' disks are encrypted with Customer Managed Key (CMK)Section 20Level 2
20.3Ensure that 'Unattached disks' are encrypted with 'Customer Managed Key' (CMK)Section 20Level 2
20.4Ensure that 'Disk Network Access' is NOT set to 'Enable public access from all networks'Section 20Level 1
20.5Ensure that 'Enable Data Access Authentication Mode' is 'Checked'Section 20Level 1
20.6Ensure that Only Approved Extensions Are InstalledSection 20Level 1
20.7Ensure that Endpoint Protection for all Virtual Machines is installedSection 20Level 2
20.8[Legacy] Ensure that VHDs are EncryptedSection 20Level 2
20.9Ensure only MFA enabled identities can access privileged Virtual MachineSection 20Level 2
20.10Ensure Trusted Launch is enabled on Virtual MachinesSection 20Level 1
20.11Ensure that encryption at host is enabledSection 20Level 1

CIS Microsoft Azure Database Services v2.0.0

49 controls · individual check pages follow once each section's service is confirmed

CIS IDCheckSectionProfile
2.1Ensure 'Microsoft Entra Authentication' is 'Enabled'Section 2Level 1
2.2Ensure that 'Allow access only via SSL' is set to 'Yes'Section 2Level 1
2.3Ensure that 'Minimum TLS version' is set to TLS v1.2 (or higher)Section 2Level 1
2.4Ensure that 'Access Policies' are Implemented and Reviewed PeriodicallySection 2Level 2
2.5Ensure that 'System Assigned Managed Identity' is set to 'On'Section 2Level 1
2.6Ensure that 'Public Network Access' is 'Disabled'Section 2Level 2
2.7Ensure Azure Cache for Redis is Using a Private LinkSection 2Level 2
2.8Ensure that Azure Cache for Redis is Using Customer-Managed KeysSection 2Level 2
2.9Ensure 'Access Keys Authentication' is set to 'Disabled'Section 2Level 1
2.10Ensure 'Update Channel' is set to 'Stable'Section 2Level 1
3.1Ensure That 'Firewalls & Networks' Is Limited to Use Selected Networks Instead of All NetworksSection 3Level 2
3.2Ensure that Cosmos DB uses Private Endpoints where possibleSection 3Level 2
3.3Ensure that 'disableLocalAuth' is set to 'true'Section 3Level 1
3.4Ensure `Public Network Access` is `Disabled`Section 3Level 2
3.5Ensure critical data is encrypted with customer-managed keys (CMK)Section 3Level 2
3.6Ensure the firewall does not allow all network trafficSection 3Level 1
3.7Ensure that Cosmos DB Logging is EnabledSection 3Level 1
4.1Ensure Data Factory is encrypted using Customer Managed KeysSection 4Level 2
4.2Ensure Data Factory is using Managed IdentitiesSection 4Level 1
4.3Ensure that Data Factory is using Azure Key Vault to store Credentials and SecretsSection 4Level 2
4.4Ensure that Data Factory is using RBAC to manage privilege assignmentSection 4Level 2
5.1Ensure Azure Database for MySQL uses Customer Managed Keys for Encryption at RestSection 5Level 2
5.2Ensure Azure Database for MySQL uses only Microsoft Entra AuthenticationSection 5Level 1
5.3Ensure `Public Network Access` is `Disabled` for Azure Database for MySQLSection 5Level 2
5.4Ensure Private Endpoints Are Used for Azure MySQL DatabasesSection 5Level 2
5.5Ensure server parameter 'audit_log_enabled' is set to 'ON' for MySQL flexible serverSection 5Level 2
5.6Ensure server parameter 'audit_log_events' has 'CONNECTION' set for MySQL flexible serverSection 5Level 2
5.7Ensure server parameter 'error_server_log_file' is Enabled for MySQL Database ServerSection 5Level 2
5.8Ensure server parameter 'require_secure_transport' is set to 'ON' for MySQL ServerSection 5Level 1
5.9Ensure server parameter 'tls_version' is set to 'TLSv1.2' (or higher) for MySQL flexible serverSection 5Level 1
6.1Ensure Azure Database for PostgreSQL uses Customer Managed Keys for Encryption at RestSection 6Level 2
6.2Ensure Azure Database for PostgreSQL uses only Microsoft Entra AuthenticationSection 6Level 1
6.3Ensure `Public Network Access` is `Disabled` for Azure Database for PostgreSQLSection 6Level 2
6.4Ensure Private Endpoints Are Used for Azure Database for PostgreSQLSection 6Level 2
6.5Ensure server parameter 'connection_throttle.enable' is set to 'ON' for PostgreSQL serverSection 6Level 1
6.6Ensure server parameter 'logfiles.retention_days' is greater than 3 days for PostgreSQL serverSection 6Level 1
6.7Ensure server parameter 'log_checkpoints' is set to 'ON' for PostgreSQL serverSection 6Level 1
6.8Ensure server parameter 'log_disconnections' is set to 'ON' for PostgreSQL serversSection 6Level 1
6.9Ensure server parameter 'log_connections' is set to 'ON' for PostgreSQL serversSection 6Level 1
6.10Ensure server parameter 'require_secure_transport' is set to 'ON' for PostgreSQL serverSection 6Level 1
6.11Ensure server parameter 'ssl_min_protocol_version' is set to 'TLSv1.2' or higher for PostgreSQL serverSection 6Level 1
9.1Ensure that 'Auditing' is set to 'On'Section 9Level 1
9.2Ensure that 'Public Network Access' is set to 'Disable'Section 9Level 2
9.3Ensure no Azure SQL Database firewall rule is overly permissiveSection 9Level 1
9.4Ensure SQL server's Transparent Data Encryption (TDE) protector is encrypted with Customer-managed keySection 9Level 2
9.5Ensure that Microsoft Entra authentication is Configured for SQL ServersSection 9Level 1
9.6Ensure that 'Data encryption' is set to 'On' on a SQL DatabaseSection 9Level 1
9.7Ensure that 'Auditing' Retention is 'greater than 90 days'Section 9Level 1
9.8Ensure 'Minimum TLS Version' is set to 'TLS 1.2' or higherSection 9Level 1

CIS Microsoft Azure Storage Services v2.0.0

64 controls · individual check pages follow once each section's service is confirmed

CIS IDCheckSectionProfile
3.1.1Ensure soft delete on Backup vaults is EnabledSection 3Level 1
3.1.2Ensure immutability for Backup vaults is EnabledSection 3Level 1
3.1.3Ensure backup data in Backup vaults is encrypted using customer-managed keys (CMK)Section 3Level 2
3.1.4Ensure 'Use infrastructure encryption for this vault' is enabled on Backup vaultsSection 3Level 2
3.1.5Ensure 'Cross Region Restore' is set to 'Enabled' on Backup vaultsSection 3Level 2
3.1.6Ensure 'Cross Subscription Restore' is set to 'Disabled' or 'Permanently Disabled' on Backup vaultsSection 3Level 1
3.2.1Ensure soft delete on Recovery Services vaults is EnabledSection 3Level 1
3.2.2Ensure immutability for Recovery Services vaults is EnabledSection 3Level 1
3.2.3Ensure backup data in Recovery Services vaults is encrypted using customer-managed keys (CMK)Section 3Level 2
3.2.4Ensure 'Use infrastructure encryption for this vault' is enabled on Recovery Services vaultsSection 3Level 2
3.2.5Ensure public network access on Recovery Services vaults is DisabledSection 3Level 1
3.2.6Ensure 'Cross Region Restore' is set to 'Enabled' on Recovery Services vaultsSection 3Level 2
3.2.7Ensure 'Cross Subscription Restore' is set to 'Disabled' or 'Permanently Disabled' on Recovery Services vaultsSection 3Level 1
3.2.8Ensure private endpoints are configured for Recovery Services VaultsSection 3Level 2
4.1Ensure 'Key encryption key' is set to a customer-managed key for Azure Managed Lustre file systemsSection 4Level 2
7.1.1Ensure root squash for NFS file shares is configured (Microsoft.FileShares)Section 7Level 1
7.1.2Ensure encryption in transit is required for File Shares (Microsoft.FileShares)Section 7Level 1
7.1.3Ensure 'Public Endpoint Access' for File Shares is restricted to selected virtual networks (Microsoft.FileShares)Section 7Level 1
7.1.4Ensure 'Public Endpoint Access' is set to 'Disabled' for File Shares (Microsoft.FileShares)Section 7Level 2
7.1.5Ensure private endpoints are configured for File Shares (Microsoft.FileShares)Section 7Level 2
7.2.1Ensure soft delete for Azure File Shares is Enabled (Classic File Shares)Section 7Level 1
7.2.2Ensure 'SMB channel encryption' is set to 'AES-256-GCM' or higher for SMB file shares (Classic File Shares)Section 7Level 1
7.2.3Ensure 'SMB protocol version' is set to 'SMB 3.1.1' or higher for SMB file shares (Classic File Shares)Section 7Level 1
7.2.4Ensure root squash for NFS file shares is configured (Classic File Shares)Section 7Level 1
9.1Ensure 'Encryption key source' is set to 'Customer Managed Key' for Azure NetApp Files accountsSection 9Level 2
10.1Ensure 'Allowed Protocols' for shared access signature (SAS) tokens is set to 'HTTPS Only'Section 10Level 1
10.2Ensure that shared access signature (SAS) tokens expire within an hourSection 10Level 2
10.3Ensure that soft delete for blobs on Azure Blob Storage storage accounts is EnabledSection 10Level 1
10.4Ensure stored access policies (SAP) are used when generating shared access signature (SAS) tokensSection 10Level 1
10.5Ensure 'Versioning' is set to 'Enabled' on Azure Blob Storage storage accountsSection 10Level 2
10.6Ensure locked immutability policies are used for containers storing business-critical blob dataSection 10Level 2
11.1Ensure double encryption is used for Azure Data Box in high-security environmentsSection 11Level 2
14.1Ensure 'Public network access' is set to 'Disabled' on Azure Elastic SANSection 14Level 2
14.2Ensure customer-managed keys (CMK) are used to encrypt data at rest on Azure Elastic SAN volume groupsSection 14Level 2
15.1Ensure 'Allowed Protocols' for shared access signature (SAS) tokens is set to 'HTTPS Only'Section 15Level 1
15.2Ensure that shared access signature (SAS) tokens expire within an hourSection 15Level 2
15.3Ensure stored access policies (SAP) are used when generating shared access signature (SAS) tokensSection 15Level 1
16.4Ensure that 'Secure transfer required' is set to 'Enabled'Section 16Level 1
16.5Ensure that 'Enable Infrastructure Encryption' for Each Storage Account in Azure Storage is Set to 'Enabled'Section 16Level 2
16.6Ensure 'Allow Azure services on the trusted services list to access this storage account' is Enabled for Storage Account AccessSection 16Level 2
16.7Ensure Soft Delete is Enabled for Azure Containers and Blob StorageSection 16Level 1
16.8Ensure storage logging is Enabled for Queue Service for 'Read', 'Write', and 'Delete' requestsSection 16Level 2
16.9Ensure storage logging is Enabled for Blob Service for 'Read', 'Write', and 'Delete' requestsSection 16Level 2
16.10Ensure storage logging is Enabled for Table Service for 'Read', 'Write', and 'Delete' RequestsSection 16Level 2
16.11Ensure the 'Minimum TLS version' for storage accounts is set to 'Version 1.2'Section 16Level 1
16.12Ensure 'Cross Tenant Replication' is not enabledSection 16Level 1
16.13Ensure that 'Allow Blob Anonymous Access' is set to 'Disabled'Section 16Level 1
16.14Ensure Azure Resource Manager Delete locks are applied to Azure Storage AccountsSection 16Level 1
16.15Ensure Azure Resource Manager ReadOnly locks are considered for Azure Storage AccountsSection 16Level 2
16.16Ensure Redundancy is set to a geo-redundant option on critical Azure Storage AccountsSection 16Level 2
16.1.1Ensure that 'Enable key rotation reminders' is enabled for each Storage AccountSection 16Level 1
16.1.2Ensure 'Allowed Protocols' for shared access signature (SAS) tokens is set to 'HTTPS Only'Section 16Level 1
16.1.3Ensure that Storage Account Access Keys are Periodically RegeneratedSection 16Level 1
16.1.4Ensure that a shared access signature (SAS) expiration policy is configuredSection 16Level 1
16.1.5Ensure the shared access signature (SAS) expiration policy action is set to 'Block'Section 16Level 2
16.1.6Ensure that shared access signature (SAS) tokens expire within an hourSection 16Level 2
16.1.7Ensure 'Allow storage account key access' for Azure Storage Accounts is 'Disabled'Section 16Level 1
16.1.8Ensure Storage for Critical Data are Encrypted with Customer Managed Keys (CMK)Section 16Level 2
16.2.1Ensure Private Endpoints are used to access Storage AccountsSection 16Level 2
16.2.2Ensure that 'Public Network Access' is 'Disabled' for storage accountsSection 16Level 2
16.2.3Ensure Default Network Access Rule for Storage Accounts is Set to DenySection 16Level 1
17.1Ensure that shared access signature (SAS) tokens expire within an hourSection 17Level 2
17.2Ensure stored access policies (SAP) are used when generating shared access signature (SAS) tokensSection 17Level 1
17.3Ensure Storage Explorer is using the latest versionSection 17Level 1
Get in touch

Let's talk.

Whether you're evaluating ConfigCobra, running an audit, or managing a client fleet — we respond within one business day.

Free trial