EC2 접속을 위한 안전한 Key Pair 관리

JIPA
5 min readFeb 1, 2022

--

AWS 보안을 다루다보면 자주 묻는 질문이나 자주 고민하게 되는 주제 중 하나가 바로 “EC2 접근을 위해 사용하는 SSH Key Pair 는 어떻게 관리하는 것이 바람직한가?” 입니다.

오늘 이 포스트에서는 바로 이 주제를 다뤄보려고 하는데요. 안전한 SSH Key Pair 관리를 위해서는 여러가지 방법이 있겠지만 일단 제가 생각하는 안전한 SSH Key Pair 관리 방법을 나열해 보도록 하겠습니다.

  1. Session Manager 의 사용

첫번째 방법은 AWS Systems Manager 에서 제공하는 Session Manager 를 사용하는 것입니다. Session Manager 는 기술적으로는 SSH Key Pair 를 사용하기는 하지만 관리적인 측면에서는 관리자가 별도로 SSH Key Pair 를 관리하지 않아도 EC2 인스턴스에 대한 접근 제어를 수행할 수 있습니다.
Session Manager 는 SSH Key Pair 를 관리하지 않아도 된다는 장점 이외에도 추가적인 장점을 제공하는데요. 몇 가지를 나열해보면 다음과 같습니다.

A. EC2 인스턴스에서 Inbound TCP 22 Port 를 외부에 Open 하지 않아도 SSH 접근이 가능합니다.
B. EC2 인스턴스에 대한 접근 제어를 IAM 의 권한을 기반으로 구성할 수 있습니다.

C. 각 IAM 자격증명의 EC2 인스턴스에 대한 접근 시도/성공 이력은 CloudTrail 을 통해 기록됩니다.
D. EC2 인스턴스에서 실행한 명령 기록은 S3 에 저장할 수 있습니다.
E. Windows 경의 Remote Desktop 도 지원합니다.
F. AWS CLI 를 이용하여 SSH 접속이 가능합니다.

2. EC2 Instance Connect 의 사용

EC2 Instance Connect 는 Session Manager 와 유사하게 IAM 의 권한을 기반으로 EC2 접근제어를 구성할 수 있고 EC2 접속 시 사용하는 Key Pair 를 로그인 시에만 임시로 사용할 수 있도록 발급하는 구조를 가지고 있어 Key Pair 관리 부담을 없앨 수 있다는 장점이 있습니다. 다만, Session Manager 와는 다르게 관리형 서비스가 아니기 때문에 EC2 Instance Connect 를 적극적으로 사용하기 위해서는 조직 환경에 맞는 개발이 필요하다는 점을 숙지하여야 합니다.

3. Active Directory 의 사용

SSH Key Pair 기반의 인증 체계가 관리의 어려움이 크다면 SSH Key Pair 를 사용하지 않고 Password 기반의 인증 체계를 사용하는 것도 방법이 될 수 있습니다. Active Directory 와 같은 중앙 인증 체계가 갖추어져 있는 조직이라면 사용하는 각 EC2 인스턴스에 대해 Key Pair 인증을 비활성화하고 각 EC2 인스턴스를 AD 에 조인하도록 한 후 Password 기반의 인증 체계로 구성하여 운영하는 것이 Key Pair 관리 체계를 별도로 수립하는 것보다 효율적일 수도 있습니다.

4. Secrets Manager 를 이용한 Key Pair 관리

또 다른 방법은 Secrets Manager 와 같은 안전한 장소에 SSH Key 를 보관하고 주기적으로 SSH Key 를 변경하도록 구성한 후에 API 를 이용해서 지정된 사용자가 지정된 SSH Key 에만 접근이 가능하도록 구성하여 사용하는 방법입니다. 위 블로그의 내용을 참고하세요.

이 포스팅에서는 SSH Key Pair 를 좀 더 안전하게 관리할 수 있거나 혹은 원천적으로 SSH Key Pair 를 사용하지 않음으로써 SSK Key Pair 관리 부담으로부터 자유로워지는 방법에 대해 알아보았는데요. 각 방법에 대해서 기술적으로 장/단점과 고려사항들이 있을 수 있습니다. 따라서, 어떤 한가지를 무조건 선택하기 보다는 각 옵션에서 제공하는 기술적인 특징이 무엇이고 조직의 환경에 맞는 것인지 확인하신 후 선택하시기를 권고드립니다.

감사합니다.

--

--

JIPA
JIPA

Written by JIPA

Always Day 1. Security is job zero.

No responses yet