Tôi không thể thấy các quy tắc động được tạo trong Azure Network Security Group (NSG). Mẫu của tôi trông ổn khi kiểm tra xác thực. Tuy nhiên, khi tôi chạy địa hình, hãy áp dụng NSG tạo mà không có quy tắc tùy chỉnh mà tôi đặt trong phần quy tắc động. Vì đây là một phần của mô-đun nên tôi phải sử dụng một số logic để lặp lại.
Dưới đây là mã của tôi từ tệp module.tf
tài nguyên "azurerm_network_security_group" "nsg" {
for_each = var.subnet_prefix
name = Lower("nsg_${each.key}_in")
resource_group_name = var.vnet_resourcegroup
vị trí = var.location
động "security_rule" {
for_each = tra cứu (each.value, "nsg_rules", [])
Nội dung {
tên = tra cứu(security_rule.value,"tên",null)
mô tả = tra cứu(security_rule.value, "description", null)
ưu tiên = tra cứu(security_rule.value,"priority",null)
hướng = tra cứu(security_rule.value,"hướng",null)
truy cập = tra cứu(security_rule.value,"truy cập",null)
giao thức = tra cứu(security_rule.value,"giao thức",null)
source_port_range = "*"
Destination_port_range = tra cứu(security_rule.value,"destination_port_range",null)
source_address_prefix = tra cứu(security_rule.value,"source_address_prefix",null)
Destination_address_prefix = tra cứu(security_rule.value,"destination_address_prefix",null)
}
}
}
Các giá trị sẽ đến từ tệp terraform.tfvars mà tôi đã khai báo như bên dưới. Để tuân thủ, tôi đã xóa các giá trị ban đầu bằng văn bản ngẫu nhiên.
subnet_prefix = {
sa0 = {
tiền tố = "dc-mạng con"
address_space = ["XXXXXX"]
nsg_name = "nsg0"
nsg_rules = [
{
tên = "quy tắc1"
mô tả = "XXXXXX"
ưu tiên = 220
hướng = "Hướng ngoại"
truy cập = "Cho phép"
giao thức = "*"
source_port_range = "*"
source_port_ranges = null
Destination_port_range = *
đích_port_ranges = null
source_address_prefix = "*"
source_address_prefixes = null
Destination_address_prefix = "X.X.X.X/26"
đích_address_prefixes = null
source_application_security_group_names = []
Destination_application_security_group_names = []
}
]
}
}