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 역시 사용되지 않았었다는 점을 기억하세요.

감사합니다.

--

--