[AWS EC2] Bastion 서버로 다른 리전의 인스턴스 접근하기 (feat. VPC Peering)
0. 목표
- Seoul 리전 내 존재하는 Bastion Server를 통해 다른 리전에 존재하는 Private Instance에 접속
0-1. Prerequisite
- 0-2 Resource Configuration 완료 (각 VPC, 서브넷, Routing Table, Instance 구성 완료를 의미한다.)
- 터미널 환경에서 에이전트 포워딩 설정 (Putty, Xshell, etc)
- Seoul VPC ↔ Virginia VPC 간 Peering 생성
(추천 Tutorial: https://www.middlewareinventory.com/blog/aws-vpc-peering-tutorial/ )
0-2. Resource Configuration
개인 테스트 자원 설정환경이므로 각자 환경에 맞게 세팅하면 된다.
0-3. AWS Key Pair 설명
AWS에서는 비대칭(Assymmetric) RSA 키 인증방식을 사용한다.
인스턴스를 생성할 때 Private Key(비밀키)를 생성하여 클라이언트에 전달 (로컬 호스트 저장)
Assymmetric Key(비대칭 키) 분배
우리가 AWS Console에서 인스턴스를 생성 하는 과정 속에서 클라이언트와 AWS 서버 간에 Public Key와 Private Key 분배 과정이 일어난다.
(1) Private Key(비밀키)를 생성해 클라이언트에 전달 Private 키는 로컬 호스트에 저장되며, 이는 로그인을 하기위해 필요로 하는 Private Key이다.
(2) Public Key RSA 값을 EC2 서버 내 .ssh/authorized_keys에 저장한다.
AWS에는 퍼블릭 키의 이름은 반드시 authorized_keys라는 이름이어야한다.
(정확한 사유는 찾아봐도 나오지 않았다.)
💡 Public Key vs Private Key
공개키(Public Key): 누구에게나 공개될 수 있으며 데이터를 보내는 발신자는 공개키를 통해 정보를 암호화한다.
비공개키(Private Key): 수신자는 비밀키를 암호화된 메세지를 복호화 하는데 사용한다. 외부에 노출되지 않도록 안전하게 보관해야 한다.
1. 진행 순서
(1) Virginia Region Private Instance 접속 (Bastion Host 임시 생성)
(2) Private Instance ssh-rsa 값 추출 (만약 Bastion과 같은 Keypair라면 Bastion Server로 추출 가능)
(3) Seoul_Bastion Server에 추출한 ssh -rsa 추가
2. Virginia ssh-rsa public key 값 구하기
일반적인 접속 방법으로 Private Instance에 접근할 수 없다.
Session Manager로 Private Instance를 접속하는 방법도 있으나 본인은 편하게 해왔던 방법으로 Public Subnet에 Bastion Instance를 구성하여 Private Instance에 접속하였다.
2-1. Virginia Bastion Server 임시 생성
2-2. Bastion을 통한 Virginia Private Server 접속
Key Pair은 리전 단위로 Seoul 리전에서 사용되는 Key-Pair로 Virginia 리전에서 사용할 수 없으며 신규 생성해야 한다.
이에, 해당 과정은 Virginia Region에서의 Public Key RSA 값을 추출하기 위한 목적이다.
- 에이전트 포워딩을 통한 Private Instance 접속 ( ssh -a ec2-user@<<private IP 주소>>)
(만약 Bastion과 같은 Keypair라면 Bastion Server로 추출 가능) - (root 권한) cat .ssh/authorized_keys 에서 ssh-rsa 에서부터 끝까지 복사
3. (Seoul)Bastion Host 설정 및 접속 테스트
3-1. authorized_key 편집
- (root 권한) Bastion Host_Seoul에 vim .ssh/authorized_keys 이후 2-2 에서 복사한 ssh-rsa 내용 붙여넣기
3-2. Virginia Server 접속 테스트
[ec2-user@bastion-seoul ~]$ ssh -a ec2-user@10.60.0.201
The authenticity of host '10.60.0.201 (10.60.0.201)' can't be established.
ECDSA key fingerprint is SHA256:OmMzWkKoQDguEJQXoZsLkWYhohftKh7z+llzs241HAE.
ECDSA key fingerprint is MD5:08:f9:97:56:21:c9:6c:4e:cb:96:41:3c:93:fe:4a:b6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.60.0.201' (ECDSA) to the list of known hosts.
Last login: Mon Dec 13 08:57:32 2021 from 10.60.10.40
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\\___|___|
<https://aws.amazon.com/amazon-linux-2/>
[ec2-user@virginia ~]$
'AWS > AWS 서비스' 카테고리의 다른 글
[AWS] ACM 과 Route53을 이용한 사설 도메인 HTTPS(SSL) 등록 방법 -(2) ACM을 이용한 SSL 인증서 등록 (HTTPS) (0) | 2022.04.24 |
---|---|
[AWS] ACM 과 Route53을 이용한 사설 도메인 HTTPS(SSL) 등록 방법 -(1) ACM 서비스 개요 / DNS 동작과정 이해 (0) | 2022.04.24 |
[AWS EC2] 서버 시간 동기화 및 타임존 설정 (0) | 2021.12.08 |
[AWS EC2] 여러 자바 버전 이용하기 (0) | 2021.11.23 |
[VPC] NAT(Network Address Translate) 개념잡기 (1) | 2021.11.22 |
댓글