[실습] “Private” EC2 생성 후 외부 접근 허용 : INBOUND 를 위한 BASTION 설정

이승주·2024년 3월 12일
0

AWS

목록 보기
5/6

📌 사전준비 Local과 Bastion SSH 터널링을 위해 키페어 생성하기

**Local-to-bastion.pem**이라는 Private key를 생성해준다.

Local에 다운로드 되어있는 것을 확인했다.


📌 Bastion 호스트 역할을 할 EC2 (Public Subnet) 인스턴스 만들기

Public Subnet에 Bastion이라는 인스탄스를 만들어준다.

주의할 점은 INBOUND 규칙에 SSH 프로토콜과 22Port를 열어줘야한다.

이후 내 Local 컴퓨터에서 SSH로 Bation에 접근해야 하기 때문이다.

이후 Local과의 SSH 통신을 위해 아까 만들어둔 Private Key에 대한 Public Key를 주입해준다.

Bastion 생성 확인 후 연결해보기

Pulbic Instance인 Bastion이 만들어진 것을 확인할 수 있다. (ROUTING TABLE과 IGW는 앞서 쓴 블로그에서 만든 것을 참고함)


📌 추후 Bastion 에서 EC2 (Private Subnet) 에 접근하기 위한 Key Pair (.pem 키) 생성

bastion-to-private.pem 이라는 Private key를 생성해준다.

내 Local에 Private키가 잘 다운 받아져있는 것을 확인했다.


📌 EC2 (Private Subnet) 과제용 테스트 인스턴스 만들기

Private Subnet에 Private Instance라는 인스탄스를 만들어준다.

주의할 점은 INBOUND 규칙에 SSH 프로토콜과 22Port를 열어줘야한다.

이후 내 Bation에서 SSH로 Private Instance에 접근해야 하기 때문이다.

이후 Bastion과의 SSH 통신을 위해 아까 만들어둔 Private Key에 대한 Public Key를 주입해준다.

Private-Instance 생성 후 Bastion에서 Private-Instance에 연결해보기

Private-Instance 생성 확인했다.

Bastion에서 Private_Instance로 SSH 접근할 수 있는지 아래와 같이 Test해본다.
ssh ec2-user@{target-private-ip} 명령어를 통해 Private_Instance에 요청해본다.

에러 발생

Private EC2 에 SSH 접근을 위해서는 Key Pair (.pem 키)를 넣어서 함께 요청해야한다.


📌 Bastion EC2 인스턴스 내 Private EC2SSH 접속을 위한 .pem 키 설정 후 접속 성공 확인

Bastion EC2 의 터미널에서 나가지말고 .pem 키를 vi편집기를 통해 만들어 준다.

  1. 아까 다운 받은 아래 키 내용을 전체 복붙한다.

  1. vi bastion-to-private.pem 로 파일을 만들어 복사한 키 값을 넣어준다.

  1. chmod 400 bastion-to-private.pem 읽기 권한 부여하여 SSH 접속시 해당 키 읽을 수 있게한다.

  1. **ssh ec2-user@{target-private-ip} -i bastion-to-private.pem 만든 Private key와 함께 다시 요청해본다.**

Private_Instance 접속 성공한 것을 볼 수 있다.


📌 SSH Tunneling 으로 지금 내 컴퓨터 로컬에서 Bastion 을 통해 Private EC2SSH 접속해보기

위에서 만든 .pem 키를 사용하여 접속 ssh -i {local-to-bastion-pem-location} ec2-user@{bastion-host-public-ip}

접속 성공을 확인했다.

Bastion EC2SSH Tunneling 열기 = SSH 통로를 위한 터널 열어두기

SSH 통로를 위한 터널을 열어두는 작업이기에 새 터미널에 아래 명령어를 실행한채 계속 냅둬야함

ssh -i **"local-to-bastion.pem"** -N -L 33322:{target-private-ip}:22 ec2-user@{bastion-host-public-ip}

새 터미널을 하나 더 열어서 통로로 명령어 수행하기

  • 위에서 열어놓았던 터널을 통해 Private EC2 에 직접 SSH 명령어를 수행할 수 있다.

ssh -i **"bastion-to-private.pem"** -p 33322 ec2-user@**localhost**

  • 주의 1 : .pem 키는 2개가 있다. 1번 작업과 2번 작업 시 혼용하지 않도록 주의하라
  • 주의 2 : 터널이 열리는 순간 Private EC2 는 내 로컬에서 접근 가능한 포트가 되기에
    • 33322 포트의 localhost 로 접속해야한다는 점 꼭 유념하기 바란다

주의할 점은 PEM키는 읽기 모드로 변경해야 한다는 것이다.

profile
반복되는 실수를 기록을 통해 줄여가보자!

0개의 댓글

관련 채용 정보