Terraform AWS-EC2 grup keamanan

Dec 29 2020

Saya cukup sibuk mencoba mempelajari lebih lanjut tentang Terraform tetapi saya mengalami satu masalah yang tidak saya ketahui cara mengatasi / memperbaikinya.

Masalahnya adalah sebagai berikut, dalam skrip saya, saya membuat instans ec2 (AWS) dengan beberapa hal sampingan seperti en EIP dan grup keamanan dari modul, yang semuanya berfungsi dengan baik. Tetapi saya tidak tahu cara memasang grup keamanan ke mesin, sekarang sedang dibuat dan hanya itu.

Kodenya adalah sebagai berikut:

data "aws_ami" "latest" {
  most_recent = true
  owners = [ "self"] 

    filter {
      name = "name"
      values = [ lookup(var.default_ami, var.ami) ]
    }
}

module "aws_security_group" {
  source = "./modules/services/Security groups/"
  server_port = 443
}

resource "aws_instance" "test-ec2deployment" {
  ami                           = data.aws_ami.latest.id
  instance_type                 = var.instance_type
  subnet_id                     = var.subnet_id
  availability_zone             = var.availability_zone
  associate_public_ip_address   = var.public_ip
  
  root_block_device {
    volume_type                 = "gp2"
    volume_size                 = 60
    delete_on_termination       = true
  }
  
   tags = {
    Name                        = "Testserver2viaTerraform"
  }
}

resource "aws_eip" "ip" {
  instance = aws_instance.test-ec2deployment.id
}

resource "aws_eip" "example" {
  vpc = true
}

Di atas adalah file utama dan saya memuat modul berikut:

resource "aws_security_group" "my-webserver" {
  name        = "webserver"
  description = "Allow HTTP from Anywhere"
  vpc_id      = "vpc-"
  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
  egress {
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
  tags = {
    Name = "my-webserver"
    Site = "my-web-site"
  }
}

Langkah terakhir adalah memasang grup keamanan ke mesin tetapi sekali lagi, tidak ada petunjuk tentang cara melakukannya. Saya telah membaca beberapa dokumen dan mencoba google tetapi saya tidak dapat menemukan jawabannya atau jawabannya tidak berhasil untuk saya. Jadi semoga kalian bisa membantu saya lebih jauh.

Terima kasih atas waktu Anda, sangat kami hargai!

Jawaban

3 AsriBadlah Dec 29 2020 at 21:05

Dalam modul aws_security_group Anda perlu mengeluarkan ID grup keamanan dengan menambahkan yang berikut ini di ./modules/services/Security groups // main.tf

output "securitygroup_id" {
  value = aws_security_group.my-webserver.id
}

lalu di file tf utama Anda lampirkan grup keamanan ke instance Anda seperti ini:

resource "aws_network_interface_sg_attachment" "sg_attachment" {
  security_group_id    = module.aws_security_group.securitygroup_id
  network_interface_id = aws_instance.test-ec2deployment.primary_network_interface_id
}