AVS-Landing-Zone/GreenField/Terraform/network.tf (63 lines of code) (raw):

# This module creates the virtual network and required subnets resource "azurerm_virtual_network" "network" { name = "${var.prefix}-VNet" address_space = [var.vnetaddressspace] location = azurerm_resource_group.network.location resource_group_name = azurerm_resource_group.network.name } resource "azurerm_subnet" "gatewaysubnet" { name = "GatewaySubnet" resource_group_name = azurerm_resource_group.network.name virtual_network_name = azurerm_virtual_network.network.name address_prefixes = [var.gatewaysubnet] } resource "azurerm_subnet" "azurebastionsubnet" { name = "AzureBastionSubnet" resource_group_name = azurerm_resource_group.network.name virtual_network_name = azurerm_virtual_network.network.name address_prefixes = [var.azurebastionsubnet] } resource "azurerm_subnet_network_security_group_association" "this_bastion" { subnet_id = azurerm_subnet.azurebastionsubnet.id network_security_group_id = module.testnsg.nsg_resource.id } resource "azurerm_subnet" "jumpboxsubnet" { name = "JumpboxSubnet" resource_group_name = azurerm_resource_group.network.name virtual_network_name = azurerm_virtual_network.network.name address_prefixes = [var.jumpboxsubnet] } resource "azurerm_subnet_network_security_group_association" "this_jumpbox" { subnet_id = azurerm_subnet.jumpboxsubnet.id network_security_group_id = module.testnsg.nsg_resource.id depends_on = [ azurerm_virtual_network.network, azurerm_subnet.jumpboxsubnet, module.testnsg ] } module "testnsg" { source = "Azure/avm-res-network-networksecuritygroup/azurerm" version = "0.1.1" enable_telemetry = var.telemetry_enabled location = azurerm_resource_group.network.location resource_group_name = azurerm_resource_group.network.name name = var.nsg_name nsgrules = { #allow all in this example, but set your "rule01" : { "nsg_rule_access" : "Allow", "nsg_rule_destination_address_prefix" : "*", "nsg_rule_destination_port_range" : "*", "nsg_rule_direction" : "Inbound", "nsg_rule_priority" : 100, "nsg_rule_protocol" : "Tcp", "nsg_rule_source_address_prefix" : "*", "nsg_rule_source_port_range" : "*" }, "rule02" : { "nsg_rule_access" : "Allow", "nsg_rule_destination_address_prefix" : "*", "nsg_rule_destination_port_range" : "*", "nsg_rule_direction" : "Outbound", "nsg_rule_priority" : 200, "nsg_rule_protocol" : "Tcp", "nsg_rule_source_address_prefix" : "*", "nsg_rule_source_port_range" : "*" } } }