[ Aws ] ec2로 bastion host 만드는법
aws에서 bastionHost란
bastionHost란 직접 접근할 수 없는 private network의 instance에
접근하기 위해 private network와 통신할 수 있는 public network 내에 존재하는 instance다
bastionHost에서 ssh를 통해 private instance 혹은 db를 private subnet에
놓은 경우 bastionHost를 통해 외부에서 접근가능하며 이러한 절차로 인해 보안성이 올라간다
bastionHost를 위한 instance를 생성을 하자
vpc는 미리 생성한 vpc를 지정해 주자. vpc가 없다면? aws vpc 만드는 법
해당 instance에 접근하기 위해 vpc의 public subnet에 지정하고 public ip도 활성해 두자
접근할 때 vpc에 보안그룹의 inbound 규칙에 목록을 확인하자
규칙에서 모든 트래픽을 받아주는 규칙을 추가하거나 접속하려는 특정 ip가 있다면 지정해서 추가하자
ec2 접근 및 ssh를 위한 pem 파일 작업
위와 같이 만들었다면 ec2를 접속해 보자. 우리는 vpc내부에 있는 private instance에 접근해야 한다
private instance를 만들어줄 때 사용한 keyPair인 pem file을 통해 ssh 접근을 한다
scp명령어를 통해 pem 파일을 업로드해 본다
내 경우에는 오른쪽 링크의 issue처리가 필요했다. 해당 글을 참고하자 -> scp issue fix
scp -i /path/key-pair-name.pem /path/my-file.txt ec2-user@instance-public-dns-name:path/
위와 같이 수정 후 scp명령어를 다시 해보자. 업로드가 완료되었다
private instance의 ip를 통해 pem과 함께 ssh 로그인을 진행하자
ssh -i /path/key-pair-name.pem instance-user-name@instance-public-dns-name
scp 할 때까지는 난 전부 root user의 권한을 사용했다
하지만 private instance에 접근할 때는 ec2-user로 접근해야 한다
권한 때문인지 root로는 접근 못하게 해 놨다
Warning: Permanently added '10.0.142.98' (ED25519) to the list of known hosts.
Please login as the user "ec2-user" rather than the user "root".
pem file도 ec2-user에서 사용하기 위해 권한을 변경하자
chmod 755 <keyPair file>
그리고 private instance의 ec2에 다시 접근해 보자
로그인이 성공적으로 되었다면 해당작업은 마무리가 된다
마지막 간단 순서 정리
터미널에서 pem파일 기반 ssh를 통해 ec2 instance에 접근합니다
아래와 같이 접근이 완료가 돼야 합니다
사전에 pem 파일을 옮겨둔 usr/pem 위치로 이동합니다
한 번 더 pem 파일기반 ssh 접근을 시도합니다
접근이 잘되면 절차가 마무리됩니다