본문 바로가기

개발하자

Terraform을 사용한 인바운드 규칙에 EC2 인스턴스의 IP 참조

반응형

Terraform을 사용한 인바운드 규칙에 EC2 인스턴스의 IP 참조

테라폼은 처음인데요.

인바운드 규칙 내에서 NGINX 서버(프라이빗 서브넷)에 액세스할 수 있는 Bastion Host(공용 서브넷에 위치)에 대한 액세스 권한을 부여하는 Security Group을 만들려고 합니다.

기계에서 바스티온으로 SSH하고 바스티온에서 NGINX 서버로 SSH를 전송할 수 있습니다

기술적으로 테라폼 Init을 하면 Bastion Host의 IP가 "생성"되기 때문에 어떤 방법을 사용해야 할지 모르겠습니다.

Variables를 사용할 수 있다고 생각했는데 솔직히 방법을 모르겠어요. 바스티온에 정적 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 refer the IP of the Bastion Host?
  }

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

  tags = {
    Name = "Security Group Name"
  }
  
}



Nginx 서버와 Bastion 서버는 별도의 보안 그룹을 사용해야 합니다. 그런 다음 Nginx 서버의 Security Group에서 Security Group 규칙에 IP 주소 대신 Security Group ID를 지정하여 Bastion 호스트의 Security Group에서 액세스를 허용합니다.


반응형