반응형
지난 포스팅에서 Bastion Host 를 구성하여 WebServer SSH 에 접근권한을 제어하는 방법에 대하여 알아 보았습니다.
지난포스팅 보러가기 -> [AWS] Bastion Host 를 활용한 SSH 접근통제 #1
하지만 지난시간에 적용한 구성은 보안상으로 문제점이 발생합니다.
BastionHost 와 WebServer 가 동일한 인스턴스 접속Key를 사용하기 때문에
BastionHost 가 보안 취약점에 의해 외부에 노출 되는경우 WebServer 도 동시에 영향을 미치게 됩니다.
< 동일한 Instance 접속키 사용에 따라 보안 취약점 발생>
이러한 보안 취약점 해결을 위하여 이번 포스팅에서는
아래 구성과 같이 instance 접속키를 별도로 구성해 보도록 하겠습니다.
<instance 접속키 분리를 통해 보약취약점 제거>
우선 AWS 콘솔로 이동해서 신규 적용할 Key 를 생성하도록 하겠습니다.
EC2 메뉴 좌측에서 Key Pairs 를 선택합니다.
기존에 생성한 인스턴스 키 목록이 표출 됩니다.
Create Key Pair 를 클릭하여 신규 Key 를 생성 하겠습니다.
Web Server 에 사용할 Key 이름을 설정하고 Create 를 선택 합니다.
“web” 이라는 명칭으로 키를 생성해 보겠습니다.
키가 생성되면 자동으로 web.pem 파일이 다운로드 됩니다.
이제 생성된 key 파일을 이용해 Instance 를 새로 생성 하도록 하겠습니다.
기존 서비스가 운영 중인 경우 동일한 instance 를 활용하기 위해서는 AMI 백업을 진행하고
해다 이미지를 활용해 신규 Instance 를 생성 합니다.
생성 하고자 하는 인스턴스를 선택한 후 image > Create image 메뉴를 선택합니다.
생성할 image 이름을 등록합니다.
운영중인 서버라면 “No reboot” 옵션에 체크해야 인스턴스가 재부팅 되지 않습니다.
이제 생성된 이미지를 활용해서 새로운 인스턴스를 생성하도록 하겠습니다
EC2 메뉴 좌측 AMIs 를 선택하면
방금 생성한 이미지가 목록에 표출 됩니다.
해당 이미지를 선택하고 Launch 를 선택합니다.
기존 인스턴스 생성 과정과 동일하게 Instance 를 생성합니다.
Security 그룹은 기존에 생성한 SG-Web 으로 설정 하도록 하겠습니다.
Launch 를 실행하고 Key Pair 선택화면이 나오면 아래와 같이 신규로 생성한
Web.pem 을 선택하면 신규 Key Pair를 사용한 WebServer 가 생성 됩니다.
신규 생성된 웹서버를 Web2 라는 이름으로 설정하고 기존 서버는 중지 시키도록 하겠습니다.
Web2 서버의 IP를 기록해 놓습니다.
이제 Bastion host 를 거쳐 Web2 서버에 접속해 보도록 하겠습니다.
Bastion 호스트에 접속후 Web2 서버에 접속을 시도해 보면 아래와 같이 접근이 거부됨을 확인 할수 있습니다.
그럼 이제 Pageant 를 활용해서 관리자가 Web 서버에 SSH 접속하는 방법을 확인해 보도록 하겠습니다.
Putty 다운로드 페이지로 이동하여 pageant 를 다운로드 합니다.
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
다운로드한 파일을 실행하면 윈도우 알림 표시줄에
아래와 같은 아이콘이 만들어 집니다.
해당 아이콘을 더블클릭 하여 Web2 서버 접속에 필요한 web.ppk 파일을 추가합니다.
이제 다시 Putty 를 실행하고 Bastion Host 에 접속 합니다.
이때 반드시 Putty 의 SSH Auth 설정에서 아래와 같이
Allow agent fowarding 에 체크를 해야 pageant 에서 등록한 Key pair 를 활용해
Web2 서버에 접속이 가능합니다.
이제 BastionHost 에서 Web2 서버에 접속을 시도하면 아래와 같이
정상적으로 서버에 접속되는 것을 확인 할 수 있습니다.
좀더 세부적인 보안설정을 위해서는 VPC 설정이 추가로 필요합니다.
VPC 관련해서는 따로 포스팅을 진행하도록 하겠습니다.
'Cloud > AWS' 카테고리의 다른 글
[AWS] WinSCP 를 이용해 Linux 인스턴스로 파일 전송하기 (0) | 2020.04.24 |
---|---|
[AWS] Windows 에서 Linux 인스턴스 연결을 위한 PuTTY 사용방법 (0) | 2020.04.24 |
[AWS고객사례] IBK기업은행 사내벤처 EXA (0) | 2020.04.23 |
AWS Elastic Beanstalk 에서 .ebextensions을 활용하여 scouter agent(host) 백그라우드 프로세스 기동하기 (0) | 2020.04.21 |
[AWS] Elastic Beanstalk 데이터베이스 연동 for Node js (0) | 2020.04.21 |