aws_security_group - 有条件的入口
aws_security_group - conditional ingress
我正在测试 terraform/terragrunt 以将 RDS 数据库部署到 AWS。
有没有办法将条件入口添加到 aws_security_group 定义中?
Terraform v0.12.3
terragrunt 版本 v0.19.8
现在我能做的最好的事情是为每个条件添加一个安全组,每个都有一个计数语句,并将所有单个安全组添加到数据库实例,比如
resource "aws_security_group" "db_sg_office" {
...
count = var.publicly_accessible ? 1 : 0
ingress {
...
cidr_blocks = ["1.2.3.4/32"]
}
}
...
resource "aws_db_instance" "default" {
...
vpc_security_group_ids = [ ... , "${aws_security_group.db_sg_office.id}" , ...]
...
}
当在数据库资源中引用安全组时,这实际上不起作用并且失败了。
尝试使用 aws_security_group_rule 计数,
resource "aws_security_group" "db_sg_office" {
...
}
resource "aws_security_group_rule" "open_public" {
security_group_id = aws_security_group.db_sg_office.id
count = var.publicly_accessible ? 1 : 0
type = "ingress"
from_port = 0
to_port = 65535
cidr_blocks = ["1.2.3.4/32"]
protocol = "tcp"
}
我正在测试 terraform/terragrunt 以将 RDS 数据库部署到 AWS。
有没有办法将条件入口添加到 aws_security_group 定义中?
Terraform v0.12.3 terragrunt 版本 v0.19.8
现在我能做的最好的事情是为每个条件添加一个安全组,每个都有一个计数语句,并将所有单个安全组添加到数据库实例,比如
resource "aws_security_group" "db_sg_office" {
...
count = var.publicly_accessible ? 1 : 0
ingress {
...
cidr_blocks = ["1.2.3.4/32"]
}
}
...
resource "aws_db_instance" "default" {
...
vpc_security_group_ids = [ ... , "${aws_security_group.db_sg_office.id}" , ...]
...
}
当在数据库资源中引用安全组时,这实际上不起作用并且失败了。
尝试使用 aws_security_group_rule 计数,
resource "aws_security_group" "db_sg_office" {
...
}
resource "aws_security_group_rule" "open_public" {
security_group_id = aws_security_group.db_sg_office.id
count = var.publicly_accessible ? 1 : 0
type = "ingress"
from_port = 0
to_port = 65535
cidr_blocks = ["1.2.3.4/32"]
protocol = "tcp"
}