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는 크게 상관이 없다.
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
사용 권한 제한
파일의 생성자만 사용할 수 있도록 400 권한으로 변경한다.
sudo chmod 400 .lab-web.pem
이제 bastion host에서 private instance로 ssh 접속을 하면 된다.
private instance 접근
ssh -i "<private instance의 키>" ec2-user@<private instance의 private ip>
'Cloud > AWS' 카테고리의 다른 글
AWS VPC 엔드포인트로 S3와 Session Manager 연결 (0) | 2024.03.28 |
---|---|
AWS EC2로 NAT instance 만들어서 사용하기 (0) | 2024.03.27 |
AWS CloudFront에 S3 파일 배포 & 속도 확인 (0) | 2024.03.26 |
AWS 다른 리전 간의 VPC Peering 설정하기 (0) | 2024.03.25 |
AWS CloudFormation으로 VPC 네트워크 세팅하기(yaml 문법) (0) | 2024.03.25 |