tf/modules/network/vpn/main.tf (43 lines of code) (raw):
# Resource Group
# target RG
data "azurerm_resource_group" "rg" {
name = var.resource_group_name
}
# target vnet
data "azurerm_virtual_network" "vnet" {
name = var.vnet.name
resource_group_name = var.vnet.rg
}
# target subnet
data "azurerm_subnet" "subnet" {
name = "GatewaySubnet"
resource_group_name = data.azurerm_virtual_network.vnet.resource_group_name
virtual_network_name = data.azurerm_virtual_network.vnet.name
}
data azurerm_client_config "current" {}
resource "azurerm_public_ip" "vpn_public_ip" {
name = "${var.name_prefix}-vpn-pip"
resource_group_name = data.azurerm_resource_group.rg.name
location = data.azurerm_resource_group.rg.location
allocation_method = "Static"
sku = "Standard"
}
resource "azurerm_virtual_network_gateway" "vpn" {
name = "${var.name_prefix}-vpn-gw"
resource_group_name = data.azurerm_resource_group.rg.name
location = data.azurerm_resource_group.rg.location
type = "Vpn"
vpn_type = "RouteBased"
active_active = false
enable_bgp = false
sku = "VpnGw2"
ip_configuration {
name = "vnetGatewayConfig"
public_ip_address_id = azurerm_public_ip.vpn_public_ip.id
private_ip_address_allocation = "Dynamic"
subnet_id = data.azurerm_subnet.subnet.id
}
vpn_client_configuration {
address_space = var.point2site_address_pool
aad_tenant = "https://login.microsoftonline.com/${data.azurerm_client_config.current.tenant_id}/"
aad_audience = var.aad_audience
aad_issuer = "https://sts.windows.net/${data.azurerm_client_config.current.tenant_id}/"
vpn_client_protocols = ["OpenVPN"]
}
}