Virtual network with DDoS protection plan disabled This product is not supported for your selected
Datadog site . (
).
Id: terraform-azure-virtual-network-with-ddos-protection-plan-disabled
Provider: Azure
Platform: Terraform
Severity: Low
Category: Availability
Learn More Description Azure Virtual Networks should have a DDoS Protection Plan enabled to safeguard against distributed denial-of-service (DDoS) attacks that can overwhelm and disrupt services hosted in the cloud. Without the ddos_protection_plan block configured with enable = true in the azurerm_virtual_network resource, as shown below, the network remains vulnerable to these attacks, potentially resulting in service downtime and extensive business impact.
ddos_protection_plan {
id = azurerm_network_ddos_protection_plan.example.id
enable = true
}
Enabling DDoS protection ensures automatic detection and mitigation of DDoS attacks, helping protect application availability and data integrity in the Azure environment.
Compliant Code Examples resource "azurerm_resource_group" "example" {
name = "example-resources"
location = "West Europe"
}
resource "azurerm_network_security_group" "example" {
name = "acceptanceTestSecurityGroup1"
location = azurerm_resource_group . example . location
resource_group_name = azurerm_resource_group . example . name
}
resource "azurerm_network_ddos_protection_plan" "example" {
name = "ddospplan1"
location = azurerm_resource_group . example . location
resource_group_name = azurerm_resource_group . example . name
}
resource "azurerm_virtual_network" "negative1" {
name = "virtualNetwork1"
location = azurerm_resource_group . example . location
resource_group_name = azurerm_resource_group . example . name
address_space = [ "10.0.0.0/16" ]
dns_servers = [ "10.0.0.4" , "10.0.0.5" ]
ddos_protection_plan {
id = azurerm_network_ddos_protection_plan . example . id
enable = true
}
subnet {
name = "subnet1"
address_prefix = "10.0.1.0/24"
}
subnet {
name = "subnet2"
address_prefix = "10.0.2.0/24"
}
subnet {
name = "subnet3"
address_prefix = "10.0.3.0/24"
security_group = azurerm_network_security_group . example . id
}
tags = {
environment = "Production"
}
}
Non-Compliant Code Examples resource "azurerm_resource_group" "example" {
name = "example-resources"
location = "West Europe"
}
resource "azurerm_network_security_group" "example" {
name = "acceptanceTestSecurityGroup1"
location = azurerm_resource_group . example . location
resource_group_name = azurerm_resource_group . example . name
}
resource "azurerm_network_ddos_protection_plan" "example" {
name = "ddospplan1"
location = azurerm_resource_group . example . location
resource_group_name = azurerm_resource_group . example . name
}
resource "azurerm_virtual_network" "positive1" {
name = "virtualNetwork1"
location = azurerm_resource_group . example . location
resource_group_name = azurerm_resource_group . example . name
address_space = [ "10.0.0.0/16" ]
dns_servers = [ "10.0.0.4" , "10.0.0.5" ]
subnet {
name = "subnet1"
address_prefix = "10.0.1.0/24"
}
subnet {
name = "subnet2"
address_prefix = "10.0.2.0/24"
}
subnet {
name = "subnet3"
address_prefix = "10.0.3.0/24"
security_group = azurerm_network_security_group . example . id
}
tags = {
environment = "Production"
}
}
resource "azurerm_resource_group" "example" {
name = "example-resources"
location = "West Europe"
}
resource "azurerm_network_security_group" "example" {
name = "acceptanceTestSecurityGroup1"
location = azurerm_resource_group . example . location
resource_group_name = azurerm_resource_group . example . name
}
resource "azurerm_network_ddos_protection_plan" "example" {
name = "ddospplan1"
location = azurerm_resource_group . example . location
resource_group_name = azurerm_resource_group . example . name
}
resource "azurerm_virtual_network" "positive1" {
name = "virtualNetwork1"
location = azurerm_resource_group . example . location
resource_group_name = azurerm_resource_group . example . name
address_space = [ "10.0.0.0/16" ]
dns_servers = [ "10.0.0.4" , "10.0.0.5" ]
ddos_protection_plan {
id = azurerm_network_ddos_protection_plan . example . id
enable = false
}
subnet {
name = "subnet1"
address_prefix = "10.0.1.0/24"
}
subnet {
name = "subnet2"
address_prefix = "10.0.2.0/24"
}
subnet {
name = "subnet3"
address_prefix = "10.0.3.0/24"
security_group = azurerm_network_security_group . example . id
}
tags = {
environment = "Production"
}
}