프로필사진

Go, Vantage point

가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.


Github | https://github.com/overnew/

Blog | https://everenew.tistory.com/





티스토리 뷰

반응형

 

 

 

배스천 호스트(Bastion Host)

 

 

Bastion은 중세시대 성벽에서 방어를 위해 밖으로 도출된 부분을 의미한다.

배스천 호스트는 외부에서 내부 네트워크에 접근할 수 있는 유일한 접근점이다. 보안성이 높은 인프라와 외부 인터넷을 연결하는 중계 서버로 작동하며, 모든 인바운드 트래픽은 배스천 호스트를 통과해야 내부 네트워크로 들어갈 수 있다. 따라서 인증, 인가의 기능을 수행한다고 볼 수 있다.

일반적으로 배스천 호스트는 공인 IP 주소로 프로비저닝 되고 SSH를 통해 액세스 될 수 있는 인스턴스이다.

 

따라서 AWS에서의 자원들은 private subnet에 위치하고, 유일한 접근점인 bastion host만이 public subnet에서 트래픽을 받는다.

 

private subnet의 인스턴스는 이미 존재한다고 가정하고 진행하겠다.

 

 

 보안 그룹 설정

 

Bastion host의 보안 그룹은 외부로부터 우리의 PC의 IP의 ssh 접근이 가능하도록 설정한다.

 

 

 

그다음 Private subnet의 instance는 이 SG로부터만 SSH 접근을 허용하도록 만들면, 보안그룹이 chain으로 연결된다.

 

 

 

 

 

Bastion host EC2 생성

 

이제 EC2 인스턴스를 같은 VPC의 public subnet에 만들어주자.

이때 OS는 크게 상관이 없다.

 

ec2의 네트워크 설정

 

 

 bastion으로 접근하기 위한 key를 새로 만들어주자.

 

 

 

public subnet의 EC2 instance인 bastion host는 생성한 key를 통해서 ssh 접근이 가능하다

 

 

 

 

 

Bastion Host 접속

 

 

배스천 접속

ssh -i "bastion-key.pem" ec2-user@<bastion host의 public dns 혹은 public ip>

 

 

 

이제 bastion은 같은 VPC 내부의 private subnet에 접근할 수 있다.

단, private instance에 ssh 접근을 위해서 해당 instance의 접근 key가 필요하다. 

현재 우리의 PC에 해당 key가 있을 경우 scp를 통해 안전하게 bastion host로 업로드할 수 있다.

 

 

 

private instance 키 전달

scp -i bastion-key.pem <private instance>.pem ec2-user@ <bastion host의 public dns 혹은 public ip>

 

 

이때 key의 안전한 관리를 위해 두 가지 설정을 해주자.

 

 

 

숨김 파일로 변경

mv lab-web.pem .lab-web.pem

 

ls -a로만 확인이 된다.

 

 

사용 권한 제한

파일의 생성자만 사용할 수 있도록 400 권한으로 변경한다.

sudo chmod 400 .lab-web.pem

 

 

 

이제 bastion host에서 private instance로 ssh 접속을 하면 된다.

 

 

 

private instance 접근

ssh -i "<private instance의 키>" ec2-user@<private instance의 private ip>

 

bastion에서 ssh로 private instance로 접근 성공~

 

 

 

 

 

반응형
댓글
반응형
인기글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함