azure с терраформированием нескольких правил для группы безопасности - PullRequest
1 голос
/ 17 июня 2020

Мне нужно настроить несколько правил безопасности для Azure ресурсов.

На AWS я мог бы просто выполнить множественный вход:

  resource "aws_security_group" "mygroup" {
      name        = "mygroup"

      ingress {
        description = "allow all on ssh port"
        from_port   = var.ssh 
        to_port     = var.ssh 
        protocol    = "tcp"
        cidr_blocks = ["0.0.0.0/0"]
      }

      ingress {
        description = "public port"
        from_port   = var.public
        to_port     = var.public
        protocol    = "tcp"
        cidr_blocks =  ["0.0.0.0/0"]
      }

      ingress {
        description = "restricted"
        from_port   = var.restricted
        to_port     = var.restricted
        protocol    = "tcp"
        cidr_blocks =  ["<restricted-ip>/32"]
      }

Но я не знаю, как сделайте это на Azure.

Насколько я понимаю, azurerm_network_security_group допускает только один security_rule (это правильно?).

Может быть, я смогу создать несколько azurerm_network_interface_security_group_association для того же network_interface_id, но другого network_security_group_id?

1 Ответ

0 голосов
/ 17 июня 2020

Вы используете ресурс azurerm_network_security_rule для каждого правила, которое вы добавляете следующим образом: (пример цитируется из документов ресурсов azurerm_network_security_rule )

resource "azurerm_network_security_group" "example" {
  name                = "acceptanceTestSecurityGroup1"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
}

resource "azurerm_network_security_rule" "example" {
  name                        = "test123"
  priority                    = 100
  direction                   = "Outbound"
  access                      = "Allow"
  protocol                    = "Tcp"
  source_port_range           = "*"
  destination_port_range      = "*"
  source_address_prefix       = "*"
  destination_address_prefix  = "*"
  resource_group_name         = azurerm_resource_group.example.name
  network_security_group_name = azurerm_network_security_group.example.name
}

Технически вы можете определить их встроенными, но этого делать не следует, так как это не позволяет другим модулям добавлять правила группы безопасности, если это необходимо. По моему опыту, это происходит довольно часто на практике, поэтому, пожалуйста, не используйте встроенные правила, используйте отдельные ресурсы. Коллеги, в том числе и вы в будущем, будут вам благодарны.

...