Ingress-Regeln für Terraform AWS-Sicherheitsgruppen


1

Wie definieren Sie mehrere Ingress-Regeln in einer AWS Security Group mit Terraform?

Ich habe es versucht:

resource "aws_security_group" "sg_allowall" {
  name = "${var.prefix}-allow"

  ingress {
    from_port   = "443"
    to_port     = "443"
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }

  egress {
    from_port   = "0"
    to_port     = "0"
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

resource "aws_security_group_rule" "ssh_from_office" {
  type            = "ingress"
  from_port       = 22
  to_port         = 22
  protocol        = "tcp"
  cidr_blocks     = ["192.202.168.66/32"]

  security_group_id = "${resource.sg_allowall.id}"
}

aber ich bekomme folgenden fehler:

Error: resource 'aws_security_group_rule.ssh_from_office' config: unknown resource 'resource.sg_allowall' referenced in variable resource.sg_allowall.id

Antworten:


2

Zwei Probleme hier. Um auf die von Ihnen erstellte Sicherheitsgruppe zu verweisen, müssen Sie zunächst die korrekte Syntax verwenden:

security_group_id = "${aws_security_group.sg_allowall.id}"

Schauen Sie sich die Terraform-Syntaxdokumente genau an .

Zweitens wird nicht empfohlen, Inline-Blöcke mit eigenständigen Sicherheitsgruppenregeln zu mischen. Es gibt eine Warnung in den Dokumenten darüber, also schauen Sie sich das vielleicht auch an.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.