Правила входа в группу безопасности Terraform AWS
Как определить несколько правил входа в группу безопасности AWS с помощью Terraform?
Я пробовал это:
resource "aws_security_group" "sg_allowall" {
name = "${var.prefix}-allow"
ingress {
from_port = "443"
to_port = "443"
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
egress {
from_port = "0"
to_port = "0"
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}
resource "aws_security_group_rule" "ssh_from_office" {
type = "ingress"
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["192.202.168.66/32"]
security_group_id = "${resource.sg_allowall.id}"
}
но я получаю следующую ошибку:
Error: resource 'aws_security_group_rule.ssh_from_office' config: unknown resource 'resource.sg_allowall' referenced in variable resource.sg_allowall.id
1 ответ
Два вопроса здесь. Во-первых, для ссылки на группу безопасности, которую вы создали, вам нужно использовать синтаксис исправлений:
security_group_id = "${aws_security_group.sg_allowall.id}"
Внимательно посмотрите на документы по синтаксису Terraform.
Во-вторых, не рекомендуется смешивать встроенные блоки с правилами автономной группы безопасности. В документах есть предупреждение об этом, так что, возможно, посмотрите на это тоже.