scenarios/shared/terraform/modules/bastion/main.tf (37 lines of code) (raw):
module "nsg" {
source = "../networking/nsg"
nsgName = var.bastionNsgName
location = var.location
resourceGroupName = var.vnetResourceGroupName
securityRules = var.securityRules
tags = var.tags
}
resource "azurerm_subnet" "bastionSubnet" {
name = "AzureBastionSubnet"
resource_group_name = var.vnetResourceGroupName
virtual_network_name = var.vnetName
address_prefixes = var.addressPrefixes
}
resource "azurerm_subnet_network_security_group_association" "bastion" {
subnet_id = azurerm_subnet.bastionSubnet.id
network_security_group_id = module.nsg.nsgId
}
resource "azurerm_public_ip" "bastionPip" {
name = var.bastionPipName
location = var.location
resource_group_name = var.vnetResourceGroupName
sku = "Standard"
sku_tier = "Regional"
allocation_method = "Static"
tags = var.tags
}
resource "azurerm_bastion_host" "bastionHost" {
name = var.bastionHostName
location = var.location
resource_group_name = var.vnetResourceGroupName
ip_configuration {
name = "ipconf"
subnet_id = azurerm_subnet.bastionSubnet.id
public_ip_address_id = azurerm_public_ip.bastionPip.id
}
}