Salut,
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 doit renvoyer une erreur indiquant que la définition du protocole sur -1 et les paramètres from_port et to_port ne sont pas pris en charge OU créer la règle pour tcp et udp.
Lance une erreur indiquant que la règle demandée est déjà ajoutée, car elle ajoute une règle autoriser tout pour le CIDR spécifié.
Il s'avère que c'est le comportement par défaut de l'API AWS, si vous fournissez protocol = -1 pour une aws_security_group_rule, vous obtiendrez une règle ALL ALLOW. Cela devrait être mentionné dans la documentation de terraform.
la bonne façon de procéder est de créer deux aws_security_group_rule à la fois pour tcp et 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}"
}
Marquer ce problème comme obsolète en raison de l'inactivité. Cela aide nos responsables à trouver et à se concentrer sur les problèmes actifs. Si ce problème ne reçoit aucun commentaire dans les 30 prochains jours, il sera automatiquement clos. Les responsables de la maintenance peuvent également retirer l'étiquette périmée.
Si ce problème a été automatiquement résolu et que vous pensez que ce problème devrait être rouvert, nous vous encourageons à créer un nouveau problème reliant celui-ci pour plus de contexte. Merci!
Je vais verrouiller ce problème car il est fermé depuis _30 jours_ ⏳. Cela aide nos responsables à trouver et à se concentrer sur les problèmes actifs.
Si vous pensez que ce numéro devrait être rouvert, nous vous encourageons à créer un nouveau numéro renvoyant à celui-ci pour plus de contexte. Merci!
Commentaire le plus utile
Il s'avère que c'est le comportement par défaut de l'API AWS, si vous fournissez protocol = -1 pour une aws_security_group_rule, vous obtiendrez une règle ALL ALLOW. Cela devrait être mentionné dans la documentation de terraform.
la bonne façon de procéder est de créer deux aws_security_group_rule à la fois pour tcp et udp fe