Назад | Перейти на главную страницу

Как предварительно определить идентификатор группы безопасности AWS с помощью Terraform

Этот сценарий отлично подходит для создания экземпляров EC2:

provider "aws" {
  access_key = "ACCESS_KEY"
  secret_key = "SECRET-KEY"
  region     = "us-east-2"
}

resource "aws_instance" "web" {
  count = 3
  ami           = "ami-001as38b07206d4ceaf"
  instance_type = "t2.micro"
  key_name   = "labkey"
  vpc_security_group_ids = [ "sg-341233f1856" ]
}

Сейчас пытаюсь создать группу безопасности. Скрипт работает нормально, однако я не могу понять, как предопределить "vpc_security_group_ids" при создании группы безопасности.

resource "aws_security_group" "Testlab_VPC_Security_Group" {
  vpc_id       = aws_vpc.Testlab_VPC.id
  name         = "Testlab VPC Security Group"
  description  = "Testlab VPC Security Group"
  ingress {
    cidr_blocks = var.ingressCIDRblock
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
  }
  ingress {
    cidr_blocks = var.ingressCIDRblock
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
  }
  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
tags = {
   Name = "Testlab VPC Security Group"
   Description = "Testlab VPC Security Group"
}
}

Я хотел бы иметь возможность объединить оба этих сценария.

Есть ли другой способ добавить безопасность, используя терраформ, который мне не хватает?

Попробуй это

resource "aws_instance" "web" {
  count = 3
  ami           = "ami-001as38b07206d4ceaf"
  instance_type = "t2.micro"
  key_name   = "labkey"
  vpc_security_group_ids = [ aws_security_group.Testlab_VPC_Security_Group.id ]
}

Поскольку это выражение относится к группе безопасности, Terraform может автоматически сделать вывод, что группа безопасности должна быть создана первой.