AWS Session Manager 를 이용하여 EC2 인스턴스에 접속하기

JIPA
7 min readDec 27, 2018

올해 AWS 에서 Session Manager 라는 기능을 새롭게 추가하였는데요. Session Manager 라는 기능은 AWS VPC 내에서 실행되고 있는 EC2 인스턴스에 대해 관리 접속 기능을 제공하는 Managed Service 입니다. 기본적으로 Session Manager 를 사용하기 위해서는 몇가지 요구 사항이 있는데 그 요구 사항은 다음과 같습니다.

  1. Operating System

Linux 의 경우 System Manager 에서 지원하는 모든 Linux 를 지원합니다.

Windows 도 지원합니다.

2. SSM Agent

SSM Agent 2.3.68.0 이상의 버전이 EC2 인스턴스에 설치되어 있어야 합니다.

3. AWS CLI ( 옵션 )

AWS CLI 를 이용하여 Session Manager 를 이용하고자 하는 경우 Version 1.16.12 이상의 버전을 사용하여야 합니다.

자세한 사항은 아래 문서를 참고하세요.

설정 #1. Session Manager 사용을 위한 Role 생성하기

Session Manager 를 사용하기 위해서는 System Manager 에 대한 권한을 갖는 Role 생성이 필요합니다. Role 생성을 위한 순서는 다음과 같습니다.

  • IAM Menu 에서 Roles -> Create Role 을 선택한 후 아래와 같이 “AWS Service”, “EC2” 를 각각 선택한 후 “Next: Permissions” 를 클릭합니다.
  • Filter Policies 검색칸에 “SSM” 을 입력하여 SSM 관련 Policy 를 검색한 후 “AmazonEC2RoleforSSM” Policy 의 체크박스를 체크한 후 “Next: Tags” 를 클릭합니다.
  • Tag 입력 항목에 적절한 값을 입력한 후 “Next: Review” 를 클릭합니다.
  • Role Name 부분에 적절한 Role Name 을 입력한 후 “Create Role” 버튼을 클릭하여 Role 을 생성합니다.

자세한 사항은 아래 문서를 참고하세요.

설정 #2. SSM Role 을 갖는 EC2 Instance 를 Public Subnet 에 설치합니다.

기본적으로 Session Manager 의 기능을 사용하기 위해서는 EC2 인스턴스가 인터넷을 통해 접속이 가능하여야 합니다. 따라서, EC2 인스턴스를 Public Subnet 에 설치하도록 하고 인터넷 접속 또한 가능하도록 Public IP 할당도 활성화 합니다.

##Private Subnet 에 EC2 인스턴스를 설치하는 경우에는 VPC Endpoint 를 이용하여 Session Manager 사용이 가능하지만 이 문서에서는 해당 내용을 다루지 않습니다.

  • EC2 인스턴스 설치를 위하여 Instance 설치 Wizard 를 실행한 후 EC2 Instance 를 선택합니다.
  • 적절한 EC2 Instance Type 을 선택합니다.
  • “Subnet” 은 Internet 접속이 가능한 Subnet 을 선택하고 “Auto-Assign Public IP” 를 Enable 하여 공인 IP 를 할당 받도록 합니다.
  • IAM Role 부분에 이전 단계에서 생성한 Role 을 선택합니다.
  • Step 6: Configure Security Group 단계에서 Security Group 을 생성합니다. 이 문서에서는 Session Manager 의 기능을 확인하기 위하여 별도의 허용 정책이 없는 Security Group 을 생성합니다.
  • EC2 인스턴스를 실행할 때 “Key Pair” 를 사용하지 않도록하는 옵션을 선택한 후 EC2 인스턴스를 실행합니다.
  • 공인 IP 를 갖는 EC2 인스턴스가 정상적으로 실행되는 것을 확인합니다.

설정 #3. System Manger 에 접속하여 Session Manager 메뉴에 해당 EC2 Instance 가 있는지 여부를 확인합니다.

  • Start Session 을 클릭합니다.
  • 아래와 같이 “Target Instances” 화면에 이전 단계에서 설치한 EC2 인스턴스가 있는 것을 확인합니다.
  • 해당 인스턴스의 Radio Button 을 클릭한 후 “Start Session” 버튼을 클릭하여 관리 접속을 실행합니다.
  • 다음과 같이 SSH 접속이 정상적으로 이뤄지는 것을 확인합니다.
  • Systems Manager 의 Session Manager 항목에 아래와 같이 연결되어 있는 SSH 세션이 있는 것을 확인합니다.

여기까지 간단하게 AWS Session Manager 기능에 대해 살펴보았습니다.

##이 EC2 인스턴스에 적용된 Security Group 에는 어떠한 Inbound 허용 정책도 없었고 Key Pair 역시 사용되지 않았었다는 점을 기억하세요.

감사합니다.

--

--