AWS Services/EC2 (Elastic Computing Cloud)

[AWS EC2] Bastion 서버로 다른 리전의 인스턴스 접근하기 (feat. VPC Peering)

[앙금빵] 2021. 12. 14.

0. 목표

- Seoul 리전 내 존재하는 Bastion Server를 통해 다른 리전에 존재하는 Private Instance에 접속

 

0-1. Prerequisite

 

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 값을 추출하기 위한 목적이다.

 

  1. 에이전트 포워딩을 통한 Private Instance 접속 ( ssh -a ec2-user@<<private IP 주소>>)
    (만약 Bastion과 같은 Keypair라면 Bastion Server로 추출 가능)
  2. (root 권한) cat .ssh/authorized_keys 에서 ssh-rsa 에서부터 끝까지 복사

 

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 ~]$

댓글