Oi,
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"
}
}
O Terraform deve gerar um erro de que definir o protocolo como -1 e definir from_port e to_port não é compatível OU criar a regra para tcp e udp.
Lança um erro de que a regra solicitada já foi adicionada, porque está adicionando uma regra permitir todos para o CIDR especificado.
Acontece que é o comportamento padrão da API AWS, se você fornecer protocol = -1 para um aws_security_group_rule, você obterá uma regra ALLOW. Isso deve ser mencionado na documentação do terraform.
a maneira correta de fazer isso é criar duas aws_security_group_rule para tcp e 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}"
}
Marcando este problema como obsoleto devido à inatividade. Isso ajuda nossos mantenedores a encontrar e focar nos problemas ativos. Se este problema não receber comentários nos próximos 30 dias, ele será automaticamente encerrado. Os mantenedores também podem remover a etiqueta velha.
Se este problema foi encerrado automaticamente e você acha que deve ser reaberto, incentivamos a criação de um novo problema com um link de volta para este para contexto adicional. Obrigado!
Vou bloquear este problema porque ele está fechado há _30 dias_ ⏳. Isso ajuda nossos mantenedores a encontrar e focar nos problemas ativos.
Se você acha que este problema deve ser reaberto, incentivamos a criação de um novo número com um link de volta para este para contexto adicional. Obrigado!
Comentários muito úteis
Acontece que é o comportamento padrão da API AWS, se você fornecer protocol = -1 para um aws_security_group_rule, você obterá uma regra ALLOW. Isso deve ser mencionado na documentação do terraform.
a maneira correta de fazer isso é criar duas aws_security_group_rule para tcp e udp fe