从 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
}
我还是 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
}