Instance 접속 key pair 생성
Key Pair은 EC2 Instance 로 접속하기 위해 사용하는 암호화된 파일입니다.
AWS에서는 보안 문제 때문에 EC2 Instance를 접속 할때 ID, 비밀번호 방식을 사용하지 않습니다. 물론 원하면 사용은 가능합니다
Key Pair 방식은 ID, Password 없이 Key Pair 파일만 가지고 있으면 상당한 보안이 지켜지는 환경에서 접속할 수 있습니다.
AWS에서 EC2에 접속하는 Key Pair의 보안 방식이 공개키 방식이기 때문에 공개키 방식에 대해서 먼저 설명하겠습니다.
Key Pair의 보안 원리는 RSA 공개 키 알고리즘(Public Key Algorithm)을 사용합니다.
암호화 방식에는 두 가지가 있는데 1) 대칭 키와 2) 공개 키 방식이 있습니다.
1) 대칭키
: 암호화 키와 복호화 키가 동일 합니다. 그래서 암호화는 되지만 이 키를 상대방이 복호화하기 위해서 전달해야하는데 전달 구간에서 키가 노출되는 단점이 있습니다.
2) 공개키
: 공개키는 대칭키의 키를 전달하는 과정에서 발생하는 단점을 개선해서 암호화하는 키와 복호화하는 키를 다르게 설계하고, 암호화하는 키는 공개키라고 불릴 정도로 외부에 노출되어도 상관없습니다.
왜냐하면 공개 키에서 복호화에 필요한 개인 키를 추출하는 것은 매우 어려운 과정이기 때문입니다.
좀더 자세히 설명하자면
전통적 암호화 방식은 대칭키 방식으로 윗 그림인 a) 전통적 암호화 방식(비밀키 암호화 시스템) 에서는 암호와 복호키가 동일한 문제점을 가지고 있습니다.
하지만 하단의 그림의 공개키 암호화 방식에서는 이용자1이 이용자2에게 어떤 글을 보낸다고 가정하면,
1) 이용자2에게 공개키를 받아서 공개키로 암호화알고리즘을 사용하여 암호화시키고
2) 암호화된 글이 전송이되어서 이용자2에게 전달되고
3) 이용자2는 비밀키를 이용해서 복호화알고리즘을 사용하여 다시 원래의 글로 복호화 시킵니다.
공개키가 대칭키보다 좋은 점은 암호화하는 과정에 전송하는 공개키를 복호화하는데 재사용하기 때문에 노출되어도 상관이 없다라는 점과
전송받은 미디어를 로컬에서 본인이 가지고 있는 비밀키를 이용해서 복호화시킨다는 점에서 보안에 노출될 요인을 최소화한다는 데에 있습니다.
* ID, Password를 이용해서 접속하는 방식은 무차별대입공격(Brute force attack)이라는 SSH를 이용해서 터미널로 접속하여 무작위로 반복적으로 ID와 Password를 입력해서 접속을 시도하는 공격에 노출될 수 있습니다.
무차별 대입공격은 매우 빠른 속도로 자동화된 공격을 하기 때문에 간다한 비밀번호는 금방 뚫릴 수 있습니다.
이상으로 공개키 암호화 방식에 대한 설명은 이만하고 AWS에서 공개키(Public Key)와 개인키(Private Key)를 사용하여 보겠습니다.
7.1 Key pair 생성하기
: 키쌍을 생성하는 방법은 두가지가 있습니다.
1) 나중에 사용하기 위한 키쌍을 미리 생성하기
2) Instance를 생성할 때 같이 키쌍을 생성하기
1)은 EC2 Dashboard => NETWORK & SECURITY => Key Pairs => "Create Key Pair" => 원하는 "key pair name" 입력 => "Create" 의 순서로 생성합니다.
이렇게 만들어 놓으면 .pem 파일이 나오는데 이 파일이 없으면 연결된 Instance에 접속을 못하게 되므로 관리를 잘해야합니다.
나중에 Instance를 생성할 때 이미 존재하는 Key Pair을 사용하겠다고 말하고 사용할 수 있는 Key Pair를 만들었습니다.
2) Instance 생성시 만드는 Key Pair은 똑같은 Key Pair인데 만드는 시점만 다른 것 뿐입니다. AWS에서 편의상 인스턴스 생성시 만들 수 있게 했습니다.
이 부분에 대한 예시는 Instance 생성하는 방법을 찾아보시면 나오기 때문에 여기서는 다루지 않겠습니다.
7.2 본인이 사용하던 Key Pair 파일을 가져와서 사용하기
Window OS를 사용하는 사용자들 기준으로 PuTTY라는 유틸로 AWS Key Pair를 생성하여 등록하여 보겠습니다.
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.htmlownload.html 로 들어가서
putty.zip을 다운로드 받아서 압축을 풀어보면 PUTTYGEN.exe 라는 실행 프로그램이 나오게 되는게 이게 바로 공개키와 개인키를 만드는 프로그램입니다.
PUTTYGEN 실행 => Generate => 생성동안 마우스를 이리저리 마구 움직인다. => Save public key, Save private key 로 저장
다음은 생성되고 있는 key의 진행되고 있는 부분입니다. 마우스와 키를 마구 흔들어 주어야 합니다. 마구 흔들어 주지 않으면 너무나 오래 흔들어야 합니다.
마우스를 흔들다보면 이 키의 암호화 수준이 엄청나다는 것을 알 수 있게 됩니다.
다음은 생성이 완료된 RSA방식의 암호화 키입니다. 이 암호화된 문자들을 통하여 공개키와 개인키를 만듦니다.
Save public key , Save private key를 눌러서 2개의 키를 PC에 저장해 둡니다. private(개인키)의 경우에는 저장할 때 영어로 비밀번호 없이 저장하시겠냐는 물음에 yes를 누르시면 됩니다.
이제 다시 AWS의 Key Pairs 부분으로 돌아갑니다.
EC2 Dashboard => NETWORK & SECURITY => Key Pairs => Import Key Pair => 파일 선택 => 생성된 public key(공개키)를 선택 => Import
이제 내가 생성한 public key의 등록이 완료되었습니다.
이렇게 등록된 public key는 나중에 Instance를 만들게되면 연결될 key로 사용되게 됩니다.
* 추가적으로 Linux와 Mac OS X를 사용하는 사용자에게 Key Pair 파일 활용하는 부분이 있는데 여기서는 넘어가겠습니다.
이상으로 Key pair에 대한 부분을 마치겠습니다.
* Reference
1. 아마존 웹 서비스를 다루는 기술 - 이재홍 - 이분의 책은 AWS의 바이블이라고 생각됩니다. 구매해서 보시는 것 추천.