Amazon EC2 인스턴스 키 페어 분실 시, 자동화(Automation)를 사용하여 복구하는 방법 – Linux

Amazon EC2 인스턴스 키 페어 분실 시, AWS Systems Manager의 기능인 자동화(Automation)를 사용하여 복구하는 방법에 대해 정리해 봤습니다.
2022.10.23

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 Amazon EC2 인스턴스 키 페어 분실 시, AWS Systems Manager의 기능인 자동화(Automation)를 사용하여 복구하는 방법에 대해 정리해 봤습니다.

현재 블로그에서는 Linux OS의 케이스를 다루고 있습니다. Windows는 별도의 블로그를 통해서 소개해드리고자 합니다.

키 페어 분실

현재 인스턴스에서는「test-ec2-1」이라는 키페어를 사용하고 있습니다.

하지만 별도로 Parameter Store에 등록한 것도 아닌 상태이며, 키를 분실한 상태이기 때문에 누군가가 악의 적으로 접근할 가능성도 있습니다.

자동화(Automation)를 이용하여 복구

이럴 경우 AMI를 생성해서, 키 페어를 변경하는 방법도 있겠지만, 기존 인스턴스에서 볼륨을 교체 해야하는 번거로움이 존재합니다.

이럴 때, 자동화(Automation)의 AWSSupport-ResetAccess를 사용하여 간단하게 키 페어를 복구할 수 있습니다.

이 Runbook은 지정된 EC2 인스턴스에서 EC2Rescue 도구를 사용하여 EC2 콘솔(Windows)을 사용하여 암호 해독을 다시 활성화하거나 새 SSH 키 쌍을 생성 및 추가(Linux)합니다. 키 페어를 분실한 경우 이 자동화는 사용자가 소유한 키 페어(Windows)로 새 EC2 인스턴스를 시작하는 데 사용할 수 있는 암호 활성화 AMI를 생성합니다.

공식문서에 의하면 다음과 같습니다.

Linux의 경우 Parameter Store에 키를 복원 하며, Windows의 경우 두 개의 AMI(Pre, Post)가 생성 되기에, 새로운 AMI를 통해 인스턴스를 생성한 후, 키 페어를 교체할 수 있습니다.

키 페어를 복구하기 위해 Systems Manager에서 자동화(Automation)으로 들어옵니다.

그리고「자동화 실행」버튼을 클릭합니다.

「AWSSupport-ResetAccess」을 검색하고 다음으로 넘어갑니다.

여기서 복구할 키 페어의 인스턴스 아이디를「InstanceId」에 입력합니다.

그 외 부분은 디폴트로 진행해도 상관 없습니다.

「실행」버튼을 클릭하면 키 페어 복구 작업이 진행됩니다.

작업 프로세스는 다음과 같습니다.

  • 인스턴스의 ID를 지정하고 Runbook을 실행합니다.
  • 시스템은 임시 VPC를 생성한 다음 일련의 Lambda 함수를 실행하여 VPC를 구성합니다.
  • 시스템은 원래 인스턴스와 동일한 가용 영역에서 임시 VPC의 서브넷을 식별합니다.
  • 시스템은 임시 SSM 지원 도우미 인스턴스를 시작합니다.
  • 시스템이 원래 인스턴스를 중지하고 백업을 생성합니다. 그런 다음 원래 루트 볼륨을 도우미 인스턴스에 연결합니다.
  • 시스템은 Run Command를 사용하여 도우미 인스턴스에서 EC2Rescue를 실행합니다. Windows에서 EC2Rescue는 연결된 원래 루트 볼륨에서 EC2Config 또는 EC2Launch를 사용하여 로컬 관리자의 암호 생성을 활성화합니다. Linux에서 EC2Rescue는 새 SSH 키를 생성 및 주입하고 암호화된 프라이빗 키를 Parameter Store에 저장합니다. 완료되면 EC2Rescue가 루트 볼륨을 원래 인스턴스에 다시 연결합니다.
  • 이제 암호 생성이 활성화되어 시스템이 인스턴스의 새 Amazon 머신 이미지(AMI)를 생성합니다. 이 AMI를 사용하여 새 EC2 인스턴스를 생성하고 필요한 경우 새 키 페어를 연결할 수 있습니다.
  • 시스템이 원래 인스턴스를 다시 시작하고 임시 인스턴스를 종료합니다. 시스템은 또한 자동화 시작 시 생성된 Lambda 함수와 임시 VPC를 종료합니다.
  • Windows : 인스턴스에 할당된 현재 키 페어를 사용하여 Amazon EC2 콘솔에서 디코딩할 수 있는 새 암호가 인스턴스에서 생성됩니다.
  • Linux : Systems Manager Parameter Store에 /ec2rl/openssh/ instance ID/key 로 저장된 SSH 키를 사용하여 인스턴스에 SSH할 수 있습니다 .

조금 기다려보면 상태가「성공」으로 바뀌는 것을 확인할 수 있습니다.

Parameter Store로 들어가 보면, Parameter가 생성된 것을 확인할 수 있습니다.

「표시」버튼을 눌러 나온 키 페어 값을 바탕으로「test-ec2-1.pem」라는 키 페어를 로컬에 생성합니다.

확인을 위해, 기존 키페어와 복구 된 키페어가 똑같은지 비교해 봤습니다.

왼쪽이 복구된 키 페어이며, 오른쪽이 기존(분실한) 키 페어 입니다.

명확히 다르다는 것을 확인할 수 있습니다.

이제 복구한 키 페어를 바탕으로 접속해 보면, 문제 없이 EC2 인스턴스에 접속 되는 것을 획인할 수 있으며, 누군가가 기존 키 페어를 탈취한 상황이라 하더라도 복구 된 키 페어로만 접속이 가능하기 때문에 기존 키 페어는 더 이상 사용하지 못합니다.

참고