我已使用from_port / to_port功能在AWS上创建了防火墙(安全组)。 例如,我在这里创建一个从端口5000到端口5100的SG,从端口6000到6100,从端口7000到7100 ...
volatile int
我正在尝试用谷歌做同样的事情,但似乎没有from_to选项。 我希望能够做得更干,而不是重复端口。另一个很好的理由是我正在使用带有包含端口的变量的terraform模块来打开。 所以我想避免这样的事情。
variable "list_port" {
type = "list"
default = [
"5000-5100",
"6000-6100",
"7000-7100",
]
}
resource "aws_security_group" "test" {
name = "test"
}
resource "aws_security_group_rule" "test" {
count = "${length(var.list_port)}"
type = "ingress"
from_port = "${ element(split("-", element(var.list_port, count.index)), 0) }"
to_port = "${ element(split("-", element(var.list_port, count.index)), 1) }"
protocol = "TCP"
cidr_blocks = ["0.0.0.0/0"]
security_group_id = "${aws_security_group.test.id}"
}
有谁知道更好的解决方案吗?
由于
BR,
埃里克
答案 0 :(得分:1)
您可以在数组中指定端口范围:
resource "google_compute_firewall" "gaming-blacknut" {
name = "test"
direction = "INGRESS"
allow {
protocol = "tcp"
ports = ["5000-5100"]
}
}
修改强>
在看到您的问题后,我相信您仍然可以在allow
规则中使用端口范围,特别是变量。
示例:
allow {
protocol = "tcp"
ports = ["${var.list_port}"] // You may not need the surrounding [ ] as the variable is already defined as a list.
}
您可以在documentation中使用单个端口列表和端口范围查看示例规则。