AWS SG самоопределение разрешения различных сред - PullRequest
0 голосов
/ 19 апреля 2020

Я хочу сделать его более модульным для разных env (Dev, UAT, PROD), в таком случае я считаю, что мне следует использовать «имя» SG («App $ {local.environment} sec_group») или только Sec_group? , здесь он сможет разрешить source_security_group_id? Файл main.tf: -

resource "aws_security_group" "sec_group" {
name   = "App${local.environment}sec_group"
vpc_id = "${local.vpc_id}"
} resource "aws_security_group_rule" "sec_group_allow_1865" {
type              = "ingress"
from_port         = 1865
to_port           = 1865 
protocol          = "tcp" 
security_group_id = "${aws_security_group.sec_group.id}" 
source_security_group_id = "${aws_security_group.App${local.environment}sec_group.id}" ''' 
}

Файл Variable.tf: -

environment = "${lookup(var.ws_to_environment_map, terraform.workspace, var.default_environment)}"
vpc_id = "${lookup(var.ws_to_vpc_map, terraform.workspace, var.default_environment)}"
variable "default_environment" {
default = "dev"
}
variable "ws_to_vpc_map" {
type = "map"
default = {
dev = "vpc-03a05d67831e1ff035"
uat  = ""
prod = ""
}
}
variable "ws_to_environment_map" {
type = "map"
default = {
dev = "DEV"
uat  = "UAT"
prod = "PROD"
}
}

1 Ответ

1 голос
/ 20 апреля 2020

Здесь вы можете использовать

source_security_group_id = "${aws_security_group.sec_group.id}"

вместо

source_security_group_id = "${aws_security_group.App${local.environment}sec_group.id}"

aws_security_group.sec_group ссылается на ресурс группы безопасности, созданный с помощью имя "sec_group" (ресурс "aws_security_group" "sec_group" ) и aws_security_group.sec_group.id получит свой идентификатор.

...