Terraform-provider-aws: AWS Security Group Rule / خطأ في المنفذ.

تم إنشاؤها على ١٠ يوليو ٢٠١٧  ·  3تعليقات  ·  مصدر: hashicorp/terraform-provider-aws

مرحبا،

نسخة Terraform

Terraform v0.9.11

الموارد المتأثرة

  • aws_security_group_rule

ملفات تكوين Terraform

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 المحدد.

خطوات التكاثر

  1. حدد مورد قاعدة SG جديدًا ، لمنافذ محددة بنفس CIDR ومنافذ مختلفة.
  2. تطبيق تشغيل التضاريس.
  3. احصل على الخطأ أدناه:
    "" * aws_security_group_rule.Logstash [3]: حدث خطأ واحد (أخطاء):
  • aws_security_group_rule.Logstash.3: [تحذير] تم العثور على قاعدة مجموعة أمان مكررة في (sg-xxxxxxxx). هذا قد يكون
    أحد الآثار الجانبية لمشكلة Terraform التي تم إصلاحها الآن والتي تتسبب في وجود مجموعتي أمان مع
    سمات متطابقة ولكن مختلفة source_security_group_ids للكتابة فوق كل منها
    أخرى في الولاية. راجع https://github.com/hashicorp/terraform/pull/2376 لمزيد من المعلومات
    معلومات وتعليمات الاسترداد. رسالة الخطأ: القاعدة المحددة "النظير: 10.0.1.0/8 ، ALL ، ALLOW" موجودة بالفعل ""
bug servicec2 stale

التعليق الأكثر فائدة

تبين أنه السلوك الافتراضي لـ 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}"
}

ال 3 كومينتر

تبين أنه السلوك الافتراضي لـ 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 يومًا_ ⏳. يساعد هذا المشرفين لدينا في العثور على المشكلات النشطة والتركيز عليها.

إذا كنت تشعر أنه يجب إعادة فتح هذه المشكلة ، فنحن نشجع على إنشاء مشكلة جديدة مرتبطة بهذه المشكلة مرة أخرى من أجل سياق إضافي. شكرا!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات