AWS Bastion 서버 구축

AWS Bastion 서버를 구축하면 서비스를 운영하는 측면에서 보안상 많은 이점이 있습니다.

Bastion 단어는 요새, 보루란 뜻입니다. 중세 전쟁에서 요새는 전략상 매우 중요한 지정학정 요충지입니다.
요새를 점령해야지만 전쟁에서 이길 확률이 높습니다.

수비자의 입장에서 요새는 꼭 구축해야 합니다. 모든 공격을 여기에서 막아야 합니다.
그런 의미에서 Bastion 서버는 바이러스 등 외부 공격을 막기 위해 필히 꼭 견고하게 구축해야 하는 요소입니다.


목표

AWS Bastion 서버 구축하는 방법을 알아보겠습니다.

AWS Bastion 용 키페어 생성

서버에 접속할 보안키로 키페어를 생성합니다.
아래 설정대로 키페어를 정하시면 됩니다. 이름, 키 페어 유형, 프라이빗 키 파일 형식을 선택합니다.

aws-keypair

키 페어 생성을 클릭하면 지정한 이름으로 xxx.pem 파일이 생성됩니다.
원하는 폴더 위치에 저장해둡니다.

AWS Bastion 서버 설정

항목설명
AMIAmazon Linux 2 AMIEC2 인스턴스에 도입할 OS
인스턴스 유형t2.microEC2 스펙
네트워크prod-vpcvpc
서브넷prod-subnet-public01
퍼블릭 IP 자동 할당활성화
태그Name, prod-ec2-bastion
보안그룹default, prod-sg-bastion
Bastion 서버는 위와 같이 설정합니다.
OS는 Amarzon Linux 2 AMI 로 구성하고 인스턴스 유형은 간단한 서버이기 때문에 t2.micro로 스펙 설정을 합니다.

네트워크는 기존에 설정한 prod-vpc 로 설정합니다.
vpc 설정은 여기 링크를 참고하시면 됩니다.


서브넷은 공용 서브넷으로 설정합니다.
서브넷 설정은 여기 링크를 참고하시면 됩니다.

공용 IP가 필요하므로 퍼블릭 IP 자동 할당은 활성화로 설정합니다.

보안 그룹은 default, prod-sg-bastion으로 설정합니다.
보안 그룹 설정은 여기 링크를 참고하시면 됩니다.

AWS Bastion 보안 그룹

aws-bastion

접속 확인

저장해두었던 키페어를 사용하여 베스쳔 서버에 접속해보도록 하겠습니다.

  • pem : test.pem
  • IP : 101.101.101.101

아래는 접속 명령입니다. 터미널을 열고 아래 명령을 입력하면 됩니다.

ssh -i ~/ test.pem [email protected]

ssh 다단계 연결

이제 설정한 bastion 서버로 비공개 서브넷에 있는 EC2로 접속해보도록 하겠습니다.
이걸 설정하지 않으면 로컬에서 bastion 서버로 접속하고 다시 해당 서버로 접속해야 하는 번거로움이 있습니다.

그런 불편함을 피해서 바로 접속하도록 설정하도록 하겠습니다.

아래 내용으로 .ssh 폴더 안에 config 파일명으로 생성합니다.
맥은 숨김 처리로 되어 있으니 꼭 해당 경로 “/Users/사용자명” 에서 숨김처리를 해제합니다.
맥기준 파일 숨김처리 해제 단축키는 “Command + Shift + .” 입니다.

  • config 파일
Host bastion
	Hostname 101.101.101.101
	User ec2-user
	IdentityFile /Users/사용자명/test.pem

Host ec2_01
	Hostname 10.0.66.88
	User ubuntu
	IdentityFile /Users/hch/사용자명/test.pem
	ProxyCommand ssh bastion -W %h:%p
  • Command
ssh ec2_01   # platform-map

위 명령으로 접속하며 쉽게 비공개 서브넷에 있는 ec2 서버로 ssh 접속이 가능합니다.

Back to top