你好,
Terraform v0.9.11
variable "ports_logstash" {
description = "Ports used by logstash and graphite"
default = ["40000", "40001", "40002", "40003", "40004", "40005", "40006", "40007", "40008", "40009", "40010", "2003", "2005", "8125", "80", "443"]
}
resource "aws_security_group_rule" "Logstash" {
count = "${length(var.ports_logstash)}"
depends_on = ["aws_security_group.SG-Logstash"]
type = "ingress"
from_port = "${var.ports_logstash[count.index]}"
to_port = "${var.ports_logstash[count.index]}"
protocol = -1
cidr_blocks = ["10.0.1.0/8"]
security_group_id = "${aws_security_group.SG-Logstash.id}"
}
resource "aws_security_group" "SG-Logstash" {
name = "SG-Logstash"
description = "Access to all ports required for Logstash communication"
vpc_id = "${aws_vpc.default.id}"
tags {
Name = "SG-Logstash"
}
}
Terraform应该抛出一个错误,即不支持将协议定义为-1并将设置from_port和to_port设置为错误,或者为tcp和udp创建规则。
引发错误,已添加了所请求的规则,因为它为指定的CIDR添加了“允许所有”规则。
事实证明,这是AWS API的默认行为,如果为aws_security_group_rule提供protocol = -1,您将获得ALL ALLOW规则。 这应该在terraform文档中提及。
正确的解决方法是为tcp和udp fe创建两个aws_security_group_rule
resource "aws_security_group_rule" "tcpLogstash" {
count = "${length(var.ports_logstash)}"
depends_on = ["aws_security_group.SG-Logstash"]
type = "ingress"
from_port = "${var.ports_logstash[count.index]}"
to_port = "${var.ports_logstash[count.index]}"
protocol = "tcp"
cidr_blocks = ["10.0.1.0/8"]
security_group_id = "${aws_security_group.SG-Logstash.id}"
}
resource "aws_security_group_rule" "udpLogstash" {
count = "${length(var.ports_logstash)}"
depends_on = ["aws_security_group.SG-Logstash"]
type = "ingress"
from_port = "${var.ports_logstash[count.index]}"
to_port = "${var.ports_logstash[count.index]}"
protocol = "udp"
cidr_blocks = ["10.0.1.0/8"]
security_group_id = "${aws_security_group.SG-Logstash.id}"
}
由于不活动,将此问题标记为过时。 这有助于我们的维护者发现并关注当前的问题。 如果此问题在接下来的30天内没有收到任何评论,它将自动关闭。 维护者也可以删除陈旧的标签。
如果此问题已自动关闭,并且您认为应重新打开此问题,我们建议创建一个新的问题,链接回此问题以获取更多信息。 谢谢!
我将锁定此问题,因为它已关闭_30天_⏳。 这有助于我们的维护者发现并关注当前的问题。
如果您认为应该重新打开此问题,我们建议创建一个新的问题,将该问题链接回到此问题,以提供更多背景信息。 谢谢!
最有用的评论
事实证明,这是AWS API的默认行为,如果为aws_security_group_rule提供protocol = -1,您将获得ALL ALLOW规则。 这应该在terraform文档中提及。
正确的解决方法是为tcp和udp fe创建两个aws_security_group_rule