首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Terraform AWS-EC2安全组

Terraform AWS-EC2安全组
EN

Stack Overflow用户
提问于 2020-12-29 21:30:42
回答 1查看 860关注 0票数 1

我正忙于学习更多关于Terraform的知识,但我有一个问题,那就是我不知道如何解决/修复。

问题如下所示,在我的脚本中,我生成了一个ec2实例(AWS),其中包含一些次要的东西,比如en EIP和来自模块的安全组,一切都很正常。但是我不知道如何将安全组连接到机器上,现在正在创建安全组,仅此而已。

代码如下:

代码语言:javascript
复制
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
}

上面是主文件,我正在加载以下模块:

代码语言:javascript
复制
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"
  }
}

最后一步是将安全组附加到机器上,但同样没有关于如何执行此操作的线索。我已经阅读了几个文档,并尝试在谷歌上搜索,但我似乎找不到答案,或者答案对我不起作用。所以希望你们能进一步帮助我。

感谢您的宝贵时间,非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-29 22:05:03

在aws_security_group模块中,您需要通过在./modules/services/Security groups//main.tf中添加以下内容来输出安全组id

代码语言:javascript
复制
output "securitygroup_id" {
  value = aws_security_group.my-webserver.id
}

然后在tf主文件中,将安全组附加到您的实例,如下所示:

代码语言:javascript
复制
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
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65492949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档