Я хотел бы разрешить трафик через NSG из всех локальных подсетей (не включая одноранговые подсети). Поскольку у меня есть только одно адресное пространство, кажется, что наиболее прямой способ сделать это - использовать адресное пространство VNET в качестве source_address_prefix правила безопасности.
resource "azurerm_resource_group" "west01-rg" {
name = "west01-rg"
location = "West US"
}
resource "azurerm_virtual_network" "virtual-network" {
name = "west01-vnet"
location = "${azurerm_resource_group.west01-rg.location}"
resource_group_name = "${azurerm_resource_group.west01-rg.name}"
address_space = ["10.10.20.0/21"]
}
resource "azurerm_subnet" "servers-subnet" {
name = "ServersNet"
resource_group_name = "${azurerm_resource_group.west01-rg.name}"
virtual_network_name = "${azurerm_virtual_network.virtual-network.name}"
address_prefix = "10.10.20.0/24"
}
resource "azurerm_network_security_group" "dc-nsg" {
name = "dc-nsg"
location = "${azurerm_resource_group.west01-rg.location}"
resource_group_name = "${azurerm_resource_group.west01-rg.name}"
security_rule {
name = "AllowCidrSubnet"
priority = 100
direction = "Inbound"
access = "Allow"
protocol = "*"
source_port_range = "*"
destination_port_range = "*"
source_address_prefix = "${azurerm_virtual_network.virtual-network.address_space}"
destination_address_prefix = "*"
}
tags {
environment = "Testing"
}
}
Согласно документации, это значение может быть в нотации CIDR. Тем не менее, мой пример выше приводит к ошибке
Error: azurerm_network_security_group.dc: security_rule.0.source_address_prefix must be a single value, not a list
Если я переключаюсь на source_address_prefixes, который должен принять список, я получаю эту ошибку
Error: azurerm_network_security_group.dcx: security_rule.0.source_address_prefixes: should be a list
Так что, похоже, значение является списком, а не списком. Должно ли это работать? Или я должен пойти по-другому?
- Terraform v0.11.11
- provider.azurerm v1.21.0