مرحبا،
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 ، إذا قمت بتوفير البروتوكول = -1 لـ aws_security_group_rule ، فستحصل على قاعدة ALLOW. يجب ذكر ذلك في مستندات terraform.
الطريقة الصحيحة للقيام بذلك هي إنشاء نوعين من aws_security_group_rule لكل من tcp و udp fe
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 يومًا_ ⏳. يساعد هذا المشرفين لدينا في العثور على المشكلات النشطة والتركيز عليها.
إذا كنت تشعر أنه يجب إعادة فتح هذه المشكلة ، فنحن نشجع على إنشاء مشكلة جديدة مرتبطة بهذه المشكلة مرة أخرى من أجل سياق إضافي. شكرا!
التعليق الأكثر فائدة
تبين أنه السلوك الافتراضي لـ AWS API ، إذا قمت بتوفير البروتوكول = -1 لـ aws_security_group_rule ، فستحصل على قاعدة ALLOW. يجب ذكر ذلك في مستندات terraform.
الطريقة الصحيحة للقيام بذلك هي إنشاء نوعين من aws_security_group_rule لكل من tcp و udp fe