Hai,
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 seharusnya menampilkan kesalahan bahwa mendefinisikan protokol sebagai -1 dan pengaturan from_port dan to_port, tidak didukung ATAU buat aturan untuk tcp dan udp.
Melempar kesalahan bahwa aturan yang diminta sudah ditambahkan, karena menambahkan aturan bolehkan semua untuk CIDR yang ditentukan.
Ternyata itu adalah perilaku default dari AWS API, jika Anda memberikan protocol = -1 untuk aws_security_group_rule Anda akan mendapatkan aturan ALLOW. Ini harus disebutkan dalam dokumen terraform.
cara yang tepat untuk melakukannya adalah dengan membuat dua aws_security_group_rule baik untuk tcp dan 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}"
}
Menandai masalah ini sebagai basi karena tidak aktif. Ini membantu pengelola kami menemukan dan fokus pada masalah aktif. Jika masalah ini tidak menerima komentar dalam 30 hari ke depan, masalah ini akan ditutup secara otomatis. Pemelihara juga dapat menghapus label basi.
Jika masalah ini ditutup secara otomatis dan Anda merasa masalah ini harus dibuka kembali, sebaiknya buat masalah baru yang menautkan kembali ke masalah ini untuk konteks tambahan. Terima kasih!
Saya akan mengunci masalah ini karena sudah ditutup selama _30 hari_ ⏳. Ini membantu pengelola kami menemukan dan fokus pada masalah aktif.
Jika Anda merasa masalah ini harus dibuka kembali, sebaiknya buat masalah baru yang menautkan kembali ke masalah ini untuk konteks tambahan. Terima kasih!
Komentar yang paling membantu
Ternyata itu adalah perilaku default dari AWS API, jika Anda memberikan protocol = -1 untuk aws_security_group_rule Anda akan mendapatkan aturan ALLOW. Ini harus disebutkan dalam dokumen terraform.
cara yang tepat untuk melakukannya adalah dengan membuat dua aws_security_group_rule baik untuk tcp dan udp fe