Модули Terraform - Добавить элемент постфактум

Я пытался понять это в отношении модулей терраформирования. Я добавил в свой код модуль группы безопасности и развернул его. После его развертывания у меня нет возможности добавить новое правило в группу, если я не испорчу весь модуль и не разверну его повторно. Я пробовал поискать в Google и не могу найти на это ответа.

Единственное, о чем я могу думать, - это добавить блок ресурсов постфактум, чтобы добавить новое правило ... но разве это не противоречит цели модуля?

Любая помощь будет принята с благодарностью.

Это пример кода, который я использую. Если я успешно разверну это, вернусь и внесу изменения, изменение никогда не будет прочитано.

module "main_sg_web" {
  source = "terraform-aws-modules/security-group/aws"

  name        = "Web SG"
  description = "Security group for Web Services with port 443 open within VPC"
  vpc_id      = module.vpc.vpc_id

  ingress_cidr_blocks = ["10.10.0.0/16"]
  egress_cidr_blocks  = ["0.0.0.0/0"]
  ingress_rules       = ["https-443-tcp"]
  egress_with_cidr_blocks = [
    {
      from_port   = 0
      to_port     = 0
      protocol    = "-1"
      description = "outbound traffic"
      cidr_blocks = "0.0.0.0/0"
    }
  ]
  tags = var.vpc_tags
}

person Mike S    schedule 01.03.2020    source источник
comment
Можете ли вы предоставить пример кода того, как определяется ваш модуль? Вы пробовали использовать выходные переменные в модуле для отображения групп безопасности?   -  person Eduardo Lelis    schedule 02.03.2020
comment
Выложил код выше.   -  person Mike S    schedule 02.03.2020


Ответы (1)


Согласно документации https://registry.terraform.io/modules/terraform-aws-modules/security-group/aws/2.10.0/submodules/ssh?tab=outputs, модуль выводит идентификатор группы безопасности.

вы можете использовать https://www.terraform.io/docs/providers/aws/r/security_group_rule.html, чтобы добавить к нему правило:

resource "aws_security_group_rule" "allow_all" {
  type            = "ingress"
  from_port       = 0
  to_port         = 65535
  protocol        = "tcp"
  cidr_blocks     = "10.0.0.0/8"
  security_group_id = ${module.main_sg_web.this_security_group_id}
}
person victor m    schedule 02.03.2020
comment
Это то, что я подумал, что мне, возможно, придется сделать для добавления правил. Хотел узнать, есть ли способ просто изменить модуль вместо добавления дополнительных блоков. Ну что ж. - person Mike S; 03.03.2020