Azure Managed Disk Without Encryption
- Query id: 350f3955-b5be-436f-afaa-3d2be2fa6cdd
- Query name: Azure Managed Disk Without Encryption
- Platform: AzureResourceManager
- Severity: High
- Category: Encryption
- CWE: 311
- URL: Github
Description¶
Azure Disk Encryption should be enabled
Documentation
Code samples¶
Code samples with security vulnerabilities¶
Positive test num. 1 - bicep file
@description('Specifies a name for generating resource names.')
param projectName string
var vmName = '${projectName}-vm'
resource vmName_disk1 'Microsoft.Compute/disks@2020-09-30' = {
name: '${vmName}-disk1'
location: resourceGroup().location
sku: {
name: 'Standard_LRS'
}
properties: {
creationData: {
createOption: 'Empty'
}
diskSizeGB: 512
encryptionSettingsCollection: {
enabled: false
encryptionSettings: [
{
diskEncryptionKey: {
secretUrl: 'https://secret.com/secrets/secret'
sourceVault: {
id: '/someid/somekey'
}
}
}
]
}
}
}
Positive test num. 2 - json file
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"projectName": {
"type": "string",
"metadata": {
"description": "Specifies a name for generating resource names."
}
}
},
"variables": {
"vmName": "[concat(parameters('projectName'), '-vm')]"
},
"resources": [
{
"type": "Microsoft.Compute/disks",
"apiVersion": "2020-09-30",
"name": "[concat(variables('vmName'),'-disk1')]",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard_LRS"
},
"properties": {
"creationData": {
"createOption": "Empty"
},
"diskSizeGB": 512,
"encryptionSettingsCollection": {
"enabled": false,
"encryptionSettings": [
{
"diskEncryptionKey": {
"secretUrl": "https://secret.com/secrets/secret",
"sourceVault": {
"id": "/someid/somekey"
}
}
}
]
}
}
}
]
}
Positive test num. 3 - bicep file
@description('Specifies a name for generating resource names.')
param projectName string
var vmName = '${projectName}-vm'
resource vmName_disk1 'Microsoft.Compute/disks@2020-09-30' = {
name: '${vmName}-disk1'
location: resourceGroup().location
sku: {
name: 'Standard_LRS'
}
properties: {
creationData: {
createOption: 'Empty'
}
diskSizeGB: 512
}
}
Positive test num. 4 - json file
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"projectName": {
"type": "string",
"metadata": {
"description": "Specifies a name for generating resource names."
}
}
},
"variables": {
"vmName": "[concat(parameters('projectName'), '-vm')]"
},
"resources": [
{
"type": "Microsoft.Compute/disks",
"apiVersion": "2020-09-30",
"name": "[concat(variables('vmName'),'-disk1')]",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard_LRS"
},
"properties": {
"creationData": {
"createOption": "Empty"
},
"diskSizeGB": 512
}
}
]
}
Positive test num. 5 - bicep file
@description('Specifies a name for generating resource names.')
param projectName string
var vmName = '${projectName}-vm'
resource vmName_disk1 'Microsoft.Compute/disks@2020-09-30' = {
name: '${vmName}-disk1'
location: resourceGroup().location
sku: {
name: 'Standard_LRS'
}
properties: {
creationData: {
createOption: 'Empty'
}
diskSizeGB: 512
encryptionSettingsCollection: {
enabled: false
encryptionSettings: [
{
diskEncryptionKey: {
secretUrl: 'https://secret.com/secrets/secret'
sourceVault: {
id: '/someid/somekey'
}
}
}
]
}
}
}
Positive test num. 6 - json file
{
"properties": {
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"projectName": {
"type": "string",
"metadata": {
"description": "Specifies a name for generating resource names."
}
}
},
"variables": {
"vmName": "[concat(parameters('projectName'), '-vm')]"
},
"resources": [
{
"type": "Microsoft.Compute/disks",
"apiVersion": "2020-09-30",
"name": "[concat(variables('vmName'),'-disk1')]",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard_LRS"
},
"properties": {
"creationData": {
"createOption": "Empty"
},
"diskSizeGB": 512,
"encryptionSettingsCollection": {
"enabled": false,
"encryptionSettings": [
{
"diskEncryptionKey": {
"secretUrl": "https://secret.com/secrets/secret",
"sourceVault": {
"id": "/someid/somekey"
}
}
}
]
}
}
}
],
"outputs": {}
},
"parameters": {}
},
"kind": "template",
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
Positive test num. 7 - bicep file
@description('Specifies a name for generating resource names.')
param projectName string
var vmName = '${projectName}-vm'
resource vmName_disk1 'Microsoft.Compute/disks@2020-09-30' = {
name: '${vmName}-disk1'
location: resourceGroup().location
sku: {
name: 'Standard_LRS'
}
properties: {
creationData: {
createOption: 'Empty'
}
diskSizeGB: 512
}
}
Positive test num. 8 - json file
{
"properties": {
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"projectName": {
"type": "string",
"metadata": {
"description": "Specifies a name for generating resource names."
}
}
},
"variables": {
"vmName": "[concat(parameters('projectName'), '-vm')]"
},
"resources": [
{
"type": "Microsoft.Compute/disks",
"apiVersion": "2020-09-30",
"name": "[concat(variables('vmName'),'-disk1')]",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard_LRS"
},
"properties": {
"creationData": {
"createOption": "Empty"
},
"diskSizeGB": 512
}
}
],
"outputs": {}
},
"parameters": {}
},
"kind": "template",
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}
Code samples without security vulnerabilities¶
Negative test num. 1 - bicep file
@description('Specifies a name for generating resource names.')
param projectName string
var vmName = '${projectName}-vm'
resource vmName_disk1 'Microsoft.Compute/disks@2020-09-30' = {
name: '${vmName}-disk1'
location: resourceGroup().location
sku: {
name: 'Standard_LRS'
}
properties: {
creationData: {
createOption: 'Empty'
}
diskSizeGB: 512
encryptionSettingsCollection: {
enabled: true
encryptionSettings: [
{
diskEncryptionKey: {
secretUrl: 'https://secret.com/secrets/secret'
sourceVault: {
id: '/someid/somekey'
}
}
}
]
}
}
}
Negative test num. 2 - json file
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"projectName": {
"type": "string",
"metadata": {
"description": "Specifies a name for generating resource names."
}
}
},
"variables": {
"vmName": "[concat(parameters('projectName'), '-vm')]"
},
"resources": [
{
"type": "Microsoft.Compute/disks",
"apiVersion": "2020-09-30",
"name": "[concat(variables('vmName'),'-disk1')]",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard_LRS"
},
"properties": {
"creationData": {
"createOption": "Empty"
},
"diskSizeGB": 512,
"encryptionSettingsCollection": {
"enabled": true,
"encryptionSettings": [
{
"diskEncryptionKey": {
"secretUrl": "https://secret.com/secrets/secret",
"sourceVault": {
"id": "/someid/somekey"
}
}
}
]
}
}
}
]
}
Negative test num. 3 - bicep file
@description('Specifies a name for generating resource names.')
param projectName string
var vmName = '${projectName}-vm'
resource vmName_disk1 'Microsoft.Compute/disks@2020-09-30' = {
name: '${vmName}-disk1'
location: resourceGroup().location
sku: {
name: 'Standard_LRS'
}
properties: {
creationData: {
createOption: 'Empty'
}
diskSizeGB: 512
encryptionSettingsCollection: {
enabled: true
encryptionSettings: [
{
diskEncryptionKey: {
secretUrl: 'https://secret.com/secrets/secret'
sourceVault: {
id: '/someid/somekey'
}
}
}
]
}
}
}
Negative test num. 4 - json file
{
"properties": {
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"projectName": {
"type": "string",
"metadata": {
"description": "Specifies a name for generating resource names."
}
}
},
"variables": {
"vmName": "[concat(parameters('projectName'), '-vm')]"
},
"resources": [
{
"type": "Microsoft.Compute/disks",
"apiVersion": "2020-09-30",
"name": "[concat(variables('vmName'),'-disk1')]",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard_LRS"
},
"properties": {
"creationData": {
"createOption": "Empty"
},
"diskSizeGB": 512,
"encryptionSettingsCollection": {
"enabled": true,
"encryptionSettings": [
{
"diskEncryptionKey": {
"secretUrl": "https://secret.com/secrets/secret",
"sourceVault": {
"id": "/someid/somekey"
}
}
}
]
}
}
}
],
"outputs": {}
},
"parameters": {}
},
"kind": "template",
"type": "Microsoft.Blueprint/blueprints/artifacts",
"name": "myTemplate"
}