본문 바로가기
Project/3-Tier Architecture

[3-Tier] Bastion Host(배스천 호스트)생성과 보안그룹 설정 (Bastion 구성)

by ganyga 2024. 2. 22.

Bastion Host(배스천 호스트)?

외부 네트워크와 내부 리소스 간의 중계 역할을 하면서, 외부에서 내부 시스템에 직접적으로 접근할 수 없게 함

이를 통해 내부 시스템에 대한 직접적인 공격을 방지하고 보안을 강화할 수 있음

 

Bastion Host는 공인 IP 주소로 프로비저닝 되고 SSH를 통해 액세스 될 수 있는 인스턴스

jump 서버 역할을 하여 공용 IP 주소 없이 프로비저닝 된 인스턴스에 대한 보안 연결을 허용함

VPC내의 서버 노출을 줄이기 위해 Bastion Host를 사용함

개별 서버에 대한 관리 태스크는 Bastion Host를 통해 프록시로 전송되어 SSH를 사용하여 수행됨

 

→ Public Subnet에 Bastion Host를 구성하고 Private Subnet에 Bastion Host를 통해, WEB server와 WAS server를 구성함

 

Bastion Host 구성

AWS EC2 인스턴스 생성하기

 

OS : Amazon Linux 2

인스턴스 유형 : t2.micro

네트워크 설정

  • VPC : Ga-VPC
  • Subnet : Ga-Bastion-Pub-A
  • 퍼블릭 IP 자동 할당 : 활성화
  • 보안 그룹 생성 : Ga-Bastion-SG


보안 그룹 설정(Ga-Bastion-SG)

인바운드 규칙 편집 (SSH 허용)

  • 보안을 고려하여, 0.0.0.0/0 Anywhere-IPv4가 아닌 특정 IP만 허용해줘야 함
  • AWS는 해당 Region 마다 각 서비스별로 사용하는 특정 IP가 있음 (https://ip-ranges.amazonaws.com/ip-ranges.json)
    • 따라서, AWS 콘솔을 통해 EC2 인스턴스 연결을 하기 위해서는 EC2_INSTANCE_CONNECT라는 서비스가 사용하는 IP 대역에 대하여 SSH 트래픽을 수신하도록 허용해야 함
    • EC2_INSTANCE_CONNECT 서비스가 사용하는 IP 대역은 AWS IP 주소 범위에서 서비스와 VPC가 생성된 Region에 대하여 필터링해야 함

위에 사진과 같이 ap-northeast-2(서울 리전)을 기준으로 EC2_INSTANCE_CONNECT가 13.209.1.56/29 IP 대역을 사용하고 있으므로, SSH 트래픽을 수신할 수 있도록 인바운드 규칙을 허용해줘야 함


AWS EC2 인스턴스 연결


EC2 인스턴스에 탄력적 IP 할당

탄력적 IP를 할당하는 이유는 EC2 인스턴스를 중지하고 시작했을 때 공인 IP가 변경되는 상황을 방지하기 위해서임

 

Bastion Host에 탄력적 IP 연결

 


출처

배스천 호스트를 사용하여 원격 인스턴스에 안전하게 액세스-IBM

AWS 서비스가 사용하는 IP 대역 확인하기