D1-06. EC2 인스턴스 접근 키, 비밀번호 복구 방법

D1-06. EC2 인스턴스 접근 키, 비밀번호 복구 방법

in

1. Linux EC2 Instant Key 복구 방안

1-1. EC2 User Data

인스턴스 재시작 시 User Data 스크립트를 실행해 새 Public Key를 authorized_keys에 추가하는 방식입니다.
기존 키는 삭제되지 않으며, 복구 완료 후 User Data는 제거하는 것이 안전합니다.

복구 절차

  • Step 1. 새 키 페어 생성
    새로운 키 페어를 생성하고 Public Key를 복사합니다.
  • Step 2. 인스턴스 중지
  • Step 3. EC2 User Data 업데이트
  • Step 4. 인스턴스 재시작

1-2. Systems Manager

AWS 지원 문서 AWSSupport-ResetAccess를 통해 키 생성부터 등록까지 자동화할 수 있습니다.
인스턴스에 SSM Agent 설치 및 IAM 역할 부여가 필수입니다.

  • 새 Private Key는 Parameter Store에 안전하게 저장
  • Public Key는 즉시 인스턴스에 반영

1-3. EC2 Instance Connect

브라우저 기반 SSH 접속을 위해 60초간 유효한 임시 키를 주입합니다.
접속 후 터미널에서 authorized_keys 파일을 직접 편집하여 영구적인 새 공개 키를 추가할 수 있습니다.

이 방식은 기존 authorized_keys 파일을 덮어쓰지 않아, 기존 키는 계속 유지됩니다.

필수 조건

  • Instance Connect Agent 설치 (Amazon Linux 2, Ubuntu 16 이상)
  • 보안 그룹에서 SSH(22번) 포트 허용

1-4. EC2 Serial Console

네트워크와 무관하게 직렬 포트를 통해 터미널에 접근하는 방법입니다.
SSH 불가 상황(네트워크 장애 등)에서 유용합니다.

필수 조건

  • Nitro 기반 인스턴스
  • 계정에서 Serial Console 기능 사전 활성화

1-5. EBS 볼륨 스왑 방식

루트 EBS 볼륨을 다른 인스턴스에 연결해 authorized_keys를 수정하는 방식입니다.
절차가 복잡하지만 확실한 최종 수단입니다.

복구 절차

  • Step 1. 볼륨 분리
  • Step 2. 분리된 볼륨을 임시 인스턴스에 연결
  • Step 3. authorized_keys 파일에 새 공개 키 추가
  • Step 4. 원본 인스턴스에 재연결

2. Windows EC2 Instant Key 복구 방안

2-1. EC2Launch v2

루트 볼륨을 임시 인스턴스에 연결하여 %ProgramData%/Amazon/EC2Launch/state/.run-once 파일을 삭제하여, 인스턴스가 첫 부팅 상태로 인식하도록 만듭니다. 이후 원본에 재연결 시 새 비밀번호 설정 창이 나타납니다.

필수 조건

  • Windows Server 2016 이상 최신 AMI

복구 절차

  • Step 1. EBS 루트 볼륨을 분리합니다
  • Step 2. 임시 Windows 인스턴스에 보조 볼륨으로 연결합니다
  • Step 3. 보조 볼륨에서 ‘run-once 파일’을 삭제합니다
  • Step 4. 원래 인스턴스에 볼륨을 다시 연결하고 재시작합니다
  • Step 5. 인스턴스가 첫 부팅으로 인식하여 새 비밀번호 설정을 요청합니다

2-2. EC2Config

루트 볼륨을 임시 인스턴스에 연결하여 config.xml 파일의 <EC2SetPassword> 값을 Enabled로 변경하고 원본에 재연결합니다.
부팅 시 비밀번호 재설정 기능을 활성화됩니다.

필수 조건

  • Windows Server 2016 이전 AMI

복구 절차

  • Step 1. 임시 EC2 인스턴스를 생성합니다.
  • Step 2. 원본 볼륨을 보조 볼륨으로 연결합니다.
  • Step 3. XML 파일에서 ‘EC2SetPassword’ 변수를 ‘Enabled’로 설정합니다.
  • Step 4. 원래 인스턴스에 볼륨을 다시 연결하고 재시작합니다.
  • Step 5. 새 비밀번호를 설정할 수 있게 됩니다.

2-3. EC2Launch

루트 볼륨을 다른 인스턴스에 연결한 후 EC2Rescue ToolReset Administrator Password 기능으로 비밀번호를 초기화합니다.

필수 조건

  • EC2Launch v2로 업그레이드되지 않은 Windows Server 2016 이상 AMI

복구 절차

  • Step 1. EC2Rescue Tool for Windows Server를 다운로드하여 설치합니다.
  • Step 2. 이 도구의 ‘Reset Administrator Password’ 옵션을 사용합니다.
  • Step 3. 볼륨을 원래 인스턴스에 다시 연결하고 재시작합니다.
  • Step 4. 새 관리자 비밀번호가 설정됩니다.

2-4. Systems Manager

SSM Agent를 통해 원격으로 명령을 실행하여 비밀번호를 재설정합니다.

필수 조건

  • SSM Agent 설치
  • IAM 설정 (AmazonSSMManagedInstanceCore 등 SSM 관련 권한)

복구 방안

  • AWSSupport-ResetAccess: 표준적인 자동화 방법(Linux/Windows)이며, 실행 시 암호 재설정 가능
  • AWSSupport-RunEC2RescueForWindowsTool: EC2Rescue 도구를 원격 실행해 다양한 복구 작업 가능
  • AWS-RunPowerShellScript: PowerShell 명령어 원격 실행해 관리자 비밀번호 변경 가능