从 aws_security_groups 数据源列表中迭代创建安全组规则

creating security group rules, iteratively from a list of aws_security_groups datasource

我还是 Terraform 的新手。

我正在尝试创建单个安全组规则,以便将单个 IP 列入白名单,添加到数据源“aws_security_groups”返回的一组现有安全组中。

data "aws_security_groups" "test" {
 filter {
   name   = "group-name"
   values = ["*VPN*"]
 }
}

resource "aws_security_group_rule" "this" {

  type = "ingress"
  security_group_id = ["for id in data.aws_security_groups.test.ids : id"] //need to get from aws_security_groups datasource
  from_port = 1
  to_port = 1
  protocol = -1
}

但是我无法正确处理,棘手的部分是“security_group_id”

能否推荐一些不使用外部模块的方法?谢谢。

ids 是一个列表。所以你可以使用 for_each:

resource "aws_security_group_rule" "this" {

  for_each = toset(data.aws_security_groups.test.ids)

  type = "ingress"
  security_group_id = each.key
  from_port = 1
  to_port = 1
  protocol = -1
}