使用Terraform将EC2实例的IP引用到入站规则



我是新来的。

我正在尝试创建一个安全组,在它的边界规则,然后一个大访问堡垒主机(位于公共子网)访问NGINX服务器(位于私有子网)。

目的:所以我可以从我的机器SSH到Bastion然后从Bastion到NGINX服务器

我不知道该用什么方法,因为从技术上讲,Bastion主机的IP将被"创建"。在我完成地形初始化之后。

我想我可以使用变量,但老实说我不知道怎么做,你认为我必须为堡垒授予静态IP吗?这样我就可以写出来了安全组HCL代码的入口部分的IP ?

我对下面的代码做了一些注释。我希望这有助于理解我的问题。

resource "aws_security_group" "public_sg" {
vpc_id = aws_vpc.vpc_server_nginx.id
ingress { # SSH from my machine Inbound Rule
protocol  = "tcp"
from_port = 22
to_port   = 22
cidr_blocks = ["187.74.121.76/32"]
}
ingress { # SSH from Bastion to NGINX Server Inbound Rule
protocol  = "tcp"
from_port = 22
to_port   = 22
cidr_blocks = [] # How to reffer the IP of the Bastion Host?
}
egress {
from_port   = 0
to_port     = 0
protocol    = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
tags = {
Name = "Segurity Group Name"
}

}

你应该为Nginx服务器和Bastion服务器使用单独的安全组。然后在Nginx服务器的安全组中,通过在安全组规则中指定安全组ID而不是IP地址来允许来自Bastion主机的安全组的访问。

最新更新