본문 바로가기

AWS/파워쉘로 배우는 AWS

#14 [EC2] Instance의 Password Key-Pair

AWS에서 모든 Instance 접근할 때에는 반드시 Key-Pair라는 녀석이 필요합니다. Key-Pair 알아보기 전에 cmdlet 신나게 두들겨 봅시다.


PS> New-EC2KeyPair -KeyName "Test-key"

 


 

? 너무 길어서 그런지 짤려서 나오네요? 그리고 KeyMaterial 값을 보니 Private Key 라는 것을 보니 개인키가 만들어지나 봅니다. 그렇다면 Key-Pair 공개키와 개인키로 SSH 세션 연결 시에 PW 아닌 인증서 방식으로 로그인 한다는 이야기가 되는군요.

 

출력된 개인키를 저장을 못했으니 Key-Pair 다시 확인해 봅시다.


PS> Get-EC2KeyPair -KeyName "Test-key"


 

 


Key-Pair 확인했는데 KeyMaterial 속성이 나오질 않네요? 생각해보면 당연한 동작입니다. 유일해야 하는 개인키를 조회 때마다 출력해 준다면 보안이 아무 의미 없겠네요. 그런데… 이미 생성한 Key-Pair 개인키를 저장하지 못했으니 위에서 제작한 Key-Pair는 더 이상 사용하지 못하겠네요.

여러분들도 주의하셔야 같습니다. Key-Pair 만들 제작된 Key-Pair 저장해 두어야 하고, Key-Pair 유출되면 보안에 문제가 생기지만, 가지고 있지 않으면 Instance 접근이 안되니까요.

 

그럼 기존 Key-Pair 두고 새로운 Key-Pair 만들어 봅시다.


PS> $Examplekey = New-EC2KeyPair -KeyName "Example key"


 


 

$ExampleKey라는 변수에 생성한 Key-pair 저장하였습니다. 그럼 Key-Material 확인해 봅시다.


PS> $Examplekey.KeyMaterial


 

해당 Key-Pair 생성 즉시 삭제 되었습니다.

 


Private Key이니 .pem 파일로 저장해 봅시다.


PS> $Examplekey.KeyMaterial | Out-File C:\Example-Key.pem

PS> Get-Content C:\Example-Key.pem


 

해당 Key-Pair 생성 즉시 삭제 되었습니다.

 


정상적으로 생성되었습니다.

이렇게 생성된 Key-Pair 안전한 곳에 보관하시고, Key-Pair 저장한 폴더는 암호화를 하시거나 인터넷을 제한적으로 사용하시는 보안에 신경을 많이 쓰셔야 합니다.

Key-Pair Powershell 창을 띄우고 직접 cmdlet 실행해 AWS 리소스를 제어할 있는 컴퓨터에 저장되어 있다면 컴퓨터 자체 보안에 신경을 많이 쓰셔야 합니다. 보안은 , 강조해도 번째 강조가 전혀 불필요하지 않기 때문에 당부 드립니다.

 

참고자료 : http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/concepts.html