Модули 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
}
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}
}