2

我正在测试 terraform/terragrunt 以将 RDS DB 部署到 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}" , ...]
  ...
}

当数据库资源中引用安全组时,这实际上不起作用并且失败。

4

1 回答 1

3

尝试将 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"
}
于 2019-07-16T04:59:12.177 回答